现代常规的分组加密算法_第1页
现代常规的分组加密算法_第2页
现代常规的分组加密算法_第3页
现代常规的分组加密算法_第4页
现代常规的分组加密算法_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

现代常规的分组加密算法第一页,共二十九页,2022年,8月28日我们主要考察如下三种加密算法1.TripleDES2.IDEA3.RC5其他一些较实用的算法,自己看书了解,如Blowfish,CAST,以及RC2。第二页,共二十九页,2022年,8月28日1TRIPLEDESDES算法设计的优点是很多的。如何加强DES的安全性是一个世纪感兴趣的问题。Quisquater等曾建议采用长达768bits密钥的方案。由于已经证明DES不能成为群,见

ProofthatDESisnotagroupInAdvancesinCryptology——Crpto’92.Springer——Verlag,NewYork,1993.于是多重DES,尤其是三重DES还在普遍使用。第三页,共二十九页,2022年,8月28日(1)二重DES(DoubleDES)给定明文P和两个加秘密钥k1和k2,采用DES对P进行加密E,有密文C=EK2(EK1(P))对C进行解密D,有明文P=DK1(DK2(C))EEPXCK2K1加密图DDK2K1CXP解密图第四页,共二十九页,2022年,8月28日对于二重DES的加密,所用密钥的长度为

56×2=112bits

这样是否真正能增强DES的强度呢?问题在于下式能否成立:

EK2(EK1(P))=EK3(P)(4.1)DES是一个从集合A到集合A的一个映射。其中:

映射DES事实上可视为对A的一个作用,作用方式为置换。所有可能的置换数为(264)!。然而,DES对每一个不同的密钥只决定唯一的映射。而密钥数256<107,(4.1)式不能成立。第五页,共二十九页,2022年,8月28日关于DES不是群的详细证明见上面给的文献。注:二重DES很难抵挡住中间相遇攻击法(Meet-in-the-MiddleAttack)第六页,共二十九页,2022年,8月28日EEPCX由

C=EK2(EK1(P))从图中可见

X=EK1(P)=DK2(C)K1K2DDCPXK1K2加密解密第七页,共二十九页,2022年,8月28日若给出一个已知的明密文对(P,C)做:对256个所有密钥K1做对明文P的加密,得到一张密钥对应于密文X的一张表;类似地对256个所有可能的密钥K2做对密文C的解密,得到相应的“明文”X。做成一张X与K2的对应表。比较两个表就会得到真正使用的密钥对K1,K2。第八页,共二十九页,2022年,8月28日对二重DES的中间相遇攻击的分析已知,给定一个明文P,经二重DES加密有264个可能的密文。而二重DES所用密钥的长度应是112bits,所以选择密钥有2112个可能性。于是对给定明文P加密成密文有2112/264=248种可能。于是,密文是假的比例约为248-64=2-16。这样,对已知明文-密文对的中间相遇攻击成功的概率为1-2-16。攻击用的代价{加密或解密所用运算次数}≦256+256=2112第九页,共二十九页,2022年,8月28日(2)带有双密钥的三重DES

(TripleDESwithTwoKeys)Tuchman给出双密钥的EDE模式(加密-解密-加密):

C=EK1(DK2(EK1(P)))……对P加密

P=DK1(EK2(DK1(C)))……对C解密这种替代DES的加密较为流行并且已被采纳用于密钥管理标准(TheKeyManagerStandardsANSX9.17和ISO8732).第十页,共二十九页,2022年,8月28日EDEDEDCBAPPAB

CK1K2K1K1K2K1加密图解密图第十一页,共二十九页,2022年,8月28日到目前为止,还没有人给出攻击三重DES的有效方法。对其密钥空间中密钥进行蛮干搜索,那么由于空间太大为2112=5×1033,这实际上是不可行的。若用差分攻击的方法,相对于单一DES来说复杂性以指数形式增长,要超过1052。注意:1*.Merkle和Hellman设法创造一个条件,想把中间相遇攻击(meet-in-the-middleattack)的方法用于三重DES,但目前也不太成功。2*.虽然对上述带双密钥的三重DES到目前为止还没有好的实际攻击办法,但人们还是放心不下,又建议使用三密钥的三重DES,此时密钥总长为168bits.

C=EK3(DK2(EK1(P)))第十二页,共二十九页,2022年,8月28日2RC5

RC5是对称加密算法,由RSA公司的首席科学家R.Rivest于1994年设计,1995年正式公开的一个很实用的加密算法。第十三页,共二十九页,2022年,8月28日RC5具有如下的特性:1.适用于软件或者硬件实现2.运算速度快3.能适应于不同字长的程序(一个字的bit数是RC5的一个参数;不同字长派生出相异的算法)4.加密的轮数可变(轮数是RC5的第二个参数,这个参数用来调整加密速度和安全性的程度)5.密钥长度是可变的(密钥长度是RC5的第三个参数)6.RC5形式简单,易于实现,加密强度可调节7.对记忆度要求不高(使RC5可用于类似SmartCard这类的对记忆度有限定的器件)8.高保密性(适当选择好参数)9.对数据实行bit循环移位(增强抗攻击能力)第十四页,共二十九页,2022年,8月28日对RC5的系统描述:(1)RC5的参数

