第5章 高级加密标准(AES) AES的起源 AES的设计原则 AES算法描述.

Slides:



Advertisements
Similar presentations
第三章 對稱式金鑰密碼系統 - 資料加密標準.  1970 年代 Horst Feistel 為美國 IBM 電腦公司研發出 “Lucifer” 系統。  美國國家標準局 (NBS, 現為 NIST) 在 1973 年徵求構想 書,希望能訂定國際加密標準。  DES 最後在 1997 年 1.
Advertisements

急性腹痛 急性疼痛. 急性疼痛 — 孙树杰、沈洪、 刘保池 (1)(1)(1)(1) 概 述 (2)(2)(2)(2) 重症急性腹痛的临床特点 (3)(3)(3)(3) 急性腹痛的分类及诊治 主要教学内容.
3.1 信息加密技术概述 3.2 密码技术 3.3 密钥管理 3.4 网络加密技术 习题与思考题 参考文献 实训指南
施工招标案例分析 (交流材料).
十九世纪出现了两个了不起的人物:一个是拿破仑,一个就是海伦·凯勒。
Chapter 1: 概論 1.1 密碼學術語簡介及假設
3/5/2017 十二经脉 八、足少阴肾经.
資訊安全 Security 陳以德 助理教授: 濟世CS 轉
第8课 列方程(组)解应用题.
第四章 圓錐曲線 ‧4-1 拋物線 ‧4-2 橢 圓 ‧4-3 雙曲線 總目錄.
工職數學 第三冊 第二章 不等式與線性規劃 ‧2-1 一元二次不等式 ‧2-2 絕對值不等式 ‧2-3 二元一次不等式的圖形
1.2.2《函数的表示法》.
22.3 实际问题与一元二次方程(1).
网络安全协议 Network Security Protocols
中国特色社会主义政党制度 主讲:西南大学 李强 2011年12月28日.
计算机网络 第 7 章 计算机网络的安全.
第三讲 匀变速直线运动 学 科:物 理 主讲人:吴含章. 第三讲 匀变速直线运动 学 科:物 理 主讲人:吴含章.
欢迎南京市政治学科的教研同仁 光临指导.
班级安全文化建设的思考与实践 夯实安全基础 规范安全行为 培养安全习惯 训练安全能力 尤 学 文 管 理 学 博 士
桌球腳步練習(熱身操) 1.單步(近檯,踏出一步) 跟步(近到中檯,踏出二步) 11
電子資料保護 吳啟文 100年6月7日.
06資訊安全-加解密.
关于《福建省房屋建筑和市政基础设施工程 标准施工招标文件(2015年版)》的要点介绍
密码学基础 电子科技大学•计算机学院.
電子戶籍謄本申辦及驗證實務作業與問題討論
第八章 股票价格指数 王玉霞 证券投资学 东 北 财 经 大 学 第8章 股票价格指数.
計算機概論 蘇俊銘 (Jun Ming Su) 資料加密技術簡介 計算機概論 蘇俊銘 (Jun Ming Su)
目 錄 壹、緣由 貳、問題解析 參、問題歸納 肆、因應對策 伍、評鑑獎勵 陸、追蹤考核 1.
经济法 富国?富民? 税法篇.
实际问题与一元二次方程(四).
第5节 关注人类遗传病.
魏普文 山东大学密码技术与信息安全 教育部重点实验室
企業的土狗精神 土管二 賴柏勳.
遗传系谱题的分析与解法 江苏省仪征中学 生物组.
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
装备指挥技术学院 陈庆华.
密碼學簡介與簡單生活應用 Introduction to Cryptography & Simple Applications in Life 2010 Spring ADSP 05/07.
利用共同供應契約 辦理大量訂購流程說明.
網路與多媒體實驗 第一組報告 B 鄧鎮海 B 葉穎達
第三章 公钥基础设施PKI 本章学习重点掌握内容: 密码学基本术语 密码体制分类 私钥密码体制的主要特点 公钥密码体制的主要特点
Cryptography and Network Security - 2
密码学导论˙第5章 分组密码 8学时 李卫海.
Module 2:電子商務之安全.
CH19資訊安全 認識資訊安全與其重要性 了解傳統與公開金鑰密碼系統, 以及基本的安全性觀念 了解訊息鑑別與雜湊函數 了解數位簽章法
MIFARE 建國科大資管 饒瑞佶.
2.2 IDEA 1990年Xuejia Lai(来学加)& J.L.Massey提出
秘密金鑰密碼系統 (Secret Key Cryptosystems)
MIFARE 建國科大資管 饒瑞佶.
7.2 部分分式與有限供應成長.
雜湊與MAC演算法 Hash and MAC Algorithms
By 施烨雯 “加密芯片的旁道攻击防御对策研究” 旁道攻击基本原理 智能卡工作原理 SCA的具体方法 DPA的物理基础 功耗攻击流程图
第5章 電腦網路與應用 5-1 認識數據通訊 5-2 認識電腦網路 5-3 認識網際網路 5-4 實用的網際網路 5-5 資訊安全與保護
第二部分 免疫系统与免疫活性分子 第二章 免疫系统 第三章 免疫球蛋白 第二 部分 第五章 细胞因子 第四章 补体系统.
第一章 直角坐標系 1-2 直角坐標.
應用加密技術 A 譚惠心 指導教授:梁明章教授.
九年级 上册 22.3 实际问题与二次函数 (第1课时).
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
1.1.2集合间的基本关系.
中国农业科学院博士后学术论坛 博士后基金申请的经验及体会 中国农业科学院生物技术研究所 秦 华 博士
如何制订幼儿园园本培训工作计划 大连亿达世纪城幼儿园 姜承华 2011年3月10日.
多層垂直分工產業之動態長鞭效應分析 以台灣液晶顯示器產業為研究對象 班級:在管三甲 報告者:T 陳美惠
地球 我之所以會做這個主題,是因為有一次我再閱讀書本的時候看到的, 和三年級自然老師上課也有講到,所以讓我更有興趣把他用清楚, 因此我每結下課都有到圖書館找有關地球的書本,所以我才會選地球當主題, 雖然我有一點懂,可是有一些地方我還是不懂‧ 作者:陳彥廷.
張仁俊 (Jen-Chun Chang) 國立台北大學 資訊工程學系 通訊工程研究所 電機工程研究所
Computer Security and Cryptography
應用加密技術 張維哲 指導老師:梁明章.
§2.2.1对数与对数运算.
义务教育教科书 数学 七年级 上册 3.1 从算式到方程(第2课时) 一元一次方程.
第四章 线性方程组 4.1 消元法 4.2 矩阵的秩 线性方程组可解的判别法 4.3 线性方程组的公式解 4.4 结式和判别式.
Presentation transcript:

