加密技术作用
机密性:通过数据加密实现。提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务
完整性:通过数据加密、散列或数字签名来实现,提供确保数据在存储和传输过程中不被未授权修改(篡改、删除、插入和重放等)的服务。
鉴别性:通过数据加密、数据散列或数字签名来实现,提供与数据和身份识别有关的服务,即认证数据发送和接受者的身份。
不可否定性:通过对称加密或非对称加密,以及数字签名等,并借助可信的注册机构或证书机构的辅助来实现,提供阻止用户否认先前的言论或行为的抗抵赖服务。
加密技术分类
-
对称加密:(DES、3DES(TripleDES)、AES、RC2、RC4、RC5)
- 又称为共享密钥加密,它使用同一个密钥对数据进行加密和解密。
-
非对称加密:(RSA、DSA(数字签名用)、ECC)
-
加解密使用两个不同的密钥,私钥用来保护数据,公钥则由同一系统的人公用,用来检验信息及其发送者的真实性和身份。
-
密钥:公钥&私钥。(公钥加密,私钥解密)
-
对称和非对称加密比较
数据加密- 数字信封
-
数字信封是指发送方采用接收方的公钥来加密对称密钥后所得的数据。采用数字信封时,接收方需要使用自己的私钥才能打开数字信封得到对称密钥。
-
甲事先获得乙的公钥,具体加解密过程如下:
-
甲使用对称密钥对明文进行加密,生成密文信息。
-
甲使用乙的公钥加密对称密钥,生成数字信封。
-
甲将数字信封和密文信息一起发送给乙。
-
乙接收到甲的加密信息后,使用自己的私钥打开数字信封,得到对称密钥。
-
乙使用对称密钥对密文信息进行解密,得到最初的明文。
-
-
从加解密过程中,可以看出,数字信封技术结合了对称密钥加密和公钥加密的优点,解决了对称密钥的发布和公钥加密速度慢等问题,提高了安全性、扩展性和效率等。
-
缺点:数字信封技术还有个问题,如果攻击者拦截甲的信息,用自己的对称密钥加密伪造的信息,并用乙的公钥加密自己的对称密钥,然后发送给乙。乙收到加密信息后,解密得到的明文,而且乙始终认为是甲发送的信息。此时,需要一种方法确保接收方收到的信息就是指定的发送方发送的。
数据验证- 数字签名
(私钥签名,公钥验证)
-
数字签名是指发送方用自己的私钥对数字指纹进行加密后所得的数据。采用数字签名时,接收方需要使用发送方的公钥才能解开数字签名得到数字指纹。
-
数字指纹又称为信息摘要,它是指发送方通过HASH算法对明文信息计算后得出的数据。采用数字指纹时,发送方会将数字指纹和明文一起发送给接收方,接收方用同样的HASH算法对明文计算生成的数据指纹,与收到的数字指纹进行匹配,如果一致,便可确定明文信息没有被篡改。
-
甲事先获得乙的公钥,具体加解密过程如下:
-
甲使用乙的公钥对明文进行加密,生成密文信息。
-
甲使用HASH算法对明文进行HASH运算,生成数字指纹。
-
甲使用自己的私钥对数字指纹进行加密,生成数字签名。
-
甲将密文信息和数字签名一起发送给乙。
-
乙使用甲的公钥对数字签名进行解密,得到数字指纹。
-
乙接收到甲的加密信息后,使用自己的私钥对密文信息进行解密,得到最初的明文。
-
乙使用HASH算法对明文进行HASH运算,生成数字指纹。
-
乙将生成的数字指纹与得到的数字指纹进行比较,如果一致,乙接受明文;如果不一致,乙丢弃明文。
-
优点:数字签名技术不但证明了信息未被篡改,还证明了发送方的身份。数字签名和数字信封技术也可以组合使用。
缺点:如果攻击者更改乙的公钥,甲获得的是攻击者的公钥,攻击者拦截乙发送给甲的信息,用自己的私钥对伪造的信息进行数字签名,然后与使用甲的公钥的加密伪造的信息一起发送给甲。甲收到加密信息后,解密得到的明文,并验证明文没有被篡改,则甲始终认为是乙发送的信息。此时,需要一种方法确保一个特定的公钥属于一个特定的拥有者。
加解密常见算法
对称加密算法
-
流加密算法:流加密算法在算法过程中连续输入元素,一次产生一个输出元素。典型的流密码算法一次加密一个字节的明文,密钥输入到一个伪随机字节生成器,产生一个表面随机的字节流,称为密钥流。流加密算法一般用在数据通信信道,浏览器或网络链路上。
- RC4
-
分组加密算法:分组加密算法的输入为明文分组及密钥,明文被分为两半,这两半数据通过n轮处理后组合成密文分组,每轮的输入为上轮的输出;同时子密钥也是由密钥产生。典型分组长度是64位。
-
DES (密钥长度:56,分组长度:64)
-
3DES (密钥长度:112,分组长度:64)
-
AES (密钥长度:128、192、256,分组长度:128,推荐使用)
-
IDEA (密钥长度:128,分组长度:64)
-
RC2,RC5,RC6
-
SM1,SM4
-
非对称加密算法
-
非对称加密算法
-
DH
-
RSA (能同时用于加密和数字签名的算法)
-
DSA (只用于签名)
-
散列算法
HASH算法的特点:
1.不可逆
2.随机输入,固定输出
3.雪崩效应,原始数据任意bit被改动,则改动后的数据HASH值和原始数据的HASH会不同
-
散列算法:把任意长度的输入变换成固定长度的输出。
-
常见散列算法
-
MD5(Message Digest Algorithm 5) (固定 128bit)
-
SHA(Secure Hash Algorithm) (固定 160bit,推荐使用)
-
SHA-1
-
SHA-2
-
-
SM3(Senior Middle 3)
-