密码学与计算机安全:第07讲 现代分组密码-des_第1页
密码学与计算机安全:第07讲 现代分组密码-des_第2页
密码学与计算机安全:第07讲 现代分组密码-des_第3页
密码学与计算机安全:第07讲 现代分组密码-des_第4页
密码学与计算机安全:第07讲 现代分组密码-des_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

现代分组加密算法-DES第七讲分组密码理论--DES7.1DES7.2IDEA7.3AES7.1数据加密标准(DES)DES的历史1971IBM,由HorstFeistel领导的密码研究项目组研究出LUCIFER算法。并应用于商业领域。1973美国标准局征求标准,IBM提交结果,在1977年,被选为数据加密标准。PC157,49,41,33,25,17,9,CHalf1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,DHalf7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,47.2DES的描述

DES利用56比特串长度的密钥K来加密长度为64位的明文,得到长度为64位的密文该算法分三个阶段实现:

1.给定明文X,通过一个固定的初始置换IP来排列X中的位,得到X0。

X0=IP(X)=L0R0

其中L0由X0前32位组成,R0由X0的后32位组成。

2.计算函数F的16次迭代,根据下述规则来计算LiRi(1<=i<=16)

Li=Ri-1,Ri=Li-1

F(Ri-1,Ki)

其中Ki是长为48位的子密钥。子密钥K1,K2,…,K16是作为密钥K(56位)的函数而计算出的。

3.对比特串R16L16使用逆置换IP-1得到密文Y。

Y=IP-1(R16L16)IP-初始置换58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7PC157,49,41,33,25,17,9,CHalf1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,DHalf7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4S-box-10123456789abcdefCOL

S[1]

14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13

DES一轮加密的简图

Li-1Ri-1F+LiRiKi对F函数的说明:(类比于S-DES)F(Ri-1,Ki)

函数F以长度为32的比特串A=R(32bits)作第一个输入,以长度为48的比特串变元J=K(48bits)作为第二个输入。产生的输出为长度为32的位串。

(1)对第一个变元A,由给定的扩展函数E,将其扩展成48位串,E(A)

(2)计算E(A)+J,并把结果写成连续的8个6位串,

B=b1b2b3b4b5b6b7b8

(3)使用8个S盒,每个Sj是一个固定的416矩阵,它的元素取0~15的整数。给定长度为6个比特串,如

Bj=b1b2b3b4b5b6

计算Sj(Bj)如下:b1b6两个比特确定了Sj的行数,r(0<=r<=3);而b2b3b4b5四个比特确定了Sj的列数c(0<=c<=15)。最后Sj(Bj)的值为S-盒矩阵Sj中r行c列的元素(r,c),得Cj=Sj(Bj)。

(4)最后,P为固定置换。

DES轮函数F()DES中使用的其它特定函数:

初始置换IP:见140页图4-4-3,从图中看出X的第58个比特是IP(X)的第一个比特;X的第50个比特是IP(X)的第二个比特…

逆置换IP-1;扩展函数E;置换函数P。从密钥K计算子密钥:

实际上,K是长度为64的位串,其中56位是密钥,8位是奇偶校验位(为了检错),在密钥编排的计算中,这些校验位可略去。

(1).给定64位的密钥K,放弃奇偶校验位(8,16,…,64)并根据固定置换PC-1(见144页图4-4-9)来排列K中剩下的位。我们写

PC-1(K)=C0D0

其中C0由PC-1(K)的前28位组成;D0由后28位组成。(2)对1<=i<=16,计算

Ci=LSi(Ci-1)

Di=LSi(Di-1)

LSi表示循环左移2或1个位置,取决于i的的值。i=1,2,9和16时移1个位置,否则移2位置(143页表4-4-2)。

Ki=PC-2(CiDi),PC-2为固定置(见145页图4-4-10)。注:一共16轮,每一轮使用K中48位组成一个48比特密钥。可算出16个表,第i个表中的元素可对应上第i轮密钥使用K中第几比特!如:

第7轮的表7:K7取K中的比特情况:

52571112659103444512519

941325035364342336018

2871429474622515636139

4311338536255202337306轮密钥编排KPC-1C0D0LS1LS1C1D1LS2LS2LS16LS16C16D16PC-2PC-2K1K16

…14,17,11,24,1,5,Chalf3,28,15,6,21,10,(bits1-28)23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,Dhalf30,40,51,45,33,48,(bits29-56)44,49,39,56,34,53,46,42,50,36,29,32ChalfprovidesbitstoS1-S4,DhalftoS5-S8

PC27.3DES加密的一个例子

取16进制明文X:0123456789ABCDEF

密钥K为:133457799BBCDFF1

去掉奇偶校验位以二进制形式表示的密钥是00010010011010010101101111001001101101111011011111111000

应用IP,我们得到:

L0=11001100000000001100110011111111

L1=R0=11110000101010101111000010101010

然后进行16轮加密。

最后对L16,R16使用IP-1得到密文:85E813540F0AB4057.4DES的争论

