计算机安全保密第四讲

上传人:mg****85 文档编号:56678545 上传时间:2018-10-15 格式:PPT 页数:65 大小:1,001.50KB
返回 下载 相关 举报
计算机安全保密第四讲_第1页
第1页 / 共65页
计算机安全保密第四讲_第2页
第2页 / 共65页
计算机安全保密第四讲_第3页
第3页 / 共65页
计算机安全保密第四讲_第4页
第4页 / 共65页
计算机安全保密第四讲_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《计算机安全保密第四讲》由会员分享,可在线阅读,更多相关《计算机安全保密第四讲(65页珍藏版)》请在金锄头文库上搜索。

1、计算机安全保密第四讲 对称密钥算法,唐明 武汉大学计算机学院,本次课的内容,4.1 概述 4.2 数据加密标准算法DES 4.3 高级数据加密标准AES 4.4 联合分组密码,4.1 概述,分组密码:向量x到向量y上的一个映射 :xy=(x) x=(x0,x1,xN-1), y=(y0,y1,yN-1)乘积密码:t个函数(密码)F1,Ft的复合,其中每个Fi是一个换位或代替。如转轮机。Feistel设计的Lucifer密码的代替-移位变换 P53图4.1,Feistel加密过程,输入:长为2w比特的明文分组密钥k 输出:长为2w比特的密文分组,4.1.1Feistel网络的特点,明文分组分为:

2、L0,R0,数据的这两部分通过n次循环处理后,再结合起来生成密文分组第i轮循环都以上一轮循环产生的Li-1和Ri-1和K产生的子密钥Ki作为输入。一般说来,子密钥Ki与K不同,相互之间也不同,它是用子密钥生成算法从密钥生成的,4.1.1Feistel网络的特点,所有循环的结构都相同,置换在数据的左半部分进行,其方法是先对数据的右半部分应用循环函数F,然后对函数输出结果和数据的左半部分取异或(XOR)循环函数对每次循环都有相同的通用结构,但由循环子密钥Ki来区分在置换之后,执行由数据两部分互换构成的交换,4.1.1Feistel网络的特点,解密过程与加密过程基本相同。规则如下: 用密文作为算法的

3、输入 但以相反顺序使用子密钥Ki意味着加密和解密不需要用两种不同的方法。 Involution:对合运算,4.1.2Feistel结构定义,加密: Li = Ri-1; Ri = Li-1F(Ri-1,Ki) 解密: Ri-1 = Li Li-1 = RiF(Ri-1,Ki)= RiF(Li,Ki),Li-1,Ri-1,4.1.3Feistel网络的设计特点,分组大小:较大的分组意味着较强的安全性,但会降低加密解密速度。64位的分组大小是合理的折中,几乎所有的分组设计中都使用它 密钥大小:较大的密钥意味着较强的安全性,但会降低加密解密速度。现代算法中最常用的是128位密钥 循环次数:本质是单一

4、循环的不足,多重循环能够加强安全性。典型的循环次数为16 子密钥生成算法:较大的复杂性会增大密钥分析的难度 循环函数:较大的复杂性意味着给密码分析带来更大的难度,4.2 数据加密标准算法DES,背景 DES是20年来全世界通用的标准算法。 20世纪70年代初期,非军事性的密码处于一种无序状态。 1972年,美国国家标准局NBS开始一项保护计算机和通信数据的项目,其中一部分是要开发一个单独的标准保密算法。 1973年5月15日,NBS公开征集标准加密算法,并公布了设计要求(P54),未果。 1974年8月,NBS第二次征集算法,收到一份可选方案:基于IBM在20世纪70年代初开发的LUCIFER

5、算法的算法。 1976年,NBS指派两个工作组来评价该标准。 DES在1976年11月23日被宣布为联邦标准,允许在非保密的政府通信中使用。标准的官方描述在1977年1月15日颁布,6个月后生效。1984年9美国总统签署145号国家安全决策令(NSDD),命令NSA着手发展新的加密标准,用于政府系统非机密数据和私人企事业单位. NSA宣布每隔5年重新审议DES是否继续作为联邦标准,1988年(FIPS46-1),1993年(FIPS46-2),1998年不再重新批准DES为联邦标准.,4.2.1数据加密标准算法DES,算法描述 算法概述: 每轮: Li=Ri-1 Ri=Li-1f(Ri-1,

6、Ki) f将数据和密钥结合起来。,DES加密算法,Initial Permutation,P55,P55,初始变换IP:在第一圈之前 逆初始变换IP-1:最后一圈之后,置换表中的每个元素表明了某个输入位在64位输出中的位置。,DES算法一轮迭代的过程,F函数: E变换 按位异或 S盒代替 P变换,28,28,48,48,32,32,56,28,28,48,32,32,32,32,ki,4.2.2扩展变换E:将右半部分从32位扩展到48位,4.2.3S盒代替:对48位中间结果做代替操作。,8个小S盒,每个有6位输入和4位输出,设输入为b1b2b3b4b5b6,则b1b6为行号,b2b3b4b5为

