特殊数字签名与阈下信道设计_第1页
特殊数字签名与阈下信道设计_第2页
特殊数字签名与阈下信道设计_第3页
特殊数字签名与阈下信道设计_第4页
特殊数字签名与阈下信道设计_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五讲:数字签名与阈下信道设计主讲人:xxxxxxx系22七月2023?通信网平安理论与技术?课程实践性通信平安保障协议平安设计理论和技术根底前导性8.课程体系及主要内容——讲解内容通信网平安现状、趋势与策略——第1讲通信网技术根底与平安体系——第2讲通信网平安根底理论与技术(密码学、攻击与防御技术)——第3讲网络平安协议理论设计与分析认证协议以及密钥建立协议——第4讲数字签名与阈下信道设计——第5讲零知识证明及其平安协议构造——第6讲平安协议分析与设计——第7讲典型的网络平安协议(IPSec协议、Kerberos协议、Radius/AAA协议)——第8~10讲通信网平安保障技术——第11讲无线网络平安性增强技术(WLAN为主)——第12讲网络防火墙与入侵防御技术——第13讲网络平安实现方案设计与分析——第14讲内容提要数字签名根本概念典型的数字签名算法数字签名标准(DSS)特殊数字签名阈下信道设计内容提要数字签名根本概念典型的数字签名算法数字签名标准(DSS)特殊数字签名阈下信道设计数字签名根本概念——动机与需求日常生活中我们经常遇到手写签名的情况,例如:写信后,签署自己的名字在银行提款,也需要签署姓名在商务谈判协议,也需要签名这些签名的用途在于:信件末尾的签名,用于表名写信人的身份提款时的签名,作为提款人的身份认证商务协议上的签名,具有法律效应,可作为以后单方面违反协议后的司法处理证据数字签名根本概念——动机与需求签名的目的:使信息的收方能够对公正的第三方〔双方事先委托的仲裁者〕证明其内容的真实性,而且是由指定的发送方发出的发送方事后不能根据自己的利益来否认报文的内容接收方也不能根据自己的利益来伪造报文的内容数字签名根本概念——动机与需求中国首例电子邮件案:1996年4月9日,北京大学研究生薛某收到美国密执安大学通过互联网发给她的电子邮件,告知该校将为她提供1.8万美元的奖学金,但她却久等不见正式通知后。薛某经过多方查证,最后证实是同寝室的张某从中作梗。张某以薛某的名义伪造电子邮件,使她失去出国深造的时机如果邮件的发送附加了可防伪和可追踪的数字签名,也许本案就不会发生了数字签名根本概念——动机与需求在网络环境下,通信双方可能出现以下欺骗(假定A发送一条信息给B):B伪造一个不同的消息,但声称是从A收到的A可以否认发过该消息,B无法证明A确实发了该消息通信网也需类似的签名机制——数字签名,以防止出现上述情形与传统的手写签名类似,它应满足以下条件:签名可信:收方可以确认是由发方签名的签名不可伪造签名不可重用:签名是消息的一局部,不能把签名移到其它消息上签名不可抵赖签名后的消息不能篡改数字签名根本概念——与消息认证的关系数字签名vs消息认证消息认证:实现消息的真实性和完整性,其作用:保护通信双方以防第三方的攻击,但不能保护通信双方中的一方防止另一方的欺骗或伪造数字签名:实现消息的不可否认性在通信双方未建立起完全的信任关系且存在利害冲突的情况下,单纯的消息认证就显得不够有时,实现数字签名的同时,也可实现对消息来源的认证数字签名根本概念——应用数字签名最早的应用之一用来禁止对核试验条约的验证美国和前苏联互相允许把地震测试仪放入另一个国家,以便对核试验进行监控每个国家需要确信监控国没有篡改从被监控国的地震仪传来的数据同时监控国要确信监测器只发送规定的需要监测的消息日常应用:对电子文档签名(例如:商用软件ID-SignforOffice)数字签名根本概念——认识误区数字签名≠纸上签名数字签名应用≠签名算法数字签名≠文件加密数字签名≠防止打印数字签名≠防止拷贝数字签名根本概念——典型签名算法目前已有大量的数字签名算法,如:RSA签名算法ElGamal签名算法Fiat-Shamir签名算法Guillou-Quisquarter签名算法Schnorr签名算法Ong-Schnorr-Shamir签名算法美国数字签名标准/算法〔DSS/DSA〕椭圆曲线签名算法有限自动机算法…..等数字签名根本概念——与加密、认证实现的区别数字签名根本概念——实现原理数字签名实质就是把一个特定的数据与某个人相关联,该数据代表这个人它包括两个局部:签名和验证签名,其实现原理如以下图:消息摘要算法消息摘要签名算法数字签名发送者的私钥数字签名根本概念——实现原理消息和数字签名一起发给接受者。接受者通过签名来确定发送者的身份以及数据的完整性接收的消息数字签名签名算法发送者的公钥消息摘要摘要算法消息摘要是否相同?内容提要数字签名根本概念典型的数字签名算法数字签名标准(DSS)特殊数字签名阈下信道设计典型的数字签名算法比较经典的数字签名算法:RSA签名算法ElGamal签名算法RSA签名算法提出的时间比较早,并且一直到现在,以其为根底的应用都还在使用ElGamal签名算法的变型算法之一,就是后来的数字签名算法〔DSA〕典型的数字签名算法1——RSA数字签名参数选择:①选择两个满足需要的大素数p和q,计算n=p×q,φ(n)=(p-1)×(q-1),其中φ(n)是n的欧拉函数值②选一个整数e,满足1<e<φ(n),且gcd(φ(n),e)=1;通过d×e≡1modφ(n),计算出d③以{e,n}为公开密钥,{d,n}为秘密密钥典型的数字签名算法1——RSA数字签名签名过程假设签名者为Bob,那么只有Bob知道秘密密钥{d,n}设需要签名的消息为m,那么签名者Bob通过如下计算对m签名:s≡mdmodn(m,s)为对消息m的签名:Bob在公共媒体上宣称他发布了消息m,同时把对m的签名s置于消息后用于公众验证签名典型的数字签名算法1——RSA数字签名验证过程。公众在看到消息m和对其签名s后,利用Bob的公开验证密钥{e,n}对消息进行验证公众计算:m≡semodn是否成立?假设成立,那么Bob的签名有效,即公众认为消息m确实是Bob所发布,且消息内容没有被篡改公众可以容易鉴别发布人发布的消息的完整性典型的数字签名算法1——对RSA数字签名的攻击原始RSA签名算法是有缺陷的,它是对整个消息的签名假设攻击者Eve能得到Bob对多个消息的签名,伪造过程:假设:〔1〕Bob对消息M1的签名为S1,即S1≡M1dmodn;〔2〕Bob对消息M2的签名为S2,即S2≡M2dmodn;那么攻击者Eve可以构造消息M3=M1*M2的签名S3,即:S3=M3d=〔M1*M2)dmodn≡S2*S1虽然说在M1、M2的情况下,M3往往只是一个数值,一般来说是没有意义的,但不排除有意义的可能性,故导致了算法的不平安典型的数字签名算法1——对RSA数字签名的改进RSA+Hash函数:选用一个平安散列函数H(·),其改进如下:签名过程设需签名的消息为m,签名者Bob通过如下计算对其签名:s≡H(m)dmodn(m,s)为对消息m的签名验证过程在收到消息m和签名s后,验证:H(m)≡semodn?假设成立,那么发送方的签名有效防止伪造签名的原理在于:当M3=M1*M2时,H(M3)=H(M1)*H(M1)一般不成立当前国际通行的两大散列函数:MD5:常用的128位的消息摘要SHA和SHA-1:160位的消息摘要典型的数字签名算法1——对RSA数字签名的改进改进型RSA签名(RSA+散列函数)→消息摘要+RSA:将消息按散列算法计算得到一个固定位数的消息摘要值(是对压缩消息的签名)对消息摘要值用发送者的私有密钥加密,所产生的密文即称数字签名。然后该数字签名同原消息一起发送给接收者接收方收到消息和数字签名后,用同样的散列算法对消息计算摘要值,然后与用发送者的公开密钥对数字签名进行解密,将解密后的结果与计算的摘要值相比较。如相等那么说明报文确实来自发送者典型的数字签名算法1——对RSA数字签名的讨论前面两个签名方案,消息本身在发送过程中是明文形式,所以它们仅提供消息来源认证而未提供消息保密性为了进一步提供保密性,可在散列函数之后或之前进行一次加密,即:先签名后加密先加密后签名典型的数字签名算法1——对RSA数字签名的讨论先签名后加密:假定Alice希望发送一个签名的加密消息给Bob给定明文m,Alice将计算她的签名s≡SigAlice(m)然后使用Bob的公开密钥PKb加密m和s,获得密文c=(m,s)PKb

