赞
踩
目录
分组密码是将明文消息编码表示后的二进制序列,划分成固定大小的块,每块分别在密钥的控制下变换成等长的二进制序列。
分组密码属于对称密码体制,所以加密密钥空间与解密密钥空间相同,加解密的设计应满足以下要求:
为了抵抗攻击者对密码体制的攻击,Shannon提出了三个基本设计思想——混乱、扩散以及乘积密码。
扩散是指使每1比特明文的变化尽可能多地影响到输出密文序列的比特,以便隐蔽明文的统计特性。简单来说就是扩散的目的在于使密文中的任一比特都要尽可能与明文和密钥的每一比特相关联。
混乱是指在加密变换过程中明文、密钥以及密文之间的关系尽可能地复杂,以防密码破译者采用统计分析方法进行破译攻击。
混乱可以用“搅拌机”来形象解释,将一组明文和一组密钥输入到算法中,经过充分混合,变成密文。同时要求这种混乱作业的每一步都必须是可逆的,即明文混乱后得到密文,密文经过逆向的混乱操作后恢复出明文
设S1=(M1,C1,K1,E1,D1)和S2=(M2,C2,K2,E2,D2)是两个密码体制。
S1和S2的乘积定义了乘积密码体制
记为S1×S2。在实际应用中,明文空间和密文空间往往相同,即M1=M2=C1=C2,则乘积密码体制S1×S2可简化为,其中E=E1×E2,D=D1×D2。
如果S1×S2=S2×S1,那么乘积密码体制S1×S2和S2×S1是两个相同的密码体制,则称密码体制S1和S2是可交换的。
显然,密码体制的乘积运算满足结合律,即对任意的明文空间与密文空间相同的密码体制S1,S2以及S3,都有:
设S是一个明文空间和密文空间都相同的密码体制
称为迭代密码体制,如果,则称S是等幂的密码体系。
如果S不是一个幂等的密码体制,则对于n>1,迭代密码体制的安全强度会比S高,这种通过对一个密码体制进行迭代来提高其安全强度的思想被广泛应用于对称密码体制的设计,通常称之为密码体制的迭代结构。具体的,就是在密钥控制下扩散和混乱两种基本密码操作的多次迭代,每次迭代的各种基本密码操作总体,称之为轮函数。
一般来说,决定迭代轮数的准则是:使密码分析的难度大于简单穷举攻击的难度。
Feistel网络结构是一种应用于分组密码的对称结构,被用于很多分组密码算法,如DES、GOST28147-89等。
Feistel的优点在于加解密相似性,它只需一个逆转的密钥编排算法,其加解密算法部分几乎相同。因此,在实施过程中,对编码量和线路传输的要求都几乎减半,Feistel结构在物理上的重复使得它在硬件上的实施非常容易,尤其是支持DES计算的硬件。
以F表示轮函数,K0,K1,....,Kn分别表示第1,2,...,n+1轮的子密钥,那么基本加解密过程如下:
(1)将明文分组分割成长度相同的两块(L0,R0);
(2)对每一轮,i=0,1,...,n,
(3)加密后的密文为
(1)对于密文的解密,每一轮,i=n,n-1,...,0,
(2)最终得出为解密后的明文。
代换-置换网络,简称SP网络,是由S代换和P置换交替进行多次迭代而形成的变换网络,它属于迭代密码,也是乘积密码的一种常见表现形式。S代换(也称S盒)和P置换(也称P盒)是分组密码中的基本构件。
SP网络结构是由多重S盒和P盒组合成的变换网络。其中S盒起到混乱作用,P盒起到扩散作用。每一轮迭代中,分组先经过S盒进行代换,再通过P盒进行置换。
置换不等同于扩散。置换不改变明文在单个字符或置换分组上的统计性质。不过,多轮迭代与代换结合,置换能够产生扩散作用。
在SP网络结构中,S盒是许多密码算法唯一的非线性部件,它的密码强度决定了整个密码算法的安全强度。
SP网络结构和Feistel网络结构都具有雪崩效应。雪崩效应指的是:输入(明文或密钥)即使只有很小的变化,也会导致输出(密文)产生巨大的变化。
DES是一个对称密码体制,加密和解密使用同一密钥,有效密钥长度为56位。DES是一个分组密码算法,分组长度位64位,即对数据进行加解密的单位是64位,明文和密文长度相同。
DES的初始密钥长度也为64位,但有效的密钥为56位,因为第8、16、24、40、48、56和64位都是奇校验位。
加密过程主要有3个阶段
(1)64位的明文经过初始置换(IP)而被重新排列,并将其分为左右两个分组L0和R0,各为32位。
(2)在密钥的参与下,对左右两个分组进行16轮相同轮函数的选代,每轮送代都有置换和代换。注意最后一轮选代的输出为64位,左半部分和右半部分不进行交换。
(3)最后的预输出再通过逆初始置换(TP-1)产生64位的密文。
初始置换(IP)是在第一轮迭代之前进行的,目的是将原明文块的位进行换位,其置换表是固定的。
逆初始置换()是初始置换的逆置换,数据块经过初始置换和逆初始置换后恢复到原来的位置。
如上图,经过IP置换后,明文块第1位被置换到第40位的位置,在经过置换后,第40位又回到了第1位的位置。
DES的轮函数F由四个部分组成:扩展置换(E盒)、密钥加非线性代换(S盒)、线性置换(P盒)。
扩展置换又称E盒,它将 32 位输入扩展为 48 位输出。其扩展方法为:将 48 位输出按8行6 列的次序排列,排列时,将输入位序号按 3212··. 31 的次序依次排列,但上一行的后两位依次在下一行的起始位置得到重用,如第一行的最后两位的 4 5 同时出现在第二行的头两位(最后一行的下一行是第一行)。
由于这个置换改变了位的次序,重复了某些位,故称为扩展置换。E 盒产生与子密钥相同长度的数据使得能进行异或运算,同时,扩展后的数据在 S盒的作用下能进行压缩,实现了非线性变换。但是,E盒在 DES算法上的目的不仅如此,由于 E盒输入的 1位可能影响 2个S盒的输人,所以输出对输人的依赖性将传播更快,从而快速实现雪崩效应。
密钥加层扩散简单,E扩展输出的48位数据与48位子密钥进行逐位异或运算,输出48位数据。
代换盒又称作 S盒,其功能是进行非线性代换。S盒是 DES 中唯一的非线性部分,经过S
盒代换之后,E 盒扩展生成的 48 位数据又重新被压缩成 32 位数据。DES的S盒是一个查表运算,8个 S 盒分别对应8 个非线性的代换表,每个 S 盒的输入均为6位,输出为4位。在查表前,将输入的 48 位数据分成8组,每组 6位,然后分别进人8个S盒进行运算。
S盒的具体查表方法如下:假设 S 盒的6 位输人为 b1b2b3b4b5b6,则将b1和b6位组合,形成 1个两位数,这两位数可以转换成十进制的 0~3 的某个数,它对应表的行号,其余4位b2b3b4和b5,构成了1个 4位数,可转化为0~15 的某个数,对应表的列号,这样,通过这个6位输人确定的行号和列号所对应位置的值作为输出。例如,对于输入 110011,则行号是11(第3 行),而列是1001(第9列),若查找 S表,第 3行、第 9 列所对应的数是14,因此输应是1110。
S 盒的设计有如下的特点:
S盒的输出结果是 8个4 位分组,它们重新合并在一起形成了一个 32 位的分组。这个分组将输人到 P盒中进行置换。
置换运算只是进行简单位置换,而不进行扩展盒压缩。
P 盒的设计满足如下条件:
多重DES就是使用多个不同的DES密钥利用DES算法对明文进行多次加密。使用多重DES可以增加密钥量,从而大大提高抵抗对密钥的穷举搜索攻击能力。
二重DES是多重DES的最简单形式。由于使用了两个DES密钥,二重DES的密钥长度为112位,其密钥量能够抵御目前的穷举攻击,但是不能抵抗中途相遇攻击,其攻击原理如下:
二重DES的加解密算法简化表示如下:
加密算法:
解密算法:
中间值X:
对于给定的明密文对(P,C),可采取如下攻击步骤:首先,将 P 按所有可能的密钥 K1加密,得到的加密结果排序放在表 T内;然后将 C 用所有可能的密 K2解密,每解密一次就将解密结果与 T中的值比较。如果有相等者,就用刚才测试的两个密对 P 加密,若结果为C则认定这两个密钥是正确的密钥K1和 K2。
因此,已知明文攻击可以成功攻击密钥长度为112 位的二重 DES,其计算量级为 ,与攻击 DES 所需的计算复杂度 相当。换句话说,利用中途相攻击搜索,二重 DES 的钥与单 DES 的密的复杂度基本上在同一数量级,因而,二重 DES 并不能从根本上提高其安全性。
为了抵抗中途相遇攻击,可以使用三重 DES。三重 DES有 4 种模式:
三重 DES 的优点如下:
由于是 DES 的改进版本,三重 DES 也具有许多先天不足:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。