1

署名アルゴリズムとして使用する場合MD5WithRSAEncryption、対応するランダムアルゴリズムは何ですか?
試しMD5PRNGましたが、次のようになりました。

java.security.NoSuchAlgorithmException:SecureRandomMD5PRNG実装が見つかりません

ここで初期化するために使用される適切なランダムアルゴリズムは何 KeyPairGeneratorですか?私たちが使うとき
のようにSHA1PRNGSHA256WithRSAEncryption

つまり、SHA256WithRSAEncryptionは、でkey pair algorithmあり、はキーペアアルゴリズムで使用されます。例 (クラスはどこにありますか) それらはどういうわけか適切なペアリングに依存していますか?つまり、SHA1PRNGでMD5WithRSAEncryptionを使用できますか?SHA1PRNGrandom generatorkeyPairGenerator.initialize(keySize, secureRandom);
keyPairGeneratorKeyPairGenerator

4

2 に答える 2

3

決定論的ランダムビットジェネレーター(DRBG)の基礎となるハッシュアルゴリズムは、存在する場合は重要ではありません。

DRBGの出力は統計的にランダムです。出力を調べてビットのソースについて何かを判断できた場合、暗号化の使用には適していません。

ちなみに、RSA-PSS方式を使用する場合、RSA署名アルゴリズムはRNGを使用します。古いRSA署名は決定論的です(これは弱点です)。

重要なの、アルゴリズムの有効な強さです。たとえば、3072ビットのRSA署名鍵でSHA-1を使用することは望ましくありません。そのキーを使用する暗号化アルゴリズムほど強力ではないハッシュ。DRBGは、その強度によっても分類できます。DRBGのセキュリティ強度は、内部状態が与えられずに出力を予測するために必要な計算量を示します。

優れたハッシュベースのDRBGのセキュリティ強度は、基礎となるハッシュ関数のセキュリティ強度と同じです。これを確認するには、NIST SP 800‑57パート1、表3を参照してください。強力なセキュリティを確保するには、112ビットが最小で、128ビット以上が推奨されます。つまり、SHA-224またはSHA-256に基づくDRBGを、それぞれ2048ビットまたは3072ビットのRSAキーとともに使用することを意味します。

于 2012-06-29T07:16:41.027 に答える
2

SHA1PRNG の唯一の問題は、キースペースが何らかの理由で 20 バイトに制限されていることです。事実上無制限の量のテキストに対してハッシュを実行できるため、これはまったく不要です。このジェネレーターのキーサイズに制限がある理由は明らかではありません。幸いなことに、ソース コードをコピーしてその制限を取り除くのは簡単です。悪いニュースは、標準の実装と互換性がないことです。

于 2013-09-23T16:06:19.923 に答える