常见Feistel网络加密算法详解
1. S盒与P盒
S盒即替代盒,它将输入的每一位替换为新的一位。在DES算法的描述中,我们就见过S盒,它本质上是一个表格,根据给定的输入给出对应的输出。
P盒,也就是置换盒,是S盒的一种变体。与S盒将输入位映射到查找表中的位不同,P盒会对输入的位进行转置或置换,部分位可能会被转置,而有些位则保持不变。例如,一个6位的P盒可能会交换第1位和第4位,交换第2位和第3位,而第5位保持不变。
2. DEAL算法
DEAL算法由Lars Knudsen设计,它源自DES算法,旨在对DES进行改进。其名称是“Data Encryption Algorithm with Large Blocks”的缩写。和DES一样,它也是Feistel密码,并且使用与DES相同的轮函数。不过,它的块大小为128位,密钥大小可以是128位、192位或256位。轮数取决于密钥大小,较小的两个密钥大小使用6轮,256位密钥使用8轮。它曾作为AES竞赛的候选算法,但由于速度慢而被淘汰。不过,在如今先进计算机广泛普及的情况下,速度慢可能不再是问题。
3. MacGuffin算法
MacGuffin算法使用并不广泛,但它是广义不平衡Feistel网络的一个典型例子,因此值得关注。该算法基于DES,但明文块并不被分成相等的两半。在64位的块中,会有48位进入轮函数,从而形成不平衡的Feistel密码。和DES一样,该算法也会先进行扩展,然后使用8个压缩S盒。其密钥调度实际上是算法本身的修改版本。此外,也有人提出了使用128位密钥进行32轮运算的MacGuffin变体。
超级会员免费看
订阅专栏 解锁全文
2966

被折叠的 条评论
为什么被折叠?



