为什么.key文件包含P,Q,DP,DQ

时间:2014-08-22 12:23:20

标签: encryption rsa digital-signature

通过加载预先创建的包含RSA私钥的.key文件,我注意到它包含以下数字:

Modulus     (private modulus)
Exponent    (private exponent)
P           (prime exponent)
Q           (prime exponent)
DP
DQ
InverseQ

我正在保存密钥文件,存储空间非常小(便携式)。我虽然只保存模数和指数。我知道P,Q和E是创建模数和指数所必需的,但是:

问题:

当PrivateModulus和PrivateExponent需要签名解密消息时,将所有这些数据保存到.key文件的目的是什么?

1 个答案:

答案 0 :(得分:2)

嗯,您需要公钥 ModulusExponent进行加密,私钥 Modulus和{{1用于解密和签名。

为了安全起见,可能只是添加了{p> DP,因为没有有效的方法可以从其他给定的值重建它们。因此,如果您的Q被破坏,您可以重新构建它,或者如果可能需要特殊的实现来执行某些数学技巧来优化计算。

DDPDQ的值被某些实现用于使用中国剩余定理计算 RSA 加快整个过程。

InverseQ

有关其工作原理的详细信息,请查看此 crpypto.stackexchange-questionWikipedia-article