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

cve*_*ver 5 encryption rsa digital-signature

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

Modulus     (private modulus)
Exponent    (private exponent)
P           (prime exponent)
Q           (prime exponent)
DP
DQ
InverseQ
Run Code Online (Sandbox Code Playgroud)

我将密钥文件保存在存储空间非常小的地方(便携式)。我想只保存模数和指数。我知道 P、Q 和 E 对于创建模数和指数是必要的,但是:

问题:

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

i_t*_*uro 4

那么,您需要公钥 Modulus用于Exponent加密,还需要私钥 用于解密和签名。ModulusD

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

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

DP       = D mod (P - 1)
DQ       = D mod (Q - 1)
InverseQ = Q^-1 mod (P - 1)
Run Code Online (Sandbox Code Playgroud)

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