您好,欢迎访问三七文档
数字签名技术及应用数字签名的原理数字签名技术数字签名的应用数字签名的立法数字签名的引入---网络传经我要接受来自黄裳的九阴真经安全的要求:我能确保经文来自黄裳我能确保经文在因特网上传输没有别人能够看到经文,因为那是发送给我的,这样就防止了经文被窃黄裳事后不能否认发送了经文给我发送过程把九阴真经发给我解决方法发信息的人用自己的私钥对所发信息进行加密(Encryption)接收信息者用发信者的公钥来解密(Decryption)可以保证信息的真实性、完整性和不可否认性。问题还没解决要发的信息可能很长,非对称密码又比较复杂,运算量大。私钥通常保存在USBKey或IC卡中,加密运算也是在Key或卡中进行加密所用的时间就会很长而导致无法实用黑客用自己的私钥加密葵花宝典用它替换掉黄裳给我的经文并发给我我需要以某种方式来认证该经文的确来自黄裳并且没有被黑客修改或者替换哈希函数·1.什么是哈希函数哈希(Hash)函数在中文中有很多译名,有些人根据Hash的英文原意译为“散列函数”或“杂凑函数”,有些人干脆把它音译为“哈希函数”,还有些人根据Hash函数的功能译为“压缩函数”、“消息摘要函数”、“指纹函数”、“单向散列函数”等等。Hash算法是把任意长度的输入数据经过算法压缩,输出一个尺寸小了很多的固定长度的数据,即哈希值。哈希值也称为输入数据的数字指纹(DigitalFingerprint)或消息摘要(MessageDigest)等。Hash函数具备以下的性质:1给定输入数据,很容易计算出它的哈希值;2反过来,给定哈希值,倒推出输入数据则很难,计算上不可行。这就是哈希函数的单向性,在技术上称为抗原像攻击性;4、给定哈希值,想要找出能够产生同样的哈希值的两个不同的输入数据,(这种情况称为碰撞,Collision),这很难,计算上不可行,在技术上称为抗碰撞攻击性;5、哈希值不表达任何关于输入数据的信息。哈希函数用于消息验证密码学中使用的哈希算法都被设计为具有某些特殊的性质:你无法反向执行哈希算法来恢复出哪怕是一点儿最初的明文。得到的摘要不会告诉你任何关于最初明文的信息。创建/发现哈希值为某个特定值的明文,这在计算上是不可行的。这使得攻击者无法在替换文件的同时确保哈希值仍然匹配。解答:哈希函数+数字签名黄裳用哈希算法生成九阴真经的摘要,用自己的私钥加密摘要把加密的摘要和九阴真经(明文)发给我用黄裳的公钥解密摘要,恢复摘要对收到九阴真经采用相同算法创建一个新摘要比较两个摘要:如果摘要匹配,发送者是作者;明文在发送过程中没有被改动。数字签名及验证过程发信者在发信前使用哈希算法求出待发信息的数字摘要,然后用私钥对这个数字摘要,而不是待发信息本身,进行加密而形成一段信息,这段信息称为数字签名。发信时将这个数字签名信息附在待发信息后面,一起发送过去。收信者收到信息后,一方面用发信者的公钥对数字签名解密,得到一个摘要H;另一方面把收到的信息本身用哈希算法求出另一个摘要H’,再把H和H’相比较,看看两者是否相同。根据哈希函数的特性,我们可以让简短的摘要来“代表”信息本身,如果两个摘要H和H’完全符合,证明信息是完整的;如果不符合,就说明信息被人篡改了。哈希函数的安全性直接关系到数字签名的安全性,如果哈希函数被攻破,数字签名的有效性就会受到质疑。目前,已经发明的Hash函数有多种,如Snefru、N-Hash、LOKI、AR、GOST、MD、SHA等。它们在数学上实现的方法各有不同,安全性也各有不同。目前比较常用的Hash函数是MD5和SHA-1。但是,任何一种算法都有其漏洞和局限性。任何一个哈希函数都会存在碰撞——即在一些特定情况下,两个不同的文件或信息会指向同一个数字摘要。在一般情况下,类似碰撞只能尽可能地减少,而不能完全避免。从理论上讲,没有攻不破的密码。随着密码科学的发展,也许会找到攻破某一种密码算法的途径。数字签名的产生政治、军事、外交等领域的文件、命令和条约,商业中的契约,以及个人之间的书信等,传统上都采用手书签名或印章,以便在法律上能认证、核准和生效。随着计算机通信网的发展,人们希望通过电子设备实现快速、远距离的交易,数字(或电子)签名法便应运而生,并开始用于商业通信系统,如电子邮递、电子转账和办公自动化等系统中。数字签名的要求类似于手书签名,数字鉴名也应满足以下要求:(1)收方能够确认或证实发方的签名,但不能伪造。(2)发方发出签名的消息送收方后,就不能再否认他所签发的消息:(3)收方对已收到的签名消息不能否认,即有收到认证。(4)第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。数字签名与手书签名的区别数字签名与手书签名的区别在于,手书签名是模拟的,且因人而异。数字签名是0和1的数字串,因消息而异。数字签名与消息认证的区别在于,消息认证使收方能验证消息发送者及所发消息内容是否被纂改过。当收发者之间没有利害冲突时,这对于防止第三者的破坏来说是足够了。但当收者和发者之间有利害冲突时,单纯用消息认证技术就无法解决他们之间的纠纷,此时须借助满足前述要求的数字签名技术数字签名的分类数字签名有两种(1)一种是对整个消息的签名(2)一种是对压缩消息的签名它们都是附加在被签名消息之后或某一特定位置上的一段签名图样。数字签名的分类若按明、密文的对应关系划分,每一种又可分为两个子类(1)一类是确定性数字签名。其明文与密文一一对应,它对一特定消息的签名不变化(使用签名者的密钥签名),如RSA、ElGamal等签名。(2)另一类是随机化的或概率式数字签名。它对同一消息的签名是随机变化的,取决于签名算法中的随机参数和取值。数字签名的使用模式智慧卡像信用卡的磁卡,存储有用户的数字签名信息密码式用户自己设定密码,由特定的设备写入计算机生物测定以使用者的身体特征为基础,用特殊的设备对使用者的指纹、面部、视网膜或眼球进行数字识别,从而确定对象是否与原使用者相同。签名体制一个签名体制一般含两个组成部分.即签名算法和验证算法。对M的签名可简记有时为了说明密钥k在签名中的作用,也可以将签名写成对s的证实简记为Ver(s0)={真,伪}={0,1}。签名算法或签名密钥是秘密的,只有签名人掌握。证实算法应当公开,以便于他人进行验证。sMSig)(),(kMSig数字签名与加密的区别消息签名与消息加密有所不同,消息加密和解密可能是一次性的,它要求在解密之前是安全的。而一个签名的消息可能作为一个法律上的文件(如合同等),很可能在对消息签署多年之后才验证其签名,且可能需要多次验征此签名。因此,签名的安全性和防伪造的要求会更高,且要求证实速度比签名速度要快些。特别是联机在线时进行实时验证。使用数字签名随着计算机网络的发展,过去依赖于手书签名的各种业务都可用这种电子化的数字签名代替。它是实现电子贸易,电子支票、电子货币、电子出版及知识产权保护等系统安全的重要保证数字签名已经并将继续对人们如何共享和处理网络上信息以及事务处理产生巨大的影响。为电子形式为文档附上电子时间标签。使用电子汇款系统的人可以利用电子鉴名数字签名的使用已延伸到保护数据库的应用中4.2RSA签名安全参数:令n=qp,p和q是大素数,选e并计算出d,使,公开n和e,将p、q和d保密。则所有的RSA参数为。数字签名:对消息M属于Z,定义对M的签名:签名验证:对给定的M,S可按下式验证:设,如果M’=M,则签名为真,否则,不接受签名。)1)(1mod(1qped),,,,(deqpnKnSMemod'nMMSigSmod)(d4.2RSA签名RSA是是完整的加密系统,它支持公钥/私钥对的生成、加密以及数字签名。Carol为了机密消息以发送给Bob,Bob首先生成一个密钥对,并和Carol共享公钥。公钥由两个数字组成:模数n和公共指数e。私钥也由两个数字组成:相同的模数n和私有指数d。通过随机选择两个大的质数p和q,并把他们一起相乘,就可以创建模数。4.2RSA签名所选择的指数e必须与(p-1)和(q-1)互质(也就是说,e与(p-1)和(q-1)这个数必须不具有相同的因数。质数d必须满足等式d*emod[(p-1)(q-1)]=1。然后,如果Carol的明文是M,那么,他就能够通过计算C=Memodn把它加密成密文C。Bob通过计算M=Cdmodn就可以恢复明文。4.2RSA签名第一步Bob选择大的质数p和q,并使他们相乘,从而得到n;第二步Bob选择一个公共质数e,它与(p-1)(q-1)是互质数;第三步Bob计算私有质数d=e-1mod[(p-1)(q-1)];第四步Bob与Carol共享公钥,数字n和e;第五步Bob使用C=Memodn把M加密成C,并把C发送给Bob;第六步Bob使用M=Cdmodn把C解密成M4.2RSA签名这里有一个RSA加密的示例,同样为了简洁起见,在这个例子中使用的数字都很小。Bob选择了质数p=5和q=11,然后把这两个数字相乘,从而得到模数n=55。Bob计算出f(n)=(p-1)*(q-1)=4*10=40Bob选择一个数字e,e与40是互质数。40的质因数是2、2、2、5和1,所以Bob选择的私有指数e=3。Bob选择了一个公共指数d=3(-1)mod40。这个模数反函数实际上是非常困难的,但是对于所用的这些小数字,可以看到27*3mod40=81mod40=1。所以d=27。6.2RSA签名现在Bob的公钥就是数对(3,55),其私钥就是数对(27,55)。Bob把自己的公钥发送给Carol。Carol的消息M=25。它把该消息加密成密文C=25的3次幂mod55=15625mod55=5。Carol把结果发送给Bob。Bob使用M=5的27次幂mod55=7450580596923828125mod55=25对密文进行解密,这就是Carol的原始消息。4.3ElGamal签名该体制由T.ElGamal在1985年给出。其修正形式已被美国NIST作为数字签名标准(DSS),它是Rabin体制的一种变型。此体制专门为签名用而设计,方案的安全性基于求离散对数的困难性。可以看出,它是一种非确定性的双钥体制,即对同一明文消息,由于随机参数选择的不同而有不同的签名。4.3ElGamal签名1.体制参数P:一个大素数,可使Zp,中求解离散对数为困难问题;g:是Zp中乘群Zpn的一个生成元或本原元素;M消息空间为为Zp*Zp-1;X:用户密钥,X属于Z,公钥为y=gxmodp安全参数为:k=(p,g,x,y),其中p,g,y为公钥,x为秘密钥。4.3ElGamal签名2.签名过程给定消息M,发送端用户进行下述工作(1)选择秘密随机数k属于Z;(2)计算压缩值H(M),并计算(3)将=(M,r,s)作为签名,将(M,r,s)pgrkmod)1mod())((1pkxrMHs),(kMSig6.3ElGamal签名3.验证过程收信人收到(M,r,s),先计算H(M),并按下式验证签名这是因为,由上式有故有在此方案中,对同一消息M,由于随机数K不同而有不同的签名(M,r,s)。pgryMHsrmod)(pgggryskrsskrxsrmod)()1mod()()(pMHskrxpgryMHsrmod)(6.4盲签名及其应用6.6.1盲消息签名6.6.2盲参数签名6.6.3弱盲签名6.4.4强盲签名
本文标题:数字签名技术与应用
链接地址:https://www.777doc.com/doc-1742832 .html