存在多种构造伪随机排列和伪随机函数的方法。随机 Feistel 密码也称为 Luby-Rackoff 分组密码,是用于构造分组密码的对称结构。Feistel 网络的好处是相同的结构可用于加密和解密,并且两者都包括以固定次数迭代运行一个称为“轮函数”的函数。从随机函数或随机排列构建伪随机排列研究最多的方法是 r 轮 Feistel 构造。Feistel 构造从实用角度来看很重要,因为它被用于开发许多分组密码,如 DES [ 2 ]、3DES [ 2 ] 和 Simon [ 7 ]。我们研究了对 Feistel 方案的一般攻击,其中我们假设内部轮函数 f 1 , ... , fr 是随机选择的。 Feistel 方案的明文消息用 [ L, R ] 表示,代表左和右,经过 r 轮后的密文消息用 [ S, T ] 表示。Feistel 方案的第一轮以 [ L, R ] 作为输入,输出 [ R, L ⊕ f ( R )],其中 fa 是 n 位到 n 位的秘密函数。Benes 方案是两个称为“蝴蝶”方案的组合。它允许从 n 位到 n 位的随机函数构造一个 2 n 位到 2 n 位的伪随机函数。对于许多密码原语(例如散列和伪随机函数),将输出长度加倍是有用的,即使加倍变换不可逆。Benes 方案的明文消息用 [ L, R ] 表示,代表左和右,密文消息用 [ S, T ] 表示。