《电子商务安全技术第04章数字签名技术与应用.ppt》由会员分享,可在线阅读,更多相关《电子商务安全技术第04章数字签名技术与应用.ppt(28页珍藏版)》请在三一办公上搜索。
1、第三章 数字签名技术与应用,3.1 数字签名的基本原理。3.2 几种常用的数字签名技术。3.3 美国数字签名标准(DSS)。,3.1 数字签名的基本原理,数字签名的要求,(1)收方能够确认或证实发方的签名,但不能伪造。(2)发方发出签名的消息送收方后,就不能再否认他所签发的信息。(3)收方对已收到的签名消息不能否认,即有收到认证。(4)第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。,数字签名(Digital Signature):指发送者根据消息产生摘要,并对摘要用自身的签名私钥进行加密。消息和用自身签名私钥加密的数字摘要组合成数字签名。,数字签名的定义,数字签名的作用 验证消息发
2、送方的身份 验证消息内容的完整性,B2C安全控制,B2B安全控制,B2G安全控制,数字签名与手工签名的区别数字签名数字的,因消息而异手工签名模拟的,因人而异,数字签名与消息认证的区别数字签名第三者可以确认收发双方的消息传送消息认证只有收发双方才能确认消息的传送,数字签名的分类,对整个消息的签名对压缩消息的签名,若按明、密文的对应关系划分,每一种又可分为:确定性数字签名:明文与密文一一对应,它对一特定消息的签名不变化。随机化或概率式数字签名:它对同一消息的签名是随机变化的,取决于签名算法中的随机参数和取值。,数字签名的组成,签名算法秘密的验证算法公开的,对M的签名可简记为:Sig(M)=s 或
3、Sigk(M)或 Sigk(M,k),一个签名体制可由量(M,S,K,V)表示:M是明文空间 S是签名的集合 K是密钥空间 V证实函数的值域,由真、伪组成,数字签名的验证,签名算法:s=Sigk(m)S验证算法:Verk(s,m)真,伪验证签名的真伪:,散列函数(Hash function),数字签名的要求,3.2 几种常用的数字签名技术,(1)RSA签名(2)ElGamal签名(3)盲签名(4)多重签名(5)代理签名,(1)RSA签名,RSA算法不仅可用于信息加密,还可用于数字签名。,RSA算法的理论基础:大数分解:两个大素数相乘在计算上是容易实现的,但将该乘积分解为两个大素数因子的计算量却
4、相当巨大。素数检测:素数检测就是判定一个给定的正整数是否为素数。,RSA签名的具体过程,RSA签名的过程:设计密钥,设计签名,验证签名(1)设计密钥:先选取两个互素的大素数P和Q,令N=PQ,z=(P-1)(Q-1),接着寻求加密密钥e,使e满足(e,(N))=1,另外,再寻找解密密钥d,使其满足gcd(d,z)=1,ed=1(mod z)。这里的(N,e)就是公开的加密密钥。(N,d)就是私钥。(2)设计签名:对消息M进行签名,其签名过程是:S=Sig(M)=Md(mod N)(3)验证签名:对S按下式进行验证:M=Se(mod N),如果M=M,则签名为真,RSA签名举例,(1)若Bob选
5、择了p=11和q13(2)那么,n=11 13=143,(n)=1012120(3)再选取一个与z=120互质的数,例如e=7(4)找到一个值d=103满足ed=1 mod z(7103=721除以120余1)(5)(143,7)为公钥,(143,103)为私钥。(6)Bob在一个目录中公开公钥:n=143和e=7(7)现假设Bob想发送消息85给Alice,他用自己的密钥(d=103)进行签名:85103(mod 143)=6,于是发送消息85和签名6给Alice(8)当Alice接收到消息85和签名6时,用Bob公开的公钥(e7)进行验证:67(mod 143)=85,跟Bob发送的消息一
6、致,于是确定该消息是由Bob所发送,且没有被修改。,相同点,RSA签名和RSA加密的异同点,都使用一对密钥:公钥和私钥,不同点,RSA加密:用公钥加密,用私钥解密RSA签名:用私钥签名,用公钥验证,(2)ElGamal签名,ElGamal算法由T.ElGamal在1985年提出,其修正形式已被美国NIST作为数字签名标准(DSS)。ElGamal算法既可用于信息加密,也可用于数字签名。,ElGamal算法的理论基础:求解离散对数的困难性:求解离散对数是模指数运算的逆过程,例如求x,使得x满足 3x(mod 17)=15对于素数域上寻求离散对数的复杂性等同于对大整数n进行因子分解的复杂性,ElG
7、amal签名的过程,ElGamal签名的过程:设计密钥,设计签名,验证签名(1)设计密钥:首先选择一个素数p,两个随机数:g和x,g,x p,计算 y=gx(mod p),则其公钥为 y,g 和p。私钥是x。(2)设计签名:对消息M进行签名,其签名过程是:先选择一个随机数k,k与p-1互质,计算r=gk(mod p)S=(H(M)-xr)k-1(mod p-1),则签名S=Sig(M,k)=(M,r,s)(3)验证签名:对S按下式进行验证:yk rs=gH(M)(mod p),如果相等,则签名为真,对同一消息M,由于随机数k不同而有不同的签名值(M,r,s),(3)盲签名,盲签名(blind
8、signature)是一种允许一个人让另一个人签署文档,而第一个人不向签名者泄露任何关于文档内容的技术。,盲签名的过程:(1)Alice将文件M乘一个随机数得M,这个随机数通常称为盲因子,Alice将盲消息M送给Bob;(2)Bob在M上签名后,将其签名Sig(M)送回Alice;(3)Alice通过除去盲因子,可从Bob关于M的签名Sig(M)中得到Bob关于原始文件M的签名Sig(M)。,(4)多重签名,多重数字签名的目的是将多个人的数字签名汇总成一个签名数据进行传送,签名收方只需验证一个签名便可确认多个人的签名。,设U1,U2,Un为n个签名者,他们的密钥分别为xi,相应的公钥为yi=g
9、xi mod p(i=1,2,n)。他们所形成的对消息m的n个签名分别为(ri,si),其中ri=gki mod p和si=xim+kir mod p-1(i=1,2,n),这里rri mod p,形成的签名(ri,si)满足方程gsi=yimrir mod p。n个签名人最后形成的多重签名为:(m,r,s)=(m,ri mod p,Si mod p-1),它满足方程gs=ymrr mod p,其中y=yi mod p。,(5)代理签名,代理签名的目的是当某签名人因公务或身体健康等原因不能行使签名权力时,将签名权委派给其他人替自己行使签名权。,假设A委托B进行代理签名,则签名必须满足三个最基本
10、的条件:(1)签名收方能够像验证A的签名那样验证B的签名;(2)A的签名和B的签名应当完全不同,并且容易区分;(3)A和B对签名事实不可否认。,3.3 美国数字签名标准(DSS),1994年美国国家标准与技术学会NIST公布了数字签名标准(DSS,Digital Signature Standard);DSS标准采用的算法是DSA(Digital Signature Algorithm);DSA算法是ElGamal算法的改进,该算法只能用于数字签名而不能用于加密。,数字签名应用系统介绍,Outlook Express的数字签名,利用Outlook Express,可以收发数字签名邮件:(1)获取数字凭证(Digital ID):http:/(2)使用数字凭证发送签名邮件;(3)接收方收到后确认邮件发送者且邮件在传送过程中保持完整。,