第3讲-对称密钥密码体制_第1页
第3讲-对称密钥密码体制_第2页
第3讲-对称密钥密码体制_第3页
第3讲-对称密钥密码体制_第4页
第3讲-对称密钥密码体制_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

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

文档简介

第3讲

对称密钥密码体制1按加解密采用的密钥不同按密码出现的时间不同古典密码现代密码密码学(Cryptology)(Symmetriccipher)(Asymmetriccipher)分组密码流密码公钥密码按加密的方式对称密码非对称密码(Classicalcipher)(Moderncipher)(Blockcipher)(Streamcipher)(Public-Keycipher)什么是流密码一次一密:指在流密码当中使用与消息长度等长的随机密钥,密钥本身只使用一次流密码的研究现状当前对流密码的研究主要集中在以下两个方向:(1)什么样的序列可以作为安全可靠的密钥序列?即衡量密钥流序列好坏的标准。(2)如何构造线性复杂度高、周期大的密钥流序列?在保密强度要求高的场合如大量军事密码系统,仍多采用流密码,美军的核心密码仍是“一次一密”的流密码体制。鉴于流密码的分析和设计在军事和外交保密通信中有重要价值,流密码的设计基本上都是保密的,国内外少有专门论述流密码学的著作,公开的文献也不多。尽管如此,由于流密码长度可灵活变化,且具有运算速度快、密文传输中没有差错或只有有限的错误传播等优点,目前仍是国际密码应用的主流,而基于伪随机序列的流密码是当今最通用的密码系统。流密码的研究现状3.1

流密码在流密码中,将明文消息按一定长度分组(长度较小,通常按字或字节),然后对各组用相关但不同的密钥进行加密,产生相应的密文,相同的明文分组会因在明文序列中的位置不同而对应于不同的密文分组。相对分组密码而言,流密码主要有以下优点:第一,在硬件实施上,流密码的速度一般要比分组密码快,而且不需要有很复杂的硬件电路:第二,在某些情况下(例如对某些电信上的应用),当缓冲不足或必须对收到的字符进行逐一处理时,流密码就显得更加必要和恰当;第三,流密码能较好地隐藏明文的统计特征等。流密码的原理在流密码中,明文按一定长度分组后被表示成一个序列,并称为明文流,序列中的一项称为一个明文字。加密时,先由主密钥产生一个密钥流序列,该序列的每一项和明文字具有相同的比特长度,称为一个密钥字。然后依次把明文流和密钥流中的对应项输入加密函数,产生相应的密文字,由密文字构成密文流输出。即 设明文流为:M=m1

m2…mi…

密钥流为:K=k1

k2…ki…

则加密为:C=c1

c2…ci…=Ek1(m1)Ek2(m2)…Eki(mi)…

解密为:M=m1

m2…mi…=Dk1(c1)Dk2(c2)…Dki(ci)…流密码通信模式框图加密算法E密文ci=Ek(mi)解密算法D明文mi=Dk(ci)明文mi密钥ki密钥ki流密码的原理例

设明文、密钥、密文都是F2上的二元数字序列,明文m=m1m2···,密钥为k=k1k2···,若加密变换与解密变换都是F2中的模2加法,试写出加密过程与解密过程。

[解]经加密变换得密文:

C=Ek(m)=Ek1(m1)Ek2(m2)···=(k1+m1)(k2+m2)···

经解密变换得:

Dk(C)=Dk((k1+m1)(k2+m2)···)=(k1+k1+m1)(k2+k2+m2)···

