算法描述 参数选择 (1)令P,q是两个素数,n=Pq (2)随机选择e,满足1<e<(mn),那么私钥就 是(e,n) (3)计算d:ed=lmodφ(m),私钥就是(d,n) 2021/2/20
2021/2/20 11 算法描述 • 参数选择 (1)令 是两个素数, (2)随机选择e,满足 ,那么私钥就 是(e,n) (3)计算 ,私钥就是(d,n). p,q n = pq 1 e (n) d : ed =1mod(n)
签名过程 (1)计算消息的散列值H(M) (2)加密散列值:s=(H(M)4mdn (3)签名为a=(M,s) 2021/2/20 12
2021/2/20 12 签名过程 (1)计算消息的散列值H(M). (2)加密散列值: (3)签名为 s H M n d = ( ( )) mod = (M ,s)
签名验证 (1)解密签名:h=s°modn (2)比较h=H(M)如果等号相等,签名有效 否则签名无效。 2021/2/20 13
2021/2/20 13 签名验证 (1)解密签名: (2)比较h=H(M),如果等号相等,签名有效 ;否则签名无效。 h s n e = mod
RSA签名过程图 图中h:表示Hah运算;M:消息;E:加密;D解 密;Kw:用户秘密钥;Km:用户公开密钥。 M(○)h (再() 比较 hE○○D 2021/2/20 14
2021/2/20 14 RSA签名过程图 M || M h 比较 h E D up k 图中h:表示Hah运算;M:消息;E:加密;D解 密;Kus :用户秘密钥; Kup :用户公开密钥。 us k E (h(M)) kus
举例 (1)选择素数p=5,q=11;n=pq=F5)=(p-1q-1)=40 (2选择私钥e=3,由ed=1modp(n计算私钥d=27 假设消息M=19 (3)签名生成:c=m4mdn=1927mod55=24 4)签名验证:m= ce mod n=24md55=19 2021/2/20 15
2021/2/20 15 举例 (1)选择素数p=5,q=11;n=pq=55, (2)选择私钥e=3,由 计算私钥d=27 假设消息M=19 (3)签名生成: (4)签名验证: (n) = ( p -1)(q -1) = 40 ed =1mod (n) mod 19 mod 55 24 2 7 c = m n = = d mod 24 mod 55 19 3 m = c n = = e