RC5实际上是由三个参数决定的一组加密算法。

参数定义允许值

w字的bit数大小。RC5加密16,32,64

的基本单位为2个字块

r轮数0,1,…,255b密钥字节的长度(8-bitbytes)0,1,…,255第十五页,共二十九页,2022年,8月28日RC5加密明文块的长度为32,64,128bits。并且对应同样长度的密文。密钥长度为从0到2040bits。一个特定的RC5表示为

RC5-w/r/bRivest建议使用的标注RC5为

RC5-32/12/16(明文分组长度64,加密轮数12,密钥长度128bits)第十六页,共二十九页,2022年,8月28日(2)RC5的密钥扩展对给定的密钥K来说,经过一些复合运算可产生总数为t的字密钥,使得每一轮都分配一对密钥。除此之外的非轮运算部分也要分配一对密钥。总计产生t=2r+2

个子密钥,每个密钥的长度为一个字长(wbits)。子密钥可标记在t-字阵列中:

s[0],s[1],…,s[t-1]它为w×t矩阵

这种阵列的产生图示为:第十七页,共二十九页,2022年,8月28日初始化混合转换s[0]S[1]

S[t-1]……L[0]L[1]L[c-1]……K[0]K[1]……K[b-1]S[0]S[1]……S[t-1]r,wByteswordswords第十八页,共二十九页,2022年,8月28日将参数r,w输入,左面标出的t-字阵列是一些伪随机bit,按r,w的规格选入的。然后把b-bits长的密钥K[0,…,b-1]转换成c-字阵列L[0,…,c-1](字的bit数为w,这里c=b×8/w;注意:密钥长度为b个字节)。如果b不是w的整数倍,那么L右端的空位用0填入。下面描述密钥生成的细节:第十九页,共二十九页,2022年,8月28日对于给定的参数r和w,开始初始化运算

Pw=Odd((e-2)2w)Qw=Odd((Φ-1)2w)这里

自然对数的底)

(黄金分割比率)并且Odd[x]表示最接近x且可左可右的奇整数。例:Odd[e]=3,Odd[Φ]=1用上述两个常数,按下述方式得到初始化的阵列S:

S[0]=PwFori=1tot-1do S[i]=S[i-1]+Qw

其中的加法是模2w的加法运算。第二十页,共二十九页,2022年,8月28日得到初始化阵列S,然后与最后产生的密钥阵列L做混合,最终得到子密钥阵列。注1*.为了增强复杂性,可对阵列S,L做多次处理:

i=j=x=y=0do3×max(t,c)times:{S[i]=(S[i]+X+Y)<<<3;

X=S[i];i=(i+1)(modt);L[j]=(L[j]+X+Y)<<<(X+Y);

Y=L[j];j=(j+1)(modc);}2*.Rivest声称,这个扩张函数具有单向性。第二十一页,共二十九页,2022年,8月28日(3)RC5的加密整个加密使用了下述3个基本运算和它们的逆运算:模2w加法运算,表示为“+”;逐比特异或运算,表示为“⊕”;字的循环左移运算:字x循环左移y比特,表示为

x<<<y

它的逆为循环右移y比特,表示为

x>>>y如(a0,a1,a2,…,an-1)<<<3=(a3,a4,…,an-1,a0,a1,a2)第二十二页,共二十九页,2022年,8月28日加密运算图:明文(2wbits)++⊕⊕<<<<<<++……⊕⊕<<<<<<++密文(2wbits)S[0]Round1S[2]RoundrS[2r]S[1]S[3]S[2r+1]RErRE1LErLE1LE0RE0AB第二十三页,共二十九页,2022年,8月28日将明文分组为左右A,B;用变量Lei,Rei参与运算程序为:

LE0=A+S[0]RE0=B+S[1]fori=1tordoLEi=((LEi-1⊕REi-1)<<<REi-1)+S[2×i];REi=((REi-1⊕LEi)<<<LEi)+S[2×i+1];第二十四页,共二十九页,2022年,8月28日(4)RC5的解密对两个1-字变量LDr和RDr。用变量LDi和RDi从r到1做:

fori=rdownto1doRDi-1=((RDi-S[2*i+1]>>>LDi)⊕LDi);LDi-1=((LDi-S[2*i]>>>RDi-1)⊕RDi-1);B=RD0-S[1];A=LD0-S[0].(5)RC5操作模式见书119页-120页第二十五页,共二十九页,2022年,8月28日明文(2w比特)--⊕⊕>>>>>>--⊕⊕>>>>>>--密文(2w比特)ABS[2r]S[2]S[0]S[1]S[3]S[2r+1]……LDrRDrRoundrRound1LD0RD0RDr-1LDr-1第二十六页,共二十九页,2022年,8月28日3RC6分组密码简介被选为21世纪加密标准算法。RC6是RC5的进一步改进。像RC5那样,RC6实际上是利用数据的循环移位。RC5自1995年公布以来,尽管至今为止还没有发现实际攻击的有效手段,然而一些理论攻击的文章先后也分析出RC5的一些弱点。RC6的加密程序:RC6-w/r/bInput:

温馨提示

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

评论

0/150

提交评论