1. 非对称算法特点
- 加密密钥和解密密钥不相同
- 密钥对中的第一个密钥可以公开(称为公开密钥)
- 根据公开密钥很难推算出私人密钥
2. 并非所以非对称加密算法都可以同事用于密钥交换和数字签名。数字签名和密钥交换对公开密钥算法的要求有一定区别:
- 密钥交换算法使用公开密钥进行加密,使用私人密钥进行解密;而数字签名算法则使用私人密钥进行加密,使用公开密钥进行解密。
- 密钥交换算法要求从加密密钥(公开密钥)很难推算出解密密钥(私人密钥);而数字签名算法则要求从解密密钥(公开密钥)很难推算出加密密钥(私人密钥)。
3. RSA加解密算法特点
- 加密特点:
a)输入数据不能超过RSA密钥的长度(根据不同的补齐方式能够加密的数据长度不一样)。
b)输出数据长度总是与RSA密钥长度相同。
对于量大的数据,一般需要预先进行数据分割。
- 解密特点:
a)输入的数据的长度总是跟密钥长度相同。
4. RSA签名、验签过程
使用摘要算法(SHA1,SHA2xx、MD5等)对签名原文进行计算,得到160位或128位摘要信息,然后再使用RSA算法进行加密从而完成该文件的数字签名过程。
验证时,使用同样的信息摘要算法对该文件进行运算得到信息摘要值,然后使用RSA算法(通常是公钥)进行解密得到签名方的信息摘要值,对比新计算的信息摘要值和解密得到的信息摘要值,如果一致,则签名验证成功。