密码学高级数据加密标准AES
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例:字节57=01010111的多项式表示:
01010111
x6+x4+x2+x+1
三、数学基础
2、 AES的GF(28)表示
•加法:两元素多项式的系数按位模 2加
例2:57+83=D4 (x6+x4+x2+x+1)⊕(x7+x+1)= x7+x6+x4+x2
•乘法:两元素多项式相乘,模 m(x)
• GF(28)的特征为 2 。
三、数学基础
2、 AES的GF(28)表示
•AES采用的既约模多项式:
m(x)=x8+x4+x3+x+1
•AES采用GF(28)的多项式元素表示。
字节B=b7b6b5b4b3b2b1b0可表示成GF(2)上的多项 式:
b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x1+b0
高级数据加密标准
AES
1、历史时间:
– 1997年美国政府向社会公开征集高级数据加 密标准(AES);
–1998年8月20日从应征的21个算法中选出15 个。
–1999年8月又选中其中5个算法。 –2000年10月2日再选出1个算法。 –2001年11月26日接受其作为标准。
Fed–er2a0l0I1n年fo12rm月a4日tio正n式P公ro布c:esFsIiPnSg-S19t7a。ndards
1、AES的数据处理方式
①字节 ②字 ③状态
2、状态
①加解密过程中的中间数据。 ②以字节为元素的矩阵,或二维数组。
2、状态
③符号:Nb-明密文所含的数据的字数。 Nk-密钥所含的数据的字数。 Nr-迭代轮数。
3、AES的设计要求
①安全性:抵抗所有已知攻击; ②实用性:适应各种环境,速度快; ③扩展性:分组长度和密钥长度可扩展。
4、整体特点
①分组密码:分组长度和密钥长度可变,可独立 地为128/192/256等,现在一般取 128 。 ②面向二进制的密码算法:能够加解密任何形式 的计算机数据。 ③不是对合运算:加、解密使用不同的算法。 ④综合运用置换、代换、代数等多种密码技术 ⑤整体结构:基本轮函数加迭代。轮数可变,
≥10
5、应用
①许多国际组织采用为标准。 ②尚未大范围应用。 ③产品形式:软件(嵌入式,应用软件)
硬件(芯片,插卡)
6、结论
• 只有通过实际应用的检验才能证明其安全。 • 我们相信:经过全世界广泛分析的AES是不负
众望的。
密钥 轮密钥产生
Nr个轮密钥
128位明文 初始轮密钥加
S盒变换 行移位与列混淆
例3:57×83=C1
(x6+x4+x2+x+1)×(x7+x+1)=x7+x6+1 mod m(x) 乘法单位元:字节01 多项式 1 •乘法逆元:
设a(x)的逆元为b(x),则 a(x)b(x)=1 mod m(x) 。 根据Euclid算法求出。
三、数学基础
2、 AES的GF(28)表示
• x乘法 xtime:用 x乘 GF(28)的元素 例: xtime(57)=x(x6+x4+x2+x+1)= x7+x5+x3+x2+x xtime(83)=x(x7+x+1)= x8+x7+x mod m(x)
57x3+83x2+4Ax+D1
•字加法:两多项式系数按位模2加
•字乘法:设a和c是两个字,a(x)和c(x)是其字
多项式,AES定义a和c的乘积为
b(x)=a(x)c(x) mod x4+1
三、数学基础
3、 AES的字表示与运算
•字乘法:设a(x)=a3x3 + a2x2 + a1x + a0
c(x)=c3x3 + c2x2 + c1x + c0 b(x)=b3x3 + b2x2 + b1x + b0
三、数学基础
3、 AES的字表示与运算
•字乘法:写成矩阵形式
b0 = c0 c3 c2 c1 a0 b1 = c1 c0 c3 c2 a1 b2 = c2 c1 c0 c3 a2 b3 = c3 c2 c1 c0 a3
注意:1.x4+1是可约多项式,字c(x)不一定有逆; 2.但在AES中选择c(x)固定,且有逆。
2、AES产生的背景
①1984年12月里根总统下令由国家保密局研制 新密码标准,以取代DES。 ②1991年新密码开始试用并征求意见。
民众要求公开算法,并去掉法律监督。 ③1994年颁布新密码标准(EES)。 ④1995年5月贝尔实验室的博士生M.Blaze在PC 机上用45分钟攻击法律监督字段获得成功。 ⑤1995年7月美国政府放弃用EES加密数据。 ⑥1997年美国政府向社会公开征AES。
轮密钥加
轮
函
数
Nr轮
迭代控制
128位密文
三、数学基础
1、AES的基础域是有限域 GF(28)
•一个GF(2)上的8次既约多项式可生成一个 GF(28) • GF(28)的全体元素构成加法交换群,线性空间。 •GF(28)的非零元素构成乘法循环群。 •GF(28)中的元素有多种表示:
字节: GF(28)={a7,a6,…a1,a0} 多项式形式: GF(28)={a7x7+a6x6+…+a1x+a0} 指数形式:GF(28)*={0, 1… 254} 对数形式:GF(28)*={0, 1… 254}
b(x)=a(x)c(x) mod x4+1,则 b0 = a0 c0 + a3 c1 + a2 c2 + a1 c3
b1 = a1 c0 + a0 c1 + a3 c2 + a2 c3 b2 = a2 c0 + a1 c1 + a0 c2 + a3 c3 b3 = a3 c0 + a2 c1 + a1 c2 + a0 c3
=x7+x4+x3+1 若x7的系数=0,则为简单相乘:系数左移。 若x7的系数=1,则取模m(x),减x8+x4+x3+x+1 。
三、数学基础
3、 AE来自百度文库的字表示与运算
•AES数据处理的单位是字节和字
•一个字=4个字节
•一个字表示为系数取自GF(28)上的次数低于4次
的多项式
例:
字:57 83 4A D1
三、数学基础
3、 AES的字表示与运算
•字x乘法:p(x)=xb(x) mod x4+1 •写成矩阵形式:
p0 = 00 00 00 01 b0 p1 = 01 00 00 00 b1 p2 = 00 01 00 00 b2 p3 = 00 00 01 00 b3
注意:因为模x4+1,字x乘法相当于字节循环移位;