有限域GF(2^8)上的字节运算-PPT文档资料

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• = (a3•b0+a2•b1+a1•b2+a0•b3)x3+(a2•b0+a1•b1+a0•b2)x2+
(a1•b0+a0•b1)x+(a0•b0)
mod (x4 + 1)
• c3 = (a3•b0+a2•b1+a1•b2+a0•b3) • c2 = (a3•b3) + (a2•b0+a1•b1+a0•b2) • c1 = (a3•b2+a2•b3) + (a1•b0+a0•b1) • c0 = (a3•b1+a2•b2+a1•b3) + (a0•b0)
a0
1
a1
1
a2
0
a3 ⊕ 0
a4
0
a5
1
a6
1
a7
0
字节代换(SubBytes)
例 输入95, 95的逆为8a,二进制位10001010
b0
10001111
0
1
1
1
0
b1
11000111
1
1
0
1
1

b2
11100011
b3 = 1 1 1 1 0 0 0 1
b4
11111000
0
0
0
0
1 0

0 0
• AES 中字的乘法运算被转化为字节的乘法运算。
字节代换(SubBytes)
• 1) 把S盒中的每个字节映射为它在有限域GF(28)中的乘法逆,“0”被
映射为自身。
• 2) 将S盒中每个字节(上一步得到的乘法逆)做仿射变换:
b0
b1
b2
b3 b4
=
b5
b6
b7
10001111 11000111 11100011 11110001 11111000 01111100 00111110 00011111
行以下运算:
• 加法:字节的按位异或运算。
• 即 (a7a6a5a4a3a2a1a0)+(b7b6b5b4b3b2b1b0)=(c7c6c5c4c3c2c1c0)
• 其中 ci = ai ⊕ bi , i=0,…,7.
两个多项式相加,其结果是一个多项式,其系数是两 个元素中对应系数模2相加
•例 a(x)=x6+x4+x2+x+1,b(x)=x7+x+1,求a(x)+b(x).
a0
b1
01 02 03 01
a1
=
b2
01 01 02 03
a2
b3
03 01 01 02
a3
列混合 —— MixColumns (字运算)
02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02
87 F2 4d 97
47 40 A3 4c
6e 4c 90 ec
a(x)+b(x) = (x6+x4+x2+x+1)+(x7+x+1)
= x7+x6+x4+x2
(01010111) ⊕ (10000011) = (11010100)
乘法:先进行多项式相乘,再将结果模不可约多项式 m(x)=x8+x4+x3+x+1
•例 a(x)=x6+x5+x4+x+1,b(x)=x7+x4+x2+x+1,求
• c3x3 + c2x2 + c1x + c0 = (a3x3 + a2x2 + a1x + a0)(b3x3 + b2x2 + b1x + b0)

mod (x4 + 1)
• ci , i = 0, 1, 2, 3.是GF(28)上的运算。 • c3x3 + c2x2 + c1x + c0
(a3•b3)x6+(a3•b2+a2•b3)x5+(a3•b1+a2•b2+a1•b3)x4+
=
1 0

0 0
=
0 1 0
b5
01111100
1
1
0
1
1
b6
00111110
0
1
1
1
0
b7
00011111
0
0
0
0
0
字节代换(SubBytes)
ea
04
65
85
83
45 5d 96
SubBytes
5c 33 98 b0
a6 8c d8 95
87
f2
4d
97
ec
6e
4c
90
4a c3 446 e7
• 03 • 6e = (00000011) • (01101110)

= [(00000001) ⊕ (00000010)] • (01101110)

= (01101110) ⊕ (11011100)
字运算 —— 系数在有限域GF(28)上的多项式运 算
• 字加法
• (a3a2a1a0)+(b3b2b1b0)=(c3c2c1c0)
• ci = ai + bi , i = 0, 1, 2, 3. ci = ai + bi 是GF(28) 中的字节运算。
wk.baidu.com
• 字乘法
• (a3a2a1a0)(b3b2b1b0) = (c3c2c1c0)
a(x)b(x). a(x)b(x)=(x6+x5+x4+x+1)(x7+x4+x2+1)
=x13+x12+x11+x10+x9+3x8+2x7+2x6+2x5+2x4+x3+x 2+x+1
有限域GF(28)上的乘法
•例 a(x)=x6+x4+x2+x+1,b(x)=x7+x+1,求a(x)b(x).
f0 2d ad c5
行移位(ShiftRows)
87
f2
4d
97

ec
6e
4c
90
4a c3 46 e7
f0 2d ad c5
左移0位 左移1位 左移2位 左移3位
87
f2
4d
97
6e
4c
90
ec
46 e7 4a c3
c5
f0
2d
ad
列混合 —— MixColumns (字运算)
b0
02 03 01 01
37 d4 70 9f
=
46 e7 4a c3
94 e4 3a 42
a6 8c d8 95
ed a5 a6 bc
列混合 —— MixColumns (字运算)
• 02 • 87 = (00000010) • (10000111)

= (00001110) ⊕ (00011011)

= (00010101)
有限域GF(28)上的字节运算
• 在AES中,把每个字节看成是GF(28)上的元素。 • 字节(b7b6b5b4b3b2b1b0)对应的多项式为: • b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0 • bi取GF(2)={0,1}.
有限域GF(28)
• 对应有限域GF(28),选定不可约多项式m(x)=x8+x4+x3+x+1就可进
a(x)b(x)=(x6+x4+x2+x+1)(x7+x+1) =x13+x11+x9+x8+2x7+x6+x5+x4+x3+2x2+2x+1 =x13+x11+x9+x8+x6+x5+x4+x3+1 =(x5+x3)(x8+x4+x3+x+1)-x7+x6+1 =x7+x6+1 mod (x8+x4+x3+x+1)
相关文档
最新文档