由于ki∈F2,则ki+ki=0,i=1,2,···,故Dk(C)=m1m2···=m。密文C可由明文m与密钥k进行模2加获得。因此要用该密码系统通信就要求每发送一条消息都要产生一个新的密钥并在一个安全的信道上传送,习惯上人们称这种通信系统为“一次一密系统”。流密码的时变性--随时间而变化流密码采用了类似于一次一密的思想,但加密各明文字的密钥字不是独立随机选取的,而是由一个共同的较短的主密钥按一个算法产生的。因此,它不具有一次一密的无条件安全性,但增加了实用性,只要算法设计得当,其安全性可以满足实际应用的需要。密钥流中的元素的产生由i时刻的流密码内部状态(记作)和种子密钥(记作k)决定,即;加密变换与解密变换也和i时刻的流密码内部状态有关。流密码分类用状态转移函数描述流密码加密器中存储器的状态随时间变化的过程。同步流密码:如果某个流密码中的状态转移函数不依赖被输入加密器存储器的明文,即密钥流的生成独立于明文流和密文流的流密码称为同步流密码。使用最广泛。自同步流密码也叫异步流密码:状态转移函数与输入明文有关,即其中密钥流的产生并不是独立于明文流和密文流的。通常第i个密钥字的产生不仅与主密钥有关,而且与前面已经产生的若干个密文字(与明文字)有关。加密算法E密钥流发生器解密算法D密钥流发生器安全通道密钥k密文流ci密钥流ki密钥流ki明文流mi明文流mi图1同步流密码模型内部状态输出函数内部状态输出函数密钥发生器密钥发生器明文流mi密文流ci明文流mi种子k种子kkk图2自同步流密码模型同步流密码中,消息的发送者和接收者必须同步才能做到正确地加密解密,即双方使用相同的密钥,并用其对同一位置进行操作。一旦由于密文字符在传输过程中被插入或删除而破坏了这种同步性,那么解密工作将失败。否则,需要在密码系统中采用能够建立密钥流同步的辅助性方法。分解后的同步流密码密钥流生成器密钥流生成器设计中,在考虑安全性要求的前提下还应考虑以下两个因素:

密钥k易于分配、保管、更换简单;易于实现,快速。目前密钥流生成器大都是基于移位寄存器的。因为移位寄存器结构简单,易于实现且运行速度快。这种基于移位寄存器的密钥流序列称为移位寄存器序列。密钥流生成器一个反馈移位寄存器由两部分组成:移位寄存器和反馈函数,构成一个密钥流生成器。每次输出一位,移位寄存器中所有位都右移一位,新的最左端的位根据寄存器中其它位计算得到。移位寄存器输出的一位常常是最低有效位。移位寄存器的周期是指输出序列从开始到重复时的长度。这种方法通过一个种子(有限长)产生具有足够长周期的、随机性良好的序列。只要生成方法和种子都相同,就会产生完全相同的密钥流。反馈函数若,则该LFSR生成的序列为周期序列。又称为n阶线性递归关系密钥流生成器最简单的反馈移位寄存器是线性移位寄存器(LFSR),反馈函数是寄存器中某些位的简单异或。如教材P64图4.5。异或(XOR)运算,异或密文和相同的密钥流就可以完成解密操作。流密码基于XOR运算具有下列属性:如果B=A⊕K,那么A=B⊕K。n级移位寄存器(见下图)开始时,设第1级内容是an-1,第2级内容是an-2,···,第n级内容是a0,则称这个寄存器的初始状态是(a0,a1,···,an-1)。当加上一个脉冲时,每个寄存器的内容移给下一级,第n级内容输出,同时将各级内容送给运算器f(x0,x1,···,xn-1),并将运算器的结果an=f(a0,a1,…,an-1)反馈到第一级去。这样这个移位寄存器的状态就是(a1,a2,···,an),而输出是a0。不断地加脉冲,上述

n

级移位寄存器的输出就是一个二元(或q元)序列:a0,a1,a2,···寄存器1寄存器2寄存器3寄存器nf(x0,x1,···,xn-1)···密钥流生成器移位寄存器产生的序列都是周期序列,周期都不大于2n。例

右图是一个4级线性移位寄存器。给定初状态(0001),求该移位寄存器产生的周期序列。

