《现代密码学》学习笔记——第三章 分组密码 [二] AES

这篇具有很好参考价值的文章主要介绍了《现代密码学》学习笔记——第三章 分组密码 [二] AES。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

版本 密钥长度 分组长度 迭代轮数
AES-128 4 4 10
AES-192 6 4 12
AES-256 8 4 14

一、AES的整体结构

《现代密码学》学习笔记——第三章 分组密码 [二] AES

二、轮函数

(1)字节代换(SubByte)
(2)行移位(ShiftRow)
(3)列混合(MixColumn)
(4)密钥加(AddRoundKey)

1.字节代换

  字节代换是非线性变换,独立地对状态的每个字节进行。代换表(S-Box)是可逆的。
  将明文字节Ai看作GF(28)上的元素,映射到自己的乘法逆元,’00’映射到自己。(可以通过矩阵计算得出)B′
对字节B′i做仿射变换得到密文Bi

2.行移位

  将状态阵列的各行进行循环移位,不同用的状态行的位移量不同。第0行不移动,第1行循环左移C1个字节,第二行循环左移C2个字节,第三行循环左移C3个字节。

《现代密码学》学习笔记——第三章 分组密码 [二] AES

3.有限域上的字节运算

  GF(28) 上的元素表示方法:
    字节表示 Byte: a7a6a5a4a3a2a1a0
    多项式表示 s(x): s(x) =a7x7+a6x6+a5x5+a4x4+a3x3+a2x2+a1x+ a0

(1)28有限域上的加法运算
例:0x57 + 0x83 = ?
0x57表示16进制的57,表示成二进制为:01010111
0x83表示16进制的83,表示成二进制为:10000011
相加相当于对两个数做异或运算,01010111 ⊕ 10000011 = 11010100 = 0xD4

原式 =(0x7 + 1x6 + 0x5 + 1x4 + 0x3 + 1x2 + 1x + 1) + ( 1x7 + 0x6 + 0x5 + 0x4 + 0x3 + 0x2 + 1x + 1 )

= ( x6 + x4+ x2 + x + 1 ) + ( x7 + x + 1 )

=x7 + x6 + x4+ x2

(2)28有限域上的乘法运算
例:0x57 × 0x83 = ?
0x57表示16进制的57,表示成二进制为:01010111
0x83表示16进制的83,表示成二进制为:10000011
mod m(x)= x8+x4+x3+x+1

原式 =[(0x7 + 1x6 + 0x5 + 1x4 + 0x3 + 1x2 + 1x + 1) × ( 1x7 + 0x6 + 0x5 + 0x4 + 0x3 + 0x2 + 1x + 1 )] mod (x8+x4+x3+x+1)

= [( x6 + x4+ x2 + x + 1 ) × ( x7 + x + 1 )] mod (x8+x4+x3+x+1)

= [( x6× x7 + x4× x7 + x2× x7 + x × x7 + 1 × x7 ) + ( x6× x + x4× x + x2× x + x × x + 1 × x ) + ( x6× 1 + x4× 1 + x2× 1 + x × 1 + 1 × 1 )] mod (x8+x4+x3+x+1)

= [( x13 + x11 + x9 + x8 + x7 ) + ( x7 + x5 + x3 + x2 + x ) + (x6 + x4 + x2+ x + 1)] mod (x8+x4+x3+x+1)

= [x13 + x11 + x9 + x8+ x6 + x5 + x4 + x3 + 1] mod (x8+x4+x3+x+1)

x5m(x) = x5( x8+x4+x3+x+1) = x13 +x9 +x8+x6+x5

原式= (x11 + x4 + x3 + 1) mod (x8+x4+x3+x+1)

x3m(x) = x3( x8+x4+x3+x+1) = x11 +x7 +x6+x4+x3

原式= ( x7 + x6 + 1) mod (x8+x4+x3+x+1) [一直做到原式中的最高次数低于8]

0x57 × 0x83 = x7 + x6 + 1

( x7 + x6 + 1)对应二进制为1100 0001,即:0×C1

(3)28有限域上的x乘法运算
  定义为x·b(x) = b7x8+b6x7+b5x6+b4x5+b3x4+b2x3+b1x2+ b0x(mod m(x))
  如果b7=0,求模结果不变,否则为乘积结果减去m(x),即求乘积结果与m(x)的异或。由此得出x(十六进制02)乘b(x)可以先对b(x)在字节内左移一位(最后一位补0),若b7=1 则再与1B(其二进制为0001 1011)做逐比特异或来实现,该运算记为b= xtime(a)。在专用芯片中,xtime只需4个异或。x的幂乘运算可以重复应用xtime来实现。而任意常数乘法可以通过对中间结果相加实现。
