1、描述AES中S-Box的生成过程
①初始化S-Box
按照
第一行为:01、02、…、0f
第二行为:11、12、…、1f
直到第F行的顺序进行初始化
②将S-Box中的值映射成其乘法逆元
求每个16进制数在有限域GF( 2 8 2^8 28)上的逆元B
③用得到的逆元做仿射变换
B = b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 B=b_7b_6b_5b_4b_3b_2b_1b_0 B=b7b6b5b4b3b2b1b0
C = { 63 } = c 7 c 6 c 5 c 4 c 3 c 2 c 1 c 0 C=\{63\}=c_7c_6c_5c_4c_3c_2c_1c_0 C={
63}=c7c6c5c4c3c2c1c0
B ′ = b 7 ′ b 6 ′ b 5 ′ b 4 ′ b 3 ′ b 2 ′ b 1 ′ b 0 ′ B'=b'_7b'_6b'_5b'_4b'_3b'_2b'_1b'_0 B′=b7′b6′b5′b4′b3′b2′b1′b0′
仿射变换定义:
b 0 ′ = b 0 ⊕ b 4 ⊕ b 5 ⊕ b 6 ⊕ b 7 ⊕ c 0 b'_0=b_0⊕b_4⊕b_5⊕b_6⊕b_7⊕c_0 b0′=b0⊕b4⊕b5⊕b6⊕b7⊕c0
b 1 ′ = b 1 ⊕ b 5 ⊕ b 6 ⊕ b 7 ⊕ b 0 ⊕ c 1 b'_1=b_1⊕b_5⊕b_6⊕b_7⊕b_0⊕c_1 b1′=b1⊕b5⊕b6⊕b7⊕b0⊕c1
b 2 ′ = b 2 ⊕ b 6 ⊕ b 7 ⊕ b 0 ⊕ b 1 ⊕ c 2 b'_2=b_2⊕b_6⊕b_7⊕b_0⊕b_1⊕c_2 b2′=b2⊕b6⊕b7⊕b