第08章 密码学基础_第1页
第08章 密码学基础_第2页
第08章 密码学基础_第3页
第08章 密码学基础_第4页
第08章 密码学基础_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

第八章密码学基础《计算机网络与信息安全》第七章无线与移动网络本章学习目标理解密码学基本概念;掌握传统加密方法基本原理与加解密过程;理解现代密码原理,掌握DES密码原理与加解密过程;理解CBC、DES,了解RC5、AES、IDEA等,理解流密码;理解公开密钥密码原理,掌握RSA原理及过程,了解Rabin、EIGamal、ECDLP、ECC;理解散列函数意义,掌握MD5、SHA-1算法过程及性能。主要内容第一节

密码学概述第二节

传统加密方法第三节

对称密钥加密算法第四节

公开密钥加密算法第五节

散列函数第六节密码学新进展2本章重点与难点本章重点密码学基本原理传统加密算法简单替代密码多表替代密码换位密码Feistel分组密码结构DES密码原理与加解密过程简单流密码加解密原理与过程公开密钥密码原理RSA密码原理与加解密过程MD5与SHA-1算法过程本章难点传统加密算法的编解码过程简单替代密码:凯撒密码、乘数密码、仿射密码多表替代密码:维吉尼亚密码换位密码:周期置换密码、列置换密码Feistel分组密码结构DES加密算法:加密过程、CBC、三重DES简单流密码原理公开密钥密码原理RSA加解密算法3李全龙第一节

密码学概述密码学(cryptography)术语5第一节密码学概述m:明文C=EKA(m):密文,利用密钥KA加密,可以简写为C=KA(m)m=DKB(KA(m)):利用密钥KB解密,可以简写为m=KB(KA(m))明文(m)密文(c)加密算法(E)明文(m)解密算法(D)KA(Alice)加密密钥(Bob)解密密钥KB入侵者(Trudy)AliceBob对称密钥加密6第一节密码学概述对称密钥加密:Bob和Alice共享相同(对称)密钥:KSe.g.,单码替代密码的替代模式Q:

Bob和Alice如何确认密钥值(密钥分发)?K(m)S明文(m)密文(c)KS加密算法(E)m=KS(KS(m))明文解密算法(D)KS公开密钥加密7第一节密码学概述Bob的公开密钥KB+Bob的私有密钥KB-K(m)B+明文密文加密算法(E)m=K(K(m))B+B-明文解密算法(D)密码分析学-破解加密方法唯密文攻击:密码分析者只截获到密文,基于对密文的分析进行破解两条途径:暴力破解统计分析已知明文攻击:密码分析者已知(部分)明文以及与之匹配的密文e.g.,在单码替代密码中,入侵者已确认字母a,l,i,c,e,b,o的替换关系选择明文攻击:密码分析者可以获取针对选择的明文的密文自适应选择明文攻击:选择明文攻击的特殊情况,密码分析者不仅能选择被加密的明文,而且也能基于以前加密的结果修正这个选择。选择密文攻击:密码分析者能选择不同的被加密的密文,并可得到对应的解密的明文。选择密钥攻击:密码分析者具有不同密钥之间的关系的有关知识。8第一节密码学概述李全龙第二节传统加密算法传统加密方法10替代密码(substitutioncipher):利用一种东西替代另一种东西凯撒密码(Casesarcipher):一个字母替代另一个字母将一个字母利用字母表中该字母后面的第k个字母替代如k=3,“bob.iloveyou.alice”→“ere,loryhbrx.dolfh”单码(字母)替代密码(monoalphabeticcipher)明文:abcdefghijklmnopqrstuvwxyz密文:mnbvcxzasdfghjklpoiuytrewq密文:nkn.sgktcwky.mgsbc明文:bob.iloveyou.alicee.g.:加密秘钥:26个字母集合向26个字母集合的映射第二节传统加密算法传统加密方法11乘数密码将明文字母串逐位乘以密钥k并进行模运算。数学表达式:Ek(m)=k×mmodq,gcd(k,q)=1gcd(k,q)=1表示k与q的最大公因子为1。算法描述:M=C=Z/(26),明文空间和密文空间同为英文字母表空间,包含26个元素;q=26;K={k∈整数集|0<k<26,gcd(k,26)=1},密钥为大于0小于26,与26互素的正整数;Ek(m)=k×mmodq。Dk-1(c)=k-1cmodq,其中k-1为k在模q下的乘法逆元。第二节传统加密算法传统加密方法12密钥取值与乘法逆元乘数密码的密钥k与26互素时,加密变换才是一一映射的,k的选择有11种:3、5、7、9、11、15、17、19、21、23、25。k取1时没有意义。k-1为k在模q下的乘法逆元,其定义为k-1×kmodq=1,可采用扩展的欧几里德算法。欧几里德算法又称辗转相除法,用于计算两个整数a和b的最大公约数。第二节传统加密算法传统加密方法13仿射密码仿射密码可以看作是移位密码和乘数密码的结合。密码体制描述如下:M=C=Z/(26);q=26;K={k1,k2∈Z|0<k1,k2<26,gcd(k1,26)=1};Ek(m)=(k1m+k2)modq;Dk(c)=k1-1(

c-k2)modq,其中k1-1为k1在模q下的乘法逆元。密钥情况,k1和k2?第二节传统加密算法传统加密方法14仿射密码举例设k=(5,3),注意到5-1mod26=21,加密函数:E(x)=5x+3(mod26),解密函数:Dk

