(3)对称与非对称算法的比较
以上综述了两种加密方法的原理,总体来说主要有下面几个方面的不同:
从耗费资源的角度出发,公钥密码算法只需要较少的资源就可以实现目的,在密钥的分配上,两者之间相差一个指数级别(一个是n一个是n2)。所以私钥密码算法不适应广域网的使用,更重要的一点是它不支持数字签名。
从安全的角度出发,由于公钥密码算法基于未解决的数学难题,在破解上几乎不可能。对于私钥密码算法,到了AES虽说从理论来说是不可能破解的,但是计算机的性能发展尤其迅速,计算能力日益提高,很难确保密码的安全性。由此,公钥更占据优势。
从速度的角度出发来看,私钥算法速度已经达到了每秒数兆或数十兆比特。是公钥算法速度的100倍,如果用硬件来实现的话这个比值将扩大到1000倍。
3 加密算法的选择
由于非对称加密算法的速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,理应采用对称加密算法,提高加解密速度。对称加密算法不能实现签名,因此签名只能非对称算法。由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着整套加密系统的安全性,因此当数据量小时,我们可以考虑采用非对称加密算法。
因此,应该采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
密钥的长度选取也有一定的讲究,密钥越长速度越慢,因此应该根据数据的安全级别来判断。一般的,RSA密钥建议采用1024位,AES采用128位即可。
参考文献
[1] 《数据库原理及应用》 苗雪兰,刘瑞新,王怀峰编著 机械工业出版社
[2] 张跃廷、王小科. C#程序开发范例宝典.北京:人民邮电出版社. 2007.9
[3] 朱少明.软件测试方法和技术.清华大学出版社2005-7-1:1-425
[4] 《深入体验C#项目开发》 扶松柏 著 清华大学出版社
[5] 《C# 3.0 从基础到项目实战》 卓文华讯 李海涛 史爱松 孙更新 编著 化学工业出版社
[6] 《软件工程》 张海藩编著 人民邮电出版社
[7] 《SQL SERVER 实用教程》 郑阿奇,刘启芬,顾韵华编著 电子工业出版社
[8] 唐政,房大伟. C#项目开发全程实录. 北京:清华大学出版社. 2008.5
[9] 《Effective C#(英文版)》 (美)瓦格纳 机械工业出版社
[10] 《SQL Server 2008 Internals》 Kalen Delaney MS Press
[11] Anthony Jones, Jim Ohlund. Network Programming for Microsoft Windows (Second Edition).Microsoft Press. 2002.11
[12] James HuddlestonRanga RaghuramSyed Fahad Gilani. Beginning C# 2005 Databases: From Novice to Professional.Apress出版社2006-12-166—168
[13] Jay Glynn.Professional C# 2008.Wrox出版社2008-3-1:36—212
[14] Andrew Troelsen.C# and the .NET Platform.Apress出版社,2001-6-6:76—168
[15] John Sharp.Microsoft Visual C# 2008 Step by Step.Microsoft Press出版社,2008-3-12 :155—236
[16] Andrew Troelsen.Pro C# with .NET 3.0, Special Edition.Apr ess 出版社,2007-1-16:112—186 密码学加密算法文献综述和参考文献(2):http://www.youerw.com/wenxian/lunwen_11406.html