第5章 高级加密标准(AES) AES的起源 AES的设计原则 AES算法描述

1. AES的起源 1997年9月,NIST征集AES方案,以替代DES。 1999年8月,以下5个方案成为最终候选方案:MARS, RC6, Rijndael, Serpent, Twofish。 2000年10月,由比利时的Joan Daemen和Vincent Rijmen提出的算法最终胜出。( Rijndael 读成Rain Doll。) http://www.esat.kuleuven.ac.be/~rijmen/rijndael/

2. AES的设计原则 能抵抗所有已知的攻击; 在各种平台上易于实现,速度快; 设计简单。 Rijndael是一个分组密码算法,其分组长度和密钥长度相互独立,都可以改变。

表 1. 分组长度和密钥长度的不同取值 分组长度(bit) 128 192 256 密钥长度(bit) 128 192 256

3. AES 算法的一般描述

Rijndael Round的构成 ByteSubstitution ByteSubstitution ByteRotation Key + MixColumn Round Key + 一般的轮变换 最后一轮的轮变换

Fig 1. 以明文分组为128bits为例组成的阵列 3. AES 算法加密部分的实现 明文分组和密钥的组织排列方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 Fig 1. 以明文分组为128bits为例组成的阵列

Fig 2. 以明文分组(或密钥)为128bits、192bits 、256bits为例组成的阵列 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 20 1 5 9 13 17 21 2 6 10 14 18 22 3 7 11 15 19 23 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31

一些相关的的术语定义和表示 状态(State):密码运算的中间结果称为状态。 State的表示:状态用以字节为基本构成元素的矩阵阵列来表示,该阵列有4行,列数记为Nb。 Nb=分组长度(bits)÷ 32 Nb可以取的值为4,6,8,对应的分组长度为128, 192, 256 bits。 密码密钥(Cipher Key)的表示: Cipher Key类似地用一个4行的矩阵阵列来表示,列数记为Nk。 Nk=密钥长度(bits)÷32 Nk可以取的值为4,6,8,对应的密钥长度为128, 192, 256 bits。

Fig 3. 当Nb=6时的状态和Nk=4时的密钥布局 a0,0 a0,1 a0,2 a0,3 a0,4 a0,5 a1,0 a1,1 a1,2 a1,3 a1,4 a1,5 a2,0 a2,1 a2,2 a2,3 a2,4 a2,5 a3,0 a3,1 a3,2 a3,3 a3,4 a3,5 K0,0 K0,1 K0,2 K0,3 K1,0 K1,1 K1,2 K1,3 K2,0 K2,1 K2,2 K2,3 K3,0 K3,1 K3,2 K3,3 Nb = 6 Block Length = 192 bits Nk = 4 Key Length = 128 bits

