【发布时间】:2017-02-17 08:40:13
【问题描述】:
我正在使用 AES-CCM 对数据进行加密和解密。
在学习 AES 时,我遇到了一个叫 S-Box 的词。
什么是 S-Box,与 AES 的关系?如何计算?它是否取决于对称密钥?
如何在 AES-CCM 128 位中生成密码文本?
【问题讨论】:
标签: encryption aes encryption-symmetric
我正在使用 AES-CCM 对数据进行加密和解密。
在学习 AES 时,我遇到了一个叫 S-Box 的词。
什么是 S-Box,与 AES 的关系?如何计算?它是否取决于对称密钥?
如何在 AES-CCM 128 位中生成密码文本?
【问题讨论】:
标签: encryption aes encryption-symmetric
S-Box 是一种用于对称加密算法的系统,用于替换和隐藏密钥与您要加密的文本之间的关系。
您可以在此article 中看到更多信息。在这里,你有一部分:
根据他们的设计 [68],有不同类型的密码。其中之一是 Substitution–PermutationNetwork (SPN),它通过对原始文本和对称密钥应用替换和置换轮来产生混淆来生成密文。为此,必须使用替换框(S-box)和置换框(P-box)。 S-box 将一轮中的输入文本块的位与输出文本的位一对一地替换。该输出作为 P-box 的输入,然后对所有将在下一轮用作 S-box 输入的位进行置换。
【讨论】:
正如@CGG 所说,S-box 是替代置换网络的一个组成部分。 Wikipedia entry 有很好的图表,有助于解释它们是如何工作的。
将 S-box 视为简单的替换密码 - A=1、B=2 等。在 SPN 中,您通过 S-box 运行输入以替换新值,然后通过P-box(排列)将修改后的位分配到尽可能多的 S-box。重复此循环以将更改传播到整个密文中。
通常,S-box 用相同数量的输出位替换输入位。这种交换应该是 1:1 以提供可逆性(即您必须能够反转操作才能解密),应该使用雪崩效应(因此改变 1 位输入会改变大约一半的输出位),并且应该取决于每一点输入。
【讨论】: