第六讲 高级加密标准(AES).

Slides:



Advertisements
Similar presentations
3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
Advertisements

第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
全微分 教学目的:全微分的有关概念和意义 教学重点:全微分的计算和应用 教学难点:全微分应用于近似计算.
第2章 现代密码学精讲.
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
《现代密码学》第4章(6) 分组密码: AES算法.
§1 线性空间的定义与性质 ★线性空间的定义 ★线性空间的性质 ★线性空间的子空间 线性空间是线性代数的高等部分,是代数学
小学生游戏.
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
第5章 高级加密标准(AES) AES的起源 AES的设计原则 AES算法描述.
现代密码学理论与实践 第5章高级数据加密标准AES
走进编程 程序的顺序结构(二).
SPI驱动 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
使用矩阵表示 最小生成树算法.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
分组密码的工作模式 为克服分组密码自身所具有的缺陷,在具体的分组密码系统设计中必须对其基本的工作模式(电码本模式Electronic Codebook, ECB)进行改进。 密码分组链接模式(Cipher Block Chaining ,CBC) 密码反馈模式(Cipher Feed back ,CFB)
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
顺序表的删除.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
IT 安全 第 11节 加密控制.
用计算器开方.
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
北师大版五年级数学下册 分数乘法(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
2.2矩阵的代数运算.
分数再认识三 真假带分数的练习课.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
数据表示 第 2 讲.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
第十七讲 密码执行(1).
第十二讲 密码执行(上).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
《偏微分方程》第一章 绪论 第一章 绪论 1.1.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
§4.5 最大公因式的矩阵求法( Ⅱ ).
應用加密技術 張維哲 指導老師:梁明章.
入侵检测技术 大连理工大学软件学院 毕玲.
质量控制(QC)模式 BrookFIELD.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
学习目标 1、什么是列类型 2、列类型之数值类型.
百万行、千万行数据查询教程 老黄牛.
9.3多项式乘多项式.
Presentation transcript:

第六讲 高级加密标准(AES)

1997年1月2日,美国国家标准与技术研究所(NIST)宣布启动设计新的对称分组加密算法作为新一代加密标准替代DES。新的加密标准将被命名为高级加密标准(AES)。不同于暗箱设计过程的DES,AES的设计方案于1997年9月12日向全世界公开征集。

AES需要满足下列要求 (1) 必须详细和公开说明对称加密算法的设计原理。 (2) 算法必须支持最小128比特的消息分组,密钥长度可以为128,192,256比特,而安全强度至少达到三重DES但效率应该高于三重DES。 (3) 算法适合于在各种硬件设备上执行。 (4) 如果算法被选中,不应该存在专利问题并可以在世界范围内使用。

1998年8月20日,NIST公布了15个AES侯选算法,这些算法由遍步世界的密码团体的成员提交。公众对这15个算法的评论被当作初始评论(公众的初始评论也被称为第一轮)。第一轮于1999年4月15日截止。根据收到的分析和评论,NIST从15个算法中选出5个算法。

5个参加决赛的AES侯选算法是MARS(来自IBM),RC6(来自RSA Laboratories), Rijndael(来自Joan Daemen和Vincent Rijmen),Serpent(来自Ross Anderson, Eli Biham,和Lars Knudsen),和Twofish(来自Bruce Schneier,John Kelsey,Doug Whiting,David Wagner,Chris Hall,和Niels Ferguson)。这些参加决赛的算法在又一次更深入的评论期(第二轮)得到进一步的分析。

在第二轮中,要征询对候选算法的各方面的评论和分析,这些方面包括但不限于下面的内容:密码分析、知识产权、所有AES决赛候选算法的剖析、综合评价以及有关实现问题。在2000年5月15日第二轮公众分析结束后,NIST汇集和研究了所有得到的信息,为最终选择提供依据。2000年10月2日,NIST宣布它选中了 Rijndael作为AES。

本讲提要 有限域GF(pn)的知识 基本算法 层 解密 设计思考 执行考虑 AES的积极意义 加密模式 消息认证码(MAC)

1 有限域GF(pn)的知识

1.1 建立有限域 GF(pn)

1.2 关于除法

1.3 GF(28)

2 基本算法 为使论述简单,我们以使用128比特密钥加密128比特消息为例说明,并且先对算法的整体架构予以说明。算法由10轮组成。每一轮使用一个由原始密钥产生的密钥。第0轮使用原始的128比特密钥。每一轮都是128比特输入128比特输出。

每一轮由四个基本步骤称为层(layers)组成: (1) 字节转换(The ByteSub Transformation): 这是一个非线性层主要用于防止差分和线性分析攻击。 (2) 移动行变换(The ShiftRow Transformation):这是一个线性层,可以导致多轮之间各个比特位间的扩散。 (3) 混合列变换(The MixColumn Transformation): 这一层的目的与移动行变换相同。 (4) 轮密钥加密变换(AddRoundKey):轮密钥与上一层的结果进行异或操作。

# 注意最后一轮忽略了混合列变换(MC)层。 一轮的过程 ByteSub (BS) ShiftRow (SR) MixColumn (MC) AddRoundKey (ARK) Rijndael加密 (1) 使用第0轮密钥执行ARK操作。 (2) 依次使用第1轮到9轮密钥按顺序执行BS, SR, MC,和ARK操作。 (3) 使用第10轮密钥按顺序执行BS, SR,和ARK操作。 # 注意最后一轮忽略了混合列变换(MC)层。

3 层

3.1字节转换

3.1字节转换 (续)

3.2 移动行变换

3.3混合列变换

3.4 轮密钥加密变换

3.5 轮密钥产生方法

3.6 S-盒原理

3.6 S-盒原理(续)

4 解密 字节转换、移动行变换、混合列变换、轮密钥加密变换都存在相应的逆变换: (1) 字节转换的逆变换可以通过查另一个表来完成,我们称之为逆字节转换(IBS)。 (2) 移动行变换的逆变换可以通过字节右移来实现,我们称之为逆移动行变换(ISR)。

(3) 逆混合列变换 (IMC) 通过乘上另一个矩阵 实现。 (4) 轮密钥加密变换实际上是自身的逆。

Rijndael 解密 (1) 使用第10轮密钥执行ARK操作。 (2) 依次使用第9轮到1轮密钥按顺序执行IBS,ISR, IMC,和IARK操作。 (3) 使用第0轮密钥按顺序执行IBS, ISR,和ARK操作。 # 为了保持结构的一致性,在最后一轮加密中忽略了 MC操作。

5 设计思考 (1) 由于加密和解密过程不一致,相比DES(全1密钥,加密两次恢复为本身),相信AES不存在任何弱密钥。 (2) 不同于Feistel系统,AES对输入所有比特的处理相同。这使得输入的扩展速度很快。实践表明两轮计算就能得到充分扩展,也就是说,所有的128比特输出完全依赖于所有128比特输入。 (3) AES的S-盒的建立有明晰而简单的代数意义,这样可以避免任何建立在算法上的陷门,较好避免存在于DES的S-盒上的神秘色彩。AES的S-盒具有良好的非线性特性,它可以很好的用来阻止差分和线性分析。

(4) 移动行这一层可以很好的阻止新发现的截断攻击和平方攻击。 (5) 混合列可以达到字节扩散的目的。这步1个输入字节的改变导致所有4个输出字节改变。 (6) 轮密钥产生方法使用了密钥位的非线性组合,因为它使用了S-盒,这种非线性组合用来对付当解密者知道了部分密钥并以此推测余下部分的攻击。循环常量(10)(i-4)/4是用来消除在循环过程中生成每个循环差别的对称性。

(7) 轮次之所以选择10,是因为在6轮情况下存在比强力搜索攻击更好的算法。已知的纯数学密码分析结果在7轮以上还没有比强力搜索攻击更好的办法。多出4轮能够让人更有安全感。当然,轮次还可以根据需要增加。

6 执行考虑 我们已经看到Rijndael内部的层是非常简单的,它在很小的代数空间上即可完成,因此,可以高效完成这些层。从前面对Rijndael的内部层描述可以看到,仅有SB/ISB和MC/IMC值得考虑它们的快速实现问题。

(1) 对于SB/ISB,我们建议使用S-盒查表方法:可以一次建立一个有28=256个字节的小表,长期使用(就是说,这个表可以“固化”在硬件或者是软件中实现)。“查表法”不仅非常有效,还能阻止定时分析攻击,这种攻击根据不同数据的运算时间差异,来推断运算是在比特0还是在比特1上运行。

(2) 在MC操作中,有限域GF(28)上的两个元的乘法操作也可以用“查表法”来实现:z = xy(有限域乘法),这里x{01,10,11}和yGF(28)。我们进一步注意到字节01为有限域乘法单位元,也就是,01y=y。因而无论用软件还是硬件执行“查表法”时只需要存储2256=512项,这个表是非常小的。这样实现不仅速度很快,而且还能够减少定时分析攻击的危险。

(3) 执行IMC操作就不像执行MC操作那么快。这是因为IMC操作的44矩阵比MC操作的矩阵复杂的多,一般执行IMC操作比MC操作需要多花费30%的处理时间。然而,幸运地是在一些应用中解密是不需要的。

7 AES的积极意义 (1) 首先,多重加密,例如,三重DES加密,随着AES的出现而成为不必要的选择。可以加长的密钥以及128、192、256比特的数据分组长度为各种应用需求提供了大范围的安全强度。由于多重加密多次使用多个密钥,那么避免使用多重加密就意味着实用中必须使用的密钥数目减少,因此,可以简化安全协议和系统设计。

(2) 其次,AES的广泛使用将促进同样强度的Hash函数的出现。在某些情况下,分组加密算法与Hash函数密切相关。分组加密算法经常被用来作为Hash函数,这已经成为一种标准应用。UNIX操作系统的登录认证协议就是一个著名的例子。我们也看到上一讲的UNIX口令方案的实现中DES的“单向变换”用法。前面看到Hash函数应该是分组加密算法数据分组的2倍,因此,将需要与128、192、256比特AES长度相匹配的256、384、512比特的新Hash函数。各大标准化组织也正在积极从事这方面的工作。

(3) 最后,像DES标准吸引了许多试图攻破该算法的密码分析家的注意,随之促进了分组密码分析的认识水平的发展一样,作为新的分组密码标准的AES也可望引起分组密码分析中高水平研究的再次兴起,这必将使得该领域的认识水平得到进一步提高。

8 加密模式 通常大多数消息的长度大于分组密码的消息分组长度,长的消息被分成一系列连续排列的消息分组,密码一次处理一个分组。在分组密码的上层不同的加密模式被开发出来,这些加密模式可以为整体消息加密提供一些希望得到的性质,如:分组密码的不确定性(随机性),将明文消息添加到任意长度(使得密文长度不必与相应的明文长度相关),错误传播控制,流密码的密钥流生成,等等。

8.1 电码本(ECB)模式

8.1电码本(ECB)模式 (续)

8.2 密码分组链接(CBC)模式 C0 P1 EK C1 P2 C2 …

8.2 密码分组链接(CBC)模式 (续)

8.3 密码反馈 (CFB)模式

8.3 密码反馈 (CFB)模式 (续)

8.3 密码反馈 (CFB)模式 (续)

9 消息认证码(MAC) 定义 1 消息认证码(MAC)算法是带有密钥k 的函数族hk,其具有如下性质: (1) 易于计算:对于任何已知函数hk,给定值k和输入x,值hk(x)容易计算出来。这个值被称做MAC-值或MAC。

(2) 压缩:函数hk可以将任意有限比特长度的输入x映射为固定n比特长度的位串。进一步,给出函数族h的算法描述,对于任何一个固定符合要求的密钥值k(攻击者不知其值),需要满足如下性质: (3) 计算抵抗:给定0个或多个消息-MAC值对(xi,hk(xi)),找到任意消息-MAC值对(x,hk(x))满足xxi在计算上不可能(当然也包括某些i满足hk(x)=hk(xi)的可能性) 。

9.1 攻击者攻击MAC的目标 目标:在不知道密钥k的情况下,给定一个或多个消息-MAC值对(xi,hk(xi)),计算出一个或多个新消息-MAC值对(x,hk(x)),满足xxi。 攻击者潜在的能力: (1) 已知消息攻击。 (2) 选择消息攻击:掌握一个或多个由攻击者选择的xi对应的消息-MAC值对 (xi,hk(xi)) 。 (3) 适应性选择消息攻击:允许根据前面的询问结果连续做出选择。

9.2 伪造种类 在实际中造成的破坏程度取决于攻击者控制消息x并伪造其MAC值的程度,依此可以做如下分类。 (1) 选择性伪造攻击:攻击者可以根据选择,控制消息的内容伪造出消息-MAC值对(或者至少为部分控制消息内容)。 (2) 存在性伪造攻击:攻击者虽然可以伪造出消息-MAC值,但无法控制消息的内容。

9.3 实例 – 基于CBC的MAC

9.3 实例 – 基于CBC的MAC (续) M1 Ek H1 M2 H2 … Ht-1 Mt Ht Dk' 可选

9.3 实例 – 基于CBC的MAC (续) 评论. (1) 很明显,在生成CBC-MAC值(由运行CBC模式的分组密码构造的MAC)的计算中包括了不可求逆的数据压缩(本质上,CBC-MAC是整个消息的“短摘要”),因此CBC-MAC是一个单向变换。 (2) 所有的分组密码加密算法的混合变换性质为这个单向函数变换增加了一个杂凑特点(也就是说,将MAC分布到MAC空间与分组密码加密算法将密文分布到密文空间同样均匀)。

(3) 根据以上,我们可以设想为了生成一个有效的CBC-MAC,该实体必须知道控制分组密码算法的密钥k。与发送者共享密钥k的接收者可由所接收的消息重新计算出MAC值,并检查与所收到的MAC值是否一致。如果一致,就可以相信消息来自所声称的发送者。

谢谢 !