对称加密:加密和解密密钥是相同的,效率高,不适合在网上传输,密码维护管理麻烦容易被截获
非对称加密:加密和解密密钥是不同的,效率低,生成随机数通过函数公钥和私钥两部分,公钥和私钥无法互推
我们可以结合使用
非对称加密
- 随机选取两个不同的大素数p,q
需要
:素数随机生成 ,素数判定
需要用到 快速求模幂,当然还有其他方法作为辅助 - 公钥是(N,R)
N=pq
R是一个2n位长的数,且与(p-1)(q-1)互素,通常为了快速加密,取3 - 密钥是(N,D)
D是R mod (p-1)(q-1)操作的逆元,
需要
:求逆元,扩展Euclid算法求得
结合使用
对于发送方:假如使用对称加密加密明文(abc…)变成xyz…,然后通过非对称加密的私钥 加密 对称加密的密钥 成为a
对于接收方:得到a和xyz…,首先通过公钥解密a,然后把用解密结果去解密xyz…得到abc…
这样的好处是,假如直接选职责非对称加密明文的大小太大,会使传输速率变得很慢
数字签名
发送方:公司A用单向散列函数将合同变成128位摘要,然后用私钥把他加密
接收方:可以拿到私钥把加密后,公钥,还有合同明文,它通过把合同,用单向散列函数将合同变成128位摘要,然后用私钥把他公钥解密出来得和发送发私钥加密得一直吗?就可以得到对方有没有修改
数字签名:防止抵赖,能检查签名之后是否被更改
这里明文没有加密,只是没有改