(

y

)

=

21(y-3)mod

26

=

21y

11(mod

26)。易见:Dk(Ek(x))=21(5x+3)

-

11(mod26)

=

x+63

-

11(mod26)

=

x(mod26)若加密明文net,首先将字母net转换成为数字13、4、19,则加密过程:解密过程:第二节传统加密算法传统加密方法15替代密码(substitutioncipher):利用一种东西替代另一种东西多表替代加密(polyalphabeticencryption):使用多个单码替代密码,明文中不同位置的字母使用不同的单码替代密码例如,使用采用两个凯撒密码的多码替代加密:明文:bob.iloveyou.密文:ghu.netoxdhz.加密秘钥:(C1=5,C2=19);C1,C2,C2,C1,C2;……第二节传统加密算法传统加密方法16第二节传统加密算法传统加密方法17换位(transpositions)密码:重新排列明文中的字母列置换加密将明文按行组成一个矩阵,然后按给定列顺序输出得到密文例如:明文(m):bob.iloveyou.密文(c):ooobvublyiex秘钥:k=4(矩阵列数),(2,3,1,4)(输出顺序)bobiloveyouxk=4加密blyooobvuiex解密第二节传统加密算法传统加密方法18换位(transpositions)密码:重新排列明文中的字母列置换加密的密钥包括列数和输出顺序可以用一个单词来表示单词长度表示列数,单词中的字母顺序表示输出顺序例如:明文(m):bob.iloveyou.密文(c):bvuiexooobly秘钥:nicebobiloveyouxk=4加密blyooobvuiex解密第二节传统加密算法李全龙第三节对称密钥加密算法现代加密技术现代加密技术的基本操作包括经典的替代和置换不再针对一个个字母,而是针对二进制位操作现代加密技术主要分为:对称密钥加密非对称密钥加密(公开密钥加密)对称密钥加密:分组密码,也称块密码(blockciphers)流密码(streamciphers)20第三节对称密钥加密算法分组密码将明文序列划分成长为m的明文组各明文组在长为i的密钥组的控制下变换成长度为n的密文组通常取n=mn>m

扩展分组密码n<m

压缩分组密码典型分组密码结构:Feistel分组密码结构在设计密码体制的过程中,Shannon提出了能够破坏对密码系统进行各种统计分析攻击的两个基本操作:扩散(diffusion)和混淆(confusion)基于1949年Shannon提出的交替使用替代和置换方式构造密码体制21第三节对称密钥加密算法Feistel分组密码结构基于“扩散”和“混乱”的思考,Feistel提出通过替代和置换交替操作方式构造密码Feistel是一种设计原则,并非一个特殊的密码加密:将明文分成左、右两部分:

明文=(L0,R0)每一轮i=1,2,...,n计算:

Li=Ri

1

Ri=Li

1

F(Ri

1,Ki)

其中F是轮函数;Ki

是子密钥密文=(Ln,Rn)22第三节对称密钥加密算法Feistel分组密码结构解密:密文=(Ln,Rn)每一轮i=n,n

1,…,1计算:

Ri

1=Li Li

1=Ri

F(Ri

1,Ki)

其中F是轮函数;Ki

是子密钥明文=(L0,R0)23第三节对称密钥加密算法Feistel分组密码结构Feistel结构的分组密码安全性取决于:分组长度分组长度越大,安全性越高,加密速度越慢,效率越低目前常用的分组加密算法的分组长度取64位,最好是128位子密钥的大小子密钥长度增加,安全性提高,加密速度降低设计分组密码时需要在安全性和加密效率之间进行平衡循环次数循环越多,安全性越高,加密效率越低子密钥产生算法在初始密钥给定的情况下,产生子密钥的算法越复杂,安全性越高

