密码学初级教程(三)公钥密码RSA
密码学家工具箱中的6个重要的工具:
- 对称密码
- 公钥密码
- 单向散列函数
- 消息认证码
- 数字签名
- 伪随机数生成器
公钥密码(非对称密码)
问题:
-
- 公钥认证问题
- 处理速度是对称密码的几百分之一
求离散对数非常困难
RSA是Ron Rivest/Adi Shamir/Leonard Adleman的姓氏首字母组成。
RSA可以被用于公钥密码和数字签名。
RSA加密:密文=明文EmodN(E和N为公钥)
RSA解密:明文=密文DmodN(D和N为私钥)
对RSA的破解:
暴力破解:暴力破解的难度会随着D的长度增加而变大,当D足够长时,就不可能在现实的时间内通过暴力破解找出D。
混合密码系统:用对称密码提高速度,用公钥密码保护会话密钥
混合密码系统的组成机制:
用对称密码加密消息
通过伪随机数生成器生成对称密码加密中使用的会话密钥
用公钥密码加密会话密钥
从混合密码系统外部赋予公钥密码加密时使用的密钥
- 单向散列函数能够辨别出“篡改”,但无法辨别出“伪装”。
- 用于认证的技术包括消息验证码和数字签名。
- 消息认证码(MAC,message authentication code)
- 是一种确认完整性并进行认证的技术。
- 消息认证码的输入包括任意长度的消息和一个发送者与接收者之间共享的密钥,它可以输出固定长度的数据。