Java内置库中的java.security.* 和java.crypto.*这两个包中有很多类可以用来实现RSA算法,主要有如下两个缺陷:
① 速度低下。一个简单的RSA加密和解密的程序在一个拥有2.4G Hz的CPU和512M内存的PC机上需要消耗700ms的时间。
② 与其他的Java程序兼容性不高
参考两个paper:
① Research and Implementation of RSA Algorithm in Java
② Research on Fast Implementation of RSA with Java
因而要解决Java实现RSA的效率问题,就要自己去实现所有的类和方法。
但是一个很重要的问题就是,不能为了效率而忽视掉安全问题。要知道有哪些关于RSA的攻击方式,就要结合RSA的工作原理(后边会针对这个写一个blog)。
当下一些比较流行的针对RSA的攻击方式可以参考:
http://book.51cto.com/art/200901/105942.htm
或者《密码学与网络安全》,其中有详细的介绍。
在我的毕业设计中会针对Java实现RSA的效率和可靠性上进行设计,预计在4月中下旬完成。
(后边会写相应的blog)