第五讲 公钥密码算法
公钥密码与对称密码的区别
- 对称密码是基于置换和扩散,非对称密码是基于数学难题
- 对称密码只使用一个密钥,公钥算法使用两个独立的密钥
公钥密码能够解决对称密码的什么难题
- 密钥分配问题
- 数字签名问题
公钥密码与对称密码的安全性比较
- 不能说公钥密码比对称密码更安全
- 公钥密码并不可以取代对称密码
- 公钥密码实现密钥分配并不比对称密码容易
公钥密码和对称密码的作用
- 公钥密码体制的应用
- 对称密码如上章所提到的,可以用于保护密文的机密性和完整性。
公钥密码和对称密码的密钥分配方法
- 公钥密码:自己持有私钥,别人持有公钥。
- 对称密码:收发双方必须共享密钥
ElGamal算法
- 安全性依赖于离散对数难题,既可用于数字签名,又可用于加密。
- 描述:
- 签名:
k必须保密,且每次不能相同。
- 加密:
加解密举例:
※RSA算法
- RSA算法是一种分组密码算法。
- 算法描述:
更详细的描述可以参考以前的博文:深入浅出地讲解RSA密码
RSA算法的攻击方法
- 强力攻击(穷举法):尝试所有可能的私有密钥
- 计时攻击
- 选择密文攻击
- 公共模数攻击
- 低加密指数攻击
- 低解密指数攻击
- 加密和签名的攻击
对RSA的选择密文攻击
即可以利用窃听得到的密文构造文件,再继续发给对方骗取签名,从而破解得到明文。
对RSA的公共模数攻击
即已知对相同的明文使用相同模数加密得到的两个密文,即使两对公私钥不相同也可以恢复出明文。