Java中RSA密钥生成和probablePrime素数生成的问题

lichen_net 2006-08-08 01:51:39
Java中用BigInteger.probablePrime生成2个1024位素数,需要大约1-2秒。
但是用
KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
生成1024位公钥私钥对,需要大约400毫秒,为什么时间相差这么多?!
...全文
565 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
david_turing 2006-08-28
  • 打赏
  • 举报
回复
1024位公钥私钥对的生成使用了一个几率算法,它是通过一个控制参数,按照某个百分比,来控制RSA的p和q是素数的几率。也就是,我们RSA生成的不是绝对的素数
下面是我曾经生成的两个素数:
yes2! get p from private file: 31615278560310517224191487564522759656181954145997206274769356464583733664732821111365584118676960240766619142806693
yes2! get q from private file: 27159291810386103311544843797777708165587275427629110658759469792393446865976256377580615665169117874806611045875349
他们按照一种素数比率生成,不是绝对的,而且我通过控制certainty参数来控制,如下:

RSAKeyGenerationParameters rsaparam=
new RSAKeyGenerationParameters(BigInteger.valueOf(0x3),
new SecureRandom(), this.keylength, this.certainty);
hbwhwang 2006-08-09
  • 打赏
  • 举报
回复
可能算法不一样吧
lichen_net 2006-08-09
  • 打赏
  • 举报
回复
-_-//
算法肯定不一样啊,我就是想知道什么地方不一样,
怎么能省这么多时间。

50,499

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