第四章分组密码课件_第1页
第四章分组密码课件_第2页
第四章分组密码课件_第3页
第四章分组密码课件_第4页
第四章分组密码课件_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

第四章分组密码一、分组密码概述二、分组密码运行模式三、DES四、AES五、分组密码的分析2023/8/91第四章分组密码一、分组密码概述2023/8/11一、分组密码概述2023/8/92一、分组密码概述2023/8/12分组密码概述分组密码是许多系统安全的一个重要组成部分。可用于构造拟随机数生成器流密码消息认证码(MAC)和杂凑函数消息认证技术、数据完整性机构、实体认证协议以及单钥数字签字体制的核心组成部分。

2023/8/93分组密码概述分组密码是许多系统安全的一个重要组成部分。可用于应用中对于分组码的要求安全性运行速度存储量(程序的长度、数据分组长度、高速缓存大小)实现平台(硬、软件、芯片)运行模式2023/8/94应用中对于分组码的要求安全性2023/8/14分组密码概述明文序列x1,x2,…,xi,…加密函数E:Vn×KVn

这种密码实质上是字长为m的数字序列的代换密码。

解密算法加密算法密钥k=(k0,k1,…,kt-1)密钥k=(k0,k1,…,kt-1)明文x=(x0,x1,…,xm-1)明文x=(x0,x1,…,xm-1)密文x=(y0,y1,…,ym-1)2023/8/95分组密码概述明文序列x1,x2,…,xi,…解

分组密码概述通常取n=m。若n>m,则为有数据扩展的分组密码。若n<m,则为有数据压缩的分组密码。2023/8/96

分组密码概述通常取n=m。2023/8/16分组密码设计问题

分组密码的设计问题在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的明文的数字组进行加密变换。2023/8/97分组密码设计问题分组密码的设计问题在于找到分组密码算法应满足的要求分组长度n要足够大:防止明文穷举攻击法奏效。密钥量要足够大:尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷举攻击奏效。由密钥确定置换的算法要足够复杂:充分实现明文与密钥的扩散和混淆,没有简单的关系可循,要能抗击各种已知的攻击。2023/8/98分组密码算法应满足的要求分组长度n要足够大:2023/8/1分组密码算法应满足的要求加密和解密运算简单:

易于软件和硬件高速实现。数据扩展:

一般无数据扩展,在采用同态置换和随机化加密技术时可引入数据扩展。差错传播尽可能地小。

2023/8/99分组密码算法应满足的要求加密和解密运算简单:2023/8/1代换网络代换是输入集A到输出A’上的双射变换:

fk:AA'

式中,k是控制输入变量,在密码学中则为密钥。实现代换fk的网络称作代换网络。双射条件保证在给定k下可从密文惟一地恢复出原明文。2023/8/910代换网络代换是输入集A到输出A’上的双射变换:2023/8/代换网络代换fk的集合:

S={fkkK}K是密钥空间。如果网络可以实现所有可能的2n!个代换,则称其为全代换网络。全代换网络密钥个数必须满足条件:#{k}2n!2023/8/911代换网络代换fk的集合:2023/8/111代换网络密码设计中需要先定义代换集S,而后还需定义解密变换集,即逆代换网络S-1,它以密文y作为输入矢量,其输出为恢复的明文矢量x。要实现全代换网络并不容易。因此实用中常常利用一些简单的基本代换,通过组合实现较复杂的、元素个数较多的代换集。实用密码体制的集合S中的元素个数都远小于2n!。2023/8/912代换网络密码设计中需要先定义代换集S,而后还需定义解密变换集代换盒(S盒)在密码设计中,可选n=rn0,其中r和n0都为正整数,将设计n个变量的代换网络化为设计r个较小的子代换网络,而每个子代换网络只有n0个输入变量。称每个子代换网络为代换盒(SubstitutionBox)

S盒x5

x4

x3

x2

x1

x0y3

y2

y1

y0DES的S盒2023/8/913代换盒(S盒)在密码设计中,可选n=rDES的S1-盒的输入和输出关系x5x0x5x4x3x2x1x010101100列号0123456789101112131415行号01441312151183106125907101574142131106121195382411481362111512973105031512824917511214100613

(y3

,

y2,

y1

,y0)=(0,0,1,0)2023/8/914DES的S1-盒的输入和输出关系x5x0扩散和混淆扩散将明文的统计特性散布到密文中。实现的方式是使明文的每一位影响密文中多位的值。2023/8/915扩散和混淆扩散将明文的统计特性散布到密文中。实现的方式是使明S盒的设计准则迄今为止,有关方面未曾完全公开有关DES的S盒的设计准则。Branstead等曾披露过下述准则:P1S盒的输出都不是其输入的线性或仿射函数。P2改变S盒的一个输入比特,其输出至少有两比特产生变化,即近一半产生变化。P3当S盒的任一输入位保持不变,其它5位输入变化时(共有25=32种情况),输出数字中的0和1的总数近于相等。这三点使DES的S盒能够实现较好的混淆。2023/8/916S盒的设计准则迄今为止,有关方面未曾完全公S盒的组合问题:如何将几个S盒组合起来构成一个n值较大的组。

将几个S盒的输入端并行,并通过坐标置换(P-盒)将各S盒输出比特次序打乱,再送到下一级各S盒的输入端,起到了Shannon所谓的“扩散”作用。S盒提供非线性变换,将来自上一级不同的S盒的输出进行“混淆”。经过P-盒的扩散作用使1均匀地分散到整个输出矢量中,从而保证了输出密文统计上的均匀性,这就是Shannon的乘积密码的作用。2023/8/917S盒的组合问题:如何将几个S盒组合起来构成一个n值较大的组Feistel网络

将nbit明文分成为左右各半、长为n/2bit的段,以L和R表示。然后进行多轮迭代,其第i轮迭代的输出为前轮输出的函数

Li=Ri-1

Ri=Li-1f(Ri-1,Ki)式中,Ki是第i轮用的子密钥,f是任意密码轮函数。称这种分组密码算法为Feistel网络(FeistelNetwork),它保证加密和解密可采用同一算法实施2023/8/918Feistel网络将nbit明文分成为左右各半、长迭代分组密码若以一个简单函数f,进行多次迭代,就称其为迭代密码。每次迭代称作一轮(Round)。相应函数f称作轮函数。每一轮输出都是前一轮输出的函数,即y(i)=f[y(i-1),k(i)],其中k(i)是第i轮迭代用的子密钥,由秘密密钥k通过密钥生成算法产生。

子密钥产生器kk(1)k(2)k(r)y(0)=xy(1)y(2)y(r-1)y(r)=y2023/8/919迭代分组密码若以一个简单函数f,进行多次迭代,就称其为迭代密对合密码(InvolutionCipher)

加密函数f(x,k),实现F2n×F2t

F2n的映射。其中,n是分组长,t是密钥长。若对每个密钥取值都有f[f(x,k),k]=x,即f(x,k)2=I(恒等置换)则称其为对合密码,以fI表示。2023/8/920对合密码(InvolutionCipher)20I型迭代分组密码以对合密码函数构造的多轮迭代分组密码。E[x,k]=fI[fI[

fI[fI[x,k(1)],k(2)],k(r-1)],k(r)]D[y,k]=fI[fI[

fI[fI[y,k(r)],k(r-1)],k(2)],k(1)]

缺点:对任意偶数轮变换,若对所有i选择k(2i-1)=k(2i),则加密的变换等价于恒等变换,在实用中需要避免这类密钥选择。2023/8/921I型迭代分组密码以对合密码函数构造的多轮迭代分组密码。202

对合置换和II型迭代分组密码对合置换令P是对x的置换,即P:F2n

F2n

,若对所有xGF(2n),有P[P[x]]=x,即PP=I(恒等置换),以PI表示。II型迭代分组密码每轮采用对合密码函数和对合置换级连,即F[x,k]=PI[fI[x,k]]并选解密子密钥与加密子密钥逆序,则加密解密可用同一器件完成。DES、FEAL和LOKI等都属此类。2023/8/922

对合置换和II型迭代分组密码对合置换2023/8/122

III型迭代分组密码群密码:若密钥与明文、密文取自同一空间GF(2n),且y=xk式中,是群运算,则称其为群密码。显然x可通过k的逆元求得x=yk-1令xk为一群密码,令fI(x,kB)为一对合密码,以F[x,k]=fI(xkA,kB)为迭代函数,可以III型多轮迭代分组密码。在最后一轮中,另外加了一次群密码运算,用以保证整个加、解密的对合性。2023/8/923

III型迭代分组密码群密码:若密钥与明文、密文取自同一空III型迭代分组密码轮函数F

F

y(1)y(r-1)(a)加密

x

fI···

fI

y

kA(1)kB(1)kA(r)kB(r)kA(r+1)F

F

y

fI···fI

x

(b)解密

kA(r+1))-1

kB(r)(kA(r))-1

kB(1)(kA)-1

2023/8/924III型迭代分组密码轮函数FIV型迭代分组密码

在III型密码的轮函数基础上,再增加一个对合置换PI,构成IV型迭代分组密码的轮函数

F[x,k]=PI[fI[xkA,kB]]2023/8/925IV型迭代分组密码在III型密码的轮函

IV型迭代分组密码轮函数Fy(1)y(r-1)

F

x

fIPI···

fI

PIPI

y

kA(1)kB(1)

kA(r)

kB(r)

kA(r+1)(a)加密

FF

y

fIPI···

fI

x

(b)解密(kA(r+1))-1kB(r)

PI[kA(r)]-1

PI[kA(2)]-1

kB(1)(kA(1))-1

2023/8/926

IV型迭代分组密码轮函数F二、分组码的运行模式2023/8/927二、分组码的运行模式2023/8/127

主要工作模式

即使有了安全的分组密码算法,也需要采用适当的工作模式来隐蔽明文的统计特性、数据的格式等,以提高整体的安全性,降低删除、重放、插入和伪造成功的机会。电子码本(ECB)密码反馈链接(CBC)

密码反馈(CFB)输出反馈(OFB)。

2023/8/928主要工作模式

电码本ECB模式直接利用加密算法分别对分组数据组加密。在给定的密钥下同一明文组总产生同样的密文组。这会暴露明文数据的格式和统计特征。

明文数据都有固定的格式,需要以协议的形式定义,重要的数据常常在同一位置上出现,使密码分析者可以对其进行统计分析、重传和代换攻击。2023/8/929电码本ECB模式直接利用加密算法分别对分组数据组加密

电码本ECB模式

xykDESyxkDES-12023/8/930电码本ECB模式密码分组链接CBC模式每个明文组xi加密之前,先与反馈至输入端的前一组密文yi-1按位模2求和后,再送至加密算法加密各密文组yi不仅与当前明文组xi有关,而且通过反馈作用还与以前的明文组x1,x2,…,xi-1,有关2023/8/931密码分组链接CBC模式每个明文组xi加密之前,先与反馈至输入密码分组链接CBC模式初始矢量IV(InitialVector):第一组明文xi加密时尚无反馈密文,为此需要在寄存器中预先置入一个。收发双方必须选用同一IV。实际上,IV的完整性要比其保密性更为重要。在CBC模式下,最好是每发一个消息,都改变IV,比如将其值加一。2023/8/932密码分组链接CBC模式初始矢量IV(InitialVec密码分组链接CBC模式

CBC模式xiyikDESyix’kDES-1++64bit存储64bit存储yi-12023/8/933密码分组链接CBC模式填充(Padding)

给定加密消息的长度是随机的,按64bit分组时,最后一组消息长度可能不足64bit。可以填充一些数字,通常用最后1字节作为填充指示符(PI)。它所表示的十进制数字就是填充占有的字节数。数据尾部、填充字符和填充指示符一起作为一组进行加密。

数据填充PI2023/8/934填充(Padding)给定加密消息的长度是随机的,按CBC的错误传播1.明文有一组中有错,会使以后的密文组都受影响,但经解密后的恢复结果,除原有误的一组外,其后各组明文都正确地恢复。2.若在传送过程中,某组密文组yi出错时,则该组恢复的明文x’i和下一组恢复数据x’i+1出错。再后面的组将不会受yi中错误比特的影响。2023/8/935CBC的错误传播2023/8/135k-比特密码反馈CFB模式若待加密消息必须按字符(如电传电报)或按比特处理时,可采用CFB模式。CFB实际上是将加密算法DES作为一个密钥流产生器,当k=1时就退化为前面讨论的流密码了。CFB与CBC的区别是反馈的密文长度为k,且不是直接与明文相加,而是反馈至密钥产生器。2023/8/936k-比特密码反馈CFB模式若待加密消息必须按字符(如电传电报k-比特密码反馈CFB模式

CFB模式

+

+xixiyiyikkXi64bitXi64bitYi64bitYi64bitDES

DES-1选最左边

k位选最左边

k位kbitkbityi-Lyi-2yi-12023/8/937k-比特密码反馈CFB模式++xixiyiyikkXk-比特密码反馈CFB模式CFB的优点它特别适于用户数据格式的需要。能隐蔽明文数据图样,也能检测出对手对于密文的篡改。CFB的缺点对信道错误较敏感,且会造成错误传播。CFB也需要一个初始矢量,并要和密钥同时进行更换。2023/8/938k-比特密码反馈CFB模式CFB的优点2023/8/138输出反馈OFB模式将分组密码算法作为一个密钥流产生器,其输出的k-bit密钥直接反馈至分组密码的输入端,同时这k-bit密钥和输入的k-bit明文段进行对应位模2相加。克服了CBC和CFB的错误传播所带来的问题。对于密文被篡改难以进行检测不具有自同步能力,要求系统要保持严格的同步2023/8/939输出反馈OFB模式将分组密码算法作为一个密钥流产生器,其输出输出反馈OFB模式

OFB模式

+xiyik64bit64bitDES选最左边

k位ki64bit

寄存器kbitkbit

+xiyik64bit64bit

DES-1选最左边

k位kbit64bit

寄存器kbitki2023/8/940输出反馈OFB模式+xiyik64bit64bitDEOCB模式2023/8/941OCB模式2023/8/141OCB模式functionocb-aes-encrypt(K,M,Nonce)begin

Offset=AES(K,Noncexor

L)Checksum=0

for

i=1to

m-1dobegin

Offset=Offsetxor

L(ntz(i))Checksum=Checksumxor

M[i]C[i]=OffsetxorAES(K,M[i]xorOffset)

end

Offset=Offsetxor

L(ntz(m))Pad=AES(K,len(M[m])xor

L(-1)xorOffset)C[m]=M[m]xor(thefirst|M[m]|bitsofPad)Checksum=ChecksumxorPadxor

C[m]0*FullTag=AES(K,ChecksumxorOffset)Tag=aprefixofFullTag(ofthedesiredlength)

return

C[1]...C[m-1]C[m]Tag

end

L=AES(K,0).

L(0)=Lfori>0,L(i)=L(i-1)<<1ifthefirstbitofL(i-1)is0L(i)=(L(i-1)<<1)xor0x00000000000000000000000000000087otherwise.L(-1)=L>>1ifthelastbitofLis0,L(-1)=L>>1xor0x80000000000000000000000000000043otherwise.2023/8/942OCB模式functionocb-aes-encrypt(比较和选用ECB模式,简单、高速,但最弱、易受重发攻击,一般不推荐。CBC适用于文件加密,但较ECB慢。安全性加强。当有少量错误时,也不会造成同步错误。OFB和CFB较CBC慢许多。每次迭代只有少数bit完成加密。若可以容忍少量错误扩展,则可换来恢复同步能力,此时用CFB。在字符为单元的流密码中多选CFB模式。OFB用于高速同步系统,不容忍差错传播。2023/8/943比较和选用ECB模式,简单、高速,但最弱、易受重发攻击,一般三、美国数据加密标准—DES(DataEncryptionStandard)2023/8/944三、美国数据加密标准—DES(DataEncryption美国制定数据加密标准简况目的

通信与计算机相结合是人类步入信息社会的一个阶梯,它始于六十年代末,完成于90年代初。计算机通信网的形成与发展,要求信息作业标准化,安全保密亦不例外。只有标准化,才能真正实现网的安全,才能推广使用加密手段,以便于训练、生产和降低成本。

2023/8/945美国制定数据加密标准简况目的2023/8/145美国制定数据加密标准简况美国NBS在1973年5月15公布了征求建议。1974年8月27日NBS再次出公告征求建议,对建议方案提出如下要求:算法必须完全确定而无含糊之处;算法必须有足够高的保护水准,即可以检测到威胁,恢复密钥所必须的运算时间或运算次数足够大;保护方法必须只依赖于密钥的保密;对任何用户或产品供应者必须是不加区分的。2023/8/946美国制定数据加密标准简况美国NBS在1973年5月15公布了美国制定数据加密标准简况IBM公司在1971年完成的LUCIFER密码(64bit分组,代换-置换,128bit密钥)的基础上,改进成为建议的DES体制1975年3月17日NBS公布了这个算法,并说明要以它作为联邦信息处理标准,征求各方意见。1977年1月15日建议被批准为联邦标准[FIPSPUB46],并设计推出DES芯片。1981年美国ANSI将其作为标准,称之为DEA[ANSIX3.92]1983年国际标准化组织(ISO)采用它作为标准,称作DEA-1

2023/8/947美国制定数据加密标准简况IBM公司在1971年完成的LUCI美国制定数据加密标准简况NSA宣布每隔5年重新审议DES是否继续作为联邦标准,1988年(FIPS46-1)、1993年(FIPS46-2),1998年不再重新批准DES为联邦标准。虽然DES已有替代的数据加密标准算法,但它仍是迄今为止得到最广泛应用的一种算法,也是一种最有代表性的分组加密体制。1993年4月,Clinton政府公布了一项建议的加密技术标准,称作密钥托管加密技术标准EES(EscrowedEncryptionStandard)。算法属美国政府SECRET密级。2023/8/948美国制定数据加密标准简况NSA宣布每隔5年重新审议DES是否美国制定数据加密标准简况DES发展史确定了发展公用标准算法模式,而EES的制定路线与DES的背道而驰。人们怀疑有陷门和政府部门肆意侵犯公民权利。此举遭到广为反对。1995年5月AT&TBellLab的M.Blaze博士在PC机上用45分钟时间使SKIPJACK的LEAF协议失败,伪造ID码获得成功。1995年7月美国政府宣布放弃用EES来加密数据,只将它用于语音通信。1997年1月美国NIST着手进行AES(AdvancedEncryptionStandard)的研究,成立了标准工作室。2001年Rijndael被批准为AES标准。2023/8/949美国制定数据加密标准简况DES发展史确定了发展公用标准算法模

DES算法分组长度为64bits(8bytes)密文分组长度也是64bits。密钥长度为64bits,有8bits奇偶校验,有效密钥长度为56bits。算法主要包括:初始置换IP、16轮迭代的乘积变换、逆初始置换IP-1以及16个子密钥产生器。

2023/8/950

DES算法分组长度为64bits(8bytes)2DES算法框图

输入64bit明文数据初始置换IP乘积变换(16轮迭代)逆初始置换IP-164bit密文数据输出

标准数据加密算法2023/8/951DES算法框图初始置换IP将64bit明文的位置进行置换,得到一个乱序的64bit明文组,而后分成左右两段,每段为32bit,以L0和R0表示,IP中各列元素位置号数相差为8,相当于将原明文各字节按列写出,各列比特经过偶采样和奇采样置换后,再对各行进行逆序。将阵中元素按行读出构成置换输出。逆初始置换IP-1。将16轮迭代后给出的64bit组进行置换,得到输出的密文组。输出为阵中元素按行读得的结果。IP和IP-1在密码意义上作用不大,它们的作用在于打乱原来输入x的ASCII码字划分的关系,并将原来明文的校验位x8,x16,,x64变成为IP输出的一个字节。2023/8/952初始置换IP将64bit明文的位置进行置换,得到一个乱序的

Li-1(32bit)Ri-1(32bit)

选择扩展运算E48bit寄存器按bit模2加密48bit寄存器选择压缩运算S32bit寄存器置换运算P按bit模2和

Li(32bit)Ri(32bit)乘积变换框图密钥产生器2023/8/953密钥产生器2023/8/153乘积变换它是DES算法的核心部分。将经过IP置换后的数据分成32bit的左右两组,在迭代过程中彼此左右交换位置。每次迭代时只对右边的32bit进行一系列的加密变换,在此轮迭代即将结束时,把左边的32bit与右边得到的32bit逐位模2相加,作为下一轮迭代时右边的段,并将原来右边未经变换的段直接送到左边的寄存器中作为下一轮迭代时左边的段。在每一轮迭代时,右边的段要经过选择扩展运算E、密钥加密运算、选择压缩运算S、置换运算P和左右混合运算。2023/8/954乘积变换它是DES算法的核心部分。将经过IP置换后的数据分成乘积变换

选择扩展运算E。将输入的32bitRi-1扩展成48bit的输出,令s表示E原输入数据比特的原下标,则E的输出是将原下标s0或1(mod4)的各比特重复一次得到的,即对原第32,1,4,5,8,9,12,13,16,17,20,21,24,25,28,29各位都重复一次,实现数据扩展。将表中数据按行读出得到48bit输出。

密钥加密运算。将子密钥产生器输出的48bit子密钥ki与选择扩展运算E输出的48bits数据按位模2相加。

选择压缩运算S。将前面送来的48bit数据自左至右分成8组,每组为6bit。而后并行送入8个S一盒,每个S盒为一非线性代换网络,有4个输出,运算S的框图在图4-4-6中给出。

p.186

图4-4-6选择压缩运算S

置换运算P。对S1至S8盒输出的32bit数据进行坐标置换,如图4-4-7所示。置换P输出的32bit数据与左边32bit即Ri-1逐位模2相加,所得到的32bit作为下一轮迭代用的右边的数字段。并将Ri-1并行送到左边的寄存器,作为下一轮迭代用的左边的数字段。子密钥产生器。将64bit初始密钥经过置换选择PC1、循环移位置换、置换选择PC2给出每次迭代加密用的子密钥ki,参看图4-4-8。在64bit初始密钥中有8位为校验位,其位置号为8、16、32、48、56和64。其余56位为有效位,用于子密钥计算。将这56位送入置换选择PC1,参看图4-4-9。经过坐标置换后分成两组,每级为28bit,分别送入C寄存器和D寄存器中。在各次迭代中,C和D寄存器分别将存数进行左循环移位置换,移位次数在表4-4-2中给出。每次移位后,将C和D寄存器原存数送给置换选择PC2,见图4-4-10。置换选择PC2将C中第9、18、22、25位和D中第7、9、15、26位删去,并将其余数字置换位置后送出48bit数字作为第i次迭代时所用的子密钥ki。p.186p.186

图4-4-7置换运算P

图4-4-8子密钥产生器框图表4-4-2移位次数表第i次迭代12345678910111213141516循环左移次数1122222212222221

p.187

图4-4-9置换选择PC1

至此,我们已将DES算法的基本构成作了介绍,加密过程可归结如下:令IP表示初始置换,KS表示密钥运算,i为迭代次数变量,KEY为64bit密钥,f为加密函数,表示逐位模2求和。2023/8/955乘积变换选择扩展运算E。将输入的32bitRi-1扩选择压缩运算S

6bit选择函数组4bit

48bit寄存器32bit寄存器S1S2S3S4S5S6S7S82023/8/956选择压缩运算S48bit寄存器32bit寄存器S乘积变换

置换运算P。对S1至S8盒输出的32bit数据进行坐标置换,置换P输出的32bit数据与左边32bit即Ri-1逐位模2相加,所得到的32bit作为下一轮迭代用的右边的数字段。并将Ri-1并行送到左边的寄存器,作为下一轮迭代用的左边的数字段。

子密钥产生器。将64bit初始密钥经过置换选择PC1、循环移位置换、置换选择PC2给出每次迭代加密用的子密钥ki,2023/8/957乘积变换置换运算P。对S1至S8盒输出的32bit数据

子密钥产生器框图

密钥(64bit)置换选择1,PC1置换选择2,PC2

Ci(28bit)

Di(28bit)循环左移ti+1bit循环左移ti+1bit除去第8,16,,64位(8个校验位)ki2023/8/958

子密钥产生器框图密钥(64bit)DES的安全性互补性。DES算法具有下述性质。若明文组x逐位取补,密钥k逐位取补,即y=DESk(x),则有这种互补性会使DES在选择明文破译下所需的工作量减半。弱密钥和半弱密钥。DES算法在每次迭代时都有一个子密钥供加密用。如果给定初始密钥k,各轮的子密钥都相同,即有k1=k2=…=k16就称给定密钥k为弱密钥(Weakkey)。2023/8/959DES的安全性互补性。DES算法具有下述性质。若明文组x逐位DES的安全性若k为弱密钥,则有

DESk(DESk(x))=xDESk-1(DESk-1(x))=x即以k对x加密两次或解密两次都可恢复出明文。其加密运算和解密运算没有区别。弱密钥下使DES在选择明文攻击下的搜索量减半。如果随机地选择密钥,弱密钥所占比例极小,而且稍加注意就不难避开。因此,弱密钥的存在不会危及DES的安全性。2023/8/960DES的安全性若k为弱密钥,则有2023/8/160DES的安全性密文与明文、密文与密钥的相关性。

Meyer[1978]详细研究了DES的输入明文与密文及密钥与密文之间的相关性。表明每个密文比特都是所有明文比特和所有密钥比特的复合函数,并且指出达到这一要求所需的迭代次数至少为5。Konheim[1981]用2检验证明,迭代8次后输出和输入就可认为是不相关的了。2023/8/961DES的安全性密文与明文、密文与密钥的相关性。2023/8/DES的安全性S盒设计。

DES靠S盒实现非线性变换。密钥搜索机。

对DES安全性批评意见中,较为一致的看法是DES的密钥短了些。IBM最初向NBS提交的建议方案采用112bits密钥,但公布的DES标准采用64bits密钥。有人认为NSA故意限制DES的密钥长度。采用穷搜索对已经对DES构成了威胁.2023/8/962DES的安全性S盒设计。2023/8/162二重DES用DES进行两次加密,但这是否就意味着两重DES加密的强度等价于112bit密钥的密码的强度?答案是否定的。

中途相遇攻击法(Meet-in-the-MiddleAttack)由Diffie和Hellman[1977]最早提出,可以降低搜索量其基本想法如下。若有明文密文对(xi,yi)满足

yi=Ek2[Ek1[xi]]则可得z=Ek1[xi]=Dk2[yi]

2023/8/963二重DES用DES进行两次加密,但这是否就意味着两二重DES

图4-14-1中途相遇攻击示意图

zEEDDxiyixizyi

k1

k1k2k22023/8/964二重DESzEEDDxiyixizyik1k1k2k22中途相遇攻击给定一已知明密文对(x1,y1),可按下述方法攻击。以密钥k1的所有256个可能的取值对此明文x1加密,并将密文z存储在一个表中;从所有可能的256个密钥k2中依任意次序选出一个对给定的密文y1解密,并将每次解密结果z在上述表中查找相匹配的值。一旦找到,则可确定出两个密钥k1和k2;以此对密钥k1和k2对另一已知明文密文对(x2,y2)中的明文x2进行加密,如果能得出相应的密文y2就可确定k1和k2是所要找的密钥。2023/8/965中途相遇攻击给定一已知明密文对(x1,y1),可按下述方法攻中途相遇攻击对于给定明文x,以两重DES加密将有264个可能的密文。可能的密钥数为2112个。所以,在给定明文下,将有2112/264=248个密钥能产生给定的密文。用另一对64bits明文密文对进行检验,就使虚报率降为248-64=2-16。这一攻击法所需的存储量为256×8Byte,最大试验的加密次数2×256=257。这说明破译双重DES的难度为257量级。2023/8/966中途相遇攻击对于给定明文x,以两重DES加密将有264个可能三重DES加密加密:y=Ek1[Dk2[Ek1[x]]]解密:x=Dk1[Ek2[Dk1[y]]]称其为加密-解密-加密方案,简记为EDE(encrypt-decrypt-encrypt)。此方案已在ANSIX9.17和ISO8732标准中采用,并在保密增强邮递(PEM)系统中得到利用。破译它的穷举密钥搜索量为21125×1035量级,而用差分分析破译也要超过1052量级。此方案仍有足够的安全性。2023/8/967三重DES加密加密:y=Ek1[Dk2[Ek1[x]]]2四、AES2023/8/968四、AES2023/8/168AES提出1997年1月,美国NIST向全世界密码学界发出征集21世纪高级加密标准(AES——AdvancedEncryptionStandard)算法的公告,并成立了AES标准工作研究室,1997年4月15日的例会制定了对AES的评估标准。

2023/8/969AES提出1997年1月,美国NIST向全世AES的要求(1)AES是公开的;(2)AES为单钥体制分组密码;(3)AES的密钥长度可变,可按需要增大;(4)AES适于用软件和硬件实现;(5)AES可以自由地使用,或按符合美国国家标准(ANST)策略的条件使用;2023/8/970AES的要求(1)AES是公开的;2023/8/170算法衡量条件满足以上要求的AES算法,需按下述条件判断优劣a.安全性b.计算效率c.内存要求d.使用简便性e.灵活性。2023/8/971算法衡量条件满足以上要求的AES算法,需按下述条件判断优劣2AES的评审1998年4月15日全面征集AES算法的工作结束。1998年8月20日举行了首届AES讨论会,对涉及14个国家的密码学家所提出的候选AES算法进行了评估和测试,初选并公布了15个被选方案,供大家公开讨论。CAST-256,RC-6,CRYPTON-128,DEAL-128,FROG,DFC,LOKI-97,MAGENTA,MARS,HPC,RIJNDAEL,SAFER+,SERPENT,E-2,

温馨提示

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

评论

0/150

提交评论