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）是一个很好的例子：

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

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

参考文献 

 
密码算法