有限域gf(2^8)上的字节运算

上传人:mg****85 文档编号:49750261 上传时间:2018-08-02 格式:PPTX 页数:22 大小:1.11MB
返回 下载 相关 举报
有限域gf(2^8)上的字节运算_第1页
第1页 / 共22页
有限域gf(2^8)上的字节运算_第2页
第2页 / 共22页
有限域gf(2^8)上的字节运算_第3页
第3页 / 共22页
有限域gf(2^8)上的字节运算_第4页
第4页 / 共22页
有限域gf(2^8)上的字节运算_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《有限域gf(2^8)上的字节运算》由会员分享,可在线阅读,更多相关《有限域gf(2^8)上的字节运算(22页珍藏版)》请在金锄头文库上搜索。

1、有限域GF(28)上的字节运算在AES中,把每个字节看成是GF(28)上的元素。字节(b7b6b5b4b3b2b1b0)对应的多项式为:b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0bi取GF(2)=0,1.有限域GF(28)对应有限域GF(28),选定不可约多项式m(x)=x8+x4+x3+x+1就可进行以下 运算:加法:字节的按位异或运算。即 (a7a6a5a4a3a2a1a0)+(b7b6b5b4b3b2b1b0)=(c7c6c5c4c3c2c1c0)其中 ci = ai bi , i=0,7.两两个多个多项项式相加,其式相加,其结结果是一个多果是一个多项项式,

2、其系数是式,其系数是 两个元素中两个元素中对应对应 系数模系数模2 2相加相加例 a(x)=x6+x4+x2+x+1,b(x)=x7+x+1,求a(x)+b(x).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,求a(x)b(x).a(x)b(x)=(x6+x5+x4+x+1)(x7+x4+x2+1)=x13+x12+x11

3、+x10+x9+3x8+2x7+2x6+2x5+2x4+x3+x2+x+1=x13+x12+x11+x10+x9+x8+x3+x2+x+1=(x5+x4+x3+x2+1)(x8+x4+x3+x+1)+(x6+x5+x4)=x6+x5+x4 mod (x8+x4+x3+x+1)(01110011)(10010111)=(01110000)有限域GF(28)上的乘法例 a(x)=x6+x4+x2+x+1,b(x)=x7+x+1,求a(x)b(x).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+

4、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)字运算 系数在有限域GF(28)上的多项式运 算字加法(a3a2a1a0)+(b3b2b1b0)=(c3c2c1c0)ci = ai + bi , i = 0, 1, 2, 3. ci = ai + bi 是GF(28) 中的字节运算。字乘法 (a3a2a1a0)(b3b2b1b0) = (c3c2c1c0) c3x3 + c2x2 + c1x + c0 = (a3x3 + a2x2 + a1x + a0)(b3x3 + b2x2 +

5、b1x + b0) mod (x4 + 1) ci , i = 0, 1, 2, 3.是GF(28)上的运算。 c3x3 + c2x2 + c1x + c0=(a3b3)x6+(a3b2+a2b3)x5+(a3b1+a2b2+a1b3)x4+(a3b0+a2b1+a1b2+a0b3)x3+(a2b0+a1b1+a0b2)x2+(a1b0+a0b1)x+(a0b0)mod (x4 + 1)c3 = (a3b0+a2b1+a1b2+a0b3) c2 = (a3b3) + (a2b0+a1b1+a0b2) c1 = (a3b2+a2b3) + (a1b0+a0b1) c0 = (a3b1+a2b2+

6、a1b3) + (a0b0)AES 中字的乘法运算被转化为字节的乘法运算。字节代换(SubBytes)1) 把S盒中的每个字节映射为它在有限域GF(28)中的乘法逆,“0”被映 射为自身。 2) 将S盒中每个字节(上一步得到的乘法逆)做仿射变换:b0 b1 b2 b3 b4 b5 b6 b71 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1a0 a1 a2 a3 a4 a5 a6 a71 1

7、0 0 0 1 1 0=字节代换(SubBytes)例 输入95, 95的逆为8a,二进制位10001010 b0 b1 b2 b3 b4 b5 b6 b71 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 10 1 0 1 0 1 0 01 1 0 0 0 1 1 0=1 0 0 1 0 0 1 01 1 0 0 0 1 1 0=0 1 0 1 0 1 0 0字节代换(SubBytes)ea04

8、658583455d965c3398b0a68cd89587f24d97ec6e4c904ac3446e7f02dadc5SubBytes行移位(ShiftRows) 87f24d97ec6e4c904ac346e7f02dadc587f24d976e4c90ec46e74ac3c5f02dad左移0位左移1位左移2位左移3位列混合 MixColumns (字运算)b0b1b2b302 03 01 0101 02 03 0101 01 02 0303 01 01 02a0a1a2a3=列混合 MixColumns (字运算)0203010101020301010102030301010287F

9、24d976e4c90ec46e74ac3a68cd8954740A34c37d4709f94e43a42eda5a6bc=列混合 MixColumns (字运算)02 87 = (00000010) (10000111) = (00001110) (00011011) = (00010101) 03 6e = (00000011) (01101110) = (00000001) (00000010) (01101110) = (01101110) (11011100) = (10110010)列混合 MixColumns (字运算)01 46 = (00000001) (01000110)

10、= (01000110) 01 6a = (00000001) (10100110) = (10100110)列混合 MixColumns (字运算)02 87 03 6e 01 46 01 a6 = (00010101) (10110010) (01000110) (10100110) = (01000111) = 47列混合 MixColumns (字运算) a00a01a02a04a05a10a11a12a14a15a20a21a22a24a25a30a31a32a34a35a0j b00b01b03b04b05b10b11b13b14b15b20b21b23b24b25b30b31b3

11、3b34b35a1ja3ja2jb0jb1jb3jb2jc(x)密钥加 AddRoundKey328831e0435a3137f6309807a88da2342b28ab097eaef7cf15d2154f16a6883c19a09ae93df4c6f8e3e28d48be2b2a08=密钥扩展(1)字循环移位:将1个字中的4个字节循环左移1个字节,即将输入字 b0, b1 , b2 , b3变换为 b1, b2 , b3 , b0。 (2)字节代换:对字循环的结果使用S盒进行字节代换。 (3)轮常量异或:将前两步的结果同轮常量Rconj进行异或,其中j表 示轮数。密钥扩展ii-1RotWordSubWordR coni/N与Rcon异 或i-Nki409cf43ccf4f3c098a84eb01010000008b84eb012b7e1516a0fafe175a0fafe1728aed2a688542cb1688542cb1abf7158823a33939723a3393909cf4f3c2a6c7605谢谢观谢谢观 看!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号