,密文将被传送至Bob当Bob接收到密文c后,他首先使用私钥SKb解密获得(m,s),然后使用Alice的公开验证算法来验证VerAlice(m,s)?典型的数字签名算法1——对RSA数字签名的讨论先加密后签名:如果Alice首先加密m,然后对加密结果签名会怎样呢?她将计算c=(m)PKb和s≡SigAlice(c),并将把(c,s)发送给BobBob用VerAlice来验证对c的签名,然后解密c,获得m这种方法存在一个潜在的问题,即不能确定发送方身份:假设Eve获得了(c,s),他就用他自己的签名s‘≡SigEve(c)来替换Alice的签名,并将(c,s‘)发送给BobBob将用VerEve来验证Eve的签名s‘而非s,Bob可能由此推断明文m来自Eve典型的数字签名算法1——对RSA数字签名的讨论基于RSA这种非对称密码体制的签名称为通用签名,即签名者使用它的私钥签名,其它人可用它的公钥对其进行验证为了保证公钥的可靠性,每个签名方必须在一个指定的登记处公布和登记他的公开密钥,例如CA〔验证机构〕同时,为了解决可能的争议,收发双方以及仲裁者〔第三方〕需要共享有关报文的验证信息〔如消息摘要〕,当发生争议时,由仲裁者提供证据与通用签名相对应的,特殊数字签名有:盲签名、代理签名、群签名、不可否认签名等,它与具体应用环境密切相关它的平安性与RSA密码体制的一样:素数p和q应该足够大,使得对于给定它们的乘积n,假设事先不知道q或p,分解n是计算上不可行的对于短期平安性,n的长度至少应为1024位;而长期平安性那么要求n至少为2048位典型的数字签名算法1——RSA签名vs加密RSA签名和RSA加密的异同点相同点:都使用一对密钥:公钥和私钥不同点:RSA加密:用公钥加密,用私钥解密(多对一)RSA签名:用私钥签名,用公钥验证(一对多)RSA签名属于确定性数字签名,即明文与密文一一对应,它对一特定消息的签名不变化(使用签名者的密钥签名)对应地,还有非确定性数字签名〔即:随机化的或概率式数字签名〕,即对同一消息的签名是随机变化的,取决于签名算法中的随机参数和取值典型的数字签名算法2——ElGamal签名与Schnorr数字签名算法一样,都是基于离散对数难题的ElGamal签名于1985年提出,其改进型之一成为美国国家标准技术研究所NIST(NationalInstituteofStandardsandTechnology)提出的DSA(digitalsignatureAlgorithm)算法的根底ELGamal签名是一种非确定性的公钥密码体制,即对同一明文消息,因选择不同的随机参数而有不同的签名相关参数:选择大素数p、q

