《新编密码学》课件第2章 分组密码.pptx

上传人(卖家):momomo 文档编号:7647277 上传时间:2024-05-19 格式:PPTX 页数:178 大小:1.90MB
下载 相关 举报
《新编密码学》课件第2章 分组密码.pptx_第1页
第1页 / 共178页
《新编密码学》课件第2章 分组密码.pptx_第2页
第2页 / 共178页
《新编密码学》课件第2章 分组密码.pptx_第3页
第3页 / 共178页
《新编密码学》课件第2章 分组密码.pptx_第4页
第4页 / 共178页
《新编密码学》课件第2章 分组密码.pptx_第5页
第5页 / 共178页
点击查看更多>>
资源描述

1、 分组密码也叫做块密码(Block Cipher),是指对固定长度的一组明文进行加密的一种加密算法,这一固定长度称之为分组长度。2/149 分组密码是对称密码体制分组密码是对称密码体制 分组密码的作用分组密码的作用 消息加密消息加密 消息认证和数据完整性保护消息认证和数据完整性保护 通过用于构造消息认证码通过用于构造消息认证码(MAC)来实现来实现 构造伪随机数生成器。构造伪随机数生成器。用于用于产生性能良好的随机数产生性能良好的随机数 构造流密码。构造流密码。构成其它密码协议的基本模块构成其它密码协议的基本模块 如密钥管理协议,身份认证协议如密钥管理协议,身份认证协议等等 在分组密码中,必须

2、处理一个问题填充。在分组加密中,要求填充是可逆的 假定块长度为8字节,要加密的明文数据长度为9字节。那么消息被切成两个块,第二块只有1个字节,需要填充7个字节。如果把9字节的明文数据记为:F1 F2 F3 F4 F5 F6 F7 F8 F9(1)Zeros填充算法:需要填充的7个字节全部填充为0,分组结果为:第一个消息分组:F1 F2 F3 F4 F5 F6 F7 F8 第二个消息分组:F9 00 00 00 00 00 00 00 Zeros填充算法无法区分第二个消息分组中F9后的0序列是否是明文中的原始序列,因此该填充算法不可逆。(2)X923填充算法:需要填充的7个字节中前6个字节填充0

3、,最后一个字节记录填充的总字节数,分组结果为:第一个消息分组:F1 F2 F3 F4 F5 F6 F7 F8 第二个消息分组:F9 00 00 00 00 00 00 07(3)PKCS7填充算法:需要填充的7个字节中的每一个字节填充需要填充的总字节数,分组结果为:第一个消息分组:F1 F2 F3 F4 F5 F6 F7 F8 第二个消息分组:F9 07 07 07 07 07 07 07 (4)ISO10126填充算法:需要填充的7个字节中前6个字节填充随机字节序列,最后一个字节记录填充的总字节数,分组结果为:第一个消息分组:F1 F2 F3 F4 F5 F6 F7 F8 第二个消息分组:F

4、9 7D 2A 75 EF F8 EF 07 Feistel密码结构是基于1949年Shannon提出的交替使用代换和置换方式构造密码体制的设想提出的。在设计密码体制的过程中,Shannon提出了能够破坏对密码系统进行各种统计分析攻击的两个基本操作:扩散(diffusion)和混淆(confusion)。混淆性:所设计的密码应使得明文、密文、密钥之间的混淆性:所设计的密码应使得明文、密文、密钥之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说依赖关系相当复杂,以至于这种依赖关系对密码分析者来说是无法利用的。密码分析者利用这种依赖关系的方法非常多,是无法利用的。密码分析者利用这种依赖关系

5、的方法非常多,因此混淆性也是一个极为繁杂的概念。因此混淆性也是一个极为繁杂的概念。扩散是指所设计的密码应使得扩散是指所设计的密码应使得(1)密钥的每一个比特影响密文的每一个比特,以防)密钥的每一个比特影响密文的每一个比特,以防止对密钥进行逐段破译;止对密钥进行逐段破译;(2)明文的每一个比特影响密文的每一个比特,以便)明文的每一个比特影响密文的每一个比特,以便最充分地隐蔽明文的统计特性。最充分地隐蔽明文的统计特性。这一准则强调微小输入改变能够导致输出的多位变化。这一准则强调微小输入改变能够导致输出的多位变化。明文明文(2L)密文密文(2L)R0(L)R1(L)Rn(L)L0(L)L1(L)Ln

