要点:
- 非对称密码是一种密码体制,其加密算法和解密算法使用不同的密钥,一个是公钥,一个是私钥,非对称密码也称为公钥密码
- 非对称密码用两个密钥中的一个和加密算法将明文加密成密文,再用另一个密钥和解密算法将密文恢复出明文
- 非对称密码可以用来保密或者认证都可以
- 非对称密码不建议加密大量数据,但是对小型消息如验证码的加密或者签名的加密更合适
- 应用最广泛的公钥密码体制是RSA,破解RSA的困难在于分解大合数的质因子困难
一、公钥密码体制的基本原理
1.对称密码体制存在的问题
- 加密能力和解密能力捆绑在一起
- 密钥更换,传递和交换需要可靠信道,密钥分发困难
- 如果有N个用户,每一对之间产生一对密钥,密钥管理十分困难
- 无法满足不相识用户之间的保密要求
- 不能实现数字签名
2.非对称密码体制的基本特点
- 加密能力和解密能力是分开的
- 密钥分发简单
- 需要保存的密钥大大减少,N个用户只需要保存N个密钥
- 可满足不相识人之间的保密通信
- 可以是实现数字签名
3.公钥密码体制
公钥算法依赖于一个加密密钥和一个与之不相关的解密密钥,算法有如下特点:
- 仅依据算法和加密密钥来确定解密密钥在计算上是不可行的
- 两个密钥的任何一个都可以用来加密,另一个用来解密
公钥密码体制的组成:
- 明文:算法的输入,可读信息或数据
- 加密算法:对明文进行各种转换
- 公钥和私钥:算法的输入分别用于加密和解密
- 密文:算法的输出,依赖于明文和密钥
- 解密算法:根据密钥和密文还原明文
4.公钥算法的主要步骤
- 每个用户都产生密钥,用来加密和解密消息
- 每个用户将公钥存于公开的寄存器或其他可访问的文件中,另一密钥私有,每个用户可以拥有若干其他用户的公钥
- 若Bob发消息给Alice,则要用Alice(解密方)的公钥进行加密,
- Alice收到消息后,用自己的私钥进行解密
- 需要认证时,发送方用自己的私钥进行认证,接收方用对方的公钥就行验证
- 加密和认证可以同时结合起来,实现保密性和认证
一般情况下都是先签名再加密,这样效率比较高
公钥加密还可以用于密钥交换
公钥加密基于单线陷阱函数
5.公钥密码体制的应用
6.对公钥系统密码编码的要求
- 产生一对密钥在计算上是容易的
- 不难计算C=E(Ke,P)和P=D(Kd,C)
- 已知Ke(公钥)求Kd(私钥)不可行
- 不知道Kd,已知Ke,E,D,和C,计算P也不可行
- 对明文P,E(Ke,P)有定义,且D(Kd,E(Ke,P)) = P
-
对密文c, D(kd, C)有定义,且E(ke, D(kd, C))=C
-
加密变换和解密变换可以互相换顺序
7.公钥密码的分析
- 公钥密码易受穷举攻击,解决方法是使用长密钥
- 目前不能证明公钥和私钥的推导是完全不可行的,因此所有的公钥算法就都值得怀疑
- 穷举消息攻击,攻击者用公钥对可能的消息加密并于密文匹配&#