欢迎来到天天文库
浏览记录
ID:38415563
大小:1.13 MB
页数:8页
时间:2019-06-12
《分组密码的分析和设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、二、分组密码实例分组密码(BlockCipher):一次处理一块输入,每个输入块生成一个输出块;将明文消息划分成固定长度的分组,各分组分别在密钥的控制下变换成等长度的密文分组。数据加密标准DESDES概述:DES是分组长度为64bit的分组加密算法,64bit的明文分组从算法的一端输入,64bit的密文分组从算法的另一端输出。DES的密钥长度是64bit(8Byte),但是每个字节的第8位都用作奇偶校验位,故实际密钥长度是56bit。简单的说,算法只不过是加密的两种基本技术----混乱和扩散的组合。DES基本组建分组是这些技术的一个组合(先代替后置换)
2、,它基于密钥,作用于明文,这就是众所周知的轮变换(round)。在DES中有16轮,这就意味着要在明文上16次实施相同的组合技术。DES是对称加密算法,加密和解密用的是同一算法(密钥顺序及应用方向与加密过程相反)。加密过程和解密过程的区别:“方向和过程刚好相反”。也就是说“解密过程是加密过程的反过程”,DES算法解密过程是加密过程的“逆”运算。DES加密过程:算法的概要DES对64位的明文分组进行操作。经过一个初始置换,将明文分组分成左,右两部分,各32位长,然后进行16轮完全相同的运算,也称为"函数f",在运算的过程中数据与密钥结合。在每一轮中,密钥
3、为移位,然后在从密钥的56位中选出48位,通过一个扩散置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个S-盒将这48位替代为新的32位数据,再将其置换一次,这四步运算构成了f函数。然后再通过另一个异或运算,使f函数的输出与左半部分结合,其结果就形成了新的右半部分,原来的右半部分变成新的左半部分,即对于第i次迭代,用L和R表示第(i-1)次迭代后的左右两部分(各32bit),则Li=Ri-1Ri=Li-1⊕f(Ri-1,Ki)(i=2,3,…,16)这里ki是64bit密钥k产生的子密钥,ki是48bit。经过16轮后,左、
4、右半部分合在一起经过一个末置换(初始置换的逆置换),这样完成加密过程。请注意,在最后一轮迭代中,左半部分和右半部分并未交换,而是将R和L并在一起形成一个64位的分组作为末置换的输入。这样做的理由是该算法既能用作加密,又能用作解密。三重DES:由于DES的密钥长度相对于穷举攻击过短,所以一般使用多重DES进行加密.一般的是三重DES.加密:c=EK3(DK2(EK1(M)))解密:M=DK1(EK2(DK3(M)))其中,K1、K2、K3为56位DES密钥。为了获得更高的安全性,三个密钥应互不相同。如与DES保持兼容,则可以选择K1=K2或K2=K3。高
5、级数据加密标准AES加密过程:该算法的信息内容是以128位长度的分组为加密单元的。加密密钥长度有128、192或256位多种选择。f函数要迭代10次。一个128位的分组转换成16个字节,作为下面处理的输入。首先,每一个字节分别经过替换函数S的处理,然后,用第二个置换函数P对16个字节进行处理。最后这个结果就和密钥扩展函数产生的子密钥进行位与。算法概要:AES的每一轮操作包括4个步骤:(函数)·ByteSub(字节替换):用一张称为S盒子的固定表来执行字节到字节的替换。·ShiftRow(行移位置换):行与行之间执行简单的置换。·MixColumn(列混
6、淆替换):列中的每一个字节替换成该列所有字节的一个函数。·AddRoundKey(轮密钥加):用当前的数据块与扩充密钥的一部分进行简单的XOR运算。以上4个函数中,具体为1次置换3次替换。解密过程:AES的解密算法完全由加密算法倒推重来一是四种基本运算用它们的逆运算取代;二是轮密钥颠倒顺序使用。与DES一样,AES也是一种迭代分组密码,同样使用了多轮置换和替换操作,并且操作是可逆的。但与DES不同的是,AES算法不是Feistel密码结构,而是在每轮替换和移位时都并行处理整个数据分组。AES的操作轮数在10~14之间。其中当数据块和密钥都为128bit
7、时,轮数为10;随着数据块和密钥长度的增加,操作轮数也会随之增加,最大值为14。Feristel密码结构:提出用替代和置换交替的方式构造密码1.采用多轮乘积密码迭代,实现扩散与混淆;2.每轮仅改变一半数据,且运算结束时左右各半数据交换位置;3.用于改变数据的轮函数f通常包括代换和置乱操作,实现置乱的装置称为P盒,实现代换的装置称为S盒,它们分别实现扩撒与混淆;1.密码的安全性取决于分组长度、密钥位数、迭代轮数、子密钥产生算法和轮函数f等参数。一个16轮的Feristel密码结构如下图:其中k1~k16是由种子密钥k扩展得到的16个子密钥(也叫轮密钥),
8、表示异或运算。Shannon提出用扰乱和扩散交替的方式构造密码
此文档下载收益归作者所有