(其中q是p-1或p-1的大素数因子)选择g(其值介于1和p之间,且满足gq≡1modp,称其为域Z*p生成元)私钥x(小于q)公钥y(满足y=gxmodp)

可公开信息:y,g,p典型的数字签名算法2——ElGamal签名初始化:首先选择一个大素数p,使在Zp中求解离散对数困难。然后选择一个生成元g∈Zp*,计算y=gxmodp,那么公开密钥y,g,p,私钥x待发送消息M摘要算法消息摘要H(M)签名算法数字签名(M,r,s)发送者的私钥X由于r和s中都引入了随机数k的影响,所以即使是对于同一个消息,因k不同而导致签名结果(r,s)的变化签名信息是消息的2倍k应该被销毁典型的数字签名算法2——ElGamal签名签名过程:给定要签名的消息为M首先选择一个小于q并互素的随机数k,gcd(k,p-1)=1

计算r=gkmodp计算s=(H(M)-xr)k-1mod(p-1)把消息和签名结果(M,r,s)发送给接收者待发送消息M摘要算法消息摘要H(M)签名算法数字签名(M,r,s)发送者的私钥Xr=gkmodps=(H(M)-xr)k-1mod(p-1)q是p-1或p-1的大素数因子典型的数字签名算法2——ElGamal签名验证过程:接收方收到消息和签名结果(M,r,s)后,可以按下面的步骤验证签名的有效性:取得发送方的公钥y;预查合法性:如果p-1r1,那么继续后续步骤;否那么,签名是不合法。计算u1:u1=yrrsmodp;计算u2:u2=gH(M)modp;比较u1和u2:u1=u2?签名过程:给定要签名的消息为M首先选择一个小于q并互素的随机数k计算r=gkmodp计算s=(H(M)-xr)k-1mod(p-1)把消息和签名结果(M,r,s)发给接收者初始化:首先选择一个大素数p,使在Zp中求解离散对数困难。然后选择一个生成元g∈Zp*,计算y=gxmodp,那么公开密钥y,g,p,私钥xr=gk

