RSAES
PKCS #1 RSAの 暗号化スキーム
RFC 8017 7章 Encryption Schemes
https://tex2e.github.io/rfc-translater/html/rfc8017.html
単純なRSA暗号(RSAEP/RSADP)に攻撃手法が出てきたので作られた実用的に使える方式?
メッセージを暗号化、復号することができる
ブロック単位などで分割はできない様子
主に鍵交換用
長文には使えないのでファイル、メールなどの暗号の共通鍵格納用として使われることがある
リアルタイムな通信の場合は鍵はその場で生成する方式が主流のためTLS1.3などではRSAは暗号としては使われない、ということで消えていくかもしれない
table:方式
方式 中身 メッセージ最大 セキュリティ
RSAES-OAEP EME-OAEP 鍵長-ハッシュ長*2-2
RSAES-PKCS1-v1_5 (旧式) EME-PKCS1-v1_5 短い
RSAEP/RSADP (参考) RSA 鍵長短い 弱
RSAESではEMEでEM を生成し、RSAEPで暗号化する
code:encrypt
encrypt(m) {
em = EME.encode(m);
return RSA.rsaep(k, em);
}
RSADPでEMを復号、EMEで元に戻す
code:decrypt
decrypt(c) {
em = RSA.rsadp(k, c);
return EME.decode(em);
}
RSAES-OAEPではMGFを利用する(MGF1のみ?)
https://github.com/okomeki/SoftLibCrypto/blob/master/src/main/java/net/siisise/security/block/RSAES.java
https://github.com/okomeki/SoftLibCrypto/blob/master/src/main/java/net/siisise/security/block/RSAES_OAEP.java
https://github.com/okomeki/SoftLibCrypto/blob/master/src/main/java/net/siisise/security/block/RSAES_PKCS1_v1_5.java
https://github.com/okomeki/SoftLibCrypto/blob/master/src/main/java/net/siisise/security/padding/EME.java
https://github.com/okomeki/SoftLibCrypto/blob/master/src/main/java/net/siisise/security/padding/EME_OAEP.java
https://github.com/okomeki/SoftLibCrypto/blob/master/src/main/java/net/siisise/security/padding/EME_PKCS1_v1_5.java
X.509
RFC 3560 Use of the RSAES-OAEP Key Transport Algorithm in the Cryptographic Message Syntax (CMS)
https://tex2e.github.io/rfc-translater/html/rfc3560.html
OID など
RFC 5756 RSAES-OAEP と RSASSA-PSS アルゴリズムパラメータの更新
https://tex2e.github.io/rfc-translater/html/rfc5756.html