2011-12-21 20 views
0

javaでRSAの公開鍵を生成する際に問題があります。私はKeyPairGeneratorを使用し、私は公開鍵、秘密鍵、p、qと係数を得る。それは結構です。しかし毎回公開鍵は65537です。毎回異なる公開鍵を生成する可能性はありますか?Java RSA異なる公開鍵を生成する方法は?

コード:RSA公開鍵ペアであるので

KeyPair keys; 
KeyPairGenerator generator; 

try { 
    generator = KeyPairGenerator.getInstance("RSA"); 
    generator.initialize(1024); 
    keys = generator.genKeyPair(); 
} catch (NoSuchAlgorithmException ex) {} 
+1

あなたのコードを教えてください。あなたは何かを間違えなければなりません。 –

答えて

1

公開鍵は、単に65537ことができない(N、E)nは係数であり、Eは指数です。通常、指数は65537に等しく、それは変化する係数です。

したがって、毎回異なるキーを生成していることを確認するには、モジュラスが変化していることを確認してください。

+0

モジュラス、p、qと秘密鍵は毎回異なります – Chris

+0

モジュラスが毎回異なる場合、毎回公開鍵も異なるでしょう。指数eは、通常、65537に選択されています。ウィキペディアの記事の「キー生成」の手順4を参照してください。http://en.wikipedia.org/wiki/RSA_%28algorithm%29 –

+0

私はRSAPublicKey public =(RSAPublicKey) keys.getPublic();公開鍵を取得するには私は.getPublicExponent()を使用しています。私はそれを間違っているのですか?秘密鍵と同じです。私はgetPrivateExponent()を使用しています – Chris

2

値65537はcommonly used exponent of RSA keysです。この値が固定されており、セキュリティ上の意味がないことは珍しいことではありません。

知られている多くの弱い指数がありますが、この値はそれに属していません。

関連する問題