RSA Private key .pem file composition

好奇心驱使我看了一眼我产生的RSA密钥中的两个素数, 看到构成如下:

openssl
rsa -in key.pem -text

modulus: 1024 bits
publicExponent: 17 bits
privateExponent: 1024 bits
prime1: 512 bits
prime2: 512 bits
exponent1: 512 bits
exponent2: 512 bits
coefficient: 360 bits

前面5个很容易理解,分别是 n, e, d, p, q
其中:
n = p ✖︎ q
e=65537(基本是个常数,当前openssl genrsa仅支持3 and 65537,默认使用65537)

后面3参数是什么?

exponent1: d % (p-1) 简称dp
exponent2: d % (q-1) 简称dq
coefficient: 又称InverseQ,它满足 q逆 ✖︎ q = 1 % p

后面这三个数可以加快解密过程, https://en.wikipedia.org/wiki/RSA_(cryptosystem) 有说明

解密 m = c的d次方 % n
可以用下面的过程求得:
m1 = c的dp次方 % p
m2 = c的dq次方 % q
h = ( q逆 ✖︎ (m1 – m2 ) ) % p
m = m2 + h ✖︎ q
这4步所用到的数都比n要小得多

Leave a Reply

Your email address will not be published. Required fields are marked *