分组密码体制PPT课件_第1页
分组密码体制PPT课件_第2页
分组密码体制PPT课件_第3页
分组密码体制PPT课件_第4页
分组密码体制PPT课件_第5页
已阅读5页,还剩148页未读 继续免费阅读

下载本文档

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

文档简介

本科生学位课:现代密码学,第三章分组密码体制,主讲教师:董庆宽研究方向:密码学与信息安全Email:qkdong,.,2,3.1分组密码概述3.2数据加密标准DES3.3差分密码分析和线性密码分析3.4分组密码的运行模式3.5IDEA3.6AESRijndael,本章提要,.,3,3.1分组密码概述,分组密码(BlockCipher):将明文消息分组,逐组加密;对称密码算法,属于代换密码将明文消息编码表示后的数字序列x0,x1,xi,划分成长为n的组x=(x0,x1,xn-1)各组(长为n的矢量)分别在密钥k=(k0,k1,kt-1)控制下变换成等长的输出数字序列y=(y0,y1,ym-1)(长为m的矢量)其加密函数E:VnKVm,Vn和Vm分别是n维和m维矢量空间,K为密钥空间,如图所示。,.,4,与流密码不同之处:(1)分组加密。在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是与一组长为n的明文数字有关。(2)无记忆性。在相同密钥下,分组密码对长为n的输入明文组所实施的变换是等同的,所以只需研究对任一组明文数字的变换规则。这种密码实质上是字长为m的数字序列的代换密码。算法的输入长度和输出长度通常取m=n(用于加密)若mn,则为有数据扩展的分组密码(用于认证)若m。另一方面,对每个不同的密钥,DES都定义了一个映射,总映射数为25610171/2)或1(p6有所不同。当Nk6时,扩展算法如下KeyExpansion(byteKey4*Nk,wordWNb*(Nr+1)for(i=0;iNk;i+)Wi=(Key4*i,Key4*i+1,Key4*i+2,Key4*i+3);for(i=Nk;i6时,扩展算法如下KeyExpansion(byteKey4*Nk,wordWNb*(Nr+1)for(i=0;iNk;i+)Wi=(Key4*i,Key4*i+1,Key4*i+2,Key4*i+3);for(i=Nk;i6与Nk6的密钥扩展算法的区别在于:当i为Nk的4的倍数时,须先将前一个字Wi-1经过SubByte变换。以上两个算法中,Rconi/Nk为轮常数,其值与Nk无关,定义为(字节用十六进制表示,同时理解为GF(28)上的元素):Rconi=(RCi,00,00,00)其中RCi是GF(28)中值为xi-1的元素,因此RC1=1(即01)RCi=x(即02)RCi-1=xi-1,.,145,(2)轮密钥选取轮密钥i(即第i个轮密钥)由轮密钥缓冲字WNb*i到WNb*(i+1)给出,如图3.23所示。Nb=6且Nk=4时的密钥扩展与轮密钥选取,.,146,4加密算法加密算法为顺序完成以下操作:初始的密钥加;(Nr-1)轮迭代;一个结尾轮。即Rijndael(State,CipherKey)KeyExpansion(CipherKey,ExpandedKey);AddRoundKey(State,ExpandedKey);for(i=1;iNr;i+)Round(State,ExpandedKey+Nb*i);FinalRound(State,ExpandedKey+Nb*Nr),.,147,其中CipherKey是种子密钥,ExpandedKey是扩展密钥。密钥扩展可以事先进行(预计算),且Rijndael密码的加密算法可以用这一扩展密钥来描述,即Rijndael(State,ExpandedKey)AddRoundKey(State,ExpandedKey);for(i=1;iNr;i+)Round(State,ExpandedKey+Nb*i);FinalRound(State,ExpandedKey+Nb*Nr),.,148,5.加解密的相近程度及解密算法首先给出几个引理。引理3.1设字节代换(ByteSub)、行移位(ShiftRow)的逆变换分别为InvByteSub、InvShiftRow。则组合部件“ByteSubShiftRow”的逆变换为“InvByteSubInvShiftRow”证明:组合部件“ByteSubShiftRow”的逆变换原本为“InvShiftRowInvByteSub”。由于字节代换(ByteSub)是对每个字节进行相同的变换,故“InvShiftRow”与“InvByteSub”两个计算部件可以交换顺序。(证毕),.,149,引理3.2设列混合(MixColumn)的逆变换为InvMixColumn则列混合部件与密钥加部件(AddRoundKey)的组合部件“MixColumnAddRoundKey(,Key)”的逆变换为“InvMixColumnAddRoundKey(,InvKey)”其中密钥InvKey与Key的关系为:InvKey=InvMixColumn(Key),.,150,证明:组合部件“MixColumnAddRoundKey(,Key)”的逆变换原本为“AddRoundKey(,Key)InvMixColumn”,由于列混合(MixColumn)实际上是线性空间GF(28)4上的可逆线性变换,因此“AddRoundKey(,Key)InvMixColumn”=“InvMixColumnAddRoundKey(,InvMixColumn(Key)”(证毕)由t(x)=a(x)*c(x)+key(x),知逆向列混淆后t(x)*c-1(x)=a(x)+key(x)*c-1(x),所以逆的列混淆后应该加上轮密钥列混淆后的结果,.,151,引理3.3将某一轮的后两个计算部件和下一轮的前两个计算部件组成组合部件,该组合部件的程序为MixColumn(State);AddRoundKey(State,Key(i);ByteSub(State);ShiftRow(State)则该组合部件的逆变换程序为InvByteSub(State);InvShiftRow(State);InvMixColumn(State);AddRoundKey(State,InvMixColumn(Key(i)证明:这是引理3.1和引理3.2的直接推论。注意到在引理3.3所描述的逆变换中,第2步到第4步在形状上很像加密算法的轮函数,这将是解密算法的轮函数。注意到结尾轮只有3个计算部件,因此可以得到如下定理。,.,152,定理3-2Rijndael密码的解密算法为顺序完成以下操作:初始的密钥加;(Nr-1)轮迭代;一个结尾轮。其中解密算法的轮函数为InvRound(State,RoundKey)InvByteSub(State);InvShiftRow(State);InvMixColumn(State);AddRoundKey(State,RoundKey)解密算法的结尾轮为InvFinalRound(State,RoundKey)InvByteSub(State);InvShiftRow(State);AddRoundKey(State,RoundKey),.,153,设加密算法的初始密钥加、第1轮、第2轮、第Nr轮的子密钥依次为k(0),k(1),k(2),k(Nr-1),k(Nr)则解密算法的初始密钥加、第1轮、第2轮、第Nr轮的子密钥依次为k(Nr),InvMixColumn(k(Nr-1),InvMixColumn(k(Nr-2),

温馨提示

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

评论

0/150

提交评论