非对称加密
算法
- RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
- DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
- ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
- RC4
ECC和RSA比较
ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:
- 抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。
- 计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。
- 存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。
- 带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。
特点
- 每个用户拥用一对密钥加密:公钥和私钥。
- 公钥加密,私钥解密;私钥加密,公钥解密。
- 公钥传输的过程不安全,易被窃取和替换。
- 由于公钥使用的密钥长度非常长,所以公钥加密速度非常慢,一般不使用其去加密。
- 某一个用户用其私钥加密,其他用户用其公钥解密,实现数字签名的作用。
- 公钥加密的另一个作用是实现密钥交换。
- 加密和签名算法:RSA、ELGamal。
- 公钥签名算法:DSA。
- 加密工具:gpg、openssl
总结
- 由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。
- 对称加密算法不能实现签名,因此签名只能非对称算法。
- 由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
- 在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。