[解]易见f(x0,x1,x2,x3)=x0+x1,因此对k≥4有ak=ak-3+ak-4

从而该4级移位寄存器产生的序列是周期15的序列:

000100110101111…线性移存器序列的最长周期为2n-1由上例知,移位寄存器(简记SR,ShiftedRegister)可由短的序列生成具有一定规律的长序列。这种序列便可以作为密钥流序列,但抗攻击能力较差。+密钥流生成器状态转移和相应输出

时刻状态输出32100000011110000201000300100410011511000601100710111801011910100101101111111001211111130111114001111500011

多项式以LFSR的反馈系数所决定的多项式

又称反馈多项式、连接多项式。式中,c0=cn=1互反多项式

称作是LFSR的特征多项式。cn0称之为非奇异LFSR。

收缩密钥流生成器(见右图)通常的密钥流生成器都是由若干个移位寄存器并联,并且与特殊的电子电路组合而成。上图为由两个移位寄存器构成的收缩密钥流生成器,通过SR1的输出选择SR2的输出来生成密钥流,其工作模式如下:输入参数:两个移位寄存器的级数及反馈函数密钥:两个移位寄存器的初始状态

(1)移位SR1

并产生yi(1)

;同时移位SR2

并产生yi(2)

(2)如果yi(1)=1,则输出密钥元素ki=yi(2)

;如果yi(1)=0,则删去

yi(2),i=1,2,…,不输出。由此收缩生成器产生的密钥流为{ki|i≥1}。SR1SR2yi(1)输出kiyi(2)密钥流生成器流密码对密钥流的要求没有绝对不可破的密码,比如穷搜索总能破译,只是破译所需时间是否超过信息的有效期以及破译所需代价是否值得。若一个加密算法没有比穷搜索更好的破译方法,则被认为是不可破的。实际使用的密钥流序列(简称密钥)都是按一定算法生成的,因而不可能是完全随机的,所以也就不可能是完善保密系统。为了尽可能提高系统的安全强度,就必须要求所产生的密钥流序列尽可能具有随机序列的某些特征。如极大的周期、良好的统计特性。3.2

分组密码其他分组密码数据加密标准DESFeistel密码结构分组密码的设计原则分组密码的原理分组密码的典型攻击方法1.分组密码的原理密文中的每位数字不仅仅与某时刻输入的明文数字有关,而是与该明文中一定组长的明文数字有关。分组密码将明文按一定的位长分组,输出是固定长度的密文。加密算法解密算法明文x=(x1,x2,···)密文y=(y1,y2,···,yn)明文x=(x1,x2,···)密钥k=(k1,k2,···)密钥k=(k1,k2,···)分组密码的基本模型分组密码的长度明文为分组长度为m的序列,密文为分组长度为n的序列:n>m,称其为有数据扩展的分组密码;n<m,称其为有数据压缩的分组密码;n=m,称其为无数据扩展与压缩的分组密码。我们一般所说的分组密码为无数据扩展与压缩的分组密码。典型的分组是64位或128位分组密码的特点主要优点:易于标准化;易于实现同步。主要缺点:不善于隐藏明文的数据模式、对于重放、插入、删除等攻击方式的抵御能力不强。分组密码的数学表示记明文空间和密文空间为(明文与密文分组的长度均为m),密钥空间为(是的子集,r为密钥长度):密钥k下的加密函数为,m表示待加密的信息,k为密钥,则可将该映射记为,这个映射应满足:,是的一个置换;密钥k下的解密函数记为,它是的逆。2.分组密码的设计原则安全性角度:“混乱原则”:为了避免密码分析者利用明文与密文之间的依赖关系进行破译,密码的设计应该保证这种依赖关系足够复杂。“扩散原则”:为避免密码分析者对密钥逐段破译,密码的设计应该保证密钥的每位数字能够影响密文中的多位数字;同时,为了避免避免密码分析者利用明文的统计特性,密码的设计应该保证明文的每位数字能够影响密文中的多位数字,从而隐藏明文的统计特性。2.分组密码的设计原则可实现性角度:应该具有标准的组件结构(子模块),以适应超大规模集成电路的实现。分组密码的运算能在子模块上通过简单的运算进行。3.3Feistel密码结构加密:

Li=Ri-1

Ri=Li-1F(Ri-1,Ki)解密:

Ri-1=Li

Li-1=RiF(Ri-1,Ki)=RiF(Li,Ki)Feistel结构依赖参数和特征分组长度:分组长度越长意味着安全性越高(其他条件不变),但是会降低加解密的速度。一般64位的分组长度。密钥长度:密钥较长意味着安全性较高,但会降低加解密的速度。一般需要128位密钥,64位密钥通常不够。迭代轮数:Feistel密码的本质在于单轮不能提供足够的安全性,多轮可取得很高安全性。迭代轮数的典型值为16。子密钥产生算法:子密钥越复杂,密码分析攻击越困难。轮函数:轮函数越复杂,抗攻击的能力就越强。3.4数据加密标准DES

(DataEncryptionStandard)DES(DataEncryptionStandard)算法于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法,其密文的长度也为64位。国内随着三金工程尤其是金卡工程的启动,DES算法在ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密。如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。DES(DataEncryptionStandard)是由IBM公司在20世纪70年代研制的,经过政府的加密标准筛选后,于1976年11月被美国政府采用,随后被美国国家标准局和美国国家标准协会(ANSI)所认可。DES算法具有以下特点:(1)DES算法是分组加密算法:以64位为分组。(2)DES算法是对称算法:加密和解密用同一密钥。(3)DES算法的有效密钥长度为56位。(4)换位和置换。(5)易于实现。1.DES的产生背景DES的生命期NBS最终采纳了IBM的LUCIFER方案,于1975年公开发表。1977年正式颁布为数据加密标准(DES-DataEncryptionStandard)。1979年,美国银行协会批准使用DES。1980年,DES成为美国标准化协会(ANSI)标准。1984年,ISO开始在DES基础上制定数据加密的国际标准。美国国家安全局NSA每隔年对该算法进行评估,1994年,决定1998年12月之后不再使用DES。现已经确定了选用Rijndael算法作为高级加密算法AES。2.DES算法要点算法设计中采用的基本变换和操作:置换(P):重新排列输入的比特位置。交换(SW):将输入的左右两部分的比特进行互换。循环移位:将输入中的比特进行循环移位,作为输出。一个复杂变换(fK

)通常是一个多阶段的乘积变换;与密钥Key相关;必须是非线性变换;实现对密码分析的扰乱;是密码设计安全性的关键。3.DES的加密过程第一步:初始置换IP。对于给定的明文m,通过初始置换IP获得,并将分为两部分,前面32位记为,后面32位记为,即第二步:乘积变换(

16轮)。在每一轮中依据下列方法计算()(16轮中的计算方法相同):,其中,为第i轮使用的子密钥,各均为的一个置换选择,所有构成密钥方案。函数中的变量为32位字符串,为48位字符串,函数输出的结果为32位字符串。DES的加密过程第三步:初始置换的逆置换。应用初始置换的逆置换对进行置换,得到密文c,即。Li-1Ri-1LiRikif+一轮DES加密过程IPL0R0L1=R0R1=L0⊕f(R0,K1)R2=L1⊕f(R1,K2)L2=R1明文L15=R14R16=L15⊕f(R15,K16)R15=L14⊕f(R14,K15)L16=R15IP-1密文fK1fK2fK16DES加密流程图LRexpandshiftshiftkeykeyS-boxescompressLR28282828282848324832323232OneRoundofDES4832KiPbox(1)IP置换表和IP-1逆置换表输入的64位数据按IP表置换进行重新组合,并把输出分为L0和R0两部分,每部分各32位,其IP表置换如表3-1所示表3-1IP置换表5850423426181026052443628201246254463830221466456484032241685749413325179159514335271911361534537292113563554739312315741

初始置换IP和IP-1IPIP-1将输入的64位明文的第58位换到第1位,第50位换到第2位,依此类推,最后一位是原来的第7位。L0和R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。比如:置换前的输入值为D1D2D3…D64,则经过初始置换后的结果为:L0=D58D50…D8,R0=D57D49…D7。经过16次迭代运算后。得到L16和R16,将此作为输入进行逆置换,即得到密文输出。表3-2IP-1逆置换表逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换IP-1,又将第40位换回到第1位,其逆置换IP-1规则表如3-2所示。40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725(2)函数f的内部流程Ri-1(32bit)ES1S2S8PKi(48bit)48bit32bitf(Ri-1,ki)(32bit)E变换的算法是从Ri-1的32位中选取某些位,构成48位,即E将32位扩展为48位。变换规则根据E位选择表,如表3-3所示。表3-3E位选择表3212345456789891011121312131415161716171819202120212223242524252627282928293031321每个S盒输出4位,共32位,S盒的工作原理将在第4步介绍。S盒的输出作为P变换的输入,P的功能是对输入进行置换,P换位表如表3-4所示。Ki是由密钥产生的48位比特串,具体的算法是:将E的选位结果与Ki作异或操作,得到一个48位输出。分成8组,每组6位,作为8个S盒的输入。表3-4P换位表如表1672021291228171152326518311028241432273919133062211425(3)DES的密钥Ki计算DES在各轮中所用的密钥均为由初始密钥(即种子密钥)导出的48位密钥。初始密钥为64位,其中第8、16、24、32、40、48、56、64位均为校验位。如此设置校验位的目的是使每8个字节所含的字符“1”个数为奇数,以便能够检测出每个字节中的错误。子密钥ki产生流程图PC-1C0D0LS1LS1C1D1LS2LS2C2D2LS16LS16C16D16PC-2PC-2PC-2K(64bit)K1(48bit)K2(48bit)K16(48bit)假设初始密钥为K,长度为64位,但是其中第8,16,24,32,40,48,64作奇偶校验位,实际密钥长度为56位。K下标i的取值范围是1到16,用16轮来构造。构造过程如图所示。50子密钥的产生产生子密钥Ki具体描述为:首先,对于给定的密钥K,应用PC1变换进行选位,选定后的结果是56位,设其前28位为C0,后28位为D0。PC1选位如表3-5所示。表3-5PC-1选位表57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124第1轮:对C0作左移LS1得到C1,对D0作左移LS1得到D1,对C1D1应用PC2进行选位,得到K1。其中LS1是左移的位数,如表3-6所示。第2轮:对C1和D1作左移LS2得到C2和D2,进一步对C2D2应用PC2进行选位,得到K2。如此继续,分别得到K3,K4,…,K16。表3-6LS移位表轮数循环左移位数轮数循环左移位数轮数循环左移位数轮数循环左移位数115291132216210214232721121524282122161表3-7PC-2选位表1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932(4)S盒的工作原理S盒以6位作为输入,而以4位作为输出,现在以S1为例说明其过程。假设输入为A=a1a2a3a4a5a6,则a2a3a4a5所代表的数是0到15之间的一个数,记为:k=a2a3a4a5;由a1a6所代表的数是0到3间的一个数,记为h=a1a6。在S1的h行,k列找到一个数B,B在0到15之间,它可以用4位二进制表示,为B=b1b2b3b4,这就是S1的输出。S盒由8张数据表组成,如教材P84-85所示。S-盒的构造

DES加密范例已知明文m=computer,密钥k=program。

m=0110001101101111011011010111000001110101011101000110010101110010

