1.对称加密算法:
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:
DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;
IDEA加密算法简介:http://www.donews.net/kunzhang/archive/2004/05/08/17297.aspx
2.常见的非对称加密算法如下:
RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全,
RSA的密钥需要不断增加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,
这对使用RSA的应用带来了很重的负担,因此需要一种新的算法来代替RSA。
ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:
-
抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。
-
计算量小,处理速度快。 ECC 总的速度比 RSA 、 DSA 要快得多。
-
存储空间占用小。 ECC 的密钥尺寸和系统参数与 RSA 、 DSA 相比要小得多,意味着它所占的存贮空间要小得多。
这对于加密算法在IC卡上的应用具有特别重要的意义。
-
带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时 ECC 带宽要求却低得多。 带宽要求低使 ECC 在无线网络领域具有广泛的应用前景。
ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。
3.散列算法:
单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:
l MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法。
l SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值;
SHA-1与MD5的比较
因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
l 对强行供给的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,而对SHA-1则是2160数量级的操作。这样,SHA-1对强行攻击有更大的强度。
l 对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。
l 速度:在相同的硬件上,SHA-1的运行速度比MD5慢。
4.除了OpenSSL,另外一个开源的密码学算法库Crypto++,
Crypto++ 的使用方法:http://www.zxbc.cn/html/cjjjc/0612495279783.html
5.深入了解PGP加密技术:http://netsecurity.51cto.com/art/200512/15057.htm
Pretty Good Privacy:http://en.wikipedia.org/wiki/OpenPGP#OpenPGP