DES的核心是S盒,除此之外的计算是属线性的。S盒作为该密码体制的非线性组件对安全性至关重要。S盒的设计准则:

1.S盒不是它输入变量的线性函数

2.改变S盒的一个输入位至少要引起两位的输出改变

3.对任何一个S盒,如果固定一个输入比特,其它输入变化时,输出数字中0和1的总数近于相等。公众仍然不知道S盒的构造中是否还使用了进一步的设计准则(有陷门?)。密钥长度是否足够?迭代的长度?(8、16、32?)7.5三重DES7.5.1双重DES加密解密问题:下式成立吗?7.5.2三重DES(Cont.)两个密钥的三重DES目前,没有针对三重DES的攻击方法,它是一种较受欢迎的DES替代方案。7.6IDEA简介瑞士的XuejiaLai和JamesMassey于1990年公布了IDEA密码算法第一版,称为PES(ProposedEncryptionStandard)。为抗击差分密码攻击,他们增强了算法的强度,称IPES(ImprovedPES),并于1992年改名为IDEA(InternationalDataEncryptionAlgorithm,国际数据加密算法。)7.6.1IDEA(Cont.)IDEA是一个分组长度为64位的分组密码算法,密钥长度为128位(抗强力攻击能力比DES强),同一算法既可加密也可解密。IDEA的“混淆”和“扩散”设计原则来自三种运算,它们易于软、硬件实现(加密速度快):7.6.2IDEA简介(Cont.)异或运算()整数模216加(+)整数模216+1乘()(IDEA的S盒)扩散由称为MA结构的算法基本构件提供。Z6F2F1Z5G1G27.6.3IDEA简介(Cont.)实现上的考虑使用子分组:16bit的子分组;使用简单操作(易于加法、移位等操作实现)加密解密过程类似;规则的结构(便于VLSI实现)。

IDEA加密的总体方案图循环2循环8循环1输出变换64位密文64位明文Z1Z6Z7Z12Z43Z48Z49Z52子密钥生成器128位密钥Z1Z5216

7.6.4IDEA的密钥生产56个16bit的子密钥从128bit的密钥中生成前8个子密钥直接从密钥中取出;对密钥进行25bit的循环左移,接下来的密钥就从中取出;重复进行直到52个子密钥都产生出来。IDEA的解密加密解密实质相同,但使用不同的密钥;解密密钥以如下方法从加密子密钥中导出:解密循环I的头4个子密钥从加密循环10-I的头4个子密钥中导出;解密密钥第1、4个子密钥对应于1、4加密子密钥的乘法逆元;2、3对应2、3的加法逆元;对前8个循环来说,循环I的最后两个子密钥等于加密循环9-I的最后两个子密钥;7.6.5IDEA简介(Cont.)IDEA是PGP的一部分;IDEA能抗差分分析和相关分析;IDEA似乎没有DES意义下的弱密钥;BruceSchneier认为IDEA是DES的最好替代,但问题是IDEA太新,许多问题没解决。7.6.7先进分组密码的特点可变密钥长度混合操作依赖数据的循环移位依赖于密钥的循环移位依赖密钥的S盒子冗长的密钥调度算法可变的F函数和可变的明文/密文长度可变的循环次数在每次循环中都对两半数据进行操作7.7AES候选算法背景从各方面来看,DES已走到了它生命的尽头。其56比特密钥实在太小,虽然三重DES可以解决密钥长度的问题,但是DES的设计主要针对硬件实现,而今在许多领域,需要用软件方法来实现它,在这种情况下,它的效率相对较低。鉴于此,1997年4月15日美国国家标准和技术研究所(NIST)发起征集AES(AES—AdvancedEncryptionStandard)算法的活动,并成立了AES工作组。目的是为了确定一个非保密的、公开披露的、全球免费使用的加密算法,用于保护下一世纪政府的敏感信息。也希望能够成为保密和非保密部门公用的数据加密标准(DES)。AES候选算法(续)要求该算法应比三重DES快而且至少还要一样的安全,它应当具有128比特分组长度和256比特分组密钥长度(不过必须支持128和192比特的密钥),此外,还应该具有较大的灵活性。AES候选算法(续)评选过程中采用的方法1.用量化的或定性的尺度作为选择的标准;2.选择一种以上的算法;3.选择一个备用算法;4.考虑公众的建议以改进算法。AES候选算法(续)1998年8月20日,NIST在第一阶段讨论(AES1)中宣布了由12个国家提出的15个候选算法,1999年3月开始的第二阶段讨论(AES2),1999年8月NIST选出5个算法候选:MARS、RC6、Rijndael、Serpent和Twofish。AES候选算法-过程(续)

在宣布最后的5个候选算法后,NIST再次恳请公众参与对这些算法的评论。公众对这五种候选算法的评阅期于2000年5月15日结束。NIST发布的AES主页[2]提供了大量的关于算法描述、源程序、有关AES3的论文以及其他公众评论

温馨提示

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

评论

0/150

提交评论