轮函数一般情况下,轮函数越复杂,加密算法的安全性越高24第三节对称密钥加密算法数据加密标准:DESDES:DataEncryptionStandardIBM公司研制1972年,美国国家标准局NBS(NationalBureauofStandards)开始实施计算机数据保护标准的开发计划。1973年5月13日,NBS征集在传输和存贮数据中保护计算机数据的密码算法。1975年3月17日,首次公布DES算法描述。1977年1月15日,正式批准为加密标准(FIPS-46),当年7月1日正式生效。1994年1月的评估后决定1998年12月以后不再将DES作为数据加密标准。25第三节对称密钥加密算法数据加密标准:DESDES是16轮的Feistel结构密码DES是一个包含16个阶段的“替代--置换”的分组加密算法DES的分组长度是64位64位的分组明文序列作为加密算法的输入,经过16轮加密得到64位的密文序列DES使用56位的密钥密钥长度也是64b,其中每8b有一位奇偶校验位,因此有效密钥长度为56b。DES的每一轮使用48位的子密钥每个子密钥是56位密钥的子集构成26第三节对称密钥加密算法DES算法结构27第三节对称密钥加密算法明文(64bits)IP置换(64bits)L0(32bits)R0(32bits)L1=R0fk1+16轮同样运算…R1=L0f(R0,k1)+IP-1置换(64bits)L16R16=L15f(R15,k16)+密文(64bits)ki初始置换IP(InitialPermutation)把输入的64位数据的排列顺序打乱,每位数据按照下面规则重新组合28第三节对称密钥加密算法IP置换表58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157一轮DES加密过程29第三节对称密钥加密算法Li-1Ri-1密钥

Li密钥Ri扩展变换S盒替代P盒置换移位移位压缩变换++fDES:f

函数结构黑盒变换多个函数/操作(E、异或、S、P)的组合函数30第三节对称密钥加密算法R(32bit)EE(R)(48bit)Ki

(48bit)B1

B2

B3

B4

B5

B6

B7

B8S1S2S3S4S5S6S7S8C1C2C3C4C5C6C7C8P+(48bit)(32bit)f

函数的基本操作扩展变换:扩展变换(ExpansionPermutation,也被称为E-盒)将64位输入序列的右半部分从32位扩展到48位。确保最终的密文与所有的明文位都有关31第三节对称密钥加密算法3212345456789891011121312131415161716171819202120212223242524252627282928293031321扩展变换f

函数的基本操作S-盒替代(S-boxesSubstitution)32第三节对称密钥加密算法f

函数的基本操作S-盒函数(仅列出了S1和S2)33第三节对称密钥加密算法盒行\列0123456789101112131415S101441312151183106125907101574142131106121195382411481362111512973105031512824917511314100613S201518146113497213120510131347152814120110691152014711104131581269321531381013154211671205149………………………………………………f

函数的基本操作P-盒置换(P-boxesPermutation)34第三节对称密钥加密算法1672021291228171152326518311028241432273919133062211425逆初始置换IP-1初始置换和对应的逆初始置换(InverseInitialPermutation)操作并不会增强DES算法的安全性主要目的是为了更容易地将明文和密文数据以字节大小放入DES芯片中逆初始置换IP-1置换表:35第三节对称密钥加密算法40818165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725每轮子密钥的生成36第三节对称密钥加密算法初始密钥(64位)D0(28位)循环移位LS1循环移位LS1置换选择PC-1C0(28位)置换选择PC-2循环移位LS2循环移位LS2

子密钥K1(48bits)D1(28位)C1(28位)每轮子密钥的生成37第三节对称密钥加密算法置换选择PC-1置换选择PC-2574941332517914171124151585042342618328156211010259514335272319124268191136052443616727201326355473931231541523137475576254463830223040514533481466153453729444939563453211352820124464250362932DES的安全性DES的56位密钥可能太小1998年7月,EFE(电子前哨基金会)宣布攻破了DES算法,他们使用的是不到25万美元的特殊的“DES破译机”,这种攻击只需要不到3天的时间。DES的迭代次数可能太少16次恰巧能抵抗差分分析S盒(即替代函数S)中可能有不安全因素DES的一些关键部分不应当保密DES存在弱密钥和半弱密钥

