使用轻量级 API 生成充气城堡 RSA 密钥对
令人惊讶的是,网络上关于使用Bouncy Castle的轻量级API的信息很少。环顾四周后,我能够整理出一个基本的例子:
RSAKeyPairGenerator generator = new RSAKeyPairGenerator();
generator.init(new RSAKeyGenerationParameters
(
new BigInteger("10001", 16),//publicExponent
SecureRandom.getInstance("SHA1PRNG"),//prng
1024,//strength
80//certainty
));
AsymmetricCipherKeyPair keyPair = generator.generateKeyPair();
我对RSA和幕后发生的数学有基本的了解,所以我明白了什么和是什么。我推测指的是一个共素数,从我收集到的东西来看,只要使用适当的填充,它就可以很小(如3)。但是,我不知道指的是什么(有些地方提到它可能指的是一个百分比,但我想确定)。的使用是不言自明的。RSAKeyGenerationParameters的文档完全没有价值(这并不奇怪)。我唯一的猜测是它与生成的密钥的准确性有关,但我再次想要确定。所以我的问题是 什么是适当的值 和 ?publicExponent
strength
publicExponent
phi(pq)
certainty
SecureRandom
certainty
publicExponent
附言:请不要回复“这取决于上下文 - 您希望信息有多安全”。除非另有说明,否则假定最高程度的安全性(即4096位RSA密钥或更高)是相当安全的...我也很感激那些提供使用Bouncy Castle轻量级API的好例子的来源链接(我对JCA实现或任何与之相关的示例都不感兴趣)。