如何加密解密
对称加密(Symmetric Cryptography)
常见对称加密
DES
是一种将 明文加密成 密文的对称加密算法,密钥长度是56bit
规格上来说,密钥长度是64bit ,但每隔7bit 会设置一个用于错误检查的bit ,因此密钥长度实质上是56bit
由于 每次只能加密 64bit的数据,遇到比较大的数据,需要对 DES加密进行迭代(反复)
目前已经可以在短时间内被破解,所以不建议使用
每次给64位数据加密,密钥56位+8位校验位,效率低,可破解
3DES
DES3次,3把密钥,加密-解密-加密过程
AES
取代DES的对称加密算法
密钥配送问题
对称加密时,加密过的消息发给Bob
Bob需要密钥才能完成解密
发送密钥过程中,密钥可能会被窃取
如何解决密钥配送问题
非对称加密
公钥,私钥
统称密钥对
解决密钥配送问题
消息接收者生成密钥对
消息发送者用公钥加密数据,发送给接收者,接收者用私钥解密
RSA
最广泛的非对称加密RSA
混合密码系统
对称加密缺点
不能解决密钥配送问题
非对称加密缺点
加密解密速度慢
混合密码系统:将对称加密和非对称加密优势结合的方法
解决了非对称加密速度慢的问题
通过非对称加密解决了对称加密的密钥配送问题
网络上密码通信所用的SSL/TLS运用了混合密码系统
混合密码-加密解密过程
发送过程
A生成密钥对
A把公钥给B
B生成一个会话密钥
B用会话密钥加密信息
会话密钥用公钥加密
B把加密信息和用公钥加密过的会话密钥一起发给A
接收过程
A用私钥解密传过来的加密会话密钥,获取会话密钥
用会话密钥解密加密过的信息,获得A的发送信息
数字签名
确保消息真实性,识别篡改,伪装,否认
生成签名
消息发送者用自己的私钥加密信息S,和信息一起传给接收者
验证签名
接收者用发送者的公钥解密S,和信息对比,一致就是真实的
证书 Certificate
公钥证书
姓名,邮箱,公钥
认证机构(Certificate Authority,CA)施加数字签名
流程
A生成密钥对
A把公钥在CA注册,CA用自己的私钥签名,生成A的证书,包括A的姓名,公钥
B从CA获取A的证书,用CA的公钥解密,然后看是否对的上,对上就获取了A的公钥
B用A的公钥加密消息发送给A