下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 密码学第三章 数据的完整性保护

密码学第三章 数据的完整性保护.doc

密码学第三章 数据的完整性保护

rachel
2018-09-06 0人阅读 举报 0 0 暂无简介

简介:本文档为《密码学第三章 数据的完整性保护doc》,可适用于IT/计算机领域

第三章数据的完整性保护消息摘录技术一、基本原理消息摘录(messagedigests)是单向的散列函数(即Hash函数)它以变长的消息为输入把其压缩成一个定长的值输出。若输入的信息被改变了则输出的定长值(摘录)也会相应改变。根据Hash函数(即消息摘录函数)的安全水平人们将Hash函数分成两大类:一类是强碰撞自由的Hash函数(strongcollisionfreehashfunction)另一类是弱碰撞自由的Hash函数(weakcollisionfreehashfunctions)一个强碰撞自由的Hash函数是满足下列条件的一个函数h:()h的输入可以是任意长度的任何消息或文件M()h输出的长度是固定的(该长度必须足够长以抵抗所谓的生日攻击根据今天的计算技术和能力至少应为比特长)()给定h和m计算h(M)是容易的()给定h的描述找两个不同的消息(信息)M和M使得h(M)=h(M)是计算上不可行的。(如果这两个消息MMM≠M使得h(M)=h(M)则称这两个消息是碰撞消息或称这两个消息碰撞。)一个弱碰撞自由的Hash函数与一个强碰撞自由的Hash函数的前三个条件()()完全一样不同的只是第()个条件。在一个弱碰撞自由的Hash函数中。()‘给定h的描述和一个随机选择的消息M找另一个消息MM≠M使得h(M)=h(M)是计算上不可行的。二、消息摘录技术的应用、用于计算消息完整码、使用MD进行双向鉴别MD、概述MD的设计是面向比特字的更适合于位计算机效率比MD高。MD计算出的消息摘录长度为比特用个字表示分别记为ABCD在计算开始时被分别初始化为常数。输入信息被分成比特的等长块逐块处理。每块包含个字分别记为mm……m。每块的处理分三遍扫描每遍对ABCD使用不同的扰乱函数。在处理前需将当前的消息摘录备份在处理后将这个备份加到新产生的消息摘录上并将其作为下一块处理时消息摘录的当前值。最后一块信息处理之后的消息摘录当前值即为最终的消息摘录值。、MD信息填充给定一个X将X进行填充使其成为一个比特的倍数串M=MM……MN这里每个Mi(≤i≤N)是长为比特的串N≡(mod)(即N是的倍数。)我们将每个Mi称为一个字(位)由X产生M的算法如下:⑴d=(│X│mod)(当d<时按模处理)⑵l表示X的长度即│X│。│l│=(即用比特表示X的长度)⑶M=X‖‖d‖l初始信息(X)……初始信息的比特数(l)即使原来的信息已是比特的倍数也要进行填充。三、直接构造法现在我们从M开始构造一个比特长的消息摘录其构造过程如下:()给四个寄存器A、B、C、D赋初始值(用十六进制表示):A=B=efcdabC=badcfeD=()fori=toNdo()forj=todomj=Mij()将四个寄存器A、B、C、D的值存储到另外四个寄存器AABBCCDD之中AA=ABB=BCC=CDD=D()执行第一轮()执行第二轮()执行第三轮()A=AAAB=BBBC=CCCD=DDDX取整二进制求补x∧yx与y按位逻辑“与(and)”x∨yx与y按位逻辑“或(or)”xyx与y按位逻辑“异或(xor)”xy二进制加运算(即整数模加法运算)x<<yx循环左移y个位置(≤y≤)。MD中的三个轮是不同的。、第一轮第一轮使用一个如下定义的函数f(xyz)=(x∧y)∨(∧z)()fork=todo()A=(Af(BCD))mk<<()D=(Df(ABC))mk<<()C=(Cf(DAB))mk<<()B=(Bf(CDA))mk<<、第二轮第二轮使用一个如下定义的函数g(xyz)=(x∧y)∨(x∧z)∨(y∧z)取常数C==aH注意在第二轮中mi不是顺序处理的。()A=(Ag(BCD)ma)<<()D=(Dg(ABC)ma)<<()C=(Cg(DAB)ma)<<()B=(Bg(CDA)ma)<<()A=(Ag(BCD)ma)<<()D=(Dg(ABC)ma)<<()C=(Cg(DAB)ma)<<()B=(Bg(CDA)ma)<<()A=(Ag(BCD)ma)<<()D=(Dg(ABC)ma)<<()C=(Cg(DAB)ma)<<()B=(Bg(CDA)ma)<<()A=(Ag(BCD)ma)<<()D=(Dg(ABC)ma)<<()C=(Cg(DAB)ma)<<()B=(Bg(CDA)ma)<<第三轮第三轮定义扰乱函数如下:h(XyZ)=xyz取常数C==edgebalH与第二遍扫描类似第三遍扫描时对Mi的处理也不是顺序的具体为()A=(Ah(BCD)mC)<<()D=(Dh(ABC)mC)<<()C=(Ch(DAB)mC)<<()B=(Bh(CDA)mC)<<()A=(Ah(BCD)mC)<<()D=(Dh(ABC)mC)<<()C=(Ch(DAB)mC)<<()B=(Bh(CDA)mC)<<()A=(Ah(BCD)mC)<<()D=(Dh(ABC)mC)<<()C=(Ch(DAB)mC)<<()B=(Bh(CDA)mC)<<()A=(Ah(BCD)mC)<<()D=(Dh(ABC)mC)<<()C=(Ch(DAB)mC)<<()B=(Bh(CDA)mC)<<MD与MD相比较,主要作了以下六点改进:()增加了第四轮第四轮所使用的函数为Ⅰ(xyz)=(x∨)y()第二轮的函数g变为g(xyz)=(x∧z)∨(y∧)以减弱它的对称性()进入第二轮和第三轮的输入字的次序被改变()每一轮中的移位数已改变并且各轮中的移位数互不相同()每一步有一个唯一的加法常数()每一步加上了上一步的结果这样会产生更好的“雪崩效应”。.数字签名技术一、数字签名为了具有通常手书签名的功效数字签名应满足以下条件:()收方能够鉴别其收到的报文确实是发方发送来的其内容是真实的()发方事后不能根据自己的利益来否认他所发送过的报文()包括收方在内的任何人都不能伪造报文或签名。二、利用公钥密码体制实现的数字签名、在公钥密码系统的通信中实现数据的保密性和真实性数据的保密性设用户A要发送消息M给用户BAB,为了使M在传送过程中不被泄露A可用B的公开密钥PKB对M加密将密文传送给B。M→EDDSKB(EPKB(M))=MA方PKBSKBB方用公钥体制实现数据的保密性②数据的真实性条件:该公钥密码体制的公开密钥既能作加密密钥又能作解密密钥使用即DSK(EPK(M))=EPK(DSK(M))=M(*)M→DEM=EPKA(DSKA(M))A方SKAPKAB方公钥密码体制实现真实性(丧失了保密性)③既实现数据的保密性又实现数据的真实性数据M→D→ED→E→MA方SKAPKBSKBPKAB方用公钥密码体制实现数据的保密性和真实性、用公钥密码体制实现的数字签名设A要向B发送一份报文M该报文由两部分组成:一部分称作报头H它包括发方的身份收方的身份及发送序号等。即H=〈发方的ID〉〈收方的ID〉〈发送序号〉另一部分是要发送的报文数据M若需要可附上时间T。签名者用他的秘密密钥SKA对M或(MT)进行变换(解密运算)得S=DSKA(M)或S=DSKA(MT)实现对报文的签名然后用收方B的公开密钥PKB对MS=(HS)进行加密运算并将结果EPKB(MS)发送给B实现保密通信。HHM→D→EDE→MA方SKAPKBSKBPKAB方签名保密通信加密脱密验证签名具有数据保密通信的数字签名B收到报文后操作:)B用自己的秘密密钥SKB先对收到的报文解密得MS根据H中的信息识别出发送者的身份是A。)在公开的签名信息簿中查出A用于签名验证的公开密钥PKA。)用PKA对S进行变换EPKA(S)=EPKA(DSKA(M′))=M。)检查M′是否正确。四、仲裁者签名通过第三者介入的传统密码数字签名(仲裁签名)通信的双方AB把各自的秘密密钥交给可信的第三者了通信过程如图所示设发方A要将信息M发送给B。M→ES方仲裁者A方KAC′=EKB(M)DKB通过第三者用传统密码实现的数字签名消息产生附件附件消息附件消息产生附件所期望的附件实际受到的附件如果两者一样则认为消息是完整的消息m密匙KABMD(m|KAB)消息m附件F消息m附件F消息m重新根据m,由m|KAB计算附件F´将F′与收到的附件F进行比较如果F′=F则认为消息是完整的否则不是完整的M=DKA(C)C′=EKB(M)接收者发送者传输的消息比较一般的封装机制发方A收方B传输的消息PAGEunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknownunknown

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/7

密码学第三章 数据的完整性保护

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利