当前位置:首页 >资讯 >TWofish算法的流程


twofish算法是一种典型的分组加密算法,它是一种计算固定长度的一组明确文本的加密算法。它根据一定的位置将明确的文本分成几个小组,并且通过加密操作将所有明确的文本组和密钥组得到密文本组。在解密过程中,通过解密操作(加密操作的反向操作)将密文组和密钥组恢复为明确的文本组。Twofish算法使用的明密文本分组长度为128比特,支持128.192.256比特的密钥长度。

如下图所示,Twofish算法过程包括十六回合Feistel操作,以及whitening操作的额外输入/输出部分。

对TWofish算法流程进行了分析。

Twofish算法与DES的加密和解密算法基本不一样,汤四。Twofish算法的加密和解密算法略微不一样,但应用的基础组件是一样的。以加密为例,先将128长的明文分成四个32长的字组(P0、P1、P2、P3),并分别与长度为32位的四子密钥K0~K3做XOR运算,获得R0、0-R0、3等四组結果,这就是输入Wofining步骤。

R0,1=P1相寓K1=0,...,3。

然后进行16个回合的加密动作。先算Tr,0和Tr,1。

Rr,0=g(Rr,0)

R,1=g(ROL(Rr,1,8)),

r=0,1,…15。

在这里,R代表了当前的回合数。然后通过PHT将Tr,0和Tr,1通过PHT,然后分别添加子密钥K2R+8和K2R+9,获得Fr,0和Fr,1:

mod232(Tr,0+Tr,1+K2+8)Fr,o二。

mod232,Fr,1=(Tr,0+2Tr,1+K2r+9)。

然后,Fr、0、Fr、1、R、2和XOR运算(R、3焦1),最后将R、2向右移动一位。这样,我们就可以得到下一轮的输入数据。

在最后一轮之后,输出whitening操作,以及XOR操作,~K7进行XOR操作的4组32位数据,如下:

C1=R16,(1+2)mod4:mod4:K1+4i=0。

ROR和ROL分别代表向右和向左移动的运算。代表16个字节的输出密文(C0、C1、C2、C3)。

解密的算法与加密的算法相似。它们使用相同的16个回合动作,并且使用相同的F函数。但是,在解密过程中,所有子钥匙的使用顺序与加密过程相反,每个回合的动作略有变化。 Twofish算法广泛应用于数据加密和网络安全通信,具有良好的快速加密解密能力和优异的保密性和耐受性。在实际应用系统中,通常与其他加密技术一起形成完整的加密系统。