例:用x乘法实现0×57·13
0×57的二进制表示为:01010111
  57 · 02 = xtime(57) = AE (将57的二进制形式01010111左移一位再补0得到10101110,也就是十六进制的AE)
  57 · 03 = 57·(02+01) = 57· 02+57·01 = 0×AE+0×57=10101110+01010111=111111001=0×F9
  57 · 04 = AE·02 = xtime(AE) = 47(将AE的二进制形式10101110左移一位再补0得到01011100,然后将其与1B也就是00011011异或,得到01000111,也就是0×47)
  57 · 08 = 47·02 = xtime(47) = 8E
  57 · 10 = 8E·02 = xtime(8E) = 07
  57 · 13 = 57 ·(01 ⊕ 02 ⊕ 10)=57⊕ AE⊕ 07=FE

(4)系数在GF(28)上的mod(x4+1)的乘法
  4个字节构成的向量可以表示为系数在GF(28)上的次数小于4的多项式。多项式的加法就是对象系数相加,换句话说,也就是4字节向量逐比特异或。
a(x) = a3x3+a2x2+a1x+ a0
b(x) = b3x3+b2x2+b1x+ b0
c(x) = a(x) ⊕ b(x) = c3x3+c2x2+c1x + c0

c0 = a0b0 ⊕ a3b1⊕ a2b2⊕ a1b3
c0 = a1b0 ⊕ a0b1⊕ a3b2⊕ a2b3
c0 = a2b0 ⊕ a1b1⊕ a0b2⊕ a3b3
c0 = a3b0 ⊕ a2b1⊕ a1b2⊕ a0b3

《现代密码学》学习笔记——第三章 分组密码 [二] AES
例:b(x)=01x2
  a(x)=03x3+01x2+01x+02
  c(x)=a(x) ⊕ b(x)

解:a3=03,a2=02,a1=01,a0=02
《现代密码学》学习笔记——第三章 分组密码 [二] AES

4.列混合

  列混合即是用一个常矩阵乘以第二步变换后的矩阵,以达到矩阵中每一个元素都是该元素原所在列所有元素的加权和。列混合的定义是:MixColumn(State)是将状态矩阵的每一列看成GF( 28 ) 上的一个多项式,且与一个固定的多项式c (x) = { 03 } x 3 + { 01 } x2 + { 01 } x + { 02 }相乘后模x4+1
《现代密码学》学习笔记——第三章 分组密码 [二] AES
  对于上面的矩阵,我们有b(0) = 02a0 +03a1+01a2+01a3,这里的02要转成“系数在GF(28)上的mod(x4+1)的乘法”,同理03和01也要转成“系数在GF(28)上的mod(x4+1)的乘法”,利用其中运算规则进行计算。

5.密钥加

《现代密码学》学习笔记——第三章 分组密码 [二] AES

三、AES算法的密钥编排算法

  密钥编排是指从种子密钥得到轮函数的过程,AES的密钥编排由密钥扩展和轮轮密钥选取两部分组成,其基本原则如下:
(1)轮密钥的总比特数等于轮数加1再乘分组长度,如128比特的明文经过10轮加密,总共需要(10+1)*128 = 1408比特的密钥。
(2)种子密钥被扩展成为扩展密钥。
(3)轮密钥从扩展密钥中取,其中第1轮轮密钥取扩展密钥的前Nb个字,第2轮轮密钥取接下来的Nb个字,以此类推。

1.当i=4,4%4=0时(128比特的时候是4个字,Nk=4)

《现代密码学》学习笔记——第三章 分组密码 [二] AES

2.当i=5,5%4≠0时(Nk=4)

《现代密码学》学习笔记——第三章 分组密码 [二] AES

四、AES的解密变换

AES解密运算是加密运算的逆运算,其中轮函数的逆为:
(1)ByteSub的逆变换由代换表的逆表做字节代换,也可通过如下两步实现: 首先进行仿射变换的逆变换,再求每一字节在GF(28)上逆元。
(2)行移位运算的逆变换是循环右移,位移量与左移时相同。
(3)列混合运算的逆运算是类似的,即每列都用一个特定的多项式d(x)相乘, d(x)满足
  (03x3+01x2+01x+02)*d(x)=01
由此可得
  d(x)=0Bx3+0Dx2+09x+0E
(4) 密钥加运算的逆运算是其自身。文章来源地址https://www.toymoban.com/news/detail-447027.html