modp典型的数字签名算法2——ElGamal签名接收的消息M接收的签名(M,r,s)签名算法发送者的公钥y消息摘要u1摘要算法消息摘要u2是否u1=u2

?y=gxmodp

u1=yrrsmodpu2=gH(M)modpELGamal签名的验证过程典型的数字签名算法2——ElGamal签名举例对消息M=“购置设备100台〞签名,设h(M)=5:取p=11,g=2选择私钥x=8计算:y=gxmodp=28mod11=3公钥是:y=3,g=2,p=11选择随机数k=9,确定gcd(10,9)=1计算:r=gkmodp=29mod11=6计算:s=9-1×(5-8×6)=3mod10(即s=(H(M)-xr)k-1mod(p-1))签名是(r=6,s=3)要验证签名,需确认:

36×63mod11=25mod11?典型的数字签名算法2——对ElGamal签名的讨论为防止签名被伪造,消息M须用哈希函数进行处理签名时所使用的随机值k不能泄露,否那么攻击者可以计算出签名的私钥:通过变换s≡(H(M)-xr)k-1mod(p-1),可知x≡(H(M)-ks)r-1mod(p-1)对于两个不同的消息签名时,不要使用相同的k,否那么容易求得k的值,从而知道签名者的私钥典型的数字签名算法2——对ElGamal签名的改进把签名过程中的等式

s=(H(M)-xr)k-1mod(p-1)

H(M)=(xr+ks)mod(p-1)修改为:

u=xv+kwmod(p-1)——称为签名方程

如果u=H(M),v=r,w=s,那么签名方程就是ElGamal签名过程中使用的等式典型的数字签名算法2——对ElGamal签名的改进如果把u、v、w分别对应不同次序的H(M)、r、s,就可得到其他的ElGamal数字签名变体体制,如下表列举了6种不同的变形序号uvw签名方程认证等式1H(M)rsH(M)=xr+ksmod(p-1)gH(M)=(gx)rrsmodp2H(M)srH(M)=xs+krmod(p-1)gH(M)=(gx)srrmodp3srH(M)s=xr+kH(M)mod(p-1)gs=(gx)rrH(M)modp4sH(M)rs=xH(M)+krmod(p-1)gs=(gx)H(M)rrmodp5rsH(M)r=xs+kH(M)mod(p-1)gr=(gx)srH(M)modp6rH(M)sr=xH(M)+ksmod(p-1)gr=(gx)H(M)rsmodp典型的数字签名算法2——对ElGamal签名的通用化ElGamal签名方案可归纳为离散对数签名体制的特例基于离散对数问题的一般数字签名体制参数选取p:大素数;q:p-1或p-1的大素因子;g:g∈RZ*p,且gq≡1modp

