现代密码技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IP:
例如: IP(675a6967 5e5a6b5a) = (ffb2194d 004df6fb)
IP-1:
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 56 24 64 32 15 55 23 63 31 14 54 22 62 30 13 53 21 61 29 12 52 20 60 28 11 51 19 59 27 10 50 18 58 26 9 49 17 57 25
8个S盒
4) P置换
P为一个输入和输出都为32比特的置换,具 体形式如下: 16 7 20 21 29 12 28 17 第 16 比特 → 第 1 比特 第 07 比特 → 第 2 比特 1 15 23 26 ………… P: 5 18 31 10 第 25 比特 → 第 32 比特 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
3.1 数据加密标准DES
5)轮密钥的产生
DES算法的密钥k由一个56位的密钥以及 附加的8位奇偶校验位组成,经过密码扩展算 法可以把它扩展为16个子密钥。
其中迭代次数与左移的比特数关系如下:
迭代次数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 左移位数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
《计算机网络安全》
Chapter 3
现代密码技术
DES、RSA
3.1 数据加密标准DES
19世纪70年代,DES(the Data Encryption Standard)最初由IBM公司提出。 DES是一种分组密码,它采用56比特长的密 钥将64比特的数据加密成64比特的密文。 DES完全公开了加密、解密算法。因而是一 个最引人注目的分组密码系统。 它一直是国际上商用保密通信和计算机通信 的最常用加密算法。特别是应用于保护金融 数据的安全(例如:ATM取款机)。
DES Cracker The Electronic Frontier Foundation built the so-called DES Cracker supercomputer in 1998 to crack 56-bit DES encryption. It later won RSA Laboratory's "DES Challenge II" contest in about 56 hours. DES Cracker had 26 (and later 27) system boards, each with 32 or 64 custom AWT-4500 Deep Crack chips, for a total of about 1,500 to 1,800 chips.
3.1 数据加密标准DES
DES的强度
56位密钥长度问题 56-bit 密钥有256 = 72,057,584,037,927,936 ≈ 7.2亿亿 之多 强力搜索( brute force search ) 似乎很困难,20世纪70年 代估计要1000-2000年 技术进步使穷举搜索成为可能 1997年1月29日,RSA公司发起破译RC4、RC5、 MD2、MD5,以及DES的活动,破译DES奖励 10000美金。结果仅搜索了24.6%的密钥空间便得 到结果,耗时96天。 1998年在一台专用机上(EFF)只要三天时间即可 1999年在超级计算机上只要22小时!
3.1 数据加密标准DES
(2)Feistel每一轮的加密过程
Li-1
Ri-1
Ki
Round i
F
Li 加密: Li=Ri-1 Ri=Li-1⊕f(Ri-1,ki)
Ri 解密:Ri–1 = Li Li–1 = Ri f(Ri–1, Ki) = Ri f(Li , Ki)
1) 其中函数f的定义如下图所示:
3.1 数据加密标准DES
• 乘积密码(Product Cipher)就是以某种
方式连续执行两个或多个简单密码(如替 代、置换),以使得所得到的最后结果或 乘积比其任意一个组成密码都更强的分组 密码。
Shannon提出交替使用混淆和扩散进行乘积密码。 基于Shannon 理论,Feistel建议交替地使用代换 和置换。
3.1 数据加密标准DES
DES的发展
1977 年正式颁布为数据加密标准(DES - Data Encryption
Standard)。
1979 年,美国银行协会批准使用 DES。 1980 年,DES 成为美国标准化协会 (ANSI) 标准。 1984 年,ISO 开始在 DES 基础上制定数据加密的国际标准。 美国国家安全局NSA每隔年对该算法进行评估 ,1994年,决
定1998年12月之后不再使用DES 。
现已经确定了选用Rijndael算法作为高级加密算法AES。
3.1 数据加密标准DES
分组密码
就是一个明文分组被当作一个整体来产生一个
等长(通常)的密文分组的密码,通常使用的 是64或者128位分组大小。 分组密码的实质是,设计一种算法,能在密钥 控制下,把n比特明文简单而又迅速地置换成 唯一n比特密文,并且这种变换是可逆的(解 密)。 现在使用的大多数对称分组加密算法都是基于 Feistel分组密码结构的。
(舍弃了第 9,18,22,25,35,38,43,54 比特位)
总结:DES一轮迭代的过程
DES解密操作
由迭代操作的定义,显然可以得到 Ri-1=Li Li-1=Ri⊕f(Li,ki) 若记加密算法每一轮的操作为Ti,我们 可以方便的得出解密算法: DES-1=IP-1∘T1∘T2∘…T15∘T16∘IP
3) S盒子的设计(压缩置换)
DES的核心部分
称s1,s2,…,s8为s盒,实现明文消息在密文消息空间中 的随机非线性分布,可以抵抗差分分析攻击DC。 s盒的运算规则为,输入的6比特数据的第一和第六 比特为s和的行数,其余比特决定s盒的列数,例如, 当s1的输入为011011时,其输出为0101。 s1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
2) E扩展(32->48)
E是一种输入为32比特,输出为48比特的置换, 具体的置换方法如下,其置换方法和IP类似。 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 E: 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1
3.2 非对称密码-RSA
对称算法的缺陷 为事先协商密钥,需另外的安全信道或 KDC 不能满足签名的需求 密钥数量多
Feistel密码结构
方法
将输入分组分成左右两部分。 以右半部数据和子密钥作为参数,对
左半部数据实施代换操作。 将两部分进行互换,完成置换操作。
优点
能够产生雪崩效应 快速软件加解密 易于分析
可自行设计的内容:
分组长度 密钥长度 轮数 子密钥生成算法 轮函数
33 42 51 60 39 46 53 28
25 17 34 26 43 35 52 44 31 23 38 30 45 37 20 12
9 18 27 36 15 22 29 4
(舍弃了奇偶校验位, 即第8,16,…,64 位)
PC-2:
24 1 5 6 21 10 4 26 8 20 13 2 37 47 55 45 33 48 56 34 53 36 29 32
一个扩散的例子就是当前明文字母开始的若干明文字 母之和(mod26)作为对应的密文字母。 在二进制分组密码中,对明文进行置换后再用某个函 数作用,重复多次就可获wk.baidu.com较好的扩散效果。因为原 始明文中的不同位对密文某一位都会产生影响。
3.1 数据加密标准DES
(2)混淆(confusion) 其目的在于使作用于明文的密钥和密文之 间的关系复杂化,是明文和密文之间、密 文和密钥之间的统计相关特性极小化,从 而使统计分析攻击不能奏效。
56位
28位
28位
28位
28位
56位
56位
56位
两个置换选择
PC-1:
57 1 10 19 63 7 14 21 14 3 23 16 41 30 44 46
49 58 2 11 55 62 6 13 17 28 19 7 52 40 49 42
41 50 59 3 47 54 61 5 11 15 12 27 31 51 39 50
3.1 数据加密标准DES
Feistel每一轮的加密(替换+置换)
Li-1
Ri-1
Ki
Round i
F
Li
Ri
LEi = REi-1 REi = LEi-1F(REi-1,Ki)
3.1 数据加密标准DES
DES加密操作 DES在加解密过程中,将明文和密文分成64比特 的分组进行操作。其一大特点是解密过程与加密过 程是相似的。 首先对64比特的明文分组进行IP置换。IP置换 将输入分组的第58比特作为输出的第1比特,输入 的第50比特作为输出的第2比特,依次类推。然后 用密钥k对得到的结果进行迭代操作。最后再对迭 代操作的结果进行IP-1置换产生输出分组。下面是 DES算法的略图。
3.1 数据加密标准DES
DES的强度
S-box问题
其设计标准没有公开,但是迄今没有发现S盒存在致命
弱点
计时攻击
计时攻击利用的事实是加密或解密算法对于不同的输
入所花的时间有细微的差别 DES能够很好地抵抗计时攻击
弱密钥(注意避免)
弱密钥:8个弱密钥 半弱密钥:2个半弱密钥
48bit sub key
3.1 数据加密标准DES
(1)初始置换与逆置换
58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 2 12 4 14 6 16 8 9 1 11 3 13 5 15 7
3.1 数据加密标准DES
DES的雪崩效应
雪崩效应 Avalanche Effect
明文或密钥的一比特的变化,引起密文许 多比特的改变。如果变化太小,就可能找 到一种方法减小有待搜索的明文和密文空 间的大小。
如果用同样密钥加密只差一比特的两个明文:
0000000000000000......00000000 1000000000000000......00000000 3次循环以后密文有21个比特不同,16次循环 后有34个比特不同 如果用只差一比特的两个密钥加密同样明文: 3次循环以后密文有14个比特不同,16次循环 后有35个比特不同
3.1 数据加密标准DES
设计原则
分组长度 分组越长则安全性越高,但加/解密速度越低,分组长 度为64位是一个合理的折衷。 密钥长度 密钥越长越安全,但加/解密速度越低,64位长的密钥 已被证明是不安全的,128位是常用的长度 迭代次数 迭代越多越安全,通常为16次迭代 子密钥产生算法 越复杂则密码分析越困难 轮函数 越复杂则抗密码分析的能力越强
3.1 数据加密标准DES
分组密码的两个基本设计方法。(如何挫败基于
统计方法的密码分析?Shannon建议了两种对付统计分 析的方法:扩散和混淆)
(1)扩散(diffusion):扩散指使明文的统计特征消散 在密文中,可以让每个明文数字尽可能地影响 多个密文数字获得,等价于说每个密文数字被 许多明文数字影响。