生成数字证书时通过 1024 和 2048 之间的区别



与下面的构造函数代码有点混淆

2048

 RSAKeyPairGenerator gen = new RSAKeyPairGenerator();
 gen.init(new RSAKeyGenerationParameters(BigInteger.valueOf(3),
                                new SecureRandom(), 2048, 80));

1024

 RSAKeyPairGenerator gen = new RSAKeyPairGenerator();
 gen.init(new RSAKeyGenerationParameters(BigInteger.valueOf(3),
                                new SecureRandom(), 1024, 80));

这是RSAKeyGenerationParameters,来自BouncyCastle库生成证书。

我的问题如何通过传递10242048对公钥和私钥产生什么影响

RSAKeyGenerationParameters

第三个参数是

strength - 我们想要生成的密钥的大小(以位为单位(。

2048位RSA加密理论上比1024更难破解。但是,公共/私有对中的位数通常由您与之交互的系统定义。

  • "128/256位SSL和2048位CSR加密"实际上是什么意思?

非对称密钥通常比相同长度的对称密钥更容易破解。非对称密钥越长,从公钥确定私钥所需的计算能力就越强。因此,密钥越长,加密越强。

另请注意,使用 RSA 加密时,纯文本消息不能长于密钥。因此,如果使用 1024 位密钥,则最多只能加密 128 字节(减去少量开销(的邮件正文,或者 2048 位密钥只能加密 256 字节的消息正文。

因此,非对称密钥

越长,对称密钥或哈希值可以在内部传递的时间就越长。

生成更长的密钥对

也需要更长的时间(需要更多的计算能力(,但除非您动态创建密钥对,否则这通常不是问题。

最新更新