,其中g∈RZ*p表示g是从Z*p中随机选取的,其中Z*p=Zp-{0};x:用户A的秘密钥,1<x<q;y:用户A的公开钥,y

≡gxmodp典型的数字签名算法2——对ElGamal签名的通用化签名过程对于待签名的消息m,A执行以下步骤:计算m的散列值H(m);选择随机数k:1<k<q,计算r

≡gkmodp;从签名方程ak≡b+cxmodp中解出s。方程的系数a,b,c有许多种不同的选择方法,下表给出了这些可能的选择。以(r,s)作为产生的数字签名典型的数字签名算法2——对ElGamal签名的通用化验证过程收方在收到消息m和签名(r,s)后,可以按照以下验证方程检验:ramodp=gbycmodp这样的方案数共有120种,其中平安的共有18种,ElGamal与DSA都是其中的一种情况内容提要数字签名根本概念典型的数字签名算法数字签名标准(DSS)特殊数字签名阈下信道设计数字签名标准(DSS)——DSA数字签名算法虽然RSA具有较强的数字签名能力,但RSA的使用不是免费的,NIST决定开发一个免费的数字签名算法DSA1991年8月,NIST提出将数字签名算法DSA(DigitalSignatureAlgorithm)用于数字签名标准DSS(DigitalSignatureStandard)中。DSA是ElGamal、Schnorr签名算法的变种,其密钥长度为512~1024位密钥长度愈长,签名速度愈慢(而制约运算速度的主要因素是大数的模指数运算)ElGamal与DSA签名长度的比较:ElGamal签名长度2048bitsDSA签名长度320bits数字签名标准(DSS)——DSA数字签名算法1.算法的参数:p是L比特长的素数,L的长度为(512~1024)位且是64的倍数q是160比特长且为p-1的素因子。g≡h(p-1)/qmodp,其中h,g是整数,1<h<p-1,且要求g大于1x是签名者的私钥,由签名者选取的随机数,要求是小于q的正整数y≡gxmodp为签名者的公钥。选择平安散列算法H(),标准中指定为SHAk是用户为待签消息选取的秘密数,是满足0<k<q的随机数或伪随机数签名者公开(p,q,g,y)及平安散列算法H(),保密x,k签名完后及时销毁数字签名标准(DSS)——DSA数字签名算法签名过程:验证过程:r=gkmodps=(H(M)-xr)k-1mod(p-1)数字签名标准(DSS)——对DSA算法的讨论对于DSA算法,有人认为缺乏在于:认为验证比签名快,q的长度160比特太短,不能用于加密和分配密钥等。所有对ElGamal签名算法的攻击,也可以用于对DSA算法的攻击。不过就已有的攻击来看,DSA算法还是平安的与RSA签名算法比较,DSA的优势在于:对于RSA签名算法,每个用户都要有不同的公钥,故针对每个用户,都要去产生大的素数p和q,去计算d对于DSA算法,管理机构只需要计算一次p,g,q(通常又叫全局公开钥),每个用户只需要选择私钥x,然后计算公钥y(通常又叫用户公钥)。为什么?数字签名标准(DSS)——对DSA算法的讨论RSA签字与DSA签名的不同方式

