RSA公钥签名算法 网络安全 NETWORK SECURITY RSA签名算法相当于RSA加密/解密算法的逆过程 ■系统参数:设n=pq,且p和q是两个大素数,e和d为满足ed= 1mod(Φ(n)的整数,其中,Φ()是欧拉函数; 公开密钥:n,e; ■ 私有密钥:p,q,d; ■签名算法:Sig(x)=xd mod n; ■ 验证算法:Ver(x,y)=TRUE→x=yemod n(X,y)eZn×Zn。 对于消息对(x,y),若y是x的有效签名,则ye=xed=x(m)+1=xmod n, 即验证算法成立。 用户A若想用RSA签名方案对消息x签名,只需公开它的公钥n和e,由于用 户私钥是保密的,因此,A是惟一能产生签名的人,任何要验证用户A签 名的用户只需查到A的公钥即可验证签名
17 RSA公钥签名算法 • RSA签名算法相当于RSA加密/解密算法的逆过程 ◼ 系统参数:设n=pq,且p和q是两个大素数,e和d为满足ed= 1mod((n))的整数,其中,()是欧拉函数; ◼ 公开密钥:n,e; ◼ 私有密钥:p,q,d; ◼ 签名算法:Sig(x)=xd mod n; ◼ 验证算法:Ver(x,y)=TRUEx=ye mod n (x,y)ZnZn。 对于消息对(x,y),若y是x的有效签名,则y e=xed=xt(n)+1=x mod n, 即验证算法成立。 用户A若想用RSA签名方案对消息x签名,只需公开它的公钥n和e,由于用 户私钥是保密的,因此,A是惟一能产生签名的人,任何要验证用户A签 名的用户只需查到A的公钥即可验证签名
RSA公钥签名算法 网络安全 NETWORK SECURITY A PA的私钥 A的公钥 吴1 加密 Plain Text cipher 解密 PlainText 算法 算法 ·A向B发送消息,用A的私钥加密(签名) ●B收到密文后,用A的公钥解密(验证)
18 •A向B 发送消息,用A的私钥加密(签名) •B收到密文后,用A的公钥解密(验证) PlainText 加密 算法 解密 算法 cipher PlainText A B A的私钥 RSA公钥签名算法
DSS数字签名标准 网络安全 NETWORK SECURITY ·DSS算法的参数如下: ■ 系统的公开参量: p:素数.其中2L-1<p<2,512≤L<1024,且L为64的倍 数:即比特长度在512-1024之间,长度增量为64bit; q:(p-1)的素因子,其中,2159<q<2160; g:域Z,*中阶为q的元素,即g=hp-1)/a mod p(1<h<p-1) ■用户的私钥; x:用户在[0,q-1]中随机选取的整数。 ■用户的公钥 y=g'modp。(安全性基于基于离散对数难题) 公钥为(P,q,g,y)
19 DSS数字签名标准 • DSS算法的参数如下: ◼ 系统的公开参量: p:素数.其中2L-1<p<2L ,512L<1024,且L为64的倍 数:即比特长度在512-1024之间,长度增量为64bit; q:(p-1)的素因子,其中,2159<q<2160; g:域Zp *中阶为q的元素,即g=h(p-1)/q mod p (1<h<p-1) ◼ 用户的私钥; x:用户在[0,q-1]中随机选取的整数。 ◼ 用户的公钥 y=gx mod p。(安全性基于基于离散对数难题 ) 公钥为(p,q,g,y)
DSS数字签名标准 网络安全 NETWORK SECURITY ·DSS签名和验证 ■签名 签名者随机选取k∈[0,q-1],计算 r=(gk mod p)mod q s=[k1(H(M)+xr)]mod q 则Sig(M)=(r,s) ■验证 w=(s')-1 mod q,u1=[H(M')w]mod q, u2=(r')w mod q,v=[(guiyu2)mod p]mod q Ver(,y)=TRUE→v=r' ■M为要签名的消息;H(M)为使用SHA-1生成的M的杂凑值; M',r',s为接受到的M,r,S:
20 DSS数字签名标准 • DSS签名和验证 ◼ 签名 签名者随机选取k[0,q-1],计算 r=(gk mod p) mod q s=[k-1(H(M)+xr)] mod q 则 Sig(M)=(r,s) ◼ 验证 w=(s’) -1 mod q,u1=[H(M’)w]mod q, u2=(r’)w mod q,v=[(gu1y u2)mod p]mod q Ver(x,y)=TRUEv=r’ ◼ M为要签名的消息;H(M)为使用SHA-1生成的M的杂凑值; M’ ,r’ ,s’为接受到的M,r,s;
DSS数字签名标准 网络安全 NETWORK SECURITY 图示 p9g F 8 M M 匕较
21 DSS数字签名标准 •图示