第3章 对称密码体制
注:1.* 加密算法涉及五个函数: (1)初始置换IP(initial permutation) (2)复合函数fk1,它是由密钥K确定的,具有置换和代 换的运算。 (3)置换函数SW (4)复合函数fk2 (5)初始置换IP的逆置换IP-1
(2) DES算法的主要过程
① 初始置换: ② 子密钥生成: ③ 乘积变换: ④ 末置换:
……48
选择压缩运算S
将前面送来的48bit 数据自左至右分成 8组,每组6bit。然 后并行送入8个S盒, 每个S盒为一非线 性代换网络,有4 个输出。
S 盒 的 内 部 结 构
S盒的内部计算
若输入为b1b2b3b4b5b6其中b1b6两位二进制数表 达了0至3之间的数。b2b3b4b5为四位二进制数, 表达0至15之间的某个数。 在S1表中的b1b6行b2b3b4b5列找到一数m (0≤m≤15),若用二进制表示为m1m2m3m4,则 m1m2m3m4便是它的4bit输出。 例如,输入为001111,b1b6=01=1,b2b3b4b5 =0111=7,即在S1盒中的第1行第7列求得数1,所 以它的4bit输出为0001。
Ci Di= b1b2…b56 ,则ki= b14 b17 b11 b24…b36 b29 b32
1.初始置换
将64个明文比
特的位置进行 置换,得到一 个乱序的64bit 明文组,然后 分成左右两段, 每段为32bit 以 L和R表示。
Li-1(32比特)
Ri-1(32比特) 选择扩展运算E 48比特寄存器
试写出K2的表达式
试写出解密算法的数学表示
试证明加密算法的正确性
对S-DES的深入描述
(1) S-DES的密钥生成:
设10bit的密钥为( k1,k2,…,k10 ) 几个重要的定义: P10(k1,k2,…,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8 ,k6) P8= (k1,k2,…,k10)=(k6,k3,k7,k4,k8,k5,k10,k9 )
3.2 DES(Data Encryption Standard)
美国国家标准局NBS于1973年5月发出通告,公开 征求一种标准算法用于对计算机数据在传输和存储 期间实现加密保护的密码算法。 1975 年美国国家标准局接受了美国国际商业机器公 司IBM 推荐的一种密码算法并向全国公布,征求对 采用该算法作为美国信息加密标准的意见。 经过两年的激烈争论,美国国家标准局于1977年7 月正式采用该算法作为美国数据加密标准。1980年 12月美国国家标准协会正式采用这个算法作为美国 的商用加密算法。
P10
P8
3 5 2 7 4 10 1 9 8 6
6 3 7 4 8 5 10 9
对S-DES的深入描述 LS-1为循环左移1位:abcdebcdea LS-2为循环左移2位: abcdecdeab
S-DES的密钥生成
10-bit密钥
P10 :3 5 2 7 4 10 1 9 8 6
P8 :6 3 7 4 8 5 10 9
(2)
S-DES的加密运算:
初始置换用IP函数: IP= 12345678 26314857
末端算法的置换为IP的逆置换: IP-1= 1 2 3 4 5 6 7 8 41357286
(2) S-DES的加密运算:
试举例证明: IP-1是IP的逆置换
S-DES加密图
8-bit 明文(n)
fk(L,R)=(LF(R,SK),R) R 4 8 E/P 4 1 2 3 2 3 4 1 8-bit子密钥:
IP fk1 SW fk2 IP-1 8bit密文
IP-1 fk1
K1
(3)置换函数SW (4)复合函数fk2
移位
SW fk2
P8
K2 K2
(5)初始置换IP的逆置换IP-1
IP
8bit密文 S-DES方案示意图
2*.
加密算法的数学表示: IP-1*fk2*SW*fk1*IP 也可写为 密文=IP-1(fk2(SW(fk1(IP(明文))))) 其中 K1=P8(移位(P10(密钥K)))
流密码与分组密码
流密码每次加密数据流中的一位或一个字节。 分组密码,就是先把明文划分为许多分组,每个明 文分组被当作一个整体来产生一个等长(通常)的 密文分组。通常使用的是64位或128位分组大小。 分组密码的实质,是设计一种算法,能在密钥控制 下,把n比特明文简单而又迅速地置换成唯一n比特 密文,并且这种变换是可逆的(解密)。
关于S盒
S
盒是DES的核心,也是DES算法最敏感的 部分,其设计原理至今仍讳莫如深,显得非 常神秘。所有的替换都是固定的,但是又没 有明显的理由说明为什么要这样,有许多密 码学家担心美国国家安全局设计S盒时隐藏了 某些陷门,使得只有他们才可以破译算法, 但研究中并没有找到弱点。
置换运算P
对S1至S8盒输出的32bit 数据进行坐标变换 置换P输出的32bit数据与 左边32bit即Ri-1诸位模2相 加所得到的32bit作为下一 轮迭代用的右边的数字段, 并将Ri-1并行送到左边的 寄存器作为下一轮迭代用 的左边的数字段。
3.1分组密码
分组密码算法实际上就是在密钥的控制下,
简单而迅速地找到一个置换,用来对明文分 组进行加密变换,一般情况下对密码算法的 要求是: 分组长度m足够大(64~128比特) 密钥空间足够大(密钥长度64~128比特) 密码变换必须足够复杂(包括子密钥产生算
法)
分组密码的设计思想
0 1 2 3 0 0 1 2 3 1 2 0 1 3 S1 2 3 0 1 0 3 2 1 0 3
4
4 E/P 8 + 4 S1 P4 + 2 8
K2
F
4 S0 2
4
IP-1 8
8-bit 密文
S盒按下述规则运算: 将第1和第4的输入比特做为2- bit数,指示为S盒的一个行; 将第2和第3的输入比特做为S盒的一个列。如此确定为S盒 矩阵的(i,j)数。 例如:(P0,0, P0,3)=(00),并且(P0,1,P0,2)=(1 0) 确定了S0中的第0行2列(0,2)的系数为3,记为(1 1) 输出。 由S0, S1输出4-bit经置换
பைடு நூலகம்
56 55 54 53 52 51 50 49
24 23 22 21 20 19 18 17
64 63 62 61 60 59 58 57
32 31 30 29 28 27 26 25
密文(64bit)
1,2,……
……64
3.2.3 DES的解密
解密算法与加密算法相同,只是子密钥的使
用次序相反。
S-DES加密图(续)
SW 4 E/P 8 + 8 4 S1 P4 + 4 IP-1 8 8-bit 密文 2
K2
fk
4
F
2
4 S0
两个S盒按如下定义:
SW
0 1 2 3 0 1 0 3 2 1 3 2 1 0 S0 2 0 2 1 3 3 3 1 3 2
3.逆初始置换IP-1
将16轮迭代
1,2,…… ……64 置换码组(64bit)
后给出的 64bit组进行 置换得到输 出的密文组
40 39 38 37 36 35 34 33
8 7 6 5 4 3 2 1
48 47 46 45 44 43 42 41
16 15 14 13 12 11 10 9
3.2.4 DES的安全性
DES在20多年的应用实践中,没有发现严重的安全 缺陷,在世界范围内得到了广泛的应用,为确保信 息安全做出了不可磨灭的贡献。 存在的安全弱点:
第3章 对称密码体制
主要内容
3.1分组密码
3.2数据加密标准DES
3.3高级加密标准AES
3.4序列密码
3.5其他对称加密算法
概述
对称密码体制就是在加密和解密是用到的密
钥相同,或者加密密钥和解密密钥之间存在 着确定的转换关系。 对称密码体制又有两种不同的实现方式,即 分组密码和序列密码(或称流密码)。
fk
IP
4 L E/P +
F
S0
4
4
S1
K1
K1=k11,k12,k13,k14,
k15,k16,k17,k18,
与E/P的结果异或得:
P4
+
n4+k11 n1+k12 n2+k13 n3+k14 n2+k15 n3+k16 n4+k17 n1+k18
第一行输入进S-盒S0,第二行的4位输 入进S盒S1,分别产生2-位的输出。
P10
5 LS-1 8 LS-2 5 P8 K2 8 P8 LS-2 5 5 LS-1 按照上述条件, 若K选为 (1010000010), 产生的两个子密钥分别为: K1=(1 0 1 0 0 1 0 0) K2=(0 1 0 0 0 0 1 1)
K1
对S-DES的深入描述 --趁热打铁 若输入密钥K为(1001001010), 问产生的两个子密钥分别为: ? K1=( ) ? K2=( )
输入64位明文(密文) 初始置换(IP) 64位密钥组
乘积变换
子密钥生成
末置换(IP-1)
输出64位密文(明文)
加密
8bit明文
10bit密钥
解密 8bit明文
P10
移位 P8
K1
(1)初始置换IP(initial permutation)
(2)复合函数fk1,它是由密钥K确定 的,具有置换和代换的运算。