6、(L)ff+K1KnLn-1(L)Rn-1(L)+fKn-1Feistel型的分组密码的安全性取决于以下几个方面:(1)明文消息和密文消息的分组大小(2)子密钥的大小(3)循环次数(4)子密钥产生算法(5)轮函数 在其它条件相同的情况下,每一轮加密的分组长度越大,加密算法的安全性就越高,而相应的加密速度也越慢,效率越低。目前常用的分组加密算法的分组长度取64位。算法的安全性随着子密钥长度的增加而提高,但是相应的加密速度会降低,所以设计分组密码时需要在安全性和加密效率之间进行平衡。在实际应用中,一般认为,要保证分组加密算法满足计算安全性,子密钥的长度至少要大于128位。循环越多安全性越高,相应的

7、加密效率也就越低。在初始密钥给定的情况下,产生子密钥的算法越复杂,加密算法的安全性越高。对于轮函数的讨论相对较复杂,一般认为,轮函数越复杂,对应的加密算法的安全性越高。轮函数轮函数F S盒:非线性部件,盒:非线性部件,规模较小,局部混淆规模较小,局部混淆 非非线性关系线性关系:实现混淆。实现混淆。规模规模:较小。:较小。例如:例如:说说8进进8出出。比特比特需要需要分成组,分别用分成组,分别用个个S盒来处理。盒来处理。局部:局部:多个多个S盒之间没有关联盒之间没有关联,混淆是在各个混淆是在各个S盒盒之内进行,是局部的。之内进行,是局部的。置换置换P:线性部件,整体扩散:线性部件,整体扩散 Fe

8、istel分组密码的核心是轮函数。设计的函数应该满足 严格的雪崩准则严格的雪崩准则SAC(Strict Avalanche Criterion)位独立准则位独立准则BIG(Bit Independence Criterion)保证的雪崩准则保证的雪崩准则GAC(Guaranteed Avalanche Criterion)对于任意的对于任意的 ,当任何一个输入位,当任何一个输入位 发生改变时,发生改变时,S S盒的任何输出位盒的任何输出位 的值发生改变的概率为的值发生改变的概率为 对于任意的对于任意的 ,当任何一个输入位,当任何一个输入位 发生改变时,输出位发生改变时,输出位 和和 的值应该独

9、立地发生改变。的值应该独立地发生改变。对于输入序列中对于输入序列中1 1位的值发生改变,输出序列中至少有位的值发生改变,输出序列中至少有 位的值发生改变。一般要求位的值发生改变。一般要求 的值介于的值介于2 2到到5之间。之间。DES是Data Encryption Standard(数据加密标准)的缩写。它是由IBM公司研制的一种加密算法,二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。DES算法的历史过程 20世纪70年代中期,美国政府认为需要一个强大的标准加密系统,美国国家标准局提出了开发这种加密算法的请求,最终IBM的Lucifer加密系统胜出。1972年美国商业部所

10、属的美国国家标准局NBS(National Bureau of Standards)开始实施计算机数据保护标准的开发计划。1973年5月13日,美国国家标准局NBS发布文告征集在传输和存贮数据中保护计算机数据的密码算法。1975年3月17日,首次公布DES算法描述,认真地进行公开讨论。1977年1月15日,正式批准为无密级应用的加密标准(FIPS46),当年7月1日正式生效。以后每隔5年美国国家安全局对其安全性进行一次评估,以便确定是否继续使用它作为加密标准。在1994年1月的评估后决定1998年12月以后不再将DES作为数据加密标准。DES是一个分组加密算法,它以64位为分组对数据加密。同时

11、DES也是一个对称算法:加密和解密用的是同一个算法。它的密钥长度是56位(因为每个第8位都用作奇偶校验),密钥可以是任意的56位的数,其中极少量的56位数被认为是弱密钥,为了保证加密的安全性,在加密过程中应该尽量避开使用这些弱密钥。DES是一个包含16个阶段的“替换-置换”的分组加密算法,64位的分组明文序列作为加密算法的输入,经过16轮加密得到64位的密文序列。尽管DES密钥的长度有64位,但用户只提供56位,其余的8位由算法提供,分别放在8、16、24、32、40、48、56、64位上,结果是每8位的密钥包含了用户提供的7位和DES算法确定的1位。添加的位是有选择的,使得每个8位的块都含有

