PKCS11 メカニズム (CKM_RSA_PKCS および CKM_RSA_X_509) を使用して関数を実装しています。どちらも Botan C++ ライブラリに実装されていることは知っていますが、Java で同等のものを見つける必要があります。2番目の問題は、両者の違いは何ですか?
1549 次
1 に答える
4
CKM_RSA_PKCS
RSA暗号化およびデジタル署名に関するPKCS#1 v1.5標準(RFC3447を参照)を指します。Java JCEでは、通常、RSAのデフォルトの選択です。
- デジタル署名の場合は、「MD5WithRSA」、「SHA1WithRSA」などを
Signature.getInstance()
- 暗号化の場合は、「RSA / None/PKCS1Padding」をに渡し
Cipher.getInstance()
ます。
CKM_RSA_X_509
教科書(または生の)RSAアルゴリズム、つまり、パディングが定義されていないアルゴリズムを指します。この場合、「RSA / None/NoPadding」をに渡すだけCipher.getInstance()
です。署名は復号化で実行でき、検証は暗号化で実行できます(比較が続きます)。
ただし、特定のユースケースを念頭に置いていない限り、生のRSAを実装して使用することは避けます。PKCS#1v1.5署名はより安全です。ただし、暗号化については、どちらも安全ではないため、実際にはどちらも使用することはお勧めしません。CKM_RSA_PKCS_OAEP
PKCS#1 OAEP( );のみに依存することをお勧めします。そのためには、「RSA / None/OAEPWithSHA1AndMGF1Padding」をに渡しCipher.getInstance()
ます。
于 2013-02-22T18:14:50.743 に答える