03 数字签名技术与应用_第1页
03 数字签名技术与应用_第2页
03 数字签名技术与应用_第3页
03 数字签名技术与应用_第4页
03 数字签名技术与应用_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

数字签名技术及应用数字签名的原理数字签名技术数字签名的应用数字签名的立法1数字签名的产生

政治、军事、外交等领域的文件、命令和条约,商业中的契约,以及个人之间的书信等,传统上都采用手书签名或印章,以便在法律上能认证、核准和生效。随着计算机通信网的发展,人们希望通过电子设备实现快速、远距离的交易,数字(或电子)签名法便应运而生,并开始用于商业通信系统,如电子邮递、电子转账和办公自动化等系统中。

2数字签名的引入---网络传经黄蓉要接受来自郭靖的九阴真经安全的要求:能确保经文来自郭靖能确保经文在因特网上传输没有别人能够看到经文,因为那是发送给黄蓉的,这样就防止了经文被窃郭靖事后不能否认发送了经文给黄蓉3发送过程把九阴真经发给黄蓉4数字签名的要求类似于手写签名,数字鉴名也应满足以下要求:(1)收方能够确认或证实发方的签名,但不能伪造。(2)发方发出签名的消息送收方后,就不能再否认他所签发的消息:(3)收方对已收到的签名消息不能否认,即有收到认证。(4)第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。5解决方法发信息的人用自己的私钥对所发信息进行加密(Encryption)接收信息者用发信者的公钥来解密(Decryption)可以保证信息的真实性、完整性和不可否认性。6但是问题还没完全解决要发的信息可能很长,非对称密码又比较复杂,运算量大。私钥通常保存在USBKey或IC卡中,加密运算也是在Key或卡中进行加密所用的时间就会很长而导致无法实用黑客用自己的私钥加密葵花宝典用它替换掉郭靖给黄蓉的经文并发给黄蓉黄蓉需要以某种方式来认证该经文的确来自郭靖并且没有被黑客修改或者替换7数字签名的分类数字签名有两种

(1)一种是对整个消息的签名(2)一种是对压缩消息的签名它们都是附加在被签名消息之后或某一特定位置上的一段签名图样。8数字签名的分类若按明、密文的对应关系划分,每一种又可分为两个子类(1)一类是确定性数字签名。其明文与密文一一对应,它对一特定消息的签名不变化(使用签名者的密钥签名),如RSA、ElGamal等签名。(2)另一类是随机化的或概率式数字签名。它对同一消息的签名是随机变化的,取决于签名算法中的随机参数和取值。9数字签名的使用模式智慧卡像信用卡的磁卡,存储有用户的数字签名信息密码式用户自己设定密码,由特定的设备写入计算机生物测定以使用者的身体特征为基础,用特殊的设备对使用者的指纹、面部、视网膜或眼球进行数字识别,从而确定对象是否与原使用者相同。10介绍两种应用于数字签名的算法RSA数字签名算法DSA数字签名算法11数字签名技术的原理数字签字系统试图保证以下两点:(1)文件内容没有被改动;(2)文件出自签字人之手或经过签字人批准(即签字没有被改动)。1.数字签字系统是公开密钥加密技术与报文分解函数(MDF)相结合的产物。报文分解函数是能把信息集合提炼为一个数字串的单向不可逆数学函数。首先,用报文分解函数把要签署的文件内容提炼为一个很长的数字,称为报文分解函数的值。签字人用公开密钥加密系统中的秘密钥匙来加密这个报文分解函数值,生成所谓的“数字签字”。该过程表示如下图所示。1213RSA签名安全参数:令n=qp,p和q是大素数,选e并计算出d,使

,公开n和e,将p、q和d保密。则所有的RSA参数为

。数字签名:对消息M属于Z,定义对M的签名:签名验证:对给定的M,S可按下式验证:设

