第三章 对称加密体制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AES算法
AES算法
1997年4月15日美国国家标准和技术研究所NIST 发起了征集AES 算法的活动并成立了专门的AES工作组 目的:为了确定一个非保密的公开披露的全球免费使用的分组密码 算法用于保护下一世纪政府的敏感信息并希望成为秘密和公开部 门的数据加密标准 1997年9月12日在联邦登记处公布了征集AES候选算法的通告 AES的基本要求是比三重DES快而且至少和三重DES一样安全. 1998年8月20日NIST召开了第一次候选大会并公布了15个候选算 法 1999年3月22日举行了第二次AES候选会议从中选出5个AES将成 为新的公开的联邦信息处理标准 入选AES的五种算法是MARS RC6 Serpent Twofish Rijndael 2000年10月2日美国商务部部长Norman Y. Mineta宣布经过三年来 世界著名密码专家之间的竞争, “Rijndael数据加密算法”最终获胜 为此而在全球范围内角逐了数年的激烈竞争宣告结束这一新加密 标准的问世将取代DES数据加密标准成为21世纪保护国家敏感信 息的高级算法.
两个基本设计方法
Shannon称之为理想密码系统中,密文的 所有统计特性都与所使用的密钥独立 混乱(confusion):使得密文的统计特性与 密钥的取值之间的关系尽量复杂,也就是, 当明文中的字符变化时,截取者不能预知 密文有什么变化

例如:凯撒密码的混乱性并不好,因为只要推 断出几个字母的转换方式,不需要更多信息就 能预测出其他字母的转换方式
DES的产生
1974年8月27日, NBS开始第二次征集,IBM提交了 算法LUCIFER,该算法由IBM的工程师在1971~1972 年研制 1977年1月15日,“数据加密标准”FIPS PUB 46发 布 该标准规定每五年审查一次,计划十年后采用新 标准 最近的一次评估是在1994年1月,已决定1998年12 月以后,DES将不再作为联邦加密标准。
在CRYPTO’93上,Session和Wiener给出了一 个非常详细的密钥搜索机器的设计方案,这个 机器基于并行运算的密钥搜索芯片,所以16次 加密能同时完成。此芯片每秒能测试5000万个 密钥,用5760个芯片组成的系统需要花费10万 美元,它平均用1.5天左右就可找到DES密钥。 1997年1月28日,美国的RSA数据安全公司在 RSA安全年会上公布了一项“秘密密钥挑战” 竞赛,其中包括悬赏1万美元破译密钥长度为 56比特的DES。美国克罗拉多洲的程序员 Verser从1997年2月18日起,用了96天时间, 在Internet上数万名志愿者的协同工作下,成 功地找到了DES的密钥,赢得了悬赏的1万美 元。
1998年7月电子前沿基金会(EFF)使用一台 25万美圆的电脑在56小时内破译了56比特密钥 的DES。 1999年1月RSA数据安全会议期间,电子前沿 基金会用22小时15分钟就宣告破解了一个DES 的密钥。 DES即将完成它的历史使命,给我们留下了关 于商业密码技术和商业密码政策等多方面的深 刻启发。
回顾
序列密码体制(流密码)
Байду номын сангаас
将明文和密钥都划分为位(bit)或字符的序列, 并且对明文序列中的每一位或字符都用密钥序 列中对应的分量来加密,即:
M=(m1, m2,… mn) Ke=(ke1, ke2…ke1) C=(c1, c2…cn) 其中ci=E(mi,kei) i=1,2…n
分组密码和序列密码的区别
第三章 对称加密体制
回顾
对称密码体制


Kd=Ke,或者由其中一个很容易推出另一个 特点:发送者和接收者之间密钥必须安全传送。 代表密码:DES,IDEA
用对称密钥加密的特点
密钥必须秘密地分配 如果密钥被损害了,攻击者就能解密所有 消息,并可以假装是其中一方。 假设网络中每对用户使用不同的密钥,那 么密钥总数随着用户的增加而迅速增加。
64位密钥经子密钥产生算法产生出64个子密钥:K1K2…K16, 分别供第一次、第二次…第十六次加密使用 64位明文首先经过初始置换IP(Initial Permutation),将数据 打乱重新排列并分成左右两半。左边32位构成L0,右边32 位构成R0 由加密函数f实现子密钥K1对R0的加密,结果得32位的数据 组f(R0, K1)。 f(R0, K1)再与L0模2相加,又得到一个32位的 数据组作为第二次加密迭代的R1,以R0作为第二次加密迭 代的L1。至此,第一次加密迭代结束。 第二次加密迭代至第十六次迭代分别用子密钥K2…K16进行, 过程与第一次相同。 第十六次加密迭代结束后,产生一个64位的数据组。左边 32位作为R16,右边32位作为L16,两者合并在经过逆初始置换 IP-1,将数据重新排列,得到64位密文。加密过程全部结束
分组密码每次加密一个明文块,序列密码每次加 密一个比特位或一个字符 序列密码的密钥有多个,组成一个密钥序列
3.1.1 分组密码设计原理
分组密码是将明文消息编码表示后的数字 (简称明文数字)序列,划分成长度为n的 组(可看成长度为n的矢量),每组分别在 密钥的控制下变换成等长的输出数字(简 称密文数字)序列 实际上是对长度为n的数字序列进行置换

