您好,欢迎访问三七文档
数字签名数字签名的基本概念数字签名是一种以电子形式给一个消息签名的方法。数字签名在ISO7498—2(Informationprocessingsystems)标准中定义为:“附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。数字签名主要用于对数字消息进行签名,以防消息的冒名伪造或篡改,也可以用于通信双方的身份鉴别。简单说,数字签名是个加密的过程,数字签名的验证是一个解密的过程。数字签名主要方法与功能数字签名是非对称密钥加密技术与数字摘要技术的应用,分为普通数字签名和特殊数字签名。普通数字签名有RSA、EIGamal、Schnorr、椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有不可否认签名、门限签名、盲签名、代理签名等。主要功能:⑴确认信息是由签名者发送的;⑵确认消息自签名后到收到为止,未被修改过;⑶签名者无法否认签名是由自己发送的。RSA数字签名简介RSA数字签名是基于RSA公钥密码体制的签名方案。RSA公钥加密算法是一种非对称加密技术,是于1977年由RonRivest、AdiShamirh和LenAdleman在MIT开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。注:ISO全称为InternationalStandardOrganized(国际标准化组织)国际标准化组织(ISO)是由各国标准化团体(ISO成员团体)组成的世界性的联合会。制定国际标准工作通常由ISO的技术委员会完成。中国是ISO的正式成员,代表中国的组织为中国国家标准化管理委员会(StandardizationAdministrationofChina,简称SAC)。1、为什么用摘要算法(Hash算法)将报文明文转化为明文摘要?2、RSA算法是怎样实现的?3、验证接收方所进行的数字签名的验证是发送方进行的的数字签名的逆变换。问题一在RSA数字签名方案中,每次只能对一定长度的消息进行签名,而实际要签名的消息可能比较长,在这种情况下,只能先对消息进行分组,然后对每组消息进行签名。这样会使签名变长,签名速度变慢。而使用Hash函数先对消息进行变换,然后对变换的消息进行签名可以克服以上的不足。Hash函数简介Hash函数又称杂凑函数,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。设计杂凑函数的基本方法有:(1)利用某些数学难题例如因子分解问题、离散对数问题等设计杂凑函数。(2)利用某些私钥密码体制设计杂凑函数。(3)直接设计杂凑函数。这类算法不基于任何假设和密码体制。这种方法受到人们的广泛关注和青睐,是当今比较流行的一种设计方法。美国的安全杂凑算法(SHA)就是这类算法,此类算法还有MD4、MD5、MD2、HAVAL等。预备知识定义:设n为一个正整数,定义={}为Euler函数。为小于n且与n互素的非负整数的个数。如果p是一个素数,则=p-1。定理:如果和互素,则=定理(Euler定理)设和n都是正整数,如果gcd(,n)=1,则()n|01,gcd(,)1xxnxn()n()pxx()1(mod)nnx1n2n12()nn1()n2()n预备知识RSA公钥密码体制算法⑴秘密地选取两个大素数p和q。⑵计算n=p*q,。公开n,保密⑶随机地选取正整数1<e<,满足gcd(e,)=1e为公开的密钥。⑷计算d,满足d*e=1(mod())。d为保密的解密密钥。⑸加密变换:对明文m∈,则密文为c=modn(6)解密变换:对密文c∈,明文为m=modn()(1)(1)npq()n()n()n()nnzemnzdc问题二RSA数字签名算法的实现:⑴秘密地选取两个大素数p和q。⑵计算n=p*q,。公开n,保密⑶随机地选取正整数1<e<,满足gcd(e,)=1e为公开的密钥。⑷计算d,满足d*e=1(mod())。d为保密的密钥。⑸签名变换:对于消息m∈,签名为Sig(m)=modn。⑹签名验证:对于m,s∈,如果m=modn,则认为s为消息m的有效签名。()(1)(1)npq()n()n()n()nnzdmnzes举例:利用RSA数字签名算法对消息m=2进行数字签名问题三证明要证结论,只需证由于则存在t≥1,满足对所有消息m∈,当gcd(m,n)=1时,根据Euler定理有当gcd(m,n)≠1时,由于n=pq且p、q均为素数,则gcd(m,n)一定为p或q,不妨设gcd(m,n)=p,则m为p的倍数,设m=ip,1≤i≤q则m、q互素,则由Euler定理有即则即则存在一个整数j,使得用m=ip乘以上式两端,有则综上,mod)(edmnm1(mod())den()1detnnz()1()(mod)()(mod)(mod)(mod))1(etntntdnmnmnmnmmm()1(mod)qqm11(mod)qqm(1)11(mod)()tpqqm()1(mod)tnqm()1tnjqm()1tnmijnm()1(mod)tnmnmmod)(edmnmElGamal数字签名ElGamal签名方案是由T.ElGamal于1985年提出的,其安全性主要基于有限域上离散对数问题的难解性。它是ElGamal公钥密码体制的直接应用。ElGamal的密钥和参数的产生过程如下:它先选定一个足够大的素数,然后在比小的正数中选取一个随机数g和随机数x,并且计算出y=(mod)。然后,{y,g,}作为公钥,而x则作为保密认证的私钥。如果你想获取他人的私人信息,那么,你就必须在已知{y,g,}的情况下计算出x(当然,如果要获得明文,还必须攻破或获取签名时使用的Hash函数)。ppppxgpDSA数字签名1991年8月,美国国家标准技术研究所提出了数字签名算法DSA(DSA-DigitalSignatureAlgorithm),用于其数字签名标准DSS(DigitalSignatureStandard)。DSA的安全性主要依赖于有限域上离散对数问题的难解性,是ElGamal签名算法的变种。ElGamal数字签名方法和数字签名算法DSA都是典型的基于有限域上离散对数问题的数字签名方案。利用有限域上对数问题的难解性可以设计出许多种不同的数字签名方法。不可否认签名不可否认签名是由Chaum和VanAntwerPen在1989年引入的它的基本思想是,对一个消息签名必须有签名者的合作才能验证这个签名是否合法,这样可以防止未经签名者的同意就复制其签名文件并进行电子分发的可能性。验证是通过询问和应答协议来完成的,同时还要防止签名者否认对这个消息的签名。因此,一个不可否认签名包括三个方面:签名算法、验证协议、否认协议。门限数字签名门限数字签名体制是面向组织或团体的数那就拿字签名体制,能解决如何由集体而非个人进行数字签名的问题,是数字签名体制研究的一个重要分支,它的研究对计算机网络安全的发展和完善具有重要意义。门限数字签名体制具有很强的安全性,它可以有效防止以下四种情况:⑴防止非法用户进行有效地数字签名⑵防止少于k个合法参与者进行有效地数字签名⑶防止签名执行者单独进行有效的数字签名⑷防止合法参与者进行假“部分签名”以阻止签名参考文献【1】田丽华《信息论、编码与密码学》西安电子科技大学出版社【2】沈连丰、叶芝慧等著《信息论与编码》科学出版社【3】谢谢!
本文标题:92数字签名
链接地址:https://www.777doc.com/doc-3278571 .html