除了那些有着悠久历史的加密算法以外,还有很多加密算法是非常“年轻”的,比如我们今天要聊的这个分组密码算法——ARIA加密算法。
ARIA加密算法简介
ARIA算法是韩国学者Daesung Kwon在2003年设计的,经过改进后于2004年被选为韩国的分组密码标准。ARIA的分组长度为128比特,密钥长度可变,可取128、192或256比特。在不同的密钥规模下,算法相应的轮数分别为12、14和16轮。
ARIA加密算法的加密原理
ARIA算法是SPN结构的密码体制,轮变换包含三部分,分别为轮密钥加,代换层和置换层。
1、轮密钥加(AK):每轮输入与128bit子密钥异或,每轮的子密钥是由密钥扩展算法产生。
2、代换层(SL):非线性代换包含两个8×8bit的S盒S1,S2和它们的逆变换S1-1,S2-2,S代换层包含两种类型,一种用于奇数轮,另一种用于偶数轮。
奇数轮的代换层为:
(S1,S2,S1-1,S2-1,S1,S2,S1-1,S2-1,S1,S2,S1-1,S2-1,S1,S2,S1-1,S2-1)
偶数轮的代换层为:
(S1-1,S2-1,S1,S2,S1-1,S2-1,S1,S2,S1-1,S2-1,S1,S2,S1-1,S2-1,S1,S2)
3、置换层(DL):一个对合的线性变换D:GF(28)16→GF(28)16,即:
(x0,x1,…,x15)→(y0,y1,…,y15)
其中
ARIA加密算法的解密过程
ARIA 算法的解密过程和加密过程类似,差别仅限于每轮子密钥的使用,解密子密钥可以由加密子密钥计算得到。
对N轮ARIA算法来说,需要N+1个128bit子密钥,这些子密钥都是由密钥通过密钥扩展算法生成的。
ARIA加密算法在结构上和AES有很高的相似性,其安全性也与AES加密算法类似,但正因为两者过于相似,导致ARIA算法在应用上并没有AES更广泛。
免责声明:素材源于网络,如有侵权,请联系删稿。