RSAPublicKey
モジュラスと公開指数から実装を作成する例を次に示します。
KeyFactory factory rsa = KeyFactory.getInstance("RSA");
BigInteger n = ... ; /* modulus */
BigInteger e = ... ; /* public exponent */
RSAPublicKeySpec spec = new RSAPublicKeySpec(n, e);
RSAPublicKey pub = (RSAPublicKey) factory.generatePublic(spec);
Cipher enc = Cipher.getInstance("RSA");
enc.init(Cipher.WRAP_MODE, pub);
byte[] encryptedContentKey = enc.wrap(secret);
RSA キー ペアは秘密キーと公開キーであり、それぞれがオブジェクト形式の複数の数値で構成されBigInteger
ます。ペアの各キーは同じ「モジュラス」を共有します。公開鍵には「公開指数」があり、秘密鍵には「秘密指数」があります。計算効率のために、秘密鍵は通常、追加の数値を含む「中国剰余定理形式」で格納されます。
暗号化する場合は、 のメソッドにaPublicKey
を渡す必要があります。init()
Cipher
復号化する場合は、 のメソッドにaPrivateKey
を渡す必要があります。init()
Cipher
(一部のプロバイダーでは、Cipher
署名操作を実行するために a を使用し、キーを反転するときに正しいパディングを使用できますが、Signature
クラスが意図をより明確に表現する場合、これは推奨されないか、または必要ありません。)