k=01110000011100100110111101100111011100100110000101101101这里k只有56bit,必须插入第8,16,24,32,40,48,56,64这8个奇偶校验位成为64比特。k=0111000*0011100*1001101*1110110*0111011*1001001*1000010*1101101*m经过IP置换后得

L0=11111111101110000111011001010111

R0=00000000111111110000011010000011

密钥k经PC-1置换得

C0=1110110010011001000110111011

D0=1011010001011000100011100111C0和

D0各循环左移一位后通过PC-2得到48bit的子密钥k1。

C1=1101100100110010001101110111

D1=0110100010110001000111001111k1=001111011000111111001101001101110011111101001000DES加密范例R0经过E变换后扩展为48bit。100000000001011111111110100000001101010000000110再和k1

作异或运算,得101111011001100000110011101101111110101101001110分成8组

101111011001100000110011101101111110101101001110经过S盒后输出32bit01110110110101000010011010100001再经过P置换得01000100001000011001111110011011DES加密范例所以第一轮迭代的结果为

=10111011100110011110100111001100DES加密范例4.DES的解密过程采用与加密相同的算法。以逆序(即)使用密钥。实现效果

不同微处理器上的DES软件实现速度

处理器处理器速度(MHz)每秒处理的DES分组个数80884.7370680007.69008028661,10068020163,50068030163,90080286255,000680305010,000680402516,000680404023,000804866643,000雪崩效应明文或密钥的微小改变将对密文产生很大的影响是任何算法所期望的一个好性质。明文或密钥的某一位发生变化会导致密文的很多位发生变化。如果相应的改变很小,可能会给分析者提供缩小搜索密钥或明文空间的渠道。DES显示出很强的雪崩效应:如下两条仅有一位不同的明文:00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000密钥:00000011001011010010011000100011100001100000111000110010结果表明仅经过3轮迭代后,两段数据有21位不同。全部迭代完成后得到的两段密文则有34位不同。DES的雪崩效应(a)明文的变化(b)密钥的变化轮数改变的位数轮数改变的位数0116221335439534632731829...0012214328432530632735834...

5.DES的安全性分析DES的安全性完全依赖于密钥,与算法本身没有关系。主要研究内容:密钥的互补性;弱密钥与半弱密钥;密文-明文相关性;密文-密钥相关性;S-盒的设计;密钥搜索。密钥的互补性DES算法具有互补性,即:若、是的补、是的补,则。使用DES算法时不要使用互补的密钥,否则当密码攻击者选择明文攻击时,他们仅需试验一半密钥。弱密钥弱密钥:由密钥k

确定的加密函数与解密函数相同,即。DES的弱密钥:如果各轮产生的子密钥一样,则加密函数与解密函数相同。DES至少有4个弱密钥:01010101010101011f1f1f1f0e0e0e0ee0e0e0e0f1f1f1f1fefefefefefefefe半弱密钥半弱密钥:对于密钥

k

