RSA key长度与加解密时间(耗时)关系

这两天在用openssl库,讨论到RSA、DES效率问题。结论是显而易见的,RSA肯定慢很多。但是慢多少,key长度与加解密所需时间又有怎样的关系呢?加密一般要多长时间呢?相信很多人和我一样困惑,就是rsa key长度与加密、解密需要时间有没有一个大概的关系,而且能在日常编程中能指导应用。

用baidu翻烂了,也没有找到想要的结果。用google中文搜索了下,还是没有想要的结果。那就转换下,用英文搜索”rsa encryption time”,终于得到想要的结果(看来国内的基础研究真的和国外差距很大)。挑着看了前面几篇,总结如下:

1. 关注rsa的加密时间不如关注rsa解密时间,原因如下:

a. 解密时间比加密时间更耗时;

b. 服务器端解密用得最多;

2.国外研究的一个结论:rsa key长度变2倍(double),相应的解密时间会增加6-7倍。

3. 这里给出rsa key长度和解密时间的大概关系:2G 主频奔腾CPU,1024的key长度解密只需25ms(其实挺快哈,应用上应该可以接受的),2048不到200ms,但是4096时超过1s。显然,对比较老的机器来说,这是不可接受的。

4.推荐key长度对应的生命周期如下:

1024 2010年后不要再用;

2048 2030年后不要再用;

3072 2031年后仍可使用…  8)

最后列出所查看的几篇重点英文文章链接,请参考:

1. http://www.javamex.com/tutorials/cryptography/rsa_key_length.shtml

2.http://security.stackexchange.com/questions/1833/encryption-decryption-time

3.http://www.digicert.com/TimeTravel/math.htm

如何用openssl 生成RSA双密匙;签名证书;加密文件邮件

具体看转载:http://blog.csdn.net/jiangsq12345/article/details/6066275

评价:教授写的很好,但是翻译很烂。另外对大文件生成摘要发送给对方这里翻译得不清晰:是发送大文件生成的密码和摘要的签名两个文件?

很实用的另外一篇文章:

利用openssl进行RSA加密解密

转自:http://www.cnblogs.com/aLittleBitCool/archive/2011/09/22/2185418.html

对于 Openssl 软件包的介绍 (转载自百度百科)

Openssl

众多的密码算法、公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些算法和标准的想法。果真如此,在对你表示敬佩的同时,还是忍 不住提醒你:这是一个令人望而生畏的过程。这个工作不再是简单的读懂几本密码学专著和协议文档那么简单,而是要理解所有这些算法、标准和协议文档的每一个 细节,并用你可能很熟悉的C语言字符一个一个去实现这些定义和过程。我们不知道你将需要多少时间来完成这项有趣而可怕的工作,但肯定不是一年两年的问题。 继续阅读

tinyxml和minixml,两个XML库有何不同,看了就知道了

XML库方面,我知道的有expatlibxml2tinyxmlminixml

听说expat应用很广,但我没有用过……libxml2这个东东给我的印象是拥肿。

我今天推荐后两者,一个是基于C++编写的tinyxml库,另一个是基于C编写的minixml库。

我自己最常用的是tinyxml,此库用C++进行封象,适度的面向对象,命名很人性化,是一个很不错的选择。但这个库的Makefile没有带编译为动态库的方法,要编译为动态库,只要把Makefile相关行改为:
DEBUG := NO
TINYXML_USE_STL := NO # 个人认为没必要加入STL的支持
RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-format -O3 -fPIC
LIBS := -shared -s
OUTPUT := libtinyxml.so
SRCS行去掉xmltest.cpp
然后保存,make即可生成libtinyxml.so,以后只要include自带那两个h头文件即可使用tinyxml库了

另一个推荐的是minixml库,这个库的出现是因为很多时候没必要用libxml2这个拥肿的东西(听说有10万行, minixml才三千多行)。
这个库我暂时还没用过,有时间会试用一下。这个为自带configure,配置、编译都非常方便,而且是纯C的,所以对各种应该都比较合适,CUPS就是使用minixml库的。

两个库都是很轻量级的,tinyxml编译成动态库后不到78K(O3优化),minixml为44K(Os优化),而且都可以用于windows,因为都自带VC工程文件,可以选择合自己口味的,have fun~

转自:http://imlcl.com/?tag=minixml