当前位置:首页 >资讯 >FEAL加密算法的安全性研究




FEAL作为一种快速加密算法,在安全要求较低的领域具有非常广阔的应用前景。

FEAL加密算法属于对称密钥系统,64位密钥加密64位明文,其加密变换采用交替换字。换位,使明文的痕迹在密文中消失。具体过程可分为初始变换。使用服务函数f的n重复迭代。反初始变换三部分。加密算法如图所示:

FEAL加密算法流程图。

FEAL加密算法流程简述:

一个64位的明文分组与64位的密钥不同或不同;数据分组分为左半部分和右半部分。左半部分和右半部分不同或构成新的右半部分,左半部分和新的右半部分运行n轮,在每一轮中,右半部分与16个密钥混合,然后与左半部分不同或构成新的右半部分,N轮后,左半部分再次与右半部分不同或构成新的右半部分,然后左右部分连接形成全64位。该数据分组与其他64位密钥不同,或算法结束。

解密算法是其反向过程。添加解密的密钥是由64个主密钥K通过子密钥生成算法生成的N+8个子密钥K0-Kn+8。其子密钥生成如下图所示:

FEAL子密钥生成流程图。

流程简述

首先,将64个密钥分为两部分。这两部分是不同的或通过图中的函数fk计算的。两个32位的输入分为8位,然后混合和替换。然后,16位密钥分组可用于加密解密算法。

提高FEAL加密算法密文与明文之间比特依赖的方法。

传统的密码安全分析观点认为,每个密文对明文的有效依赖性越强,加密方案的保密性就越强。为了提高FEAL算法的安全性,有必要使密文依赖于更多的明文。

1.使用S函数的变形函数S。FEAL算法中,S函数为循环左移2位,可使S函数的变形函数S为环左移1位,即S(X1、X2、)=rot(ω),其中X1、X2、ω。

使用S‘后,FEAL-4输出的每个密文位仅与明文的一半有比特依赖性,而FEAL-16、FEAL-32、FEAL64等可以使输出的每个密文位与所有明文位产生比特依赖性。使用修改S‘函数不会增加FEAL算法的重复迭代次数。在占用机器时间方面,修改后的S‘占用率低于原算法中的S。这只对FEAL-16、FEAL-32、FEAL-64有效,必须同时增加FEAL-4和FEAL-8的迭代次数,相应降低连续性。因此,修改适用于N大于或等于16的FEAL-N算法,不影响FEAL加密算法的快速性。

2.增加奇怪。偶位变换操作。每四次迭代重复时,每个密文位都可以与每个明文位进行比特依赖。对于FEAL-16,只需添加一个Ri循环左移指令,即Rot1(R)。FEAL32和FEAL64分别需要增加3个7个Rot1(R)指令,CPU处理Rot1(Ri)只需要2个时钟。因此,变换操作对FEAL加密算法的速度影响不大。