12、奇数个奇偶校验位(即1的个数为奇数)。DES加密加密流程流程64比特明文比特明文64比特密文比特密文迭迭代代1616轮轮 初始置换初始置换初始逆置换初始逆置换第第16轮加密轮加密:第第1轮轮加密加密:第第i轮加密轮加密K1(48比特)比特)Ki(48比特)比特)K16(48比特)比特)明文(64bits)IP置换(64bits)L0(32bits)R0(32bits)L1=R0R1=L0 f(R0,k1)fki+16轮同样运算L16+R16=L15 f(R15,ki)+IP-1置换(64bits)DES算法结构密文(64bits)DES加密过程中包含的基本操作:初始置换初始置换 初始置换(In

13、itial Permutation,简称 置换)在第一轮运算之前执行。IPIPIP置换表58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157(1)58表示:结果中位于第表示:结果中位于第1个位置的值,个位置的值,等于等于原文中第原文中第58个位置的值个位置的值(2)图中的一格代表图中的一格代表1bit,共有共有64bit,即,即8字节字节 初始初始逆逆置换置换(Inverse Initial Permutati

14、on)40818165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725初始置换和对应的逆初始置换操作并不会增强DES算法的安全性,它的主要目的是为了更容易地将明文和密文数据以字节大小放入DES芯片中。DES加密加密流程流程LiRiLi-1Ri-1FKiR16L16L15R15FK1664比特明文比特明文64比特密文比特密文迭迭代代1616轮轮 初始置换初始置换初始逆置换初始逆置换第第16轮加密轮加密:第一轮加密第一轮加密:

15、第第i轮加密轮加密Li-1Ri-1密钥密钥 Li密密 钥钥RiE盒扩展盒扩展S盒替代盒替代 P盒置换盒置换移位移位 移位移位 压缩变换压缩变换+111(,)iiiiiiLRRLf RK缺点缺点:扩散速度慢:轮变换的扩散速度慢:轮变换的输入有一半没有改变;输入有一半没有改变;左右块的处理不能并行实施左右块的处理不能并行实施。优点优点:单轮变换的数学描述单轮变换的数学描述:Li=Ri-1Ri=Li-1F(Ri-1,Ki)设计容易设计容易:轮函数轮函数F 不要求可逆不要求可逆。FKiLi-1(32位位)Ri-1(32位位)LiRiFeistel结构结构 扩展扩展置换置换 E 轮轮密钥加密钥加 S盒盒

16、 置换置换 P轮函数轮函数FR(32bit)EE(R)(48bit)K(48bit)B1B2B3B4B5B6B7B8S1S2S3S4S5S6S7S8C1 C2 C3 C4 C5 C6 C7 C8P+(48bit)(32bit)1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313232 1 2 3 4 5 4 5 6 7 8 9 8 9101112131213141516171617181920212021222324252425262728292829303132 1扩展置换扩展置换扩扩展置换展置换E 将将64位位输入序列

17、的输入序列的右半部分右半部分从从32位扩展到位扩展到48位。位。S S盒替换盒替换(Sboxes Substitution)48比特输入32比特输出S盒1S盒2S盒3S盒4S盒5S盒6S盒7S盒8S盒11441312151183106125907015741421311061211953841148136211151297310501512824917511314100613S盒21518146113497213120510313471528141201106911501441110413158126932151381013154211671205149S盒310091463155113127

18、11428137093461028514121115113649815301112125101471101306987415143115212S盒47131430691012851112415138115615034721211014910690121171315131452843150610113894511127214S盒52124171011685315130149141121247131501510398642111101378159125630141181271142136150910453S盒612110159268013341475111015427129561131401138

19、91415528123704101131164321295151011141760813S盒74112141508133129751061130117491101435122158614111312371410156805926111381410795015142312S盒81328461511110931450127115138103741256110149271141912142061013153582114741081315129035611S盒114413121511831061259070157414213110612119538411481362111512973105015128

20、24917511314100613S盒的输出表示盒的输出表示设对应设对应S盒盒1的输入序列为:的输入序列为:行号:行号:11即即3列号:列号:0111即即70123 012345689101112131415结果为结果为7即即01117 迄今为止,有关方面未曾完全公开有关迄今为止,有关方面未曾完全公开有关DESDES的的S S盒的盒的设计准则。设计准则。19761976年,年,NSANSA披露过下述准则:披露过下述准则:1:S1:S盒的输出都不是其输入的线性或仿射函数。盒的输出都不是其输入的线性或仿射函数。2:2:改变改变S S盒的一个输入比特,其输出至少有两比特产盒的一个输入比特,其输出至少