7、列号 例:S6的输入110011,行11(3),列1001(9)处为14,输出为1110,P变换:换位操作P变换的结果与上一圈的左半部分异或,称为新的右半部分,开始下一圈,密钥,PC-1,PC-2,PC-2,PC-2,K1,K2,K16,密钥变换,C:Compress,4.2.4密钥变换,PC-1:64位密钥去掉8的倍数位,通过置换选择得到56位。,循环左移:56位分成各28位的两部分,分别循环左移1或2位,计算:各轮移位次数之和为多少?,PC-2:从56位中选出48位,为本圈子密钥,举例:K = 0xfedcba9876543210, 求K1,K: 1 1 1 1 1 1 1 0 1 1 0

8、 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0,循环左移: 00011110 11100110 10101011 11101010 10100110 01100001 11111110,K1: 111101 001111 110110 011000 011001 001011 011001 011010,00001111,00110011,PC-1(K):,01010101,1111,1111,PC-2,举 例,例:m=compu

9、ter,k=program, 试用DES求密文。 (1)把m和k转换为2进制数, m: 1 63H 8 9 6FH 16 17 6DH 24 25 70H 3201100011, 01101111, 01101101, 0111000033 75H 40 41 74H 48 49 65H 56 57 72H 6401110101, 01110100, 01100101, 01110010 k:01110000, 01110010, 01101111, 0110011101110010, 01100001, 01101101,IP(m):L0=? 11111111, 10111000, 0111

10、0110, 01010111R0=? 00000000,11111111, 00000110, 10000011 Insert check sum into k:01110001, 00111001, 10011010, 1110110101110111, 10010011, 10000100, 11011011 PC-1(k):C0=? 11101100, 10011001, 00011011, 1011D0=? 10110100, 01011000, 10001110, 0111,K1=PC-2(K)=?00111101, 10001111, 11001101, 00110111, 001

11、11111, 01001000 E(R0)=?10000000, 00010111, 1111111010000000, 11010100, 00000110 D=E(R0) K1=?10111101, 10011000, 00110011, 10110111, 11101011, 01001110D为S盒的输入: 101111-011001-100000-110011-101101-111110-101101-001110,s-box(D)=? 输入:101111-011001-100000-110011-101101-111110-101101-001110 输出:0111-0110, 1

12、101-0100, 0010-0110, 1010-0001 P变换=?01000100, 00100001, 10011111, 10011111 R1=L0f(R0,K1)=?10111011, 10011000, 11101000, 11001000 L1=R0=?00000000,11111111, 00000110, 10000011,4.2.5DES的加解密,加密过程: L0R0IP() FOR i=1 TO 16 Li Ri-1 Ri Li-1f(Ri-1,Ki) IP-1(R16L16) 解密过程: R16L16 IP() FOR i=16 TO 1 Ri-1 Li Li-1

13、Ri f(Li,Ki) IP-1(L0R0),DES的安全性 弱密钥 P60 弱密钥:每一圈的子密钥都相同。共4个。 半弱密钥:只产生2种不同的子密钥,每种出现8次。共12个。 半半弱密钥(可能弱密钥):只产生4种不同的子密钥,每种出现4次。共48个。 互补密钥 将密钥的0换成1,1换成0,就得到该密钥的补密钥。如果用原密钥加密一组明文,则用补密钥可以将明文的补码加密成密文的补码。 代数结构 密钥长度 圈数 S盒的设计准则 P65,4.3 高级数据加密标准AES,背景 AES的数学基础 AES加密算法描述 AES解密算法 算法评价 结论,4.3.1背景,现代计算机速度的迅速提高,使得只有56b

14、it密钥的DES算法的安全性面临着极大的挑战。 1997年,NIST公开征求AES(Advanced Encryption Standard)作为2001年以后的数据加密标准。 1998年8月,AES召开第一次候选会,确定15个算法入围。 1999年3月, AES召开第二次候选会,有5个算法入围(MARS, RC6, Rijndael, Serpent和Twofish)。 2000年10月,NIST选出由比利时的Joan Daemen和Vincent Rijmen提交的Rijndael算法作为AES。 2001年夏天,NIST颁布新的信息处理标准(FIPS),将Rijndael算法作为AES。

15、,4.3.2AES的数学基础(1),有限域GF(28)上定义了4种运算:“+”、 “”、 “ X”和带系数的多项式乘运算“”。 对字节b,用多项式表示为:b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0 “+”运算:两个字节相加,相当于字节的每一位简单异或。 例:5783d4,(57)16=(01010111)2x6+x4+x2+x+1 (83)16=(10000011)2 x7+x+1 5783 (x6+x4+x2+x+1)+(x7+x+1)= x7 +x6+x4+x2 (11010100)2 (d4)16,4.3.3AES的数学基础(2),“”运算:选择一个不可约多

16、项式:m(x)= x8+x4+x3+x+1, “”运算为两多项式相乘后进行模m(x)的运算。 例:57 83c1,(57)16=(01010111)2x6+x4+x2+x+1 (83)16=(10000011)2 x7+x+1 57 83 (x6+x4+x2+x+1) (x7+x+1) mod (x8+x4+x3+x+1) = x13 + x11 + x9 + x8 + x7 + x7 + x5+x3+x2+ x + x6 + x4+x2+x+1) mod (x8+x4+x3+x+1) =(x13 + x11 + x9 + x8 + x6 + x5+x4+x3+1) mod (x8+x4+x3+x+1) x7+ x6 +1 (11000001)2 (c1)16,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号