第6章-数据的完整性保护..ppt_第1页
第6章-数据的完整性保护..ppt_第2页
第6章-数据的完整性保护..ppt_第3页
第6章-数据的完整性保护..ppt_第4页
第6章-数据的完整性保护..ppt_第5页
免费预览已结束,剩余42页可下载查看

下载本文档

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

文档简介

,第6章数据的完整性保护,指导教师:李云亮,本章要求,数据完整性保护技术,包括信息摘录技术和数字签名技术了解信息摘录技术的安全散列标准SHS了解数字签名技术的一般概念和常见的数字签名技术掌握数字签名标准DSS,计算机网络系统,引入,储存状态-静态用户数据和系统数据系统的工作主要依赖于储存状态的数据数据系统级的完整性保护较少,数据,传输状态-动态用户数据系统的工作不依赖于传输状态的数据由网络传输机制提供完整性保护,储存状态数据完整性,保证储存状态数据的完整性,可以采取管理方面和技术方面的措施。,口令机制资源访问机制,数据校验技术可以对要保护的数据按照一定的规则产生一些校验码,并且把这些校验友码记录下来。数据校验技术即完整性检查数据校验的要求1.校验码会随数据块的变化而变化2.根据校验码很难还原出原始数据,本章主要内容,6.1信息摘要技术6.2数字签名,6.1信息摘要技术,6.1.1信息摘要技术基本原理6.1.2MD5算法6.1.3安全散列标准6.1.4HMAC,6.1.1信息摘要技术基本原理,杂凑函数H是一公开函数,用于将任意长的消息M映射为较短的、固定长度的一个值H(M),作为认证符,称函数值H(M)为杂凑值、杂凑码或消息摘要。简单的说,hash函数就是把任意长的输入字符串变化成固定长的输出字符串的一种函数。通俗得说,hash函数用来生成信息的摘要。输出字符串的长度称为hash函数的位数。在信息安全技术中,散列(Hash)函数提供了验证消息的完整性这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的“散列”或“信息摘要”(Messagedigest)。,目前应用最为广泛的hash函数是SHA-1和MD5,大多是128位和更长,hash函数在现实生活中应用十分广泛。很多下载网站都提供下载文件的MD5码校验,可以用来判别文件是否完整。另外,比如在WordPress的数据库,所有密码都是保存的MD5码,这样即使数据库的管理员也无法知道用户的原始密码,避免隐私泄露(很多人在不同地方都是用的同一个密码)。如果两个输入串的hash函数的值一样,则称这两个串是一个碰撞(Collision)。既然是把任意长度的字符串变成固定长度的字符串,所以,必有一个输出串对应无穷多个输入串,碰撞是必然存在的。一个“优良”的hash函数f应当满足以下三个条件:1.任意y,找x,使得f(x)=y,非常困难。2.给定x1,找x2,使得f(x1)=f(x2),非常困难。3.找x1,x2,使得f(x1)=f(x2),非常困难。上面的“非常困难”的意思是除了枚举外不可能有别的更快的方法。比如第3条,根据生日定理,要想找到这样的x1,x2,理论上需要大约2(n/2)的枚举次数。,名称:HashFunction、哈希函数、单向杂凑函数、数据(消息)摘要函数单向散列函数H(M)作用于一任意长度的消息M,它返回一固定长度的散列值h:h=H(M)单向散列函数的特性:,给定M,很容易计算h。给定h,根据h=H(M)计算M很难。给定M,要找到另一消息M,并满足H(M)=H(M)很难。,单向散列函数的重要之处就是赋予M唯一的“指纹”。密码学上常用的单向散列函数有RSA公司MD系列中的MD2、MD4、MD5,美国NIST的SHA、SHA-1,欧盟RIPE项目的RIPEMD、RIPEMD-128、RIPEMD-160等。,6.1.2MD5算法,MD系列单向散列函数是RonRivest设计的,包括MD2、MD4和MD5。MD表示消息摘要(MessageDigest)MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。算法的输出由四个32位分组组成,将它们级联形成一个128位散列值。即产生128位的消息摘要MD5的特点:基本思想与MD4相同:相同的信息块长度,相同的信息摘录初值,相同的填充比MD4更安全,但效率更低MD5的安全性弱点在于其压缩函数的冲突已经被找到。1995年有论文指出,花费1,000万美元,设计寻找冲突的特制硬件设备,平均在24天内可以找出一个MD5的冲突。,MD5算法描述:假设有一个b位长度的输入信号,希望产生它的报文摘要,此处b是一个非负整数,b也可能是0,不一定必须是8的整数倍,它可能是任意大的长度(1)补位:MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果是448。即数据扩展至K*512+448位。即K*64+56个字节,K为整数。补位操作始终要执行,即使数据长度LEN对512求余的结果已是448。具体补位操作:补一个1,然后补0至满足上述要求。总共最少要补一位,最多补512位。(2)补数据长度用一个64位的数字表示数据的原始长度b,把b用两个32位数表示。那么只取B的低64位。当遇到b大于264这种极少遇到的情况时,这时,数据就被填补成长度为512位的倍数。也就是说,此时的数据长度是16个字(32位)的整数倍数,(3)初始化MD缓冲器用一个四个字的缓冲器(A,B,C,D)来计算报文摘要,A,B,C,D分别是32位的寄存器,初始化使用的是十六进制表示的数字A=0X01234567B=0X89abcdefC=0Xfedcba98D=0X76543210,(4)处理位操作函数首先定义4个辅助函数,每个函数的输入是三个32位的字,输出是一个32位的字。X,Y,Z为32位整数。F(X,Y,Z)=XYvnot(X)ZG(X,Y,Z)=XZvYnot(Z)H(X,Y,Z)=XxorYxorZI(X,Y,Z)=Yxor(Xvnot(Z),(5)输出结果报文摘要的产生后的形式为:A,B,C,D。也就是低位字节A开始,高位字节D结束。,报文摘要实现示意图,6.1.3安全散列标准,安全散列标准SHA(SecureHashAlgorithm)算法由NIST开发,并在1993年作为联邦信息处理标准公布。在1995年公布了其改进版本SHA-1SHA与MD5的设计原理类似,同样也按512位数据块为单位来处理输入,但它产生160位的消息摘要,具有比MD5更强的安全性,SHA基本思想,(1)输入要求小于264,输出为160比特(5个字,分别记为A、B、C、D、E)(2)将输入信息分成若干个512比特定长块(3)每一块与当前的信息摘要值结合,产生信息摘要的下一个中间结果,直至处理完毕(4)每一个信息块使用5遍扫描处理(5)填充方式与MD4相同,将输入信息填充为512比特的整数倍(6)效率略低于MD5,但强度略高,SHA基本算法,对消息填充与MD5的步骤完全相同附加消息的长度与MD5的步骤类似,不同之处在于以big-endian(大字节序,高字节)方式表示填充前消息的长度。即步骤留出的64比特当作64比特长的无符号整数对MD缓冲区初始化算法使用160比特长的缓冲区存储中间结果和最终杂凑值,缓冲区可表示为5个32比特长的寄存器(A,B,C,D,E),每个寄存器都以big-endian方式存储数据,其初始值分别为A=67452301,B=EFCDAB89,C=98BADCFB,D=10325476,E=C3D2E1F0以分组为单位对消息进行处理每一分组Yq都经一压缩函数处理,压缩函数由4轮处理过程构成,每一轮又由20步迭代组成。4轮处理过程结构一样,但所用的基本逻辑函数不同,分别表示为f1,f2,f3,f4。每轮的输入为当前处理的消息分组Yq和缓冲区的当前值A,B,C,D,E,输出仍放在缓冲区以替代A,B,C,D,E的旧值,每轮处理过程还需加上一个加法常量Kt,其中0t79表示迭代的步数。80个常量中实际上只有4个不同取值。Wt是由当前512比特分组导出的一个32比特字输出消息的L个分组都被处理完后,最后一个分组的输出即为160比特的消息摘要,SHA分组处理框图,SHA与MD5的比较,(1)抗穷搜索攻击的强度由于SHA和MD5的消息摘要长度分别为160和128,所以用穷搜索攻击寻找具有给定消息摘要的消息分别需做O(2160)和O(2128)次运算,而用穷搜索攻击找出具有相同消息摘要的两个不同消息分别需做O(280)和O(264)次运算。因此SHA抗击穷搜索攻击的强度高于MD5抗击穷搜索攻击的强度(2)抗击密码分析攻击的强度由于SHA的设计准则未被公开,所以它抗击密码分析攻击的强度较难判断,似乎高于MD5的强度,(3)速度由于两个算法的主要运算都是模232加法,因此都易于在32位结构上实现。但比较起来,SHA的迭代步数(80步)多于MD5的迭代步数(64步),所用的缓冲区(160比特)大于MD5使用的缓冲区(128比特),因此在相同硬件上实现时,SHA的速度要比MD5的速度慢。(4)简洁与紧致性两个算法描述起来都较为简单,实现起来也较为简单,都不需要大的程序和代换表(5)数据的存储方式MD5使用little-endian方式,SHA使用big-endian方式。两种方式相比看不出哪个更具优势,之所以使用两种不同的存储方式是因为设计者最初实现各自的算法时,使用的机器的存储方式不同,6.1.4HMAC,数据认证算法反映了传统上构造MAC(-消息鉴别码MessageAuthenticationCode也叫密码校验和)最为普遍使用的方法,即基于分组密码的构造方法。但近年来研究构造MAC的兴趣已转移到基于密码杂凑函数的构造方法,因为:密码杂凑函数(如MD5、SHA)的软件实现快于分组密码(如DES)的软件实现;密码杂凑函数的库代码来源广泛;密码杂凑函数没有出口限制,而分组密码即使用于MAC也有出口限制。杂凑函数并不是为用于MAC而设计的,由于杂凑函数不使用密钥,因此不能直接用于MAC。目前已提出了很多将杂凑函数用于构造MAC的方法,其中HMAC就是其中之一,已作为RFC2104被公布,并在IPSec和其他网络协议(如SSL)中得以应用,RFC2104列举了HMAC的以下设计目标:可不经修改而使用现有的杂凑函数,特别是那些易于软件实现的、源代码可方便获取且免费使用的杂凑函数。其中镶嵌的杂凑函数可易于替换为更快或更安全的杂凑函数。保持镶嵌的杂凑函数的最初性能,不因用于HMAC而使其性能降低。以简单方式使用和处理密钥。在对镶嵌的杂凑函数合理假设的基础上,易于分析HMAC用于认证时的密码强度。,其中前两个目标是HMAC被公众普遍接受的主要原因,这两个目标是将杂凑函数当作一个黑盒使用,这种方式有两个优点:第一,杂凑函数的实现可作为实现HMAC的一个模块,这样一来,HMAC代码中很大一块就可事先准备好,无需修改就可使用;第二,如果HMAC要求使用更快或更安全的杂凑函数,则只需用新模块代替旧模块,例如用实现SHA的模块代替MD5的模块。最后一条设计目标则是HMAC优于其他基于杂凑函数的MAC的一个主要方面,HMAC在其镶嵌的杂凑函数具有合理密码强度的假设下,可证明是安全的,HMAC基本思想,利用对称密钥K和单向函数H生成信息鉴别码计算HMAC需要一个散列函数hash(可以是md5或者sha-1)和一个密钥key。用L表示hash函数输出字符串长(md5是16),用B表示数据块的长度(md5和sha-1的分割数据块长都是64)。密钥key的长度可以小于等于数据块长B,如果大于数据块长度,可以使用hash函数对key进行转换,结果就是一个L长的key。然后创建两个B长的不同字符串:innerpad=长度为B的036outterpad=长度为B的05C计算输入字符串str的HMAC:hash(keyoutterpad,hash(keyinnerpad,str),HMAC特点,(1)直接使用现有的单向函数,计算效率和安全强度依赖于所选用的单向函数,密钥和单向函数的管理比较简单;(2)密钥可以为任意长度。若超过信息块长度B,则首先使用H函数缩短至B。密钥长度K不应小于H函数的输出长度L;(3)计算效率较高,但预先计算的值需要像密钥那样保护得很好。,HMAC的安全性,基于密码杂凑函数构造的MAC的安全性取决于镶嵌的杂凑函数的安全性,而HMAC最吸引人的地方是它的设计者已经证明了算法的强度和嵌入的杂凑函数的强度之间的确切关系,证明了对HMAC的攻击等价于对内嵌杂凑函数的下述两种攻击之一:攻击者能够计算压缩函数的一个输出,即使IV是随机的和秘密的。攻击者能够找出杂凑函数的碰撞,即使IV是随机的和秘密的。,6.2数字签名,数字签字由公钥密码发展而来,它在网络安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有着重要应用,6.2.1数字签名的概念6.2.2基于公钥密码体制的数字签名6.2.3基于私钥密码体制的数字签名6.2.4数字签名标准DSS,6.2.1数字签名的概念,数字签名(DigitalSignature)可解决手写签名中的签字人否认签字或其他人伪造签字等问题。因此,被广泛用于银行的信用卡系统、电子商务系统、电子邮件以及其他需要验证、核对信息真伪的系统中。类似于手书签字,数字签字应具有以下性质:能够验证签字产生者的身份,以及产生签字的日期和时间。能用于证实被签消息的内容。数字签字可由第三方验证,从而能够解决通信双方的争议。,数字签字应满足的要求,签字的产生必须使用发方独有的一些信息以防伪造和否认。签字的产生应较为容易。签字的识别和验证应较为容易。对已知的数字签字构造一新的消息或对已知的消息构造一假冒的数字签字在计算上都是不可行的。,数字签名具有的功能,收方能够确认发方的签名,但不能伪造;发方发出签过名的信息后,不能再否认;收方对收到的签名信息也不能否认;一旦收发方出现争执,仲裁者可有充足的证据进行评判。,6.2.2基于公钥密码体制的数字签名,基于RSA的数字签名ElGamal数字签名Schnorr签字体制,基于RSA的数字签名,体制参数。选两个保密的大素数p和q,计算n=pq,(n)=(p-1)(q-1);选一整数e,满足1e(n),且gcd(n),e)=1;计算d,满足de1mod(n);以e,n为公开钥,d,n为秘密钥。签字过程。设消息为M,对其签字为SMdmodn验证过程。接收方在收到消息M和签字S后,验证MSemodn是否成立,若成立,则发送方的签字有效。,ElGamal数字签名,(1)体制参数p:大素数;g:Z*p的一个生成元;x:用户A的秘密钥,xRZ*p;y:用户A的公开钥,ygx(modp)。(2)签字的产生过程对于待签字的消息m,A执行以下步骤:计算m的杂凑值H(m)。选择随机数k:kZ*p,计算rgk(modp)。计算s(H(m)-xr)k-1(modp-1)。以(r,s)作为产生的数字签字。(3)签字验证过程接收方在收到消息m和数字签字(r,s)后,先计算H(m),并按下式验证:,Schnorr签字体制,(1)体制参数p:大素数,p2512;q:大素数,q|(p-1),q2160;g:gRZ*p,且gq1(modp);x:用户A的秘密钥,1xq;y:用户A的公开钥,ygx(modp)。(2)签字的产生过程对于待签字的消息m,A执行以下步骤:选择随机数k:1kq,计算rgk(modp)。计算e=H(r,m)。计算sxe+k(modq)。以(e,s)作为产生的数字签字。(3)签字验证过程接收方在收到消息m和数字签字(e,s)后,先计算rgsy-e(modp),然后计算H(r,m),并按下式验证,数字签名示意图,6.2.3基于私钥密码体制的数字签名,基于公钥算法数字签名的缺点是计算量很大,强度不如对称密钥算法。发送方A根据单钥加密算法以与接收方B共享的密钥K对消息M加密后的密文作为对M的数字签字发往B。该系统能向B保证所收到的消息的确来自A,因为只有A知道密钥K。再者B恢复出M后,可相信M未被篡改,因为敌手不知道K就不知如何通过修改密文而修改明文。具体来说,就是B执行解密运算Y=DK(X),如果X是合法消息M加密后

温馨提示

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

评论

0/150

提交评论