针对DES的攻击方法:差分分析方法(DifferenceAnalysisMethod)线性分析方法(LinearAnalysisMethod)旁路攻击法(Side-ChannelAttack)38第三节对称密钥加密算法DES的改进密码分组链接(CBC-cipherblockchaining)加密算法的输入是当前明文分组和前一次密文分组的异或重复的明文分组不会在密文中暴露出重复关系39第三节对称密钥加密算法DES的改进DES密钥过短(56bits)→多重DES3DES使用3个密钥,执行3次DES算法,3DES的四种模型:DES-EEE3DES-EDE3DES-EEE2DES-EDE2为避免3DES使用3个密钥进行三阶段加密带来的密钥过长的缺点(168bit),Tuchman提出使用两个密钥的三重加密方法,即DES-EDE3,其中K1=K3,这个方法只要求112bit密钥,加密过程:加密-解密-加密(EDE),即:

C=EK3(DK2(EK1(M)))3DES的第二阶段的解密并没有密码编码学上的意义,唯一优点是可以使用3DES解密原来的单次DES加密的数据,即K1=K2=K3

C=EK1(DK1(EK1(M)))=EK1(M)40第三节对称密钥加密算法RC5RC5是由RSA公司的首席科学家RonRivest于1994年设计、1995年正式公开的一个很实用的加密算法。一种分组长度w、密钥长度b和迭代轮数r都可变的分组迭代密码。RC5使用三种运算:异或、加和循环,通过数据循环来实现数据的扩散和混淆,每次循环的次数都依赖于输入数据,事先不可预测。RC5主要特点:(1)形式简单易于软件或者硬件实现,运算速度快。(2)能适用于不同字长的程序,不同字长派生出相异的算法。(3)加密的轮数可变,这个参数用来调整加密速度和安全性的程度。(4)密钥长度是可变的,加密强度可调节。(5)对存储要求不高,使RC5可用于类似SmartCard这类对记忆度有限定的器件。(6)具有高保密性(适当选择好参数)。(7)数据实行bit循环移位,增强了抗攻击能力。41第三节对称密钥加密算法高级加密标准AESAES:AdvancedEncryptionStandardNIST(美国国家标准技术研究所)对称密钥加密标准,取代DES(2001年12月)1997年NIST宣布征集AES算法,要求:可公开加密方法分组加密,分组长度为128位至少像3DES一样安全更加高效、快可提供128/192/256位密钥比利时学者JoanDaemen和VincentRijmen提出的Rijndael加密算法最终被选为AES算法。NIST在2001年12月正式颁布了基于Rijndael算法AES标准42第三节对称密钥加密算法Rijndael加密算法简介不属于Feistel结构加密、解密相似但不完全对称支持128/192/256数据块大小支持128/192/256密钥长度有较好的数学理论作为基础结构简单、速度快Rijndael算法特点:分组长度和密钥长度均可变(128/192/256bits)循环次数允许在一定范围内根据安全要求进行修正汇聚了安全、效率、易用、灵活等优点抗线性攻击和抗差分攻击的能力大大增强如果1秒暴力破解DES,则需要149万亿年破解AES43第三节对称密钥加密算法流密码基本思想:首先利用密钥K产生一个密钥流:z=z0

z1z2

…然后使用如下规则对明文串x=x0x1x2…加密:

y=y0y1y2…=Ez0(x0)Ez1(x1)Ez2(x2)…解密时,使用相同的密钥流与密文做运算(XOR)44第三节对称密钥加密算法流密码工作流程45第三节对称密钥加密算法RC4算法RC4是RonRivest在1987年为RSA公司设计的一种流密码。RC4是一个以随机置换为基础、密钥长度可变、面向字节流操作的流密码。RC4密码应用广泛例如用于安全套接字层/传输层安全(SSL/TLS)标准中,用于IEEE802.11无线局域网标准中的WEP(WiredEquivalentPrivacy)协议和受保护访问协议(WAP)中RC4算法:用1~256个字节(8~2048位)的可变长度密钥初始化一个256个字节的状态向量S,S的元素记为S[0],S[1],…,S[255],从始至终置换后的S包含从0到255的所有8位数。对于加密和解密,字节k是从S的255个元素中按一种系统化方式选出的一个元素生成的。每生成一个k的值,S中的元素个体就被重新置换一次。46第三节对称密钥加密算法RC4算法逻辑结构47第三节对称密钥加密算法李全龙第四节公开密钥加密算法公钥密码学对称密钥加密:需要发送方与接收方知道共享的秘密密钥Q:最初如何商定密钥(尤其“素未谋面”)?49第四节公开密钥加密算法公开密钥加密完全不同的方法[Diffie-Hellman76,RSA78]发送方与接收方无需共享秘密密钥公开密钥(公钥)完全公开私有密钥(私钥)只有接收方知道公开密钥密码的核心思想公开密钥密码是1976年由WhitfieldDiffie和MartinHellman在其“密码学新方向”一文中提出的。单向陷门函数f(x),必须满足以下三个条件:①

