我一直在试图弄清楚如何在js中实现关于rijndael算法的一些东西。一个特定的步骤(mixColumns)需要弄乱二进制数。我决定遵循一个指南,并在特定的点上执行此操作:
必须将d4 (hexadecimal)
乘以2
。二进制文件中的d4
现为1101 0100
,并且已转换为1010 1000
。我猜这是因为他左移了数字,所以最左边的数字消失了,右边推了一个0。之后它会1010 1000 XOR 0001 1011
,然后结果为:1011 0011
我不明白那些XOR和0001 1011
来自哪里。
我试图做10101000 ^ 00011011
,但我没有设法得到相同的结果。
有谁可以解释我为什么?请尝试尽可能清楚,因为我是新手中的二进制文件和这些操作。
(另外,对不起我的英语或不完美(这是我在这里的第一个问题));
顺便说一下,我也试图理解这个:
{03} . {bf} = {10 XOR 01} . {1011 1111}
= {1011 1111 . 10} XOR {1011 1111 . 01}
= {1011 1111 . 10} XOR {1011 1111}
= 0111 1110 XOR 0001 1011 XOR 1011 1111
= 1101 1010 (ans)
它或多或少地执行相同的操作,它将bf
和3
转换为二进制,然后它变为10 XOR 01
..然后......我不知道。 。
离解决方案还很远。
我也想知道是否有最简单的方法可以做它的作用 感谢