【发布时间】:2018-08-06 23:57:11
【问题描述】:
我正在使用 RSA 加密 AES 密钥和其他一些信息。为了不受 padding-oracle-attack 的攻击,我用以下方式实例化我的 Cipher:
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
现在在 Oracle 文档(我正在使用 oracle-java)中给出了密钥长度:https://docs.oracle.com/javase/7/docs/api/javax/crypto/Cipher.html
对于RSA/ECB/OAEPWithSHA-256AndMGF1Padding,它声明 1024 和 2048 位。这是否意味着我不能或不应该使用密钥长度为 4096 的密码?以下是我生成密钥的方式:
KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
keygen.initialize(4096, SecureRandom.getInstanceStrong());
KeyPair keyPair = keygen.genKeyPair();
我可以将此密钥与RSA/ECB/OAEPWithSHA-256AndMGF1Padding 一起使用吗?
【问题讨论】:
-
它只是说 Java 保证支持 1024 和 2048 位密钥大小。它不禁止支持其他密钥大小。
-
好的谢谢!这是我所希望的,只是想确保
标签: java security cryptography rsa