给定x,计算y=f(x)是容易的;②

给定y,计算x使y=f(x)是困难的(所谓计算x=f-1(y)困难是指计算上相当复杂已无实际意义);③

存在δ,已知δ时对给定的任何y,若相应的x存在,则计算x使y=f(x)是容易的。50第四节公开密钥加密算法Diffie-Hellman密钥交换算法原根素数p的原根(primitiveroot)的定义:如果a是素数p的原根,则数amodp,a2modp,…,ap-1modp是不同的并且包含从1到p-1之间的所有整数的某种排列。对任意的整数b,可以找到唯一的幂i,满足b≡aimodp,且1≤i≤p-1。注:“b≡amodp”等价于“bmodp=amodp”,称为“b与a模p同余”离散对数若a是素数p的一个原根,则相对于任意整数b(bmodp≠0),必然存在唯一的整数i(1≤i≤p-1),使得b≡aimodp,i称为b的以a为基数且模p的幂指数,即离散对数。对于函数y≡gxmodp,其中,g为素数p的原根,y与x均为正整数,已知g、x、p,计算y是容易的;而已知y、g、p,计算x是困难的,即求解y的离散对数x。注:离散对数的求解为数学界公认的困难问题。51第四节公开密钥加密算法Diffie-Hellman密钥交换算法Alice和Bob协商好一个大素数p,和大的整数g,1<g<p,g是p的原根。p和g无须保密,可为网络上的所有用户共享。当Alice和Bob要进行保密通信时,他们可以按如下步骤来做:①Alice选取大的随机数x<p,并计算Y=gx(modP);②Bob选取大的随机数x

<p,并计算Y

=gx

(modP);③Alice将Y传送给Bob,Bob将Y

传送给Alice;④Alice计算K=(Y

)X(modP),Bob计算K

=(Y)X

(modP)显而易见K=K

=gxx

(modP),即Alice和Bob已获得了相同的秘密值K。52第四节公开密钥加密算法公钥密码学加解密模型53第四节公开密钥加密算法公钥加密算法54第四节公开密钥加密算法公钥加密和私钥解密需要满足:需求:1RSA:Rivest,Shamir,AdelsonalgorithmK(K(m))=mBB-+B-K

()B+K()给定公钥,不可能计算得到私钥2B+KB-K前提条件:模运算xmodn=x除以n的余数事实上:[(amodn)+(bmodn)]modn=(a+b)modn[(amodn)-(bmodn)]modn=(a-b)modn[(amodn)*(bmodn)]modn=(a*b)modn因此:

(amodn)dmodn=admodn例如:x=14,n=10,d=2,则(xmodn)dmodn=42mod10=6xd=142=196xdmod10=655第四节公开密钥加密算法RSA:预备知识报文/信息(message):仅仅是一个比特模式(bitpattern)每个比特模式可以表示为一个唯一的整数因此,加密一个报文就等价于加密一个数例如:m=10010001,可以唯一地表示为十进制数145为了加密m,我们可以加密对应的数(145),得到一个新的数(即密文)56第四节公开密钥加密算法RSA:生成公钥/私钥对57第四节公开密钥加密算法1.

选择2个大质数p和q。(e.g.,1024bits的大质数)2.

计算n=pq,z=(p-1)(q-1)3.

选择e(满足e<n),使e与z之间没有公因子,

即e,z互质(relativelyprime)4.

选择d使得ed-1刚好可以被z整除,(即:edmodz=1

).5.

公钥:(n,e);私钥:(n,d).K

B+K

B-RSA:加密、解密58第四节公开密钥加密算法0.

给定公钥(n,e)和私钥(n,d)1.

加密报文m(m<n)时,计算c=mmodne2.

解密密文c时,计算m=cmodndm=(mmodn)e

