AES算法是基于GF(2^8)数域的,其中的0x02与其他数相乘时,不大于0x80左移,大于要与0x1b异或,0x1b哪来的

问题描述:

AES算法是基于GF(2^8)数域的,其中的0x02与其他数相乘时,不大于0x80左移,大于要与0x1b异或,0x1b哪来的
如题,这个0x1b有什么理论依据么?0x80又是以什么作为标准的呢?

你看的很细嘛,其实不用理解那么详细,我跟你说一下
大于不大于0x80其实指的最高位是不是1,因为小于1x80的数只要左移(乘2)就可以了,不涉及到进位,而大于或等于0x80的数,最高位是1,左移就会溢出了,而溢出后的数就不在有限域里了,为了实现进位溢出和仍然停留在有限域里的矛盾就要找个方法
结果就是溢出的时候与0x1b异或,0x1b怎么来的呢,你肯定知道GF(28)的不可约多项式吧,m(x)=x8+x4+x3+x+1,它的二进制就是0x1b