1 / 92

密码学基础( 2 )

密码学基础( 2 ). 胡建斌 北京大学网络与信息安全研究室 E-mail: hjbin@infosec.pku.edu.cn http://infosec.pku.edu.cn/~hjbin . 目 录 数据加密标准 公开密钥算法. 数据加密标准 ( Data Encryption Standard,DES). 背景. 发明人 :美国 IBM 公司 W. Tuchman 和 C. Meyer 1971-1972 年研制成功 基础: 1967 年美国 Horst Feistel 提出的理论

aelan
Download Presentation

密码学基础( 2 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 密码学基础(2) 胡建斌 北京大学网络与信息安全研究室 E-mail: hjbin@infosec.pku.edu.cn http://infosec.pku.edu.cn/~hjbin

  2. 目 录 • 数据加密标准 • 公开密钥算法

  3. 数据加密标准(Data Encryption Standard,DES)

  4. 背景 • 发明人:美国IBM公司 W. Tuchman 和 C. Meyer 1971-1972年研制成功 • 基础:1967年美国Horst Feistel提出的理论 • 产生:美国国家标准局(NBS)1973年5月到1974年8月两次发布通告, 公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳 了IBM的LUCIFER方案 • 标准化:DES算法1975年3月公开发表,1977年1月15日由美国国家标 准局颁布为数据加密标准(Data Encryption Standard),于 1977年7月15日生效

  5. 背景 • 美国国家安全局(NSA, National Security Agency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER方案中的128位压缩到56位 • 1979年,美国银行协会批准使用DES • 1980年,DES成为美国标准化协会(ANSI)标准 • 1984年2月,ISO成立的数据加密技术委员会(SC20)在DES基础上制定数据加密的国际标准工作

  6. DES概述 • 分组加密算法:明文和密文为64位分组长度 • 对称算法:加密和解密除密钥编排不同外,使用同一算法 • 密钥长度:56位,但每个第8位为奇偶校验位,可忽略 • 密钥可为任意的56位数,但存在弱密钥,容易避开 • 采用混乱和扩散的组合,每个组合先替代后置换,共16轮 • 只使用了标准的算术和逻辑运算,易于实现

  7. DES加密算法的一般描述

  8. 输入64比特明文数据 初始置换IP 在密钥控制下 16轮迭代 交换左右32比特 初始逆置换IP-1 输出64比特密文数据 DES加密过程

  9. DES加密过程 令i表示迭代次数,表示逐位模2求和,f为加密函数

  10. DES解密过程 令i表示迭代次数,表示逐位模2求和,f为加密函数

  11. DES中的各种置换、扩展和替代

  12. 初始置换IP和初始逆置换IP—1

  13. IP和IP—1 IP IP—1

  14. Li-1(32比特) Ri-1(32比特) 选择扩展运算E 48比特寄存器 子密钥Ki (48比特) 48比特寄存器 选择压缩运算S 32比特寄存器 置换运算P Li(32比特) Ri(32比特) Li=Ri-1 DES的 一轮迭代

  15. 扩展置换E-盒-32位扩展到48位 扩展

  16. 压缩替代S-盒-48位压缩到32位 共8个S盒

  17. S-盒1 S-盒5 S-盒6 S-盒2 S-盒3 S-盒7 S-盒4 S-盒8

  18. S-盒的构造

  19. S-盒的构造 • DES中其它算法都是线性的,而S-盒运算则是非线性的 • S-盒不易于分析,它提供了更好的安全性 • 所以S-盒是算法的关键所在

  20. S-盒的构造准则 • S盒的每一行是整数0,…,15的一个置换 • 没有一个S盒是它输入变量的线性函数 • 改变S盒的一个输入位至少要引起两位的输出改变 • 对任何一个S盒和任何一个输入X,S(X)和 S(X001100)至少有两个比特不同(这里X是长度为6的比特串) • 对任何一个S盒,对任何一个输入对e,f属于{0,1},S(X) S(X11ef00) • 对任何一个S盒,如果固定一个输入比特,来看一个固定输出比特的值,这个输出比特为0的输入数目将接近于这个输出比特为1的输入数目

  21. S-盒的构造要求 • S-盒是许多密码算法的唯一非线性部件,因此,它的密码强度决定了整个算法的安全强度 • 提供了密码算法所必须的混乱作用 • 如何全面准确地度量S-盒的密码强度和设计有效的S-盒是分组密码设计和分析中的难题 • 非线性度、差分均匀性、严格雪崩准则、可逆性、没有陷门

  22. 置换p-盒的构造

  23. p-盒的构造准则 • P置换的目的是提供雪崩效应 • 明文或密钥的一点小的变动都引起密文的较大变化

  24. DES中的子密钥的生成

  25. 密钥置换算法的构造准则 • 设计目标:子密钥的统计独立性和灵活性 • 实现简单 • 速度 • 不存在简单关系:( 给定两个有某种关系的种子密钥,能预测它们轮子密钥之间的关系) • 种子密钥的所有比特对每个子密钥比特的影响大致相同 • 从一些子密钥比特获得其他的子密钥比特在计算上是难的 • 没有弱密钥

  26. Li-1(32比特) Ri-1(32比特) 选择扩展运算E 48比特寄存器 子密钥Ki (48比特) 48比特寄存器 选择压缩运算S 32比特寄存器 置换运算P Li(32比特) Ri(32比特) Li=Ri-1 DES的 一轮迭代

  27. DES加密算法的一般描述

  28. DES的工作模式

  29. 电子密码本 ECB (electronic codebook mode) • 密码分组链接 CBC (cipher block chaining) • 密码反馈 CFB (cipher feedback) • 输出反馈 OFB (output feedback)

  30. 电子密码本ECB

  31. ECB的特点 • 简单和有效 • 可以并行实现 • 不能隐藏明文的模式信息 相同明文生成相同密文,同样信息多次出现造成泄漏 • 对明文的主动攻击是可能的 信息块可被替换、重排、删除、重放 • 误差传递:密文块损坏仅对应明文块损坏 • 适合于传输短信息

  32. 密码分组链接CBC

  33. CBC的特点 • 没有已知的并行实现算法 • 能隐藏明文的模式信息 需要共同的初始化向量IV 相同明文生成不同密文 初始化向量IV可以用来改变第一块 • 对明文的主动攻击是不容易的 信息块不容易被替换、重排、删除、重放 误差传递:密文块损坏两明文块损坏 • 安全性好于ECB • 适合于传输长度大于64位的报文,还可以进行用户鉴别,是大多系统的标准如 SSL、IPSec

  34. 密码反馈CFB • CFB:分组密码流密码 • 假定:Si 为移位寄存器,传输单位为jbit 加密: Ci =Pi(EK(Si)的高j位) Si+1=(Si<<j)|Ci 解密: Pi=Ci(EK(Si)的高j位) Si+1=(Si<<j)|Ci

  35. Ci =Pi(EK(Si)的高j位) ; Si+1=(Si<<j)|Ci 密码反馈CFB加密

  36. Pi=Ci(EK(Si)的高j位); Si+1=(Si<<j)|Ci 密码反馈CFB解密

  37. CFB的特点 • 分组密码流密码 • 没有已知的并行实现算法 • 隐藏了明文模式 • 需要共同的移位寄存器初始值IV • 对于不同的消息,IV必须唯一 • 误差传递:一个单元损坏影响多个单元

  38. 输出反馈OFB • OFB:分组密码流密码 • 假定:Si 为移位寄存器,传输单位为jbit 加密: Ci =Pi(EK(Si)的高j位) • Si+1=(Si<<j)|(EK(Si)的高j位) • 解密: Pi=Ci(EK(Si)的高j位) • Si+1=(Si<<j)|(EK(Si)的高j位)

  39. Ci =Pi(EK(Si)的高j位);Si+1=(Si<<j)|(EK(Si)的高j位) 输出反馈OFB加密

  40. Pi=Ci(EK(Si)的高j位); Si+1=(Si<<j)|(EK(Si)的高j位) 输出反馈OFB解密

  41. 0FB的特点 • 分组密码流密码 • 没有已知的并行实现算法 • 隐藏了明文模式 • 需要共同的移位寄存器初始值IV • 对于不同的消息,IV必须唯一 • 误差传递:一个单元损坏只影响对应单元 • 对明文的主动攻击是可能的 • 信息块可被替换、重排、删除、重放 • 安全性较CFB差

  42. 多重DES

  43. 两重DES

  44. 三重DES

  45. DES的安全性

  46. F函数(S-Box)设计原理未知 • 密钥长度的争论 • DES的破译 • 弱密钥与半弱密钥

  47. DES密钥长度 • 关于DES算法的另一个最有争议的问题就是担心实际56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有 个 • 早在1977年,Diffie和Hellman已建议制造一个每秒能测试100万个密钥的VLSI芯片。每秒测试100万个密钥的机器大约需要一天就可以搜索整个密钥空间。他们估计制造这样的机器大约需要2000万美元

  48. DES密钥长度 • 在CRYPTO’93上,Session和Wiener给出了一个非常详细的密钥搜索机器的设计方案,这个机器基于并行运算的密钥搜索芯片,所以16次加密能同时完成。花费10万美元,平均用1.5天左右就可找到DES密钥 • 美国克罗拉多洲的程序员Verser从1997年2月18日起,用了96天时间,在Internet上数万名志愿者的协同工作下,成功地找到了DES的密钥,赢得了悬赏的1万美元

  49. DES密钥长度 • 1998年7月电子前沿基金会(EFF)使用一台25万美圆的电脑在56小时内破译了56比特密钥的DES • 1999年1月RSA数据安全会议期间,电子前沿基金会用22小时15分钟就宣告破解了一个DES的密钥

  50. 破译DES • 1990年,以色列密码学家Eli Biham和Adi Shamir提出了差分密码分析法,可对DES进行选择明文攻击 • 线性密码分析比差分密码分析更有效

More Related