modnd不可思议事情发生!cRSA举例59第四节公开密钥加密算法Bob选择p=5,q=7.于是n=35,z=24.e=5(e,z互质).d=29(ed-1刚好被z整除).c=mmodne加密:加密8-bit报文(e.g.1个字符)。比特模式00001100m12me24883217cm=cmodnd1748196857210675091509141182522307169712cd解密:RSA的理论依据?60第四节公开密钥加密算法必须满足:cdmodn=m,其中c=memodn可以证明:对于任意x和y,有

xymodn=x(ymodz)modn其中n=pq,z=(p-1)(q-1)因此:

cdmodn=(memodn)dmodn=medmodn=m(edmodz)modn=m1modn=mRSA:另一个重要性质61第四节公开密钥加密算法下列性质将非常重要:K(K(m))=mBB-+K(K(m))

BB+-=利用公钥加密,可以利用私钥解密利用私钥加密,可以利用公钥解密结果相同!为什么?(memodn)dmodn=medmodn=mdemodn=(mdmodn)emodnRSA为什么安全?RSA的安全性建立在“大数分解和素性检测”这个数论难题的基础上既将两个大素数相乘在计算上容易实现,而将该乘积分解的计算量相当大假设已知Bob的公钥(n,e),那么有多大难度确定d,即私钥(n,d)?本质上需要在不知道两个因子p和q的前提下,找出n的因子分解一个大数是很困难的!62第四节公开密钥加密算法RSA的实际应用RSA的幂运算强度很大DES至少比RSA快100倍实际应用中:利用公钥加密建立安全连接,然后建立第二个密钥-对称会话密钥,用于加密数据会话密钥(sessionkey,KS)Bob与Alice利用RSA交换对称会话密钥KS一旦双方确认KS,则利用会话密钥加密/解密会话数据63第四节公开密钥加密算法其他公开密钥密码Rabin算法由M.Rabin设计,是RSA密码的一种改进。Rabin是基于求合数的模平方根的难题。Rabin密码和RSA密码一样安全。EIGamal算法EIGamal算法既能用于数据加密也能用于数字签名安全性依赖于计算有限域上离散对数这一难题EIGamal的一个不足之处是它的密文成倍扩张椭圆曲线密码体制(EllipticCurveCryptosystems,ECC)1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法与RSA相比,ECC的优势:(1)抗攻击性强。相同的密钥长度,其抗攻击性比RSA强很多倍。(2)计算量小,处理速度快。ECC总的速度比RSA要快得多。(3)存储空间占用小。ECC的密钥尺寸和系统参数与RSA相比要小得多。(4)带宽要求低。对于短消息加密,ECC带宽要求比RSA低得多。64第四节公开密钥加密算法李全龙第五节散列函数密码散列函数密码散列函数(CryptographicHashFunction):H(m)散列算法公开H(m)能够快速计算对任意长度报文进行多对一映射,均产生定长输出对于任意报文无法预知其散列值不同报文不能产生相同的散列值散列函数的健壮性单向性:无法根据散列值倒推出报文对于给定散列值h,无法计算找到满足h=H(m)的报文m抗弱碰撞性(WeakCollisionResistence-WCR)对于给定报文x,计算上不可能找到y且y≠x,使得H(x)=H(y)抗强碰撞性(StrongCollisionResistence-SCR)在计算上,不可能找到任意两个不同报文x和y(x≠y),使得H(x)=H(y)66第五节散列函数散列函数算法MD5:被广泛应用的散列函数(RFC1321)通过4个步骤,对任意长度的报文输入,计算输出128位散列值MD5不是足够安全1996年,Dobbertin找到了两个不同的512-bit块,在MD5计算下产生了相同的散列值SHA-1(SecureHashAlgorithm):另一个正在使用的散列算法US标准[NIST,FIPSPUB180-1]SHA-1要求输入消息长度<264SHA-1的散列值为160位速度慢于MD5,安全性优于MD567第五节散列函数MD5算法68第五节散列函数MD5算法四轮运算涉及四个函数:E(X,Y,Z)=(X∧Y)∨((¬X)∧Z)F(X,Y,Z)=(X∧Z)∨(Y∧(¬Z))G(X,Y,Z)=X

Y

ZH(X,Y,Z)=Y

(X∨(¬Z))四轮运算:EE(a,b,c,d,Mj,s,ti):a=b+((a+(E(b,c,d)+Mj+ti)<<s);FF(a,b,c,d,Mj,s,ti):a=b+((a+(F(b,c,d)+Mj+ti)<<s);GG(a,b,c,d,Mj,s,ti):a=b+((a+(G(b,c,d)+Mj+

温馨提示

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

评论

0/150

提交评论