数字签名标准(DSS)——DSA算法的例子在该例中采用小的整数代替H(m),以免计算消息摘要值H(m)时复杂运算假设q=101,p=78×101+1=7879,h=19,那么g=1978mod7879≡367取x=69,那么y≡gxmodp=36769mod7879≡1292假设待签名消息为m=3456,且选择的随机值为k=27,那么可以计算k-1≡15mod101。故可以算出签名为:r≡(gkmodp)modq=(36727mod7879)mod101≡6797mod101≡30s≡(k-1(m+xr))modq=(15(3456+69×30))mod101≡70可以得到对m的签名为(30,70)数字签名标准(DSS)——DSA算法的例子验证签名:w≡s-1modq=70-1mod101≡13u1≡mwmodq=3456×13mod101≡84u2≡rwmodq=30×13mod101≡87v≡((gu1yu2modp)modq=(36784×129287mod7879)mod101≡(2456×1687mod7879)mod101≡6797mod101≡30v=r,因此签名是有效的可以看到,签名和验证过程中的运算量是很大的,其中最主要的运算集中在模指数运算上实际上,求r的模指数运算与待签的消息无关,因此用户可以预先计算出很多r和k-1供后面签名使用、加快签名速度该例中,素数的取值也是比较小的,这些运算可以通过简单编程实现如果是按标准中的取值,模指数运算及大数的处理对初学者来说还是有挑战性的数字签名标准(DSS)——DSA的平安性绝大多数公开密钥算法都基于下面3个疑难问题:背包问题:给定一个互不相同的数组成的集合,找出一个子集其和为N离散对数:假设p是素数,g和M是整数,找出x满足gx≡M(modp)因子分解:设N是两个素数的乘积,那么有分解N给定整数M和C,寻找d满足Md≡C(modN)给定整数e和C,寻找M满足Me≡C(modN)给定整数x,判定是否存在整数y满足x≡y2(modN)内容提要数字签名根本概念典型的数字签名算法数字签名标准(DSS)特殊数字签名阈下信道设计特殊数字签名在有些情况下,前面几种普通数字签名却无能为力,例如:签名方并不希望任何人都能验证该签名,而希望只有特定方才能验证签名是否有效——不可抵赖的数字签名在一个企业中,总裁因精力有限而常需要秘书帮他对各种文件进行不可抵赖的数字签名——指定确实认人签名总裁希望秘书代替他进行签名计算和验证,而他又不希望将自己的私钥告诉给秘书——代理签名在一个企业中,所有副总任何一个都可以对员工送达文件签名,并都有效,而限定某个副总——团体签名面对以上这些情况,我们需要特殊的数字签名方案,即特殊数字签名特殊数字签名——主要类别:盲签名用户需要让签名者对明文消息文件进行数字签名,而又不希望签名者知晓明文消息文件的具体内容,即盲签名(BlindSignature)盲签名是一种特殊的数字签名方法,相对于一般的数字签名而言还应当具有以下2个特性:①盲性:所签消息的内容对签名人是盲的,即签名人签名时不能看见消息的具体内容;②不可追踪性:即使在盲签名公开后,签名者仍然不能跟踪消息-签名对,即不能把签名和其在签名时的看到的信息联系起来。盲签名主要用于基于Internet的匿名金融交易,如匿名电子现金支付系统、匿名电子拍卖系统等应用中:对于电子货币,银行需要对其签名以保证这张货币的合法性,同时用户又不希望银行知道这张货币在谁手上,从而追踪出他在怎样花钱特殊数字签名——主要类别:门限签名在有n个成员的群体中,至少有t个成员才能代表群体对文件进行有效的数字签名,即门限签名门限签名通过共享密钥方法实现,它将密钥分为n份,只有当将超过t份的子密钥组合在一起时才能重构出密钥门限签名在密钥托管技术中得到了很好的应用,某人的私钥由政府的n个部门托管,当其中超过t个部门决定对其实行监听时,便可重构密钥,实现监听特殊数字签名——主要类别:代理签名1996年,Mambo、Usuda和Okamoto提出了代理签名的概念代理签名允许密钥持有者授权给第三方,获得授权的第三方能够代表签名持有者进行数字签名。代理签名相当于一个人把自己的印章托付给自己信赖的人,让他代替自己行使权力由于代理签名在实际应用中起着重要作用,所以代理签名一提出便受到关注,被广泛研究特殊数字签名——主要类别:群签名允许一个群体中的成员以整个群体的名义进行数字签名,并且验证者能够确认签名者的身份最早由D.Chaum和E.vanHeyst提出,并给出了四个实现方案因群签名的实用性,人们对其深入研究而提出了分级多群签名、群盲签名、多群签名、满足门限性质的群签名、前向平安的群签名等特殊数字签名——主要类别:群签名一个好的群签名方案应满足以下的平安性要求:匿名性:给定一个群签名后,对除了唯一的群管理人之外的任何人来说,确定签名人的身份在计算上是不可行的;不关联性:在不翻开签名的情况下,确定两个不同的签名是否为同一个群成员所做在计算上是困难的;防伪造性:只有群成员才能产生有效的群签名;可跟踪性:群管理人在必要时可以翻开一个签名以确定出签名人的身份,而且签名人不能阻止一个合法签名的翻开防陷害攻击:包括群管理人在内的任何人都不能以其他群成员的名义产生合法的群签名抗联合攻击:即使一些群成员串通在一起也不能产生一个合法的不能被跟踪的群签名特殊数字签名——主要类别:前向平安的数字签名方案普通数字签名方案下,假设签名者的密钥被泄漏,那么这个签名者所有的签名(过去的和将来的)都有可能泄漏前向平安的数字签名方案主要思想是当前密钥的泄露并不影响以前时间段签名的平安性根据需要,结合上面思路,提出了前向平安的群签名、盲代理签名、代理门限签名、代理多重签名、公平盲签名等特殊数字签名——设计与实现:盲签名方案1983年,Chaum提出了盲签名概念,在此根底上设计并实现了一个盲签名方案一般来说,盲签名的协议有如下几个步骤:初始化过程(参数选择)盲化过程签名过程脱盲过程验证过程特殊数字签名——设计与实现:盲签名方案基于整数分解难题的盲签名——RSA盲数字签名参数选择选择两个满足需要的大素数p和q,计算n=p×q,(n)=(p-1)×(q-1),其中φ(n)是n的欧拉函数值选一个整数e,满足1<e<φ(n),且gcd(φ(n),e)=1。通过d×e≡1modφ(n),计算出d以{e,n}为公开密钥,{d,n}为秘密密钥。选择平安的单向hash函数h(·)这里Bob作为签名者,那么Bob知道秘密密钥{d,n};所有人都知道公开密钥{e,n}和算法中选择的hash函数h(·)特殊数字签名——设计与实现:盲签名方案基于整数分解难题的盲签名——RSA盲数字签名盲化过程设需要签名的消息为m,请求签名者Alice随机选择一个整数r作为盲化因子计算:α≡reh(m)modn发送α给签名者Bob签名过程

Bob在收到α后,计算

t≡αdmodn

,然后把t发送给Alice脱盲过程

Alice接收到t后,计算s≡t·r-1modn.就得到了消息m

的签名(m,s)验证过程通过如下计算,任何人都可以验证签名的有效性:se≡h(m)modn?假设成立,那么发送方的签名有效t是Bob对盲消息a的签名s是Alice在Bob对盲消息a的签名根底计算m的签名特殊数字签名——设计与实现:盲签名方案体会一下这个RSA盲签名方案:签名者看到的信息是α,根据α,e,n,签名者显然不能计算出h(m)来,因为还有一个变量r〔盲化因子〕,即所签消息的内容对签名人是盲的,即签名人Bob签名时不能看见消息的具体内容在Alice得到Bob的签名后,Bob即使看到了自己的签名(m,s),仍然不能把它与签名时的α联系起来,即盲签名的第二个性质,不可追踪性特殊数字签名——设计与实现:多重签名多重数字签名的目的是将多个人的数字签名汇总成一个签名数据进行传送,签名收方只需验证一个签名便可确认多个人的签名。设U1,U2,…,Un为n个签名者,他们的密钥分别为xi,相应的公钥为yi=gximodp〔i=1,2,…,n〕他们所形成的对消息m的n个签名分别为〔ri,si〕,其中:ri=gkimodp和si=xim+kirmodp-1(i=1,2,…,)这里,形成的签名〔ri,si〕满足方程由此可以看出,无论签名人有多少,多重签名并没有过多地增加签名验证人的负担多重签名在办公自动化、电子金融和CA认证等方面有重要的应用特殊数字签名——应用例子:双重数字签名在电子商务应用中,参与方为:持卡人、商户和结算银行持卡人客户:登录商户网站,提出申请购物时,向商户提出两组信息:向商户直接提出订购信息OI(OrderInformation),同时还必须向银行提出付款信息PI(PaymentInstruction),以便授权银行付款持卡人的订单信息和付款指示是互相对应的处理过程客户要求:不希望商户知道自己的银行支付帐号的有关信息也不希望银行方面知道具体的购物内容,只需按金额贷记或借记帐户就可特殊数字签名——应用例子:双重数字签名商家:只有在确认了持卡人的订单信息对应的付款指示是真实有效的情况下,才可能按订单信息发货银行:只有在确认了持卡人的付款指示对应的订单信息是真实有效的情况下,才可能按商家要求进行支付授权订单信息OI和付款指示PI必须捆绑在一起发送给商家和银行特殊数字签名——应用例子:双重数字签名为了预防商家在验证持卡人付款指示PI时盗用持卡人的信用卡帐号等信息,以及银行在验证持卡人订单信息OI时,而跟踪持卡人的交易活动(侵犯持卡人的隐私)。为了保证持卡人的信用卡帐号等银行信息对商家隐蔽,也为了保证持卡人要购置的商品订单信息对银行隐蔽,在SET中采用了双重签名技术,它是SET推出的数字签名的新应用特殊数字签名——应用例子:双重数字签名持卡人不想让银行看到订单信息OI,也不想让商家看到付款指示PI信息。可是,购置请求报文中的购置订单信息OI和付款指示PI信息又不能分开。一个双重签名是通过计算两个消息的消息摘要产生的,并将两个摘要连接在一起,用持卡人的私有密钥对消息摘要加密。双重签名的产生过程如下图特殊数字签名——应用例子:双重数字签名持卡者实现过程特殊数字签名——应用例子:双重数字签名特殊数字签名——应用例子:双重数字签名双重签名的产生过程:1.持卡人产生订单信息OI和付款指示PI的消息摘要H(OI)和H(PI)2.连接消息摘要H(OI)和H(PI)得到消息OP;3.生成OP的消息摘要H(OP);4.用持卡人的私有密钥加密H(OP)得到双重签名Sign(H(OP)),持卡人将双重签名Sign(H(OP))包含在消息中以保证接收者能够验证。持卡人发送给商家的消息为(OI,H(PI),Sign(H(OP)),即:订单信息,付款指示摘要和双重签名;持卡人发送给银行的消息为(PI,H(OI),Sign(H(OP)),即:付款指示,订单消息摘要和双重签名特殊数字签名——应用例子:双重数字签名商户实现过程特殊数字签名——应用例子:双重数字签名特殊数字签名——应用例子:双重数字签名银行实现过程特殊数字签名——应用例子:双重数字签名特殊数字签名——应用例子:双重数字签名商家所能看到的信息有:订单信息OI、付款指示PI的消息摘要H(PI)、订单信息OI和付款指示PI的双重签名Sign(H(OP))银行所能看到的信息有:付款指示PI、订单信息OI的消息摘要H(OI)、订单信息OI和付款指示PI的双重签名Sign(H(OP))特殊数字签名——应用例子:双重数字签名在平安交易过程中,持卡人只与商家打交道。付款指示PI由持卡人发送给商家,再由商家转发给支付网关,付款指示PI由持卡人使用支付网关的公钥加密,只有支付网关才能用自己的私钥解密。为了便于商家验证

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论