,存在一个不同的密钥,满足。DES的半弱密钥:子密钥生成过程中只能产生两个不同的子密钥或四个不同的子密钥,互为对合。DES至少有12个半弱密钥。S-盒的设计原则S-盒的设计原理没有公开,一些原则如下:所有S-盒的每一行是0,1,…,15的一个置换;所有S-盒的输出都不是输入的线性函数或仿射函数;S-盒的输入改变任意一位都会引起输出中至少两位发生变化;对于任何输入x(6位),S(x)与S(x⊕001100)至少有两位不同;对于任何输入x(6位),S(x)与S(x⊕00ef00)不相等,e,f取0或1;对于任意一个输入位保持不变而其他五位变化时,输出中0和1的数目几乎相等。针对DES的攻击方法攻击DES的方法主要有:密钥穷搜索攻击,DES算法总的密钥量为,1998年使用高级计算机的情况下,破译DES只需56小时;差分攻击;线性攻击,较有效的方法;相关密钥攻击等。DES遭受攻击的原因只是因为其密钥过短,而不是因为存在比穷举密钥更有效的个攻击方法。所有DES的攻击都要尝试几乎所有的密钥70DESCrackerDESCracker:ADESkeysearchmachinecontains1536chipsCost:$250,000.couldsearch88billionkeyspersecondwonRSALaboratory’s“DESChallengeII-2”bysuccessfullyfindingaDESkeyin56hours.DESisfeelingitsage.Amoresecurecipherisneeded.DES加密练习1、假设明文和密钥有相同的位模式,即:用十六进制表示:0123456789ABCDEF用二进制表示:0000000100100011010001010110011110001001101010111100110111101111a、推导第一轮的子密钥K1b、推导L0,R0c、扩展R0,求E[R0]d、计算A=E[R0]K1e、把(d)的48位结果分成6位(数据)的集合并求对应S盒代换的值DES加密练习f、利用(e)的结论来求32位的结果,Bg、应用置换求P(B)h、计算R1=P[B]L0i、写出密文2、为什么说研究Feistel密码很重要?3、分组密码和流密码的区别是什么?由于DES的密钥长度相对于穷举攻击过短,所以一般使用多重DES进行加密,一般的是三重DES,定义为:C=E(D(E(P,K1),K2),K1),即EDE(112bitkey)。P=D(E(D(C,K1),K2),K1)DESDES-1DESDES-1DESDES-1mck1k2k1DES的变形——3-DES3DESWhyEncrypt-Decrypt-Encryptwith2keys?Backwardcompatible:E(D(E(P,K),K),K)=E(P,K)And112bitsisenoughWhynotC=E(E(P,K),K)?Trickquestion---it’sstilljust56bitkeyWhynotC=E(E(P,K1),K2)?A(semi-practical)knownplaintextattack3DESWhynotC=E(E(P,K1),K2)?A(semi-practical)knownplaintextattackPre-computetableofE(P,K1)foreverypossiblekeyK1(resultingtablehas256entries)ThenforeachpossibleK2computeD(C,K2)untilamatchintableisfoundWhenmatchisfound,haveE(P,K1)=D(C,K2)Resultgivesuskeys:C=E(E(P,K1),K2)3.4其他分组密码IDEA算法RC5算法Rijndael算法1.IDEA

算法IDEA国际数据加密算法(InternationalDataEncryptionAlgorithm)瑞士联邦理工学院:XuejiaLai&JamesMassey,1990;1991改进,加强了对差分密码分析的抗击能力;明文分组与密文分组的长度均为64位,密钥长度为128位。IDEA

算法算法的设计思想混合使用来自不同代数群中的运算;通过对于两个16位的子模块连续使用三个“不相容”的群运算(分别是异或、模加、模乘),可以获得所需的“混乱”;选择使用的密码结构可以提供必要的“扩散”。IDEA

算法描述IDEA

算法描述加密过程:长度为64位的分组被分为4个长度为16位的子分组。这些子分组作为算法第1轮的输入(注:该算法共8轮)。在每一轮中,子分组相互间进行异或、模加、模乘运算,并且与6个长度为16位的子密钥进行异或、模加、模乘运算。在各轮之间,第2个子分组和第3个子分组进行交换。最后,在输出变换中,子分组与子密钥进行运算,将运算所得的4个子分组重新连接便得到密文。IDEA

算法描述子密钥的产生过程:将长度为128位的密钥分为8个长度为16位的子密钥,作为算法第1轮需要的6个子密钥和第2轮中的前两个子密钥;将原来长度为128位的密钥向左环移25位,再次分为8个长度为16位的子密钥,作为算法第2轮需要的另外4个子密钥和第3轮所需的6个子密钥;依次类推,便得到全部所需的52个密钥。解密过程与加密过程基本相同。但是需要对子密钥进行求逆运算。

