我试图找出和SBox的反义词,但是我在StackExchange上看到了许多问题,但都是徒劳的,但我无法解决我的问题。在这个问题中,反S盒是如何计算的?和这个链接一样,我遵循了所有的步骤,我做了一个16x16的逆矩阵。但是当我乘以两个(GF-2^8中的乘法),对应于一个SBox值的对应项,就会变成一个逆SBox值。如果这个问题是正确的,那么我的乘法将被归结为1,但它不是1,我使用的是X= 0x52。下面给出了用C= 0x63生成的Sbox


S盒生成

逆Sbox
发布于 2018-10-14 17:14:10
S的盒子是可逆的。The inverse S-box is simply the S-box run in reverse。
一种计算S盒的逆的方法是,你只需要用S-box本身来找到一个元素的逆。
例如,看看维基百科的示例。
00映射到63在S框中,63映射到00在倒置S框中。54映射到43在S框中,42映射到64在倒置S框中。这可以通过只传递一次S框的元素来执行.复杂性将是\mathcal{O}(n^2),其中n是矩阵的row=column大小。
发布于 2018-10-17 08:40:13
你错过了S最重要的一步,那就是非线性的一步。
我测试了你生成的两个S盒,它们都是100%线性的(非线性度为0),这意味着你没有执行有限场反演,这是产生反演S盒的最后一步。
至于您的前向S框,我不知道您使用了什么仿射变换,但是由于在仿射变换之前的0x00是0x00之后,您的矢量加法是0x77,而不是0x63,否则计算中可能会有其他问题。
https://crypto.stackexchange.com/questions/63095
复制相似问题