这些天,我在密码分析领域工作,并开始使用 C# 进行编程
现在,
为了找到 5 个最佳 s-box(我的意思是那些 2^24 个表),首先应该生成它们。我对找到最佳标准的标准了如指掌。
在这里,一个sbox是 2*8 表,其中第一行包含 0-7(二进制:000 - 111)(作为 sbox 输入)之间的数字,在第二行中,每个输入(0 - 7)都与一个数字相关联,如下:
第一个 sbox:
input 000 001 010 011 100 101 110 111
output 000 000 000 000 000 000 000 000
第二个 sbox 只有一点不同:
input 000 001 010 011 100 101 110 111
output 001 000 000 000 000 000 000 000
第三个与第二个相比只有一点不同:
input 000 001 010 011 100 101 110 111
output 010 000 000 000 000 000 000 000
和第 2 ^ 24 个:
input 000 001 010 011 100 101 110 111
output 111 111 111 111 111 111 111 111
问题是如何生成这些表?我不知道如何为每个 sbox 分别放置for 循环或将结果保存在数组中。
任何帮助表示赞赏。