通过加载预先创建的包含RSA私钥的.key文件,我注意到它包含以下数字:
Modulus (private modulus)
Exponent (private exponent)
P (prime exponent)
Q (prime exponent)
DP
DQ
InverseQ
我正在保存密钥文件,存储空间非常小(便携式)。我虽然只保存模数和指数。我知道P,Q和E是创建模数和指数所必需的,但是:
问题:
当PrivateModulus和PrivateExponent需要签名和解密消息时,将所有这些数据保存到.key文件的目的是什么?
答案 0 :(得分:2)
嗯,您需要公钥 Modulus
和Exponent
进行加密,私钥 Modulus
和{{1用于解密和签名。
D
和P
,因为没有有效的方法可以从其他给定的值重建它们。因此,如果您的Q
被破坏,您可以重新构建它,或者如果可能需要特殊的实现来执行某些数学技巧来优化计算。
D
,DP
和DQ
的值被某些实现用于使用中国剩余定理计算 RSA 加快整个过程。
InverseQ
有关其工作原理的详细信息,请查看此 crpypto.stackexchange-question或Wikipedia-article。