加密算法和协议
-
对称加密:
-
非对称加密
-
单向加密:哈希(hash)加密
-
认证协议
1. 对称加密:
加密和解密:
- 加密和解密使用的是同一个密钥
加密方式:
- 是通过将原始数据分割成若干块来逐个进行加密
特点:
- 效率高、速度快
缺点:
- 加密解密使用的密钥相同,需要提前把密钥发给别人且不能确定数据来自于发送方。
1.1 常见的对称加密算法:
-
DES:56位加密,把数据切成56Bit一块来进行加密(3DES:DES的方式加密三次)
-
AES:高级加密标准,密钥长度是可变的。 (128, 192, 256bits)
-
IDEA,RC6,CAST5
2. 非对称加密算法:
加密和解密:
- 密钥成对出现,加密和解密用的密钥不相同,并且通信双方都需要各自的密钥和私钥
特点:
- 公钥加密、私钥解密,可以确认数据的来源
公钥:public key,公开给所有人,
私钥:secret key,private key 私有的,必须保证其私密性,用于自已加密签名
数字签名概念:
- 采用私钥来进行加密、使用公钥来进行解密。(其他人的到的数据只能使用他的公钥来解密,这样就能确定数据的来源性)
公钥加密私钥解密和私钥加密公钥解密的区别:
-
公钥加密、私钥解密:加密的数据只能自己解开。能保证数据的安全
-
私钥加密、公钥解密:能确定数据的来源性。实现数字签名(缺点:复杂程度高)
2.1 常见的非对称加密常见算法:
-
RSA:三个发明人首字母简称。加密和数字签名都可以实现
-
DSA(Digital Signature Algorithm):数字签名算法,只能做来源确认,不能做数据加密。
-
ECC:椭圆曲线密码编码学,比RSA加密算法使用更小的密钥,提供相当的或更高等级的安全
堆成加密和非对称加密的使用场景:
-
对称加密算法适合加密大的数据
-
非对称加密算法合适加密小的数据
3. 哈希(hash)算法(散列算法)
是一种单向的加密算法,是不可逆的。
作用:
- 用来确认数据的完整性。因为数据发生改变,摘要也会随之发生改变。
摘要(digest)的概念:
- 哈希算法加密出来的结果就叫做摘要。
摘要的长度和内容:
- 长度固定,内容不同。
摘要的特点:
- 通过摘要无法推出原有数据的内容
3.1 摘要的使用场景
用来检查数据是否被篡改。因为数据不变,摘要也不会发生改变。
摘要类似于人的指纹,不同的人(数据)有不同的指纹(摘要),知道了指纹(摘要),也不知道是谁(不能通过摘要推出原数据)
3.2 常用的哈希算法
-
md5: 摘要是128bits字符 已经被破解了
-
sha1: 摘要是160bits字符 已经被破解了
-
sha224、sha256、sha384、sha512
3.3 加盐的概念:
加盐就是在进行哈希加密的时候加上随机字符串。
例如:
- 两个账号的密码一样,但是得到的哈希摘要不一样,这是因为为了保证信息的安全,在加密密码之前加盐(随机字符串)处理,然后再进行加密。这样就保证了同样的密码,生成的哈希摘要不一样的原因。
4. 两类加密算法的组合使用
4.1 通过对称和非对称的组合使用实现数据加密
- 采用对称和非对称密钥的组合使用。(无法验证数据完整性和来源)
张三先使用对称加密来加密数据文件,
然后使用李四的公钥来加密这个对称加密的密钥文件。
最后把这两个文件发给李四。
李四收到这两个文件后,先使用自己的私钥解密加密的密钥文件得到对称加密的密钥,
最后使用这个密钥来解密数据。
4.2 通过数字签名实现数据完整性验证
不加密数据,可以保证数据来源的可靠性、数据的完整性和一致性
张三先使用哈希算法得到一个摘要,摘要放在数据的后面,
然后使用私钥来加密这个摘要信息(数据没加密)。
然后把数据和数字签名发给李四。
李四通过张三的公钥来解密得到加密的摘要信息,(私钥加密、公钥解密)
然后再对数据使用相同的哈希算法来进行加密。
最后对比两个摘要是不是一样。一样就确定了数据是张三发来的。
加密和签名的实现
即实现数据加密,又可以保证数据来源的可靠性、数据的完整性和一致性
方法一:使用这种方法实现,如果数据很大的话。效率就会很低
张三加密过程:
先把数据使用哈希算法得到一个摘要,
然后使用私钥进行加密摘要得到签名。把数据放在这个签名的后面。
然后再使用接受者的公钥将他们进行加密。
李四解密过程:
首先使用自己的私钥进行解开得到里面的签名和数据。
然后使用同样的哈希算法对数据进行加密,并且使用张三的公钥将张三发送过来的摘要解密
最后对比两个摘要是都相同。
方法二:三种加密算法的综合使用
张三先使用哈希算法将数据进行加密,
将得到的摘要信息附加到数据后面,
再使用自己的私钥加密摘要信息的到数字签名。
然后使用对称加密的方式将他们全部加密,
再使用李四的公钥来加密这个对称密钥文件。
李四得到数据以后,首先通过自己私钥解密得到对称密钥,
然后再进行对称解密得到数据和张三的数字签名。
再通过张三的公钥来解密这个签名得到张三生成的摘要信息。
再通过同样的哈希算法生成一个摘要。
对比两个摘要是否一样。
标签:加密,摘要,解密,对称,非对称,私钥,数据,加密算法
From: https://www.cnblogs.com/heyongshen/p/16789191.html