我正致力于加密&使用AES-CCM解密数据。
在研究AES时,我遇到了一个名为S-Box的词。
什么是S-Box,以及与AES的关系?怎么计算?它取决于对称密钥吗?
如何在AES-CCM 128位中生成密文?
答案 0 :(得分:2)
S-Boxes是一种用于对称加密算法的系统,用于替换和模糊密钥与您想要加密的文本之间的关系。
您可以在此article中查看更多内容。在这里,你有一个部分:
根据他们的设计,存在不同类型的密码[68]。其中之一是Substitution-PermutationNetwork(SPN),它通过对原始文本和对称密钥应用替换和置换轮来生成加密文本,从而产生混淆。为此,必须使用替换框(S-box)和置换框(P-box)。 S-box用输出文本的位替换一轮中输入文本块的一对一替换。此输出作为P-box中的输入,然后置换将在下一轮用作S-box输入的所有位。
答案 1 :(得分:1)
正如@CGG所说,S-box是Substitution-Permutation Network的一个组成部分。 Wikipedia entry有很好的图表,可以帮助解释它们的工作原理。
将S-box视为一个简单的替换密码 - A = 1,B = 2等。在SPN中,您通过S-box运行输入以替换新值,然后通过a运行该结果P-box(置换)将修改后的比特分配给尽可能多的S-box。重复此循环以在整个密文中传播更改。
通常,S-box用相同数量的输出位替换输入位。这种交换应该是1:1以提供可逆性(即你必须能够反转操作以便解密),应该采用雪崩效应(因此改变1位输入改变大约一半的输出位),并且应该依赖于每一点输入。