n个用户需要的密钥总数=n(n-1)/2

10个用户需要45个密钥 100个用户需要4950个不同的密钥
回顾
分组密码体制

设M为明文,分组密码将M划分为一系列明文 块Mi,通常每块包含若干字符,并且对每一块 Mi都用同一个密钥Ke进行加密。即:
M=(M1, M2,… Mn,) C=(C1, C2… Cn,) 其中Ci=E(Mi,Ke) i=1,2…n
实现的设计原则 1
分组长度足够大

但是要考虑分组长度大带来的缺点
密钥空间足够大

目前认为128位足够安全
由密钥确定的算法足够复杂
实现的设计原则 2
软件实现的要求:使用子块和简单的运算。密码 运算在子块上进行,要求子块的长度能自然地适 应软件编程,如8、16、32比特等。在子块上所 进行的密码运算尽量采用易于软件实现的运算。 最好是用处理器的基本运算,如加法、乘法、移 位等。 硬件实现的要求:加密和解密的相似性,即加密 和解密过程的不同应仅仅在密钥使用方式上,以 便采用同样的器件来实现加密和解密,以节省费 用和体积。尽量采用标准的组件结构,以便能适 应于在超大规模集成电路中实现。
加密函数
F
Ki
选择运算E:输入32位,输出48位 与子密钥模2相加
S盒运算:6位输入,4位输出
置换函数p运算
DES的解密过程
对合运算:加密和解密共用一个运算,子 密钥使用的顺序不同
DES存在的安全弱点
密钥较短:56位 F函数设计原理未知 存在弱密钥

子密钥有相重
DES的历史回顾
关于DES算法的另一个最有争议的问题就是担心 实际56比特的密钥长度不足以抵御穷举式攻击, 因为密钥量只有256个 早在1977年,Diffie和Hellman已建议制造一个每 秒能测试100万个密钥的VLSI芯片。每秒测试 100万个密钥的机器大约需要一天就可以搜索整 个密钥空间。他们估计制造这样的机器大约需要 2000万美元。
扩散(Diffusion):明文的统计结构被扩散 消失到密文的长程统计特性,使得明文和密 文之间的统计关系尽量复杂

也就是明文的小小变化会影响到密文的很多部 分。
3.1.2 分组密码的一般结构
Feistel网络结构
Li-1
一个分组
Ri-1
F
Ki
Li
Ri
3.2 数据加密标准 (DES)
1973年5月15日, NBS开始公开征集标准加密算法,并公布 了它的设计要求: (1)算法必须提供高度的安全性 (2)算法必须有详细的说明,并易于理解 (3)算法的安全性取决于密钥,不依赖于算法 (4)算法适用于所有用户 (5)算法适用于不同应用场合 (6)算法必须高效、经济 (7)算法必须能被证实有效 (8)算法必须是可出口的
DES特点
设计目标:用于加密保护静态储存和传输 信道中的数据,安全使用10-15年 综合应用了置换、代替、代数等多种密码 技术 分组密码。明文、密文、密钥的分组长度 为64位,采用feistel结构 面向二进制的密码算法。 加密解密共用一个算法。
武汉工业学院计算机与信息工程系
DES的加密解密原理
几个著名的对称密码体制
IDEA


IDEA是International Data Encryption Algorithm 的缩写 是1990年由瑞士联邦技术学院来学嘉X.J.Lai 和Massey 提出的建议标准算法称作PES Proposed Encryption Standard Lai 和Massey 在1992 年进行了改进强化了抗差 分分析的能力改称为IDEA 它也是对64bit大小的数据块加密的分组加密算法密钥 长度为128位它基于“相异代数群上的混合运算”设计 思想算法用硬件和软件实现都很容易它比DES在实现上 快得多
假如两人在电话两端
Alice对Bob说:“你选一面,我来抛,然后 我告诉你你是否赢了” Bob会同意吗? 如何解决?
提示
引入一个函数,我们暂时称它为奇妙函数, 它具有下面的特点


对于任意整数x,由x计算f(x)是容易的,而给出 f(x),计算x是不可能的 不可能找出一对整数(x,y),满足x≠y且 f(x)=f(y)
思考题
一个通信游戏
两个朋友Alice和Bob想在晚上一起外出, 但是他们定不下是去电影院还是歌剧院。 于是,他们达成了一个通过掷硬币来决定 的协议。 Alice拿着硬币对Bob说:“你选择一面, 我来抛”Bob选择后,Alice把硬币抛向空 中。然后他们都注视硬币,如果Bob选择的 那一面朝上,则他可以决定要去的地方, 否则由Alice决定。
武汉工业学院计算机与信息工程系
DES利用56比特串长度的密钥K来加密长度为64位的明文,得到 长度为64位的密文
输入64比特明文数据
初始置换IP 在密钥控制下 16轮迭代 初始逆置换IP-1 输出64比特密文数据
Feistel结构
产生16个密钥
DES的算法细节
初始置换IP,初始逆置换
DES的算法细节
相关文档
最新文档