21、有两比特产生变化,即近一半产生变化。生变化,即近一半产生变化。3:3:当当S S盒的任一输入位保持不变,其它盒的任一输入位保持不变,其它5 5位输入变化时位输入变化时(共有共有2 25 5=32=32种情况种情况),输出数字中的,输出数字中的0 0和和1 1的总数近于的总数近于相等。相等。这三点使这三点使DESDES的的S S盒能够实现较好的混淆。盒能够实现较好的混淆。S S盒的设计准则盒的设计准则置换置换PP盒置换是盒置换是对对32比特数据进行比特比特数据进行比特置换。置换。置换置换P的的输入输入/输出关系可以用表来表示,变换规则和输出关系可以用表来表示,变换规则和前面介绍的初始前面介绍的初

22、始置换相同置换相同作用:作用:置换置换P 与与S 盒互相配合,盒互相配合,起到了扩散作用,起到了扩散作用,共共同确保同确保DES的安全。的安全。置换置换P(续续)(1 1)P盒的各输入盒的各输入组组的的4 4个比特个比特都分配到不同的输出都分配到不同的输出组组之中;之中;比如比如:输入:输入第一组第一组1,2,3,4比特在输出中比特在输出中分别分别位于第位于第3,5,6,8组。组。P盒的设计特点盒的设计特点(2 2)P盒的各输出盒的各输出组组的的4 4个比特个比特都来自不同的输入都来自不同的输入组组。比如:输出比如:输出第一第一组组的四个比特分别来自输入的的四个比特分别来自输入的第第4组,第组

23、,第2组,第组,第5组,第组,第6组。组。初始密钥初始密钥(64比特)比特)D0(28比特比特)循环移位循环移位 循环移位循环移位密钥置换密钥置换C0(28比特比特)压缩置换压缩置换循环移位循环移位循环移位循环移位 子密钥子密钥K157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124密钥置换轮数12345678910111213141516位数1122222212222221循环左移位数压 缩 置 换14171124153281562110

