第5章 对称密钥密码体制
1 2 3 4 5 6 7 8 9 10 3 5 2 7 4 10 1 9 8 6
LS-1为对左右5位分别循环左移1位
0 1 0 0 1 0 0),K2=(0 1 0 0 0 0 1 1)(LS-1循环左移2位)
Char 7 pp.27
S-DES的加密运算
初始置换用IP函数: 1 2 3 4 5 6 7 8 2 6 3 1 4 8 5 7
(1)初始置换IP(initial permutation) (2)复合函数fk1,它是由密钥K确定的,具有置换和 替换的运算。 (3)交换函数SW (4)复合函数fk2 (5)初始置换IP的逆置换IP-1
DES加密过程:IP-1(f (SW(f k1(IP(明文)))))
k2
其中:K1=P8(移位(P10(密钥))) K2=P8(移位(移位(P10(密钥))))
Char 7 pp.12
Feistel密码结构基本原理图
Char 7 pp.13
Feistel密码结构参数讨论
脆弱性也就容易一些,因而可以开发出更强的算法。但是DES 并没有容易的分析方法。 Char 7 pp.14
Feistel密码的解密
Feistel密码解密过程本质上与加密过程一致。其规则如下: 将密文作为算法输入,但是逆序使用子密钥Ki。第一轮使用 Kn,第二轮使用Kn-1,直道最后一轮使用K1。
Char 7 pp.18
数据加密标准 DES(Data Encryption Standard )
发明人:美国IBM公司W. Tuchman 和 C. Meyer 1971-1972年研制成功。
基础:1967年美国Horst Feistel提出的理论
产生:美国国家标准局(NBS)1973年5月到1974 年8月两次发布通告,公开征求用于电子计算机的 加密算法。经评选从一大批算法中采纳了IBM的 LUCIFER方案。
Char 7 pp.26
S-DES的密钥生成
设10bit的密钥为(k1,k2,k3,k4,k5,k6,k7, k8,k9,k10) 置换P10是这样定义的 P10(k1,k2,…,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6) 相当于 P10= P8=
1 2 3 4 P85 6 7 8 按照上述条件,若K选为(1010000010), 产生的两个子密钥分别为K1=(1 6 3 7 4 8 5 10 9
SK是子密钥,⊕按位异或函数。
设IP置换的输出为(10111101),F(1101,SK)=(1110),因(1011) ⊕(1110)=(0101), 所以fk (11101)=(01011101)。
Char 7 pp.29
映射F(1)
映射F的输入是4位二进制数(n1,n2,n3,n4)。第一个操作是扩展和置换操 作:4 ,1,2,3,2,3,4,1
S-DES方案示意图
IP: 预定义的初始置换;fk包含置换)替代操作且依赖于密钥的变 换;SW:将输入的数据进行高四位和低四位交换;IP-1:IP的 逆置换。
Char 7 pp.25
S—DES是子秘钥生成
S—DES是子秘钥生成:对10bit密钥先经过一个置 换(P10),然后进行一次移位操作。移位操作的输 出通过一个置换函数(P8)后就产生了用作第一个子 密钥(K1)的8bit输出。上面移位操作的输出再经过 一次置换产生第二个子密钥(K2)。
Information Security:Principles & Applications
第5章称密钥密码体制—分组密码
本章大纲
5.1 原理及设计原则
5.2 Feistel密码结构
5.3数据加密
5.4其他分组密码
5.5分组密码的工作模式
5.6攻击分组密码的典型方法
5.7本章小结
一般所说的分组密码为无数据扩展与压缩的分组密 码。
Char 7 pp.7
分组密码的数学表示
一个分组密码实质上是一种映射。记明文空间和密文 空间为 F (明文与密文分组的长度均为m),密钥 空间为 S ( S 是的 F 子集,r为密钥长度):
m 2
k
k
r 2
密钥k下的加密函数为 E(, k ) ,m表示待加密的信息, k为密钥,则可将该映射记为 E : F S F ,这个映射 应满足: k S E(, k),是 F 到F 的一个置换;
标准化:DES算法1975年3月公开发表,1977年1 月15日由美国国家标准局颁布为数据加密标准 (Data Encryption Standard),于1977年7月15 日生效。 Char 7 pp.19
DES
DES加密算法的背景(2)
美国国家安全局(NSA, National Security Agency)参 与了美国国家标准局制定数据加密标准的过程。NBS接受 了NSA的某些建议,对算法做了修改,并将密钥长度从 LUCIFER方案中的128位压缩到56位。
即n4 n1
n2 n3
n2
n4
n3
n1
8位子密钥K1=(k11,k12,k13,k14,k15,k16,k17,k18)与之异或运算后得到 n4+k11 n1+k12 n2+k13 n3+k14 n2+k15 将其记为: p0,0 p1,0 n3+k16 p0,1 p1,1 n4+k17 p0,2 p1,2 n1+k18 p0,3 p1,3
Char 7 pp.15
Fesi密码加解密相等证明
加密最后一轮输出是RE16||LE16,作为解密第一轮输入,证明解密过程 第一轮的输入等于加密过程第十六轮输出左右部分32比特互换。
Char 7 pp.16
Information Security:Principles & Applications
Char 7 pp.4
分组密码的特点
主要优点:
易于标准化; 易于实现同步。
主要缺点:
不善于隐藏明文的数据模式、对于重放、插入、删 除等攻击方式的抵御能力不强。 可以用流密码的设计思想,在加密过程中采用合理的记 忆组件,来消除这些局限性。
Char 7 pp.5
分组密码的基本模型
m 2 k m 2
k
m 2
m 2
密钥k下的解密函数记为
D(, k )
,它是
E (, k )
的逆。
Char 7 pp.8
分组密码的设计原则 (1)
1、安全性角度: (1)“混乱原则” (扰乱):避免密码分析者利用明文与密文之间的依赖 关系进行破译,密码的设计应该保证这种依赖关系(密文的统计 特性与加密密钥的取值间)足够复杂。(通过复杂的替代算法实 现) 混乱:尽可能使密文和加密密钥间的统计关系更加复杂,以阻止 攻击者发现密钥。 (2)“扩散原则” :避免密码分析者对密钥逐段破译,应保证密钥的每位 数字能够影响密文中的多位数字;为了避免密码分析者利用明文 的统计特性,密码的设计应该保证明文的每位数字能够影响密文 中的多位数字,从而隐藏明文的统计特性。 扩散:使明文的统计特性消失在密文中,可以让每个明文数字尽 可能地影响多个密文数字的获得,即每个密文数字被多个多个明 文数字影响。 (3)乘积密码是比较有效的方法。乘积密码是指使用两个或两个以上 Char 7 基本密码,所得结果的密码强度将强于所有单个密码的强度。 pp.9
分组密码的设计原则 (2)
2、可实现性角度:
应该具有标准的组件结构(子模块),以适应超大 规模集成电路的实现。
分组密码的运算能在子模块上通过简单的运算进行。
Char 7 pp.10
Information Security:Principles & Applications
5.2 Feistel密码结构
Char 7 pp.2
Information Security:Principles & Applications
5.1 原理及设计原则
分组密码
流(序列)密码:对数字数据流一次加密一位或一 字节的密码。 分组密码: 一个明文分组被当作一个整体来产生一 个等长的密文分组的密码(DES)。
密文中的每位数字不仅仅与某时刻输入的明文数字 有关,而是与该明文中一定组长的明文数字有关。
密钥 K
明文 x 密文 y
密钥 K
明文 x
加密
解密
分组密码基本模型中,明文x=(x1,x2,„,xm)为分组 长度为m的序列,密文y=(y1,y2,„,yn)为分组长度 为n的序列加解密过程由密钥k=(k1,k2,„,kr)控制。
Char 7 pp.6
分组密码的分类
明文为分组长度为m的序列,密文为分组长度为n的 序列: n>m,称其为有数据扩展的分组密码; n<m,称其为有数据压缩的分组密码; n=m,称其为无数据扩展与压缩的分组密码。
5.3 数据加密标准(DES)
数据加密标准 DES(Data
Encryption Standard )
目前使用最广泛的加密方法都是基于1977年被美国标 准局作为第46号联邦信息处理标准而采用的数据加密 标准DES。DES中数据以64bit分组进行加密,密钥长度 作为56bit。加密算法经过一系列的步棸把64位的输入 变换为64bit的输出,解密过程中使用同样的步棸和同 样的密钥。 明文和密文的长度均为64位,有效密钥长度为56位 (实际采用64位密钥,其中8位作为奇偶校验位)。
IP=
末端算法的置换为IP的逆置换: 1 2 3 4 5 6 7 8
-1= 4 1 3 5 7 IP 易见IP-1(IP(X))=X
2 8 6
明文11110011,IP(11110011)=10111101