对称密钥(AES,3DES等)可以通过指定的多样化输入来多样化。通常以这种方式完成:

DivKey = Enc[PlainText = Key, IV = DivInput, K = Key]


但是,这是基于以下事实:每个16字节阵列都是有效的AES密钥。

有什么办法可以对整个RSA密钥对进行类似的处理?我想为我的每个“客户端”提供一个不同的RSA私钥,但是我想仅保留一个RSA公钥来验证其签名。如果有针对整个RSA密钥对的多样化算法,我可以给我的客户一个“多样化”的私钥,并保留原始的公钥来验证其所有签名。这对我很重要,因为我需要将公钥存储在持久性内存非常有限的设备中。

有这样的算法吗?如果是,是否有任何Java库实现它?

显然,这样的多元化算法不存在,我真的不知道。

如果您认为此问题应移至cryptoexchange,请这样做。

最佳答案

RSA很难产生这种情况。公钥不能与私钥分开创建。私钥必须从另一个私钥生成,但是主私钥材料和生成的私钥材料之间没有明确的数学联系。

并非是必需的。您所要做的只是在客户端上生成一个密钥对。然后将证书请求从客户端发送到服务器。服务器将返回由受信任证书的私钥签名的证书。现在,如果客户端要连接,则发送此证书。服务器将验证它是否已由可信证书签名。之后,它具有客户端的可信公钥。

换句话说,请阅读基于X509的PKI,以了解为什么不需要这种密钥派生方法。

09-27 03:02
查看更多