簡述Akelarre加密算法

Akelarre加密算法是一種分組密碼算法,是由Alvarez G和Montoya F等人于1996年年提出的。我們今天就來簡單了解一下Akelarre加密算法。

Akelarre加密算法簡介

Akelarre加密算法是一種結(jié)構(gòu)類似于IDEA的分組密碼算法,和IDEA的16 bit分組不同的是,其為32 bit 分組,而且沒有用到模乘運(yùn)算,而是在每一輪開始前進(jìn)行128bit循環(huán)移位操作,在RA盒中反復(fù)進(jìn)行密鑰加和循環(huán)移位。算法可以使用可變的密鑰長度、圈函數(shù)循環(huán)輪數(shù)。

Akelarre加密算法

Akelarre算法的加密過程

Akelarre 的加密過程由輸入變換、圈循環(huán)和輸出變換3個(gè)部分組成。

1、輸入變換

將128bit的明文數(shù)據(jù)分為4個(gè)32bit子塊,然后分別將1塊、4塊利用逐位模2加運(yùn)算,2塊、3塊利用模232加運(yùn)算和子密鑰進(jìn)行結(jié)合。

2、圈循環(huán)

輸入變換后的4個(gè)子塊作為圈函數(shù)第1圈的輸入。假設(shè)Akelarre算法有v圈迭代,每圈變換首先將輸入的4個(gè)32bit子塊組合(級聯(lián))為一個(gè)128bit塊。

然后將128bit塊循環(huán)左移a位(a的值由子密鑰Z1的最低7bit有效位決定);將循環(huán)移位后的128bit塊重新分為4個(gè)子塊并進(jìn)行相互異或,作為循環(huán)加結(jié)構(gòu)(RA盒)的輸入分別和12個(gè)32bit的子密鑰結(jié)合,輸出2個(gè)32 bit的子塊。

最后將循環(huán)加結(jié)構(gòu)的輸出分別和循環(huán)移位后的4個(gè)子塊異或,得到圈函數(shù)的輸出。其中,循環(huán)加結(jié)構(gòu)由2列32bit輸入組成。每列的運(yùn)算將32bit輸入的高31位循環(huán)左移a位后與子密鑰進(jìn)行模232相加,所得結(jié)果的低31位循環(huán)左移a位,再與子密鑰進(jìn)行模232相加,相加結(jié)果的高31位循環(huán)左移a位。如上過程重復(fù)執(zhí)行2次。

3、輸出變換

最后一輪圈函數(shù)的輸出作為Akelarre算法輸出變換的輸入。首先將輸入的4個(gè)子塊級聯(lián)為一個(gè)128bit塊。然后將128bit塊循環(huán)左移a位;將循環(huán)移位后的128 bit 塊重新分為4個(gè)子塊,然后分別將1塊、4塊利用逐位模2加運(yùn)算,2塊、3塊利用模232加運(yùn)算和子密鑰進(jìn)行結(jié)合,所得結(jié)果級聯(lián)后為密文。

Akelarre算法的解密過程

Akelarre的解密算法和加密算法用的是同一個(gè)算法,兩者唯一改變的是解密過程中所使用的13v+9個(gè)32 bit 的脫密子密鑰是由加密的子密鑰得到。

Akelarre加密算法

Akelarre加密算法雖然類似于IDEA算法,但卻在安全性上卻略顯不足,盡管其設(shè)計(jì)者在1998年便提出了它的升級版本Ake98,但仍然發(fā)現(xiàn)其存在許多弱密鑰,這也是Akelarre算法未能廣泛使用的主要原因。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。