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

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

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

我正在将密钥文件保存在某处,存储空间非常小(可移植).我虽然只保存模数和指数.我知道P,Q和E是创建模数和指数所必需的,但是:

题:

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

最佳答案 那么,您需要加密的公钥Modulus和Exponent以及用于解密和签名的私钥Modulus和D.

P和Q可能只是为了安全而添加,因为没有有效的方法从其他给定的值重建它们.因此,如果您的D被破坏,您可以重建它,或者如果可能需要特殊实现来进行某些数学技巧来优化计算.

一些实现使用DP,DQ和InverseQ的值来使用中国剩余定理来计算RSA以加速整个过程.

DP       = D mod (P - 1)
DQ       = D mod (Q - 1)
InverseQ = Q^-1 mod (P - 1)

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

点赞