到了这里,关于《现代密码学》学习笔记——第三章 分组密码 [二] AES的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》

    主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。 内容补充:骆婷老师的PPT 《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节 密码学复习笔记 这个博主好有意思 B站视频 密码学原理《Introduction to modern Cryptog

    2024年01月20日
    浏览(49)
  • 【现代密码学】笔记4--消息认证码与抗碰撞哈希函数《introduction to modern cryphtography》

    主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。 内容补充:骆婷老师的PPT 《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节 密码学复习笔记 这个博主好有意思 初步笔记,如有错误请指正 快速补充一些密码

    2024年01月18日
    浏览(48)
  • 【现代密码学】笔记3.4-3.7--构造安全加密方案、CPA安全、CCA安全 《introduction to modern cryphtography》

    主要在 哈工大密码学课程 张宇老师课件 的基础上学习记录笔记。 内容补充:骆婷老师的PPT 《introduction to modern cryphtography》–Jonathan Katz, Yehuda Lindell(现代密码学——原理与协议)中相关章节 密码学复习笔记 这个博主好有意思 初步笔记,如有错误请指正 快速补充一些密码

    2024年01月24日
    浏览(46)
  • 现代密码学基础(2)

    目录 一. 介绍 二. 举例:移位密码 (1)密文概率 (2)明文概率 三. 举例:多字母的移位密码 四. 完美安全 五. 举例:双子母的移位密码 六. 从密文角度看完美安全 七. 完美保密性质 在密码学中,K代表密钥,M代表明文,C代表密文,每个都有各自的概率分布。 密钥是通过密

    2024年01月17日
    浏览(60)
  • 现代密码学复习

    目录 密码学总结 第一章——只因础模型与概念 1.1 密码学五元组(结合🐏皮卷) 1.2 Dolev-Yao威胁模型 1.3 攻击类型 1.4 柯克霍夫原则(Kerckhoffs\\\'s principle) 1.5 对称、非对称加密 1.6 密码的目标 1.7 保密通信模型 第二章——古典密码 2.1 仿射密码 2.2 Hill密码 例题0 ——解同余方程

    2023年04月09日
    浏览(62)
  • 现代密码学实验五:签名算法

    一、实验目的 1.掌握数字签名的基本原理,理解RSA算法如何提供数字签名。 2.熟悉实验环境和加密软件CrypTool 1.4(CrypTool 2)的使用。 3.编写代码实现签名算法。 二、实验内容 运行CrypTool 1.4(CrypTool 2),使用 RSA 算法对消息进行签名操作,选择公钥PK=(e,N),私钥为sk=(d,N)。例如: 消息

    2024年02月02日
    浏览(56)
  • 第四章 公钥密码 —— 现代密码学(杨波)课后题答案解析

    4. 用推广的Euclid算法求67 mod 119的逆元 解:初始化:(1,0,119), (0,1,67) 1:Q=119/67=1,(0,1,67) , (1,-1,52) 2:Q=67/52=1,(1,-1,52), (-1,2,15) 3:Q=52/15=3,(-1,2,15), (4,-7,7) 4:Q=15/7=2,(4,-7,7), (-9,16,1) 所以67 -1  mod 119=16 10.设通信双方使用RSA加密体制,接收方的公开钥是( e , n )=(5,35),接收到

    2024年02月05日
    浏览(57)
  • 第二章 流密码 —— 现代密码学(杨波)课后题答案解析

    1.3级线性反馈移位寄存器在 c 3 =1时可有4种线性反馈函数,设其初始状态为( a 1 , a 2 , a 3 )=(1,0,1),求各线性反馈函数的输出序列及周期。 解:此时线性反馈函数可表示为 f ( a 1 , a 2 , a 3 )= a 1 Å c 2 a 2 Å c 1 a 3 当 c 1 =0, c 2 =0时, f ( a 1 , a 2 , a 3 )= a 1 Å c 2 a 2 Å c 1 a 3 =

    2024年02月05日
    浏览(54)
  • 【现代密码学基础】详解完美安全与不可区分安全

    目录 一. 介绍 二. 不可区分性试验 三. 不可区分性与完美安全 四. 例题 五. 小结 敌手完美不可区分,英文写做perfect adversarial indistinguishability,其中adversarial经常被省略不写,在密码学的论文中经常被简称为IND安全。 完美不可区分与香农的完美安全是类似的。该定义来源于一

    2024年01月21日
    浏览(56)
  • 现代密码学第四版杨波著-期末复习汇总

    我将用一整天突击,崭新的一本书,从0到期末80+,(仅针对本校逆天考点进行总结) 完本总结:总计历经两天半,共计15小时,总计30+页,仅带来个人的复习思路与心路历程 写本博客原因? 马上期末考试,整本书从来没有看过,尝试0基础一天学完,突破自己。 网上没有完

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包