第6章-数据的完整性保护.

上传人:沈*** 文档编号:158815063 上传时间:2022-10-06 格式:PPT 页数:47 大小:885KB
返回 下载 相关 举报
第6章-数据的完整性保护._第1页
第1页 / 共47页
第6章-数据的完整性保护._第2页
第2页 / 共47页
第6章-数据的完整性保护._第3页
第3页 / 共47页
点击查看更多>>
资源描述
第第6章章 数据的完整性保护数据的完整性保护指导教师:李云亮指导教师:李云亮本章要求 数据完整性保护技术,包括信息摘录技术和数字签名技术 了解信息摘录技术的安全散列标准SHS 了解数字签名技术的一般概念和常见的数字签名技术 掌握数字签名标准DSS 计算机网络系统引 入储存状态-静态用户数据和系统数据系统的工作主要依赖于储存状态的数据数据系统级的完整性保护较少数数 据据传输状态-动态用户数据系统的工作不依赖于传输状态的数据由网络传输机制提供完整性保护 储存状态数据完整性保证储存状态数据的完整性,可以采取管理方面和技术方面的措施。保证储存状态数据的完整性,可以采取管理方面和技术方面的措施。口令机制口令机制资源访问机制资源访问机制 数据校验技术 可以对要保护的数据按照一定的规则产生一些校验码,并且把这些校验友码记录下来。数据校验技术即完整性检查数据校验的要求1.校验码会随数据块的变化而变化2.根据校验码很难还原出原始数据本章主要内容6.1 信息摘要技术信息摘要技术6.2 数字签名数字签名6.1 信息摘要技术信息摘要技术6.1.1 信息摘要技术基本原理信息摘要技术基本原理6.1.2 MD5算法算法6.1.3 安全散列标准安全散列标准 6.1.4 HMAC 6.1.1 信息摘要技术基本原理信息摘要技术基本原理 杂凑函数H是一公开函数,用于将任意长的消息M映射为较短的、固定长度的一个值H(M),作为认证符,称函数值H(M)为杂凑值、杂凑码或消息摘要。简单的说,hash函数函数就是把任意长的输入字符串变化成固定长的输出字符串的一种函数。通俗得说,hash函数用来生成信息的摘要。输出字符串的长度称为hash函数的位数位数。在信息安全技术中,散列(Hash)函数提供了验证消息的完整性这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的“散列”或“信息摘要”(Message digest)。目前应用最为广泛的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)的枚举次数。l名称:名称:Hash Function、哈希函数、单向杂凑函数、数据(消息)摘、哈希函数、单向杂凑函数、数据(消息)摘要函数要函数l单向散列函数单向散列函数 H(M)作用于一任意长度的消息作用于一任意长度的消息 M,它返回一固定长,它返回一固定长度的散列值度的散列值 h:h=H(M)l单向散列函数的特性:单向散列函数的特性:给定给定 M,很容易计算,很容易计算 h。给定给定 h,根据,根据 h=H(M)计算计算 M 很难。很难。给定给定 M,要找到另一消息,要找到另一消息 M,并满足,并满足 H(M)=H(M)很难。很难。l单向散列函数的重要之处就是赋予单向散列函数的重要之处就是赋予 M 唯一的唯一的“指纹指纹”。l密码学上常用的单向散列函数有密码学上常用的单向散列函数有RSA公司公司MD系列中的系列中的MD2、MD4、MD5,美,美国国NIST的的SHA、SHA-1,欧盟,欧盟RIPE项目的项目的RIPEMD、RIPEMD-128、RIPEMD-160等。等。6.1.2 MD5算法算法 MD系列单向散列函数是系列单向散列函数是Ron Rivest设计的,包括设计的,包括MD2、MD4和和MD5。MD表示表示消息摘要(消息摘要(Message Digest)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=0X01234567 B=0X89abcdef C=0Xfedcba98 D=0X76543210(4)处理位操作函数 首先定义4个辅助函数,每个函数的输入是三个32位的字,输出是一个32位的字。X,Y,Z为32位整数。F(X,Y,Z)=XYvnot(X)Z G(X,Y,Z)=XZvYnot(Z)H(X,Y,Z)=XxorYxorZ I(X,Y,Z)=Yxor(Xvnot(Z)(5)输出结果 报文摘要的产生后的形式为:A,B,C,D。也就是低位字节A开始,高位字节D结束。报文摘要实现示意图报文mMD算法MD算法采用MD算法产生报文摘要采用解密运算进行解密发送者A接收者B运算E采用加密运算加密报文摘要D采用MD算法产生报文摘要判断H(m)和H(m)是否相等?H(m)EK(H(m)EK(H(m)mH(m)H(m)EK(H(m)+m6.1.3 安全散列标准安全散列标准 安全散列标准SHA(Secure Hash Algorithm)算法由NIST开发,并在1993年作为联邦信息处理标准公布。在1995年公布了其改进版本SHA-1 SHA与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分组处理框图 160160A B C D EA B C D EA B C D EA B C D Ef1,K,W01920步f2,K,W203920步f3,K,W405920步f4,K,W607920步+CVqYqCVq-1512SHA与与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.4 HMAC 数据认证算法反映了传统上构造MAC(-消息鉴别码Message Authentication Code也叫 密码校验和)最为普遍使用的方法,即基于分组密码的构造方法。但近年来研究构造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(key outterpad,hash(key innerpad,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 数字签名的概念数字签名的概念 数字签名(Digital Signature)可解决手写签名中的签字人否认签字或其他人伪造签字等问题。因此,被广泛用于银行的信用卡系统、电子商务系统、电子邮件以及其他需要验证、核对信息真伪的系统中。类似于手书签字,数字签字应具有以下性质:能够验证签字产生者的身份,以及产生签字的日期和时间。能用于证实被签消息的内容。数字签字可由第三方验证,从而能够解决通信双方的争议。数字签字应满足的要求 签字的产生必须使用发方独有的一些信息以防伪造和否认。签字的产生应较为容易。签字的识别和验证应较为容易。对已知的数字签字构造一新的消息或对已知的消息构造一假冒的数字签字在计算上都是不可行的。数字签名具有的功能 收方能够确认发方的签名,但不能伪造;发方发出签过名的信息后,不能再否认;收方对收到的签名信息也不能否认;一旦收发方出现争执,仲裁者可有充足的证据进行评判。6.2.2 基于公钥密码体制的数字签名基于公钥密码体制的数字签名 基于RSA的数字签名 ElGamal数字签名 Schnorr签字体制基于RSA的数字签名 体制参数。选两个保密的大素数p和q,计算n=pq,(n)=(p-1)(q-1);选一整数e,满足1e(n),且gcd(n),e)=1;计算d,满足de1 mod(n);以e,n为公开钥,d,n为秘密钥。签字过程。设消息为M,对其签字为 SMd mod n 验证过程。接收方在收到消息M和签字S后,验证MSe mod n是否成立,若成立,则发送方的签字有效。ElGamal数字签名(1)体制参数 p:大素数;g:Z*p的一个生成元;x:用户A的秘密钥,xRZ*p;y:用户A的公开钥,ygx(mod p)。(2)签字的产生过程 对于待签字的消息m,A执行以下步骤:计算m的杂凑值H(m)。选择随机数k:kZ*p,计算rgk(mod p)。计算s(H(m)-xr)k-1(mod p-1)。以(r,s)作为产生的数字签字。(3)签字验证过程 接收方在收到消息m和数字签字(r,s)后,先计算H(m),并按下式验证:Schnorr签字体制(1)体制参数 p:大素数,p2512;q:大素数,q|(p-1),q2160;g:gRZ*p,且gq1(mod p);x:用户A的秘密钥,1xq;y:用户A的公开钥,ygx(mod p)。(2)签字的产生过程 对于待签字的消息m,A执行以下步骤:选择随机数k:1kq,计算rgk(mod p)。计算e=H(r,m)。计算sxe+k(mod q)。以(e,s)作为产生的数字签字。(3)签字验证过程签字验证过程 接收方在收到消息m和数字签字(e,s)后,先计算rgsy-e(mod p),然后计算H(r,m),并按下式验证 数字签名示意图明 文 P运 算 DDSKA(P)DSKA(P)运 算 E明 文 P在 网 络 上传 输采 用 私 钥 SKA进 行 数 字 签 名采 用 A的 公 钥 PKA进 行 签 名 验 证发 送 者 A接 收 者 B6.2.3 基于私钥密码体制的数字签名基于私钥密码体制的数字签名 基于公钥算法数字签名的缺点是计算量很大,强度不如对称密钥算法。发送方A根据单钥加密算法以与接收方B共享的密钥K对消息M加密后的密文作为对M的数字签字发往B。该系统能向B保证所收到的消息的确来自A,因为只有A知道密钥K。再者B恢复出M后,可相信M未被篡改,因为敌手不知道K就不知如何通过修改密文而修改明文。具体来说,就是B执行解密运算Y=DK(X),如果X是合法消息M加密后的密文,则B得到的Y就是明文消息M,否则Y将是无意义的比特序列。基于私钥密码体制的数字签名缺陷 签名比报文长的多。签名密钥若不采用一次一密方式,则每次签名都会把n个密钥泄漏出去,重复使用相同的签名密钥是很不安全的;而一次一密方式的密钥管理负担很重。对称密钥算法则由于双方共享密钥,接收方可以伪造签名,需要公证方支持才能实用化。6.2.4 数字签名标准数字签名标准DSS 设计思想 签名者的计算能力较低且计算时间要短,而验证者计算能力较强。DSA是在ElGamal和Schnorr两个签字方案的基础上设计的,其安全性基于求离散对数的困难性。DSS算法步骤 全局公开钥 p:满足2L-1p2L 的大素数,其中512L1024且L是64的倍数。q:p-1的素因子,满足2159q2160,即q长为160比特。g:gh(p-1)/q mod p,其中h是满足1h1的任一整数。用户秘密钥x x是满足0 xq的随机数或伪随机数。用户的公开钥y ygx mod p。用户为待签消息选取的秘密数k k是满足0kq的随机数或伪随机数。DSA签名和验证过程 实验题实验题 实验实验6.1 使用使用MD5sum创建创建HASH校验和校验和要求:了解HASH算法的工作原理以及md5sum程序的使用 习题习题6.1 信息摘要技术基本原理是什么?6.2 简述MD5的工作过程。6.3 SHA与MD5的区别与联系是什么?6.4 HMAC的原理是什么?6.5 什么是数字签名?其功能是什么?数字签名是如何实现的?6.6 简述DSS的算法步骤。6.7 在DSS数字签名标准中,取p=83=241+1,q=41,h=2,于是g224 mod 83,若取x=57,则ygx457=77 mod 83。在对消息M=56签名时,选择k=23,计算签名并进行验证。本章要求 数据完整性保护技术,包括信息摘录技术和数字签名技术 了解信息摘录技术的安全散列标准SHS 了解数字签名技术的一般概念和常见的数字签名技术 掌握数字签名标准DSS谢谢大家!谢谢大家!
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!