2.RC5算法RSA公司的Rivest所设计的一种参数(分组大小、密钥长度、加密轮数)可变的分组密码算法。一个RC5算法通常被记为:RC5-w/r/b。其中,“w”为分组大小(w=16,32,64),“r”为加密轮数(),“b”为密钥长度()。该算法实际上包含三部分:密钥扩展算法、加密算法、解密算法。3.Rijndael算法不属于Feistel结构,Adi

Shamir相信“永远安全的”。已被美国国家标准技术研究所选定作为高级加密算法AES。迭代分组密码算法。密钥128/192/256,分组128/192/256,循环次数10/12/14。速度快、对内存要求小,操作简单。算法的抗攻击能力强。3.5

分组密码的工作模式为了将DES应用于实际,已经提出的分组密码工作模式有:密码分组链接(CBC)模式;密码反馈(CFB)模式;输出反馈(OFB)模式;级连(CM)模式(又称多重加密模式);计数器模式;扩散密码分组链连(PCBC)模式。模式描述典型应用电码本(ECB)用相同的密钥分别对明文组加密单个数据的安全传输(如下一个加密密钥)密码分组链接(CBC)加密算法的输入是上一个密文组和下一个明文组的异或普通目的面向分组的传输认证密码反馈(CFB)一次处理J位。上一个分组密文作为产生一个伪随机数输出的加密算法的输入,该输出与明文异或,作为下一个分组的输入普通目的的向分组的传输认证输出反馈(OFB)与CFB基本相同,只是加密算法的输入是上一次DES的输出噪声通道上的数据流的传输(如卫星通信)计数器(CTR)每个明文组是加密的计数器的异或。对每个后续的组,计算器是累加的普通目的面向分组的传输用于高速需求3.5

分组密码的工作模式

86电码本(ECB)Ci=EK(Pi)

Pi=DK(Ci)ECB特点简单和有效可以并行实现不能隐藏明文的模式信息相同明文相同密文同样信息多次出现造成泄漏对明文的主动攻击是可能的信息块可被替换、重排、删除、重放误差传递:密文块损坏仅对应明文块损坏适合于传输短信息AliceHatesECBModeAlice’suncompressedimage,andECBencrypted(TEA)Whydoesthishappen?Sameplaintextyieldssameciphertext!密码分组链接(CBC)模式密文分组被反馈到输入端,明文分组与的异或结果被作为DES加密算法的输入,从而得到下一个密文分组,即。解密过程为。密文分组为无须保密的事先设定的初值,不同的明文x(而非明文分组)对应不同的。各密文分组不仅与与之对应的明文分组有关,也和此前的所有明文分组(即)有关。Ci=EK(Ci-1Pi)

Pi=EK(Ci

)Ci-1密码分组链接(CBC)模式密码分组链接(CBC)模式优点:能够隐蔽明文的数据模式,相同的明文不一定产生相同的密文;能够在一定程度上防止分组的重放、插入和删除等攻击。缺点:易导致错误传播。由于任何一个明文或密文分组出错都会导致其后的密文分组出错AliceLikesCBCModeAlice’suncompressedimage,AliceCBCencrypted(TEA)Whydoesthishappen?Sameplaintextyieldsdifferentciphertext!密码反馈(CFB)模式实质上是一种自同步流密码。适用于必须按比特或者字符对明文进行加密的情况。采用该模式实现DES算法时,反馈的密文分组的长度与此前的密文分组长度不同,而是通常为事先设定的n值(),与明文相加的只是密文分组的最左边n位,反馈的密文分组同时反馈到密钥产生器。密码反馈(CFB)模式基本原理如图:输出反馈(OFB)模式优点:能够克服错误传播。缺点:很难发现密文被篡改;不具备自同步能力。

输出反馈(OFB)模式基本原理如图

:级连(CM)模式基本原理如图:主要是为了增加密钥

温馨提示

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

评论

0/150

提交评论