对称密钥体制课件_第1页
对称密钥体制课件_第2页
对称密钥体制课件_第3页
对称密钥体制课件_第4页
对称密钥体制课件_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

第三章对称密钥体制第三章对称密钥体制1

对称加密技术基本概念标准算法的介绍DES算法AES算法分组密码的分析方法分组密码的工作模式对称加密技术基本概念2基本概念密码学中常见的有两种体制:对称密码体制(单钥密码体制)如果一个加密系统的加密密钥和解密密钥相同,或者虽然不相同,但是由其中的任意一个可以很容易地推导出另一个,即密钥是双方共享的,则该系统所采用的就是对称密码体制。非对称密码体制(公钥密码体制)分组密码是指将处理的明文按照固定长度进行分组,加解密的处理在固定长度密钥的控制下,以一个分组为单位独立进行,得出一个固定长度的对应于明文分组的结果。属于对称密码体制的范畴。基本概念密码学中常见的有两种体制:3基本概念(续)在分组密码的设计中用代替、置换手段实现扩散和混淆功能。混淆指加密算法的密文与明文及密钥关系十分复杂,无法从数学上描述,或从统计上去分析。扩散指明文中的任一位以及密钥中的任一位,对全体密文位有影响。经由此种扩散作用,可以隐藏许多明文在统计上的特性,增加密码的安全基本概念(续)在分组密码的设计中用代替、置换手段实现扩散和混4对称加密技术基本概念标准算法的介绍DES算法国际数据加密算法(IDEA)AES算法分组密码的分析方法分组密码的工作模式对称加密技术基本概念5DES加密算法的背景发明人美国IBM公司W.Tuchman和C.Meyer1971-1972年研制成功。基础1967年美国HorstFeistel提出的理论产生美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳了IBM的LUCIFER方案。标准化DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(DataEncryptionStandard),于1977年7月15日生效。DES加密算法的背景发明人6DES加密算法的背景美国国家安全局(NSA,NationalSecurityAgency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER方案中的128位压缩到56位。1979年,美国银行协会批准使用DES。1980年,DES成为美国标准化协会(ANSI)标准。1984年2月,ISO成立的数据加密技术委员会(SC20)在DES基础上制定数据加密的国际标准工作。DES加密算法的背景美国国家安全局(NSA,Nationa7到目前为止,还没有人给出攻击三重DES的有效方法。可变的密钥长度:RC5适合于传输长度大于64位的报文,还可以进行用户鉴别,是大多系统的标准如SSL、IPSec现设输入为:D=D1D2D3D4D5D6

令:列=D2D3D4D5

行=D1D6

然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。将密码密钥扩展成一个扩展密钥。同样信息多次出现造成泄漏双重DES(DoubleDES)密钥的有效长度为168位误差传递:密文块损坏仅对应明文块损坏有较好的数学理论作为基础换句话说,对已知2个明文-密文对的中间相遇攻击成功的概率为1-2-16。美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。给定两个明密文对,虚警率降为248-64=2-16。i=j=x=y=0适用于软件或者硬件实现误差传递:密文块损坏两明文块损坏密钥Ki(48bit)的生成算法密码学中常见的有两种体制:从直观上看,上面的假设不可能为真。Si为移位寄存器,j为流单元宽度DES算法描述为二进制编码数据设计的,可以对计算机数据进行密码保护的数学运算。DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在每轮编码时,一个48位的“每轮”密钥值由56位的“种子”密钥得出来。DES算法的入口参数有三个:Key、Data和Mode。Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密64位明文变换到64位密文,密钥64位,实际可用密钥长度为56位。到目前为止,还没有人给出攻击三重DES的有效方法。DES算法8对称密钥体制课件9攻击用的代价{加密或解密所用运算次数}≦2256REi=((REi-1⊕LEi)<<<LEi)+S[2×i+1];对称密码体制(单钥密码体制)[RFC2040]Baldwin,R.REi=((REi-1⊕LEi)<<<LEi)+S[2×i+1];经评选从一大批算法中采纳了IBM的LUCIFER方案。整个加密使用了下述3个基本运算和它们的逆运算:2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。互不满足分配律、结合律28241432273919133062211425C=EK3(DK2(EK1(P)))P=DK3(EK2(DK1(C)))FinalRound(State,RoundKey){【例】第1位经过初始置换后,处于第40位,而通过逆置轮密钥加(AddRoundKey)运算:XOR,模216(65536)加,模(216+1)(65537)乘可变的密钥长度:RC5可变的F:CAST-128DES的实际密钥长度为56-bit,就目前计算机的计算机能力而言,DES不能抵抗对密钥的穷举搜索攻击。DES算法描述(续)初始换位的功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则见下表:

58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50...D8;R0=D57D49...D7。

攻击用的代价{加密或解密所用运算次数}≦2256DE10DES算法描述(续)逆置换正好是初始置的逆运算。【例】第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下表所示:

40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725

DES算法描述(续)11DES算法的一次迭代过程图DES算法的一次迭代过程图12DES算法描述(续)扩展置换为:

3212345456789891011121312131415161716171819202120212223242524252627282928293031321

P-盒置换为:1672021291228171152326518311028241432273919133062211425

DES算法描述(续)扩展置换为:13在变换中用到的S1,S2...S8为选择函数,俗称为S-盒,是DES算法的核心。其功能是把6bit数据变为4bit数据。

S1:

1441312151183106125907015741421311061211953841148136211151297310501512824917511314100613

在S1中,共有4行数据,命名为0,1、2、3行;每行有16列,命名为0、1、2、3,......,14、15列。

现设输入为:D=D1D2D3D4D5D6

令:列=D2D3D4D5

行=D1D6

然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。

在变换中用到的S1,S2...S8为选择函数,俗称为S-盒,14对称密钥体制课件15密钥Ki(48bit)的生成算法密钥Ki(48bit)的生成算法16对称密钥体制课件17DES的破解DES的实际密钥长度为56-bit,就目前计算机的计算机能力而言,DES不能抵抗对密钥的穷举搜索攻击。1997年1月28日,RSA数据安全公司在RSA安全年会上悬赏10000美金破解DES,克罗拉多州的程序员Verser在Inrernet上数万名志愿者的协作下用96天的时间找到了密钥长度为40-bit和48-bit的DES密钥。1998年7月电子边境基金会(EFF)使用一台价值25万美元的计算机在56小时之内破译了56-bit的DES。1999年1月电子边境基金会(EFF)通过互联网上的10万台计算机合作,仅用22小时15分就破解了56-bit的DES。

不过这些破译的前提是,破译者能识别出破译的结果确实是明文,也即破译的结果必须容易辩认。如果明文加密之前经过压缩等处理,辩认工作就比较困难。DES的破解DES的实际密钥长度为56-bit,就18DES算法的公开性与脆弱性DES的两个主要弱点:密钥容量:56位不太可能提供足够的安全性S盒:可能隐含有陷井(Hiddentrapdoors)DES的半公开性:S盒的设计原理至今未公布DES算法的公开性与脆弱性DES的两个主要弱点:19

对称加密技术基本概念标准算法的介绍DES算法AES算法分组密码的工作模式分组密码的分析方法对称加密技术基本概念20分组密码的操作模式电子密码本ECB(electroniccodebookmode)密码分组链接CBC(cipherblockchaining)密码反馈CFB(cipherfeedback)输出反馈OFB(outputfeedback)分组密码的操作模式电子密码本ECB(electronic21前两步的结果XOR与轮常数Rcon[j]在每轮编码时,一个48位的“每轮”密钥值由56位的“种子”密钥得出来。需要共同的初始化向量IV408481656246432397471555236331TripleDES121312131415161716171819202120212223242524252627282928293031321有较好的数学理论作为基础Ci=EK(Pi)Pi=DK(Ci)用变量Lei,Rei参与三密钥的三重DES分析ByteSub(State);RC5版本:RC5-w/r/b有较好的数学理论作为基础对于不同的消息,IV必须唯一密钥相关的S盒:BlowfishC=EK2(EK1(P))X=EK1(P)=DK2(C)DES-EEE2:K1=K3,同上ProofthatDESisnotagroup整个加密使用了下述3个基本运算和它们的逆运算:2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。电子密码本(ECB)Ci=EK(Pi)

Pi=DK(Ci)前两步的结果XOR与轮常数Rcon[j]电子密码本(ECB)22ECB特点简单和有效可以并行实现不能隐藏明文的模式信息相同明文

相同密文同样信息多次出现造成泄漏对明文的主动攻击是可能的信息块可被替换、重排、删除、重放误差传递:密文块损坏仅对应明文块损坏适合于传输短信息ECB特点简单和有效23密码分组链接CBCCi=EK(Ci-1

Pi)

Pi=EK(Ci)

Ci-1密码分组链接CBCCi=EK(Ci-1Pi)Pi=E24CBC特点没有已知的并行实现算法能隐藏明文的模式信息需要共同的初始化向量IV相同明文

不同密文初始化向量IV可以用来改变第一块对明文的主动攻击是不容易的信息块不容易被替换、重排、删除、重放误差传递:密文块损坏两明文块损坏安全性好于ECB适合于传输长度大于64位的报文,还可以进行用户鉴别,是大多系统的标准如SSL、IPSecCBC特点没有已知的并行实现算法25密码反馈CFBCFB:分组密码

流密码Si为移位寄存器,j为流单元宽度

加密:Ci=Pi(EK(Si)的高j位)Si+1=(Si<<j)|Ci解密:Pi=Ci(EK(Si)的高j位)Si+1=(Si<<j)|Ci

密码反馈CFBCFB:分组密码流密码26

CFB加密示意图Ci=Pi(EK(Si)的高j位);Si+1=(Si<<j)|Ci

CFB加密示意图Ci=Pi(EK(Si)的高j位);27

CFB解密示意图Pi=Ci(EK(Si)的高j位);Si+1=(Si<<j)|Ci

CFB解密示意图Pi=Ci(EK(Si)的高j位);28换,又将第40位换回到第1位,其逆置换规则如下表所示:1998年7月电子边境基金会(EFF)使用一台价值25万美元的计算机在56小时之内破译了56-bit的DES。C=EK2(EK1(P))X=EK1(P)=DK2(C)[RFC2040]Baldwin,R.2000年10月2日,NIST宣布了获胜者—Rijndael算法,2001年11月出版了最终标准FIPSPUB197。LE0=A+S[0]需要共同的移位寄存器初始值IV解密:Pi=Ci(EK(Si)的高j位)误差传递:密文块损坏两明文块损坏模2w加法运算,表示为“+”;现设输入为:D=D1D2D3D4D5D6

令:列=D2D3D4D5

行=D1D6

然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。DES-EEE2:K1=K3,同上运算:XOR,模216(65536)加,模(216+1)(65537)乘误差传递:密文块损坏两明文块损坏在变换中用到的S1,S2.有较好的数学理论作为基础误差传递:密文块损坏仅对应明文块损坏C=EK3(DK2(EK1(P)))P=DK3(EK2(DK1(C))),andRivest,R.没有已知的并行实现算法CFB特点分组密码

流密码没有已知的并行实现算法隐藏了明文模式需要共同的移位寄存器初始值IV对于不同的消息,IV必须唯一误差传递:一个单元损坏影响多个单元

换,又将第40位换回到第1位,其逆置换规则如下表所示:CFB29DES-EDE3:三个不同密钥,依次使用加密-解密-加密算法DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(DataEncryptionStandard),于1977年7月15日生效。密码反馈CFB(cipherfeedback)整个加密使用了下述3个基本运算和它们的逆运算:D64,则经过初始置换后的结果为:L0=D58D50.fori=rdownto1do三密钥的三重DES

(TripleDESwithThreeKeys)在变换中用到的S1,S2.数据复杂度:实施该攻击所需输入的数据量DES-EEE2:K1=K3,同上Si+1=(Si<<j)|Ci每行有16列,命名为0、1、2、3,.没有已知的并行实现算法ByteSub(State);轮密钥按下述方式从扩展密钥中选取:第一个轮密钥由开始Nb个字组成,第二个轮密钥由接下来的Nb个字组成,如此继续下去。对于不同的消息,IV必须唯一[RFC2040]Baldwin,R.DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(DataEncryptionStandard),于1977年7月15日生效。如(a0,a1,a2,…,an-1)<<<3=(a3,a4,…,an-1,a0,a1,a2)DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(DataEncryptionStandard),于1977年7月15日生效。输出反馈OFBOFB:分组密码

流密码Si为移位寄存器,j为流单元宽度

加密:Ci=Pi(EK(Si)的高j位)Si+1=(Si<<j)|(EK(Si)的高j位)解密:Pi=Ci(EK(Si)的高j位)Si+1=(Si<<j)|(EK(Si)的高j位)DES-EDE3:三个不同密钥,依次使用加密-解密-加密算法30

OFB加密示意图Ci=Pi(EK(Si)的高j位);Si+1=(Si<<j)|(EK(Si)的高j位)OFB加密示意图Ci=Pi(EK(Si)的高j位);31

OFB解密示意图Pi=Ci(EK(Si)的高j位);Si+1=(Si<<j)|(EK(Si)的高j位)OFB解密示意图Pi=Ci(EK(Si)的高j位);S32OFB特点OFB:分组密码

流密码没有已知的并行实现算法隐藏了明文模式需要共同的移位寄存器初始值IV误差传递:一个单元损坏只影响对应单元对明文的主动攻击是可能的信息块可被替换、重排、删除、重放安全性较CFB差OFB特点OFB:分组密码流密码33

对称加密技术基本概念标准算法的介绍DES算法AES算法分组密码的工作模式分组密码的分析方法对称加密技术基本概念3428241432273919133062211425没有已知的并行实现算法需要共同的移位寄存器初始值IV列混合MixColumn变换最可靠的攻击办法:强力攻击DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(DataEncryptionStandard),于1977年7月15日生效。Subword执行使用S-盒实行字节替换密钥的有效长度为168位i=j=x=y=0364441252206028353431151195927用变量LDi和RDi从r到1做:分组密码的一般设计原理给定明文密文对(P,C)Rivest声称,这个扩张函数具有单向性。S和P分别被称为混乱层和扩散层,主要起混乱和扩散作用。字的循环左移运算:字x循环左移y比特,表示为TripleDES加密、解密相似但不对称现设输入为:D=D1D2D3D4D5D6

令:列=D2D3D4D5

行=D1D6

然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。交替使用K1和K2可以抵抗中间相遇攻击.分组密码的分析方法根据攻击者所掌握的信息,可将分组密码的攻击分为以下几类:唯密文攻击已知明文攻击选择明文攻击攻击的复杂度数据复杂度:实施该攻击所需输入的数据量处理复杂度:处理这些数据所需要的计算量2824143227391913335分组密码的典型攻击方法最可靠的攻击办法:强力攻击最有效的攻击:差分密码分析,通过分析明文对的差值对密文对的差值的影响来恢复某些密钥比特.线性密码分析:本质上是一种已知明文攻击方法,通过寻找一个给定密码算法的有效的线性近似表达式来破译密码系统插值攻击方法密钥相关攻击分组密码的典型攻击方法最可靠的攻击办法:强力攻击36强力攻击穷尽密钥搜索攻击:唯密文,2k已知(选择)明文,2k,k-密钥长度字典攻击:明密文对编成字典,2n,n-分组长度查表攻击:选择明文攻击,给定明文,用所有的2k个密钥,预计算密文,k-密钥长度时间存储权衡攻击:选择明文攻击,由穷尽密钥搜索和查表攻击混合而成,它在选择明文攻击中以时间换取空间强力攻击穷尽密钥搜索攻击:37现代常规分组加密算法一种是对DES进行复合,强化它的抗攻击能力;另一种是开辟新的方法,即象DES那样加解密速度快,又具有抗差分攻击和其他方式攻击的能力。现代常规分组加密算法一种是对DES进行复合38现代常规分组加密算法1.TripleDES2.IDEA3.RC54.RC65.AES其他一些较实用的算法,如Blowfish,CAST,以及RC2。现代常规分组加密算法1.TripleDES391.TRIPLEDES由于已经证明DES不能成为群,见K.W.CampbellandM.J.WienerProofthatDESisnotagroupInAdvancesinCryptology——Crpto’92.Springer-Verlag,NewYork,1993.于是多重DES,尤其是三重DES还在普遍使用。1.TRIPLEDES由于已经证明DES不能成为群,40双重DES(DoubleDES)

C=EK2(EK1(P))

P=DK1(DK2(C))

双重DES(DoubleDES)

C=EK2(EK41双重DES的讨论假设对于DES和所有56比特密钥,给定任意两个密钥K1和K2,都能找到一个密钥K3使得EK2(EK1(P))=EK3(P)。如果这个假设是事实,则DES的两重加密或者多重加密都将等价于用一个56比特密钥的一次加密。

从直观上看,上面的假设不可能为真。因为DES的加密事实上就是做一个从64比特分组到一个64分组的置换,而64比特分组共有264可能的状态,因而可能的置换个数为另一方面,DES的每个密钥确定了一个置换,因而总的置换个数为。直到1992年才有人证明了这个结果。双重DES的讨论假设对于DES和所有56比特密钥,给定任意42中间相遇(meet-in-the-middle)攻击

C=EK2(EK1(P))

X=EK1(P)=DK2(C)给定明文密文对(P,C)对所有256个密钥,加密P,对结果排序对所有256个密钥,解密C,对结果排序逐个比较,找出K1,K2使得EK1(P)=DK2(C)中间相遇(meet-in-the-middle)攻击

C=43对双重DES的中间相遇攻击的分析已知,给定一个明文P,经二重DES加密有264个可能的密文。而二重DES所用密钥的长度应是112bits,所以选择密钥有2112个可能性。于是对给定一个明文P加密成密文有2112/264=248种可能。给定两个明密文对,虚警率降为248-64=2-16。换句话说,对已知2个明文-密文对的中间相遇攻击成功的概率为1-2-16。攻击用的代价{加密或解密所用运算次数}≦2

256需要大量的存储器:256

64=1017字节对双重DES的中间相遇攻击的分析已知,给定一个明文P,经二重44对双密钥的三重DES的分析-ii从直观上看,上面的假设不可能为真。需要共同的移位寄存器初始值IV在这种密码的每一轮中,轮输入首先被一个由子密钥控制的可逆函数S作用,然后再对所得结果用置换(或可逆线性变换)P作用。DES的两个主要弱点:用变量LDi和RDi从r到1做:3644412522060283534311511959272000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。Si为移位寄存器,j为流单元宽度Rivest声称,这个扩张函数具有单向性。fori=rdownto1do对所有256个密钥,加密P,对结果排序DES-EEE2:K1=K3,同上所有轮密钥比特的总数等于分组长度乘轮数加1。RC5版本:RC5-w/r/b有较好的数学理论作为基础Subword执行使用S-盒实行字节替换Ci=EK(Pi)Pi=DK(Ci)用变量Lei,Rei参与初始化向量IV可以用来改变第一块Triple-DES的四种模型DES-EEE3:三个不同密钥,顺序使用三次加密算法DES-EDE3:三个不同密钥,依次使用加密-解密-加密算法DES-EEE2:K1=K3,同上DES-EDE2:K1=K3,同上对双密钥的三重DES的分析-iiTriple-DES的四种模45双密钥的三重DES

(TripleDESwithTwoKeys)C=EK1(DK2(EK1(P)))

P=DK1(EK2(DK1(C)))双密钥的三重DES

(TripleDESwithTwo46对双密钥的三重DES的分析-i该模式由IBM设计,可与常规加密算法兼容这种替代DES的加密较为流行并且已被采纳用于密钥管理标准(TheKeyManagerStandardsANSX9.17和ISO8732).交替使用K1和K2可以抵抗中间相遇攻击.如果C=EK2(EK1(EK1(P))),只需要256+2次加密到目前为止,还没有人给出攻击三重DES的有效方法。对其密钥空间中密钥进行蛮干搜索,那么由于空间太大为2112=5×1033,这实际上是不可行的。若用差分攻击的方法,相对于单一DES来说复杂性以指数形式增长,要超过1052。对双密钥的三重DES的分析-i该模式由IBM设计,可与常规47对双密钥的三重DES的分析-ii目前还没有针对两个密钥三重DES的实用攻击方法。但对两个密钥三重DES的攻击有一些设想,以这些设想为基础将来可能设计出更成功的攻击技术。

MerkleR.andHellman,M.“Onthesecurityofmultipleencryption”.CommunicationoftheACM,July1981Oorschot,PandWiener,M.“AKnown-plaintextattackontwo-keytripleencryption”Proceedings,EUROCrypt’90,1990:publishedbySpringer-Verlag对双密钥的三重DES的分析-ii目前还没有针对两个密钥三重D48三密钥的三重DES

(TripleDESwithThreeKeys)C=EK3(DK2(EK1(P)))

P=DK3(EK2(DK1(C)))三密钥的三重DES

(TripleDESwithThr49三密钥的三重DES分析密钥的有效长度为168位与DES的兼容性可以通过令K3=K2或K1=K2得到许多基于Internet的应用里用到:PGP和S/MIME三密钥的三重DES分析密钥的有效长度为168位50现代常规分组加密算法1.TripleDES2.IDEA3.RC54.RC65.AES现代常规分组加密算法1.TripleDES51国际数据加密IDEA(InternationalDataEncryptionAlgorithm)算法1990年瑞士联邦技术学院的来学嘉和Massey提出,PES,91年修订,92公布细节设计目标从两个方面考虑加密强度易实现性强化了抗差分分析的能力,PGP国际数据加密IDEA(InternationalData52IDEA算法特点64位分组,128位密钥运算:XOR

,模216(65536)加

,模(216+1)(65537)乘三种运算均不满足分配律与结合律有大量弱密钥难以直接扩展到128位块IDEA算法特点64位分组,128位密钥53IDEA设计思想得到confusion的途径按位异或以216(65536)为模的加法以216+1

(65537)为模的乘法互不满足分配律、结合律得到diffusion的途径乘加(MA)结构实现上的考虑软件和硬件实现上的考虑IDEA设计思想得到confusion的途径54IDEA加密算法IDEA加密算法55有较好的数学理论作为基础同样信息多次出现造成泄漏Si为移位寄存器,j为流单元宽度Si为移位寄存器,j为流单元宽度【例】第1位经过初始置换后,处于第40位,而通过逆置用变量Lei,Rei参与假设对于DES和所有56比特密钥,给定任意两个密钥K1和K2,都能找到一个密钥K3使得EK2(EK1(P))=EK3(P)。DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。A=LD0-S[0].可变的密钥长度:RC5j=(j+1)(modc);整个加密使用了下述3个基本运算和它们的逆运算:Subword执行使用S-盒实行字节替换可变的密钥长度:RC5OFB:分组密码流密码AddRoundKey(State,RoundKey);

}ByteSub(State);假设对于DES和所有56比特密钥,给定任意两个密钥K1和K2,都能找到一个密钥K3使得EK2(EK1(P))=EK3(P)。IDEA

每一轮

有较好的数学理论作为基础IDEA

每一轮56IDEA输出变换阶段IDEA输出变换阶段57IDEA的子密钥IDEA的子密钥58

现代常规分组加密算法1.TripleDES2.IDEA3.RC54.RC65.AES现代常规分组加密算法1.TripleDES59RC5作者为RonRivest1994设计、1995公开1.适用于软件或者硬件实现2.运算速度快3.能适应于不同字长的程序(一个字的bit数是RC5的一个参数;)加密的轮数可变(轮数是RC5的第二个参数)密钥长度是可变的(密钥长度是RC5的第三个参数)6.对内存要求低7.依赖于数据的循环移位(增强抗攻击能力)RC5作者为RonRivest1994设计、1995公60RC5参数三个参数参数w:表示字长,RC5加密两字长分组,可用值为16、32、64参数r:表示轮数,可用值0,1,…,255参数b:表示密钥K的字节数,可用值0,1,…,255RC5版本:RC5-w/r/b算法作者建议标定版本为RC5-32/12/16RC5参数三个参数61RC5基本运算整个加密使用了下述3个基本运算和它们的逆运算:模2w加法运算,表示为“+”;逐比特异或运算,表示为“⊕”;字的循环左移运算:字x循环左移y比特,表示为

x<<<y

实际只有y的log2w个低位比特来确定x的循环数它的逆为循环右移y比特,表示为

x>>>y如(a0,a1,a2,…,an-1)<<<3=(a3,a4,…,an-1,a0,a1,a2)RC5基本运算整个加密使用了下述3个基本运算和它们的逆运算:62FinalRound(State,RoundKey){在这种密码的每一轮中,轮输入首先被一个由子密钥控制的可逆函数S作用,然后再对所得结果用置换(或可逆线性变换)P作用。密码学中常见的有两种体制:如果这个假设是事实,则DES的两重加密或者多重加密都将等价于用一个56比特密钥的一次加密。总计产生t=2r+2个子密钥,每个密钥的长度为一个字长(wbits)。C=EK3(DK2(EK1(P)))P=DK3(EK2(DK1(C)))参数b:表示密钥K的字节数,可用值0,1,…,255一个简单地按位异或的操作j=(j+1)(modc);S[i]=S[i-1]+Qw参数r:表示轮数,可用值0,1,…,255Si为移位寄存器,j为流单元宽度有较好的数学理论作为基础不能隐藏明文的模式信息行移位(ShiftRow)变换信息块不容易被替换、重排、删除、重放例:Odd[e]=3,Odd[Φ]=1支持128/192/256(/32=Nk)密钥长度互不满足分配律、结合律三种运算均不满足分配律与结合律DES-EDE3:三个不同密钥,依次使用加密-解密-加密算法密钥扩展总计产生t=2r+2

个子密钥,每个密钥的长度为一个字长(wbits)。FinalRound(State,RoundKey){密钥63密钥的初始化对于给定的参数r和w,开始初始化运算

Pw=Odd((e-2)2w)Qw=Odd((Φ-1)2w)这里e=2.718281828459…(自然对数的底)Φ=1.618033988749…(黄金分割比率)并且Odd[x]表示最接近x且可左可右的奇整数。例:Odd[e]=3,Odd[Φ]=1用上述两个常数,按下述方式得到初始化的阵列S:

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

其中的加法是模2w的加法运算。密钥的初始化对于给定的参数r和w,开始初始化运算64密钥扩展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声称,这个扩张函数具有单向性。密钥扩展1*.为了增强复杂性,可对阵列S,L做多次处理:65加解密运算图加解密运算图66加密算法加密:将明文分组为左右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];加密算法加密:将明文分组为左右A,B;用变量Lei,Rei参67解密算法对两个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].RC5操作模式[RFC2040]Baldwin,R.,andRivest,R.TheRC5,RC5-CBC,RC5-CBC-Pad,andRC5-CTSalgorithms.Oct.1996P96~96解密算法对两个1-字变量LDr和RDr。用变量LDi和RDi68

现代常规分组加密算法1.TripleDES2.IDEA3.RC54.RC65.AES现代常规分组加密算法1.TripleDES69AES背景-i1997年4月15日,(美国)国家标准技术研究所(NIST)发起征集高级加密标准(AdvancedEncryptionStandard)AES的活动,活动目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。作为进入AES候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。对AES的基本要求是:比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为128/192/256比特。AES背景-i1997年4月15日,(美国)国家标准技术研究70AES背景-ii1998年8月12日,在首届AES会议上指定了15个候选算法。1999年3月22日第二次AES会议上,将候选名单减少为5个,这5个算法是RC6,Rijndael,SERPENT,Twofish和MARS。2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。2000年10月2日,NIST宣布了获胜者—Rijndael算法,2001年11月出版了最终标准FIPSPUB197。AES背景-ii1998年8月12日,在首届AES会议上指定71Rijndael简介不属于Feistel结构加密、解密相似但不对称支持128/32=Nb数据块大小支持128/192/256(/32=Nk)密钥长度有较好的数学理论作为基础结构简单、速度快Rijndael简介不属于Feistel结构72AES参数AES参数73SP网络结构在这种密码的每一轮中,轮输入首先被一个由子密钥控制的可逆函数S作用,然后再对所得结果用置换(或可逆线性变换)P作用。S和P分别被称为混乱层和扩散层,主要起混乱和扩散作用。

SP网络结构在这种密码的每一轮中,轮输入首先被一个由子密钥控74AES算法结构-iAES算法的轮变换中没有Feistel结构,轮变换是由三个不同的可逆一致变换组成,称之为层,

线性混合层:确保

温馨提示

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

评论

0/150

提交评论