S盒

在密码学中，一个S盒（Substitution-box，替换盒）是對稱密鑰加密算法执行替换计算的基本结构。在块密码中，它们通常用于模糊密钥与密文之间的关系——香农的混淆理论。

通常，S-Box接受特定数量的输入比特m，并将其转换为特定数量的输出比特n，其中n 不一定等于m。一个m×n的S盒可以通过包含2m条目，每条目n比特的查找表实现。S盒通常是固定的（例如DES和AES加密算法）, 也有一些加密算法的S盒是基于密钥动态生成的（例如Blowfish和双鱼算法加密算法）。

DES的6×4位S盒（S5）是一个很好的例子：

 S5  中间四个比特 0000  0001  0010  0011  0100  0101  0110  0111  1000  1001  1010  1011  1100  1101  1110  1111 首尾比特  00  0010  1100  0100  0001  0111  1010  1011  0110  1000  0101  0011  1111  1101  0000  1110  1001 01 1110  1011  0010  1100  0100  0111  1101  0001  0101  0000  1111  1010  0011  1001  1000  0110 10 0100  0010  0001  1011  1010  1101  0111  1000  1111  1001  1100  0101  0110  0011  0000  1110 11 1011  1000  1100  0111  0001  1110  0010  1101  0110  1111  0000  1001  1010  0100  0101  0011

给定6比特输入，将首尾两个比特作为行条件、中间四个比特（inner four bits）作为列条件进行查表，最终获得4比特输出。例如，输入“011011”，通过首尾两个比特“01”和中间的比特“1101”进行查表，最终的输出应该是“1001”。

 参见 
 单射、满射与双射
 布尔函数
 Nothing up my sleeve number
 P盒（P-box）
 置换式密码
 Rijndael S盒
 替换式密码

 参考文献 


Category:密码算法