,如果M’=M,则签名为真,否则,不接受签名。14RSA签名RSA是是完整的加密系统,它支持公钥/私钥对的生成、加密以及数字签名。Carol为了机密消息以发送给Bob,Bob首先生成一个密钥对,并和Carol共享公钥。公钥由两个数字组成:模数n和公共指数e。私钥也由两个数字组成:相同的模数n和私有指数d。通过随机选择两个大的质数p和q,并把他们一起相乘,就可以创建模数。15RSA签名所选择的指数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就可以恢复明文。16RSA签名第一步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解密成M17验证(鉴定)收件人在收到经数字签字的文件以后,对此数字签字进行鉴定:用签字人的公开钥匙来解开”数字签字”,获得报文分解函数值;重新计算文件的报文分解函数,比较其结果。如果完全相符,文件内容的完整性、正确性和签字的真实性都得到了保障。因为如果文件被改动,或者有人在没有秘密钥匙的情况下冒充签字,都将使数字签字的鉴定过程失败。该流程表示如下图:1819MD5MD表示信息摘要MessageDigestMD5是由RonRivest设计的专门用于加密处理的,并被广泛使用的Hash函数20数字签名及验证过程21哈希函数·1.什么是哈希函数

哈希(Hash)函数在中文中有很多译名,有些人根据Hash的英文原意译为“散列函数”或“杂凑函数”,有些人干脆把它音译为“哈希函数”,还有些人根据Hash函数的功能译为“压缩函数”、“消息摘要函数”、“指纹函数”、“单向散列函数”等等。

22Hash算法是把任意长度的输入数据经过算法压缩,输出一个尺寸小了很多的固定长度的数据,即哈希值。哈希值也称为输入数据的数字指纹(DigitalFingerprint)或消息摘要(MessageDigest)等。

Hash函数具备以下的性质:

1给定输入数据,很容易计算出它的哈希值;

2反过来,给定哈希值,倒推出输入数据则很难,计算上不可行。这就是哈希函数的单向性,在技术上称为抗原像攻击性;

23

4、给定哈希值,想要找出能够产生同样的哈希值的两个不同的输入数据,(这种情况称为碰撞,Collision),这很难,计算上不可行,在技术上称为抗碰撞攻击性;

5、哈希值不表达任何关于输入数据的信息。

24哈希函数用于消息验证25密码学中使用的哈希算法都被设计为具有某些特殊的性质:你无法反向执行哈希算法来恢复出哪怕是一点儿最初的明文。得到的摘要不会告诉你任何关于最初明文的信息。创建/发现哈希值为某个特定值的明文,这在计算上是不可行的。这使得攻击者无法在替换文件的同时确保哈希值仍然匹配。26HashFunctionHash函数:h=H(x),要求:可作用于任何尺寸数据且均产生定长输出H(x)能够快速计算单向性:给定h,找到x使h=H(x)在计算上不可行WeakCollisionResistence(WCR):

给定x,找到yx使H(x)=H(y)在计算上不可行StrongCollisionResistence(SCR):找到yx使H(x)=H(y)在计算上不可行27之前未解决的问题要发的信息可能很长,非对称密码又比较复杂,运算量大。私钥通常保存在USBKey或IC卡中,加密运算也是在Key或卡中进行加密所用的时间就会很长而导致无法实用黑客用自己的私钥加密葵花宝典用它替换掉郭靖给黄蓉的经文并发给黄蓉黄蓉需要以某种方式来认证该经文的确来自郭靖并且没有被黑客修改或者替换28解答:哈希函数+数字签名郭靖用哈希算法生成九阴真经的摘要,用自己的私钥加密摘要把加密的摘要和九阴真经(明文)发给黄蓉用郭靖的公钥解密摘要,恢复摘要对收到九阴真经采用相同算法创建一个新摘要比较两个摘要:如果摘要匹配,发送者是作者;明文在发送过程中没有被改动。29DSA数字签名1991年8月美国国家标准局(NIST)公布了数字签名标准(DigitalSignatureStandard,DSS)。此标准采用的算法称为数字签名算法(DigitalSignatureAlgorithm,DSA),它作为ElGamal和Schnorr签名算法的变种,其安全性基于离散对数难题;并且采用了Schnorr系统中,g为非本原元的做法,以降低其签名文件的长度。方案包括初始过程、签名过程和验证过程。301.初始过程(1)系统参数:大素数p,q且q为p-1的因子,并满足2511<p<21024,2159<q<2160,以确保在Zp中求解离散对数的困难性;g∈Zp,且满足g

=h(p-1)/qmodp,其中h是一整数,1<h<p-1且h(p-1)/qmodp>1。p,q,g作为系统参数,供所有用户使用,在系统内公开。(2)用户私钥:用户选取一个私钥x,1<x<q,保密。(3)用户公钥:用户的公钥y,y=gxmodp,公开。312.签名过程对待签消息m,设0<m<p。签名过程如下:(1)生成一随机整数k,k∈Zp*;(2)计算r=(gkmodp)modq;(3)计算s=k-1(h(m)+xr)modq。则(r,s)为签名人对m的签名。3.验证过程(1)首先检查r和s是否属于[0,q],若不是,则(r,s)不是签名;(2)计算t=s-1modq,r’=(gh(m)tmodqyrtmodqmodp)modq;(3)比较r’=r是否成立?若成立,则(r,s)为合法签名。则(r,s)为签名人对m的签名32签名体制一个签名体制一般含两个组成部分.即签名算法和验证算法。对M的签名可简记有时为了说明密钥k在签名中的作用,也可以将签名写成对s的证实简记为Ver(s0)={真,伪}={0,1}。签名算法或签名密钥是秘密的,只有签名人掌握。证实算法应当公开,以便于他人进行验证。33发信者在发信前使用哈希算法求出待发信息的数字摘要,然后用私钥对这个数字摘要,而不是待发信息本身,进行加密而形成一段信息,这段信息称为数字签名。发信时将这个数字签名信息附在待发信息后面,一起发送过去。收信者收到信息后,一方面用发信者的公钥对数字签名解密,得到一个摘要H;另一方面把收到的信息本身用哈希算法求出另一个摘要H’,再把H和H’相比较,看看两者是否相同。34根据哈希函数的特性,我们可以让简短的摘要来“代表”信息本身,如果两个摘要H和H’完全符合,证明信息是完整的;如果不符合,就说明信息被人篡改了。哈希函数的安全性直接关系到数字签名的安全性,如果哈希函数被攻破,数字签名的有效性就会受到质疑。35目前,已经发明的Hash函数有多种,如Snefru、N-Hash、LOKI、AR、GOST、MD、SHA等。它们在数学上实现的方法各有不同,安全性也各有不同。目前比较常用的Hash函数是MD5和SHA-1。36

但是,任何一种算法都有其漏洞和局限性。任何一个哈希函数都会存在碰撞——即在一些特定情况下,两个不同的文件或信息会指向同一个数字摘要。在一般情况下,类似碰撞只能尽可能地减少,而不能完全避免。从理论上讲,没有攻不破的密码。随着密码科学的发展,也许会找到攻破某一种密码算法的途径。

37数字签名与加密的区别消息签名与消息加密有所不同,消息加密和解密可能是一次性的,它要求在解密之前是安全的。而一个签名的消息可能作为一个法律上的文件(如合同等),很可能在对消息签署多年之后才验证其签名,且可能需要多次验征此签名。因此,签名的安全性和防伪造的要求会更高,且要求证实速度比签名速度要快些。特别是联机在线时进行实时验证。38加密软件PGPPrettyGoodPrivacy一种在信息安全传输领域首选的加密软件,其技术特性是采用了非对称的“公钥”和“私钥”加密体系。由于美国对信息加密产品有严格的法律约束,特别是对向美国、加拿大之外国家散播该类信息,以及出售、发布该类软件约束更为严格。因此而限制了PGP的一些发展和普及,现在该软件的主要使用对象为情报机构、政府机构、信息安全工作者(例如较有水平的安全专家和有一定资历的黑客),PGP最初的设计主要是用于邮件加密,如今已经发展到了可以加密整个硬盘、分区、文件、文件夹、集成进邮件软件进行邮件加密,甚至可以对ICQ的聊天信息实时加密!你和对方只要安装了PGP,就可利用其ICQ加密组件在你和对方聊天的同时,加密或解密,和正常使用没有什么差别,最大程度的保证了你和对方的聊天信息不被窃取或监视。(当然,PGP无法防止你身后有人偷看:D)

391.PGP原理PGP是基于RAS算法:“大质

温馨提示

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

评论

0/150

提交评论