DES 对称密码基于 Feistel 网络,在 64 位块的 32 位一半上重复运行。Feistel 的使用意味着使用的“mangler”函数不需要是可逆的。
“mangler”功能通过简单的算法将 32 位字扩展为 48 位。这 48 位与密钥组合,然后通过 S-box 转换回 32 位。S-box 显然是不可逆的,因为它们接受 6 位输入并产生 4 位输出。
但是整个结构是可逆的。假设密钥是固定的,“mangler”函数的每个 32 位输入是否映射到不同的 32 位输出?还是 mangler 函数从未产生一些 32 位输出,因此使其不可逆?