Fig 4. 分组长度和密钥长度均为128 bits时的Rijndael加密算法框图 Plain Text Data / Key Addition Rnd Rnd 1 Rnd 8 Final Rnd Key Schedule Cipher Text Key

10 12 14 表 2. 轮数(Round)的不同取值 轮数(Round) Block Length=128 Key Length=128 10 12 14 Key Length=192 Key Length=256

FinalRound(State, RoundKey) Round(State, RoundKey) 用伪代码表示的Rijndael轮变换 结尾轮变换 FinalRound(State, RoundKey) { ByteSubstituion; ByteRotation; AddRoundKey; } 一般的轮变换 Round(State, RoundKey) { ByteSubstitution; ByteRotation; MixColumn; AddRounKey; }

ByteSubstitution(字节替代) 1. 在有限域GF(28)上求乘法逆,‘00’映射到它自身。 2. 在GF(2)上进行下面的仿射变换:

y0 1 1 1 1 1 0 0 0 x0 0 y1 0 1 1 1 1 1 0 0 x1 1 y2 0 0 1 1 1 1 1 0 x2 1 y3 0 0 0 1 1 1 1 1 x3 0 y4 = 1 0 0 0 1 1 1 1 x4 + 0 y5 1 1 0 0 0 1 1 1 x5 0 y6 1 1 1 0 0 0 1 1 x6 1 y7 1 1 1 1 0 0 0 1 x7 1

Fig 6. ByteSubstitution 该变换可以用一个256字节的表来实现 A0,0 A0,1 A0,2 A0,3 A1,0 A1,1 A1,2 A1,3 A2,0 A2,1 A2,2 A2,3 A3,0 A3,1 A3,2 A3,3 B0,0 B0,1 B0,2 B0,3 B1,0 B1,1 B1,2 B1,3 B2,0 B2,1 B2,2 B2,3 B3,0 B3,1 B3,2 B3,3 取逆 仿射变换

ByteRotation(字节移位) Nb C1 C2 C3 4 1 2 3 6 8 在ByteRotation变换中,状态阵列的后3行循环移位不同的偏移量。第1行循环移位C1字节,第2行循环移位C2字节,第3行循环移位C3字节。 偏移量C1、C2、C3与分组长度Nb有关,如下表所示: Nb C1 C2 C3 4 1 2 3 6 8

Fig 7. ByteRotation 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 5 9 13 1 10 14 2 6 15 3 7 11 循环左移1字节 循环左移2字节 循环左移3字节

MixColumn(列混合) 将状态的列看作是有限域GF(28)上的多项式a(x),与多项式c(x) = 03 x3 + 01 x2 + 01 x +02相乘(模x4+1)。 令b(x) = c(x) × a(x),写成矩阵形式为: b0 02 03 01 01 a0 b1 = 01 02 03 01 a1 b2 01 01 02 03 a2 b3 03 01 01 02 a3

Fig 8. MixColumn 这一运算作用在每一列上 A0,0 A0,1 A0,2 A0,3 A1,0 A1,1 A1,2 A1,3 A2,0 A2,1 A2,2 A2,3 A3,0 A3,1 A3,2 A3,3 B0,0 B0,1 B0,2 B0,3 B1,0 B1,1 B1,2 B1,3 B2,0 B2,1 B2,2 B2,3 B3,0 B3,1 B3,2 B3,3 × C(X)

2.4 AddRoundKey(轮密钥加) 将轮密钥与状态按比特异或。轮密钥是通过Key Schedule过程从密码密钥中得到的,轮密钥长度等于分组长度。

A0,0 A0,1 A0,2 A0,3 A1,0 A1,1 A1,2 A1,3 A2,0 A2,1 A2,2 A2,3 A3,0 A3,1 A3,2 A3,3 K0,0 K0,1 K0,2 K0,3 K1,0 K1,1 K1,2 K1,3 K2,0 K2,1 K2,2 K2,3 K3,0 K3,1 K3,2 K3,3 + B0,0 B0,1 B0,2 B0,3 B1,0 B1,1 B1,2 B1,3 B2,0 B2,1 B2,2 B2,3 B3,0 B3,1 B3,2 B3,3 A3,3 + K3,3 = B3,3 (mod 2)

Fig 7. Rijndael加密及解密的标准结构 Block , Key Length = 128 bits Plaintext(128 bits) Ciphertext(128 bits) K0 i = 9 K10 + + ByteSubstitution InvMixCoumn for i=9 to 0 for i=1 to 10 ByteRotation InvByteRotation MixColumn InvByteSubstitution Ki + Ki + i=10 Ciphertext(128 bits) Plaintext(128 bits) 加密 解密

用伪代码表示的Rijndael加密算法 Rijndael ( State, CipherKey ) { KeyExpansion ( CipherKey, ExpandedKey ); AddRoundKey ( State, ExpandedKey ); For ( i=1; i<Rnd; i++ ) Round ( State, ExpandedKey + Nb*i ); FinalRound ( State, ExpandedKey + Nb*Rnd ); }

提前进行密钥扩展后的Rijndael加密算法描述 Rijndael ( State, ExpandedKey ) { AddRoundKey ( State, ExpandedKey ); For ( i=1; i<Rnd; i++ ) Round ( State, ExpandedKey + Nb*i ); FinalRound ( State, ExpandedKey + Nb*Rnd ); }

AES 的密钥调度 密钥调度包括两个部分:密钥扩展和轮密钥选取。 密钥bit的总数=分组长度×(轮数Round+1)例如当分组长度为128bits和轮数Round为10时,轮密钥长度为128×(10+1)=1408bits。 将密码密钥扩展成一个扩展密钥。 从扩展密钥中取出轮密钥:第一个轮密钥由扩展密钥的第一个Nb个4字节字,第二个圈密钥由接下来的Nb个4字节字组成,以此类推。

密钥扩展 K0,0 K0,1 K0,2 K0,3 K1,0 K1,1 K1,2 K1,3 K2,0 K2,1 K2,2 K2,3 K3,0 K3,1 K3,2 K3,3 K0 K1 K2 K3 + K0 K1 K2 K3 K4 K5 K6 K7 + +

K0 K1 K2 K3 K4 K5 K6 K7 Byte Substitution ByteRotate + Rcon

Wi-4 Wi-3 Wi-2 Wi-1 Wi Key expansion 4 =< i < 4 ( Rnd + 1 ) Wi-4 Wi-3 Wi-2 Wi-1 Byte Substituion Byte Rotate Rcons + + Wi i mod 4 = 0 i mod 4 != 0 Key expansion

轮密钥选取 K0 K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 轮密钥0 轮密钥1 轮密钥2

AES的解密算法 解密算法与加密算法不同 每个阶段均可逆,因此易证解密函授的确可以恢复明文 见图5.7,P.121

AES 算法的设计原理 GF(28)中乘法使用的多项式是8次不可约多项式列表中的第一个多项式。 ByteSubstitution(称为S盒)在设计时考虑到抵抗差分密码分析、线性密码分析的要求,应满足以下条件:1. 可逆性; 2. 输入比特的线性组合与输出比特的组合之间的最大非平凡相关性的极小化; 3. 异或差分表中最大非平凡值的极小化; 4. GF(28)中代数表示的复杂性; 5. 描述的简单性。

满足前3条准则的S盒的构造方法已被给出,AES的作者从众多候选构造中选择将x映射到它的逆的S盒。该映射过于简单,为了抵抗插入攻击,加入仿射变换: b(x)=(x7 + x6 + x2 + x) + a(x)(x7 + x6 + x5 + x4 + 1) mod x8 + 1 模数多项式x8 + 1选择为可能是最简单的模数多项式。 可以找到其它的S盒满足以上准则。

MixColumn变换符合以下准则: 1. 可逆性; 2. GF(2)中的线性性; 3. 适当的扩散性能; 4. 8位处理器上实现速度快;5 MixColumn变换符合以下准则: 1. 可逆性; 2. GF(2)中的线性性; 3. 适当的扩散性能; 4. 8位处理器上实现速度快;5. 对称性; 6. 描述的简单性。选择模数多项式x4+1可满足准则2、5、6。准则1、3、4要求系数的值要小,故选00、01、02 、 03。 ByteRotation符合以下准则: 1. 4个位移量互不相同且C0=0; 2. 能抵抗差分截断攻击; 3. 能抗Square攻击; 4. 简单。 从满足准则2和准则3出发,AES的作者选取了最简单的组合。

与一些其它算法的比较: 与DES相比: 1. 无DES中的弱密钥和半弱密钥; 2. 紧凑的设计使得没有足够的空间来隐藏陷门。 与IDEA相比: 无IDEA中的弱密钥。 具有扩展性:密钥长度可以扩展到为32bits倍数的任意密钥长度,分组长度可以扩展到为64bits倍数的任意分组长度。圈数和循环移位偏移量作为参数,要重新定义。

关于有限域G(28)的一些解释 G(28)可看为8位二进制比特串的集合 直观上有限域的运算可为密码算法的实现带来方便 参加第4章,p.95)

G(28)上的运算 加法 按位异或 乘法 可通过对多个中间结果的移位运算和异或一个特定的比特串(比如00011011)实现。