由于要写一个客户端与服务器端通讯的程序,所以开始关注加解密一块了。当然不是研究因为已经有很多成熟的解决方案和算法了。只是之前知道而以,现在需要更加深入的了解一下。以下介绍纯属网上收集的资料整理及个人的理解,可能有些地方不准确,望指证。
目前主流的加解密技术主要有两大类:一个是对称,一个是非对称。简单的讲对称就是交换消息的双方使用相同的密钥,比如一个固定位数的字符串。反之,非对称已经交换消息的双方使用不同的密钥,也就是我们常见的在在非对称加解密算法中有公钥和私钥。
对称加解密算法主要有:DES,3DES,AES
非对称加解密算法主要有:RSA
以下是这几种算法的简要介绍
DES算法为密码体制中的对称密码体制,是1972年美国IBM公司研制的对称密码体制加密算法。
3DES(即Triple DES)是DES向AES过渡的加密算法,它使用3条64位的密钥对数据进行三次加密。是DES的一个更安全的变形。
AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一
XML 加密为需要结构化数据安全交换的应用程序提供了一种端到端安全性,可以使用对称或非对称算法为XML进行加解密。XML 和安全性已集成到 W3C XML 加密工作草案中。
Ok,以上的技术介绍完了,下面就来下看我们的测试数据吧。
测试环境
硬件:Thinkpad x200, Intel P8600 2.4GHz, 6GB RAM,500GB(7200RPM)
软件:Win 7 企业版 x64,Visual Studio 2010
开发语言:.NET(C# 2.0)
测试说明
循环执行1000次,以对使用不同的算法和密钥长度对一个字符串: cbcye.com 进行加、解密。
测试结果
加解密技术处理时间对比 | |
技术 | 1000次运算处理时间 (单位:毫秒) |
XML RSA加解密 | 22114.4589 |
AES(128位) | 24.0014 |
AES(256位) | 30.0017 |
DES(56位) | 480.0275 |
RSA | 22723.2911 |
好了,以上就是初步的测试结果,供大家参考吧。本程序源码