Akelarre加密算法是一种分组密码算法,是由Alvarez G和Montoya F等人于1996年年提出的。我们今天就来简单了解一下Akelarre加密算法。
Akelarre加密算法简介
Akelarre加密算法是一种结构类似于IDEA的分组密码算法,和IDEA的16 bit分组不同的是,其为32 bit 分组,而且没有用到模乘运算,而是在每一轮开始前进行128bit循环移位操作,在RA盒中反复进行密钥加和循环移位。算法可以使用可变的密钥长度、圈函数循环轮数。
Akelarre算法的加密过程
Akelarre 的加密过程由输入变换、圈循环和输出变换3个部分组成。
1、输入变换
将128bit的明文数据分为4个32bit子块,然后分别将1块、4块利用逐位模2加运算,2块、3块利用模2³²加运算和子密钥进行结合。
2、圈循环
输入变换后的4个子块作为圈函数第1圈的输入。假设Akelarre算法有v圈迭代,每圈变换首先将输入的4个32bit子块组合(级联)为一个128bit块。
然后将128bit块循环左移a位(a的值由子密钥Z1的最低7bit有效位决定);将循环移位后的128bit块重新分为4个子块并进行相互异或,作为循环加结构(RA盒)的输入分别和12个32bit的子密钥结合,输出2个32 bit的子块。
最后将循环加结构的输出分别和循环移位后的4个子块异或,得到圈函数的输出。其中,循环加结构由2列32bit输入组成。每列的运算将32bit输入的高31位循环左移a位后与子密钥进行模2³²相加,所得结果的低31位循环左移a位,再与子密钥进行模2³²相加,相加结果的高31位循环左移a位。如上过程重复执行2次。
3、输出变换
最后一轮圈函数的输出作为Akelarre算法输出变换的输入。首先将输入的4个子块级联为一个128bit块。然后将128bit块循环左移a位;将循环移位后的128 bit 块重新分为4个子块,然后分别将1块、4块利用逐位模2加运算,2块、3块利用模2³²加运算和子密钥进行结合,所得结果级联后为密文。
Akelarre算法的解密过程
Akelarre的解密算法和加密算法用的是同一个算法,两者唯一改变的是解密过程中所使用的13v+9个32 bit 的脱密子密钥是由加密的子密钥得到。
Akelarre加密算法虽然类似于IDEA算法,但却在安全性上却略显不足,尽管其设计者在1998年便提出了它的升级版本Ake98,但仍然发现其存在许多弱密钥,这也是Akelarre算法未能广泛使用的主要原因。
免责声明:素材源于网络,如有侵权,请联系删稿。