图解PKCS#1——第一部分 基础说明

0. 版本更新说明

版本更新情况简要说明:

  1. V2.2:主要是增加了三个杂凑函数:SHA-224、SHA-512/224、SHA-512/256。

3. 密钥

公钥

(n, e)

私钥

(n, d)

或者(p, q, dP, dQ, qInv),

  1. dP=d mod p-1
  2. dQ=d mod q-1,【即e · dP = 1 mod p–1e · dQ = 1 mod q–1
  3. q* qInv=1 mod p

注解:

dP, dQ,的出现是为了用CRT Cd mod n

因为dP=d mod p-1dQ=d mod q-1,→  CdP=Cd mod pCdQ=Cd mod q

所以计算Cd mod n改为计算同余式组 x=CdP mod px=CdQ mod q,计算出的x即为Cd mod n

4. 数据类型转化

 I2OSP        整数→字符串 (Integer → Octet-String),字符串采用大端表示

OS2IP         字符串→整数 (Octet-String → Integer),字符串采用大端表示

5. 密码算法

5.1 加密解密

5.1.1 加密解密——加密RSAEP

 

c = me mod n.

5.1.2 加密解密——解密RSADP

 

  1. 若私钥为(n, d)  

m = cd mod n.

 

  1. 若私钥为 (p, q, dP, dQ, qInv)

m1 = cdP mod p.

m2 = cdQ mod q.

h = qInv * (m1 m2) mod p.

m = m2 + h q.

(其中q*qInv = 1 (mod p)

5.2签名验证

5.2.1 签名验证——签名RSASP1

  1. 若私钥为(n, d)  

s = md mod n.

 

  1. 若私钥为(p, q, dP, dQ, qInv)

s1 = mdP mod p.

s2 = mdQ mod q.

h = qInv * (s1s2 ) mod p.

s = s2 + h q.

 

5.2.2 签名验证——验证RSAVP1

m = se mod n

 

猜你喜欢

转载自blog.csdn.net/samsho2/article/details/84255128