24、23191242681672720132415231374755304051453348444939563453464250362932 DESDES解密解密:加密和解密可使用相同的算法,即解密过程是将密文作为输入序列进行相应的DES加密,与加密过程惟一不同之处是解密过程使用的轮密钥与加密过程使用的次序相反。解密过程产生各轮子密钥的算法与加密过程生成轮密钥的算法相同,与加密过程不同的是解密过程产生子密钥时,初始密钥进行循环右移操作,每产生一个子密钥对应的初始密钥移动位数分别为0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1。f1K0R1L 16K)bitbit密文(密文(64IP

25、逆置换逆置换IP置换置换明文(明文(64bit)0R(32bit)0L1R ),(0Rf1K15L16R ),(15Rf16Kff的扩展变换的扩展变换0R循环左移循环左移压缩置换压缩置换密钥置换密钥置换fS盒盒1Kp盒盒0L1R ),(0Rf1K0L(32bit)15R16L 取明文取明文M为为M=0123456789ABCDEF0000000100100011010001010110011110001001101010111100110111101111写成二进制:写成二进制:1100110000000000110011001111111111110000101010101111000010

26、101010初始置换:初始置换:L0=11001100000000001100110011111111R0=11110000101010101111000010101010分为左右两部分:分为左右两部分:L1=R0=11110000101010101111000010101010第一轮迭代:第一轮迭代:R1=L0+f(R0,K1)f(R0,K1):E-盒、盒、S-盒、盒、P-盒盒E-盒:盒:E(R0)=011110100001010101010101011110100001010101010101K1=0001101100000010111011111111110001110000011100

27、10K1+E(R0)=011000010001011110111010100001100110010100100111S-盒:盒:S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8)=01011100100000101011010110010111P-盒:盒:f=P(S1(B1)S2(B2)S8(B8)=00100011010010101010100110111011R1=L0+f(R0,K1)=11001100000000001100110011111111+00100011010010101010100110111011=111011110100

28、1010011001010100010016轮迭代之后:轮迭代之后:L16=01000011010000100011001000110100R16=00001010010011001101100110010101IP-1=1000010111101000000100110101010000001111000010101011010000000101初始逆置换:初始逆置换:左右合一起:左右合一起:R16L16=000010100100110011011001100101010100001101000010001100100011010085E813540F0AB40516进制:进制:明文明文M=

29、0123456789ABCDEF密文密文C=85E813540F0AB405轮子密钥的生成:轮子密钥的生成:K=133457799BBCDFF1K=0001001100110100010101110111100110011011101111001101111111110001写成二进制:写成二进制:密钥置换:密钥置换:56位密钥:位密钥:K+=11110000110011001010101011110101010101100110011110001111拆分为左右两部分:拆分为左右两部分:C0=1111000011001100101010101111D0=0101010101100110011

30、110001111C0=1111000011001100101010101111D0=0101010101100110011110001111C1=1110000110011001010101011111D1=1010101011001100111100011110C2=1100001100110010101010111111D2=0101010110011001111000111101C3=0000110011001010101011111111D3=0101011001100111100011110101C4=0011001100101010101111111100D4=010110011

31、0011110001111010101C5=1100110010101010111111110000D5=0110011001111000111101010101C6=0011001010101011111111000011D6=1001100111100011110101010101C7=1100101010101111111100001100D7=0110011110001111010101010110C8=0010101010111111110000110011D8=1001111000111101010101011001循环移位:循环移位:C9=01010101011111111000

32、01100110D9=0011110001111010101010110011C10=0101010111111110000110011001D10=1111000111101010101011001100C11=0101011111111000011001100101D11=1100011110101010101100110011C12=0101111111100001100110010101D12=0001111010101010110011001111C13=0111111110000110011001010101D13=0111101010101011001100111100C14=1

33、111111000011001100101010101D14=1110101010101100110011110001C15=1111100001100110010101010111D15=1010101010110011001111000111C16=1111000011001100101010101111D16=0101010101100110011110001111循环移位:循环移位:K1=000110110000001011101111111111000111000001110010压缩置换:压缩置换:K2=011110011010111011011001110110111100100

34、111100101K3=010101011111110010001010010000101100111110011001K4=011100101010110111010110110110110011010100011101K5=011111001110110000000111111010110101001110101000K6=011000111010010100111110010100000111101100101111K7=111011001000010010110111111101100001100010111100K8=111101111000101000111010110000010

35、011101111111011K9=111000001101101111101011111011011110011110000001K10=101100011111001101000111101110100100011001001111K11=001000010101111111010011110111101101001110000110K12=011101010111000111110101100101000110011111101001K13=100101111100010111010001111110101011101001000001K14=0101111101000011101101

36、11111100101110011100111010K15=101111111001000110001101001111010011111100001010K16=110010110011110110001011000011100001011111110101压缩置换:压缩置换:自从DES被采用作为联邦数据加密标准以来,DES遭到了猛烈的批评和怀疑。首先是DES的密钥长度是56位,很多人担心这样的密钥长度不足以抵御穷举式搜索攻击;其次是DES的内部结构即S盒的设计标准是保密的,这样使用者无法确信DES的内部结构不存在任何潜在的弱点。DES的弱密钥和半弱密钥 如果DES的秘密产生的子密钥 满足:

37、则有:这样的密钥 称为DES算法的弱密钥。kk1216kkk1()()kkDESmDESmk DES的弱密钥有以下4种:01 01 01 01 01 01 01 01k 1F 1F 1F 1F 0E 0E 0E 0Ek E0 E0 E0 E0 F1 F1 F1 F1k FE FE FE FE FE FE FE FEk 如果DES的密钥 和 满足:则称密钥 和 是DES算法的一对半弱密钥半弱密钥。半弱密钥只交替的生成两种密钥。kk1()()kkDESmDESmkk DES的半弱密钥有以下6对:01 FE 01 FE 01 FE 01 FEFE 01 FE 01 FE 01 FE 01kk 1F

38、E0 1F E00EF1 0EF1E0 1F E0 1F F1 0EF1 0Ekk 01E001E0E0F1 01F1E001E001F1 01F1 01kk 1FFE1FFE0EFE0EFEFE1FFE1FFE0EFE0Ekk 01 1F01 1F01 0E01 0E1F011F01 0E01 0E 01kk E0FEE0FEF1FEF1FEFEE0FEE0FEF1FEF1kk 针对DES的攻击方法 对于DES的攻击,最有意义的方法是差分分析方法(Difference Analysis Method)。差分分析方法是一种选择明文攻击法,最初是由IBM的设计小组在1974年发现的,所以IBM在

39、设计DES算法的S盒和换位变换时有意识的避免差分分析攻击,对S盒在设计阶段进行了优化,使得DES能够抵抗差分分析攻击。对DES攻击的另一种方式是线性分析方法(Linear Analysis Method)线性分析方法是一种已知明文攻击法,由Mitsuru Matsui在1993年提出的。这种攻击需要大量的已知“明文-密文”对,但比差分分析方法的要少。当将DES用于诸如智能卡等硬件装置时,通过观察硬件的性能特征,可以发现一些加密操作的信息,这种攻击方法叫做旁路攻击法(Side-Channel Attack)。例如,当处理密钥的“1”位时,要消耗更多的能量,通过监控能量的消耗,可以知道密钥的每个位

40、;还有一种攻击是监控完成一个算法所耗时间的微秒数,所耗时间数也可以反映部分密钥的位。DES加密的轮数对安全性也有较大的影响。如果DES只进行8轮加密过程,则在普通的个人电脑上只需要几分钟就可以破译密码。如果DES加密过程进行16轮,应用差分分析攻击比穷尽搜索攻击稍微有效一些。然而如果DES加密过程进行18轮,则差分分析攻击和穷尽搜索攻击的效率基本一样。如果DES加密过程进行19轮,则穷尽搜索攻击的效率还要优于差分分析攻击的效率。DES算法的几种改进:在以上加密过程中,当明文序列的结构有一定的固定格式时,相应的密文序列也会表现出一定的规律性,从而导致加密算法不安全。对该问题可以采用分组反馈的方法

41、进行改进。密钥密钥 DESKDESKDESK+x1x2xny1y2yn密密 钥钥DESK-1DESK-1DESK-1+x1x2xny1y2yn加密加密解密解密 改进方法二:由于DES算法的密钥长度只有56位,安全性较差。最简单的改进算法安全性的方法是应用不同的密钥对同一个分组消息进行多次加密,由此产生了多重DES加密算法。相应的解密过程为:1211()KKxDESDESy 对双重DES加密方法的安全性分析 1992年人们证明了由二个不同的密钥组成的二重DES对应的映射不会出现在单重DES定义的映射中,这意味着二重DES不会等价于单重DES。这说明双重DES加密算法的密钥空间要大于DES算法,所

42、以其安全性优于DES算法。双重DES加密算法不能抵抗中间点匹配攻击法(Meet-in-the-Middle Attack)。加密加密解密解密内存内存明文明文密钥密钥1密文密文密钥密钥2用用Ki加密的结果加密的结果用用Kj解密解密匹配查找匹配查找图2-12 三重DES加密流程 解密过程首先使用第一个密钥进行DES解密,然后使用第二个密钥对第一次的结果进行DES加密,最后再使用第一个密钥对第二次的结果进行DES解密。12111()KKKxDESDESDESy图2-13 三重DES解密流程 以上这种加密模式称为“加密解密加密(EDE)模式”。DES算法的密钥长度是56位,所以三重DES算法的密钥长度

43、是112位。使用两个密钥的三重DES是一种较受欢迎的改进算法,目前三重DES已经被用于密钥管理标准ANS X9.17和ISO 8732中。1997年7月,借助于互联网上的14000多台计算机,花费了90天时间破解了DES密钥。6个月后,用这种方法破解DES所花费的时间减少了39天。1998年7月,一台特殊构造的计算机(名为Deep Crack)只用了56个小时就破解了一个DES密钥。显然,DES不再是一个可靠的加密系统。为此,美国国家标准局提出了一项取代DES的投标计划,这就是高级加密标准AES(Advanced Encryption Standard)。对于DES算法的改进工作从1997年开

44、始公开进行。1997年4月15日,美国国家标准技术研究所(NIST)发起了征集DES的替代算法AES(Advanced Encryption Standard)算法的活动,希望能够找到一种非保密的、可以公开和免费使用的新的分组密码算法,使其成为21世纪秘密和公开部门的数据加密标准。1997年9月12日,发布了征集算法的正式公告和具体细节,其要求如下:(1)应是对称分组加密,具有可变长度的的密钥(128、192或256位),具有128位的分组长度;(2)应比三重DES快、至少与三重DES一样安全;(3)应可应用于公共领域并能够在全世界范围内免费使用;(4)应至少在30年内是安全的。1998年8月

45、20日,NIST在“第一次AES候选大会”上公布了满足条件的来自10个不同国家的15个AES的候选算法。在确定最终算法之前,这些算法先经受了一个很长的公开分析过程。在第二次会议之后,NIST从这15个候选算法中选出了5个AES的候选算法,分别是:IBM提交的MARSMARS;RSA实验室提交的RC6RC6;Daemen和Rijmen提交的RijndaelRijndael;Anderson、Biham和Knudsen提交的SerpentSerpent;Schneier、Whiting、Wagner、Hall和Ferguson提交的TwofishTwofish。这五个候选的算法都经受了6个月的考验

46、,又经过6个月的测试后,到2000年10月2日,NIST正式宣布RijndaelRijndael胜出,被选择为高级数据加密标准,该算法是由两位比利时人Daemen和Rijmen提出的。Rijndael能够胜出,除了在软件实现时速度和子密钥生成时间上的优势外,另一部分原因是它能用硬件有效的实现。加密速度和硬件实现的特性也是评估加密算法优劣的重要因素。AES也是一个典型的迭代型分组密码,也是一个典型的迭代型分组密码,分组长度:分组长度:128比特,比特,密钥长度:密钥长度:128位、位、192位、位、256位,分别记位,分别记为为 AES-128、AES-192、AES-256。加密轮数依赖于所选

47、择的子密钥长度。加密轮数依赖于所选择的子密钥长度。对于对于128位的密钥长度,加密的轮数为位的密钥长度,加密的轮数为10;对于对于192位的密钥长度,加密的轮数为位的密钥长度,加密的轮数为12;对于对于256位的密钥长度,加密的轮数为位的密钥长度,加密的轮数为14。Rijndael实际上有三个版本:AES-128、AES-192、AES-256。Rijndael不像DES那样在每个循环上使用“替换和置换”操作,而是进行多重循环的“替换、列混合密钥加”操作。明文明文M 第第1轮加密轮加密第第i轮轮加密加密第第10轮轮加密加密密文密文C0kAES加加密密流流程程字节代替字节代替字节代替字节代替状态

48、矩阵状态矩阵将将128比特状态数据依次比特状态数据依次分为分为16个字节个字节,3210aaaa,7654aaaa,111098aaaa15141312,aaaa3210aaaa7654aaaa111098aaaa15141312aaaa数据数据单元:比特,字节单元:比特,字节和字和字高级加密标准(高级加密标准(AES)数学基础数学基础字节的运算字节的运算加法加法乘法乘法字的运算字的运算加法加法乘法乘法AES数学基础数学基础8(2)()/()G Ffxm xf(x)为系数在为系数在GF(2)上任意次数的多项式上任意次数的多项式m(x)为系数在为系数在GF(2)上的上的8次不可约多项式次不可约多

49、项式其中其中m(x)=x8 x4 x3 x 1AES中的字节运算定义在如下构造的中的字节运算定义在如下构造的GF(28)中中字的表示字的表示字节字节b7b6b5b4b3b2b1b0 b7x7 b6x6 b5x5 b4x4 b3x3 b2x2 b1x b0 bi GF(2)字字 a3a2a1a0 a3x3 a2x2 a1x a0=a(x)ai GF(28)例:例:D3 64 0F 00+E3 23 81 AB=?(?(16进制表示)进制表示)1101 0011 00100011 0000 1111 0000 0000D3 64 0F 00+1110 0011 01100100 1000 0001

50、 1010 1011 E3 23 81 AB=0011 0000 0100 0111 1000 1110 1010 1011 30 47 8E AB字的乘法字的乘法 乘法:乘法:两个两个字字对应对应字多项式的乘积,规定字多项式的乘积,规定该乘法该乘法必须要取模必须要取模多项式多项式 x4 1321032103210 (,)(,)(,)bacbbbbaaaacccc43232321032103243210()()()mod(1)()()mod(1)b xa xc xxb xb xb xba xa xa xac xc xc xcx多项式形式多项式形式 AES中的操作都是以字节为对象的,操作所用到的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《新编密码学》课件第2章 分组密码.pptx)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|