彭關(guān)禮,周 琴
(西華師范大學(xué),四川 南充 637009)
實現(xiàn)AES加密算法代數(shù)表現(xiàn)形式的研究
彭關(guān)禮,周 琴*
(西華師范大學(xué),四川 南充 637009)
針對AES加密算法中相對代數(shù)描述較弱的缺點,文章提出一種用代數(shù)多項式的表示方法來實現(xiàn)對該加密算法的整體描述,主要通過構(gòu)建部分變換模塊的多項式將其結(jié)合起來形成多項式環(huán),從而構(gòu)建整個AES加密算法的代數(shù)多項式。
AES加密算法;代數(shù)多項式;多項式環(huán)
高級加密標準(Advanced Encryption Standard,AES)因具有對稱性、模塊性、高效性等特點而被全世界所廣泛采納。目前雖然沒有實際的例子證明AES算法安全性遭受到威脅,但大多數(shù)研究人員從數(shù)學(xué)理論的角度出發(fā)對AES加密算法進行了分析與研究,試圖利用代數(shù)方法進行攻擊破解。文獻[1]提出了一種代數(shù)計算攻擊(XSL攻擊)。對于這些攻擊方法是否有效仍然是未知的,但至少給研究者提供一種分析的方法。然而許多研究者在利用代數(shù)方法進行描述時僅對該算法的部分采用了代數(shù)的形式表示沒有能對其整個算法進行代數(shù)描述,文獻[2]基于AES加密算法部分代數(shù)描述不利于對該算法的分析與研究,本文提出一種運用代數(shù)多項式來實現(xiàn)AES加密算法的整體代數(shù)描述。
AES采用對稱分組加密模式其明文分組大小為固定值128 bit,32 bit為一個字,則以字為單位的明文分組長度Nb=4;而密鑰分組的不同決定加密的輪數(shù),用Nk表示密鑰分組長度,Nr表示對應(yīng)的加密輪數(shù),對于分組大小128 bit的密鑰其Nk=4,Nr=10;對于分組大小為192 bit的密鑰其Nk=6,Nr=12;對于分組大小為256 bit的密鑰其Nk=8,Nr=14。
AES加密算法主要分為輪變換和密鑰擴展兩部分,而解密過程是加密過程的逆變換操作。輪變換過程中除最后一輪省略了列混淆(MixColumns)外,每輪的輪變換操作都具有相同字節(jié)代換(SubBytes)、行位移變(ShiftRows)、列混淆(MixColumns)、輪密鑰加(AddRoundKey)等4個主要步驟。而輪密鑰加(AddRoundKey)操作又可以作為一個單獨的步驟,其是將經(jīng)過變換后的數(shù)據(jù)抽象的看作狀態(tài)與密鑰擴展算法所獲得的輪密鑰進行相應(yīng)的異或操作。
3.1 字節(jié)替代
設(shè)m是定義在F上的可逆變換函數(shù)且b∈為對應(yīng)的仿射變換函數(shù)。構(gòu)建可逆變換函數(shù)m的多項式m(A)i,j=(Ai,j)254,每個元素映射成該元素的逆,多項式b∈F為仿射變換。對函數(shù)的差分傳播和相關(guān)特性研究,用拉格朗日插值定理和跡函數(shù)實現(xiàn)。設(shè)F={x0…x255}并且V:F→則:
設(shè)W表示8×8的矩陣用于表示仿射變換,同時設(shè)b'=W·m,m∈GF(28)則:
3.2 行位移變換
AES算法將128 bit數(shù)據(jù)分成4行4列,正向或逆向行位移變換的過程中,每行字向左或向右循環(huán)偏移相應(yīng)的字節(jié),分組長度與對應(yīng)位移偏移量的關(guān)系如表1所示。可以用式(15)式和式(16)的代數(shù)形式表示加密和解密的行位移變換。
表1 分組長度對應(yīng)的位移偏移量
3.3 列混淆
AES加密算法列混淆在本質(zhì)上已經(jīng)屬于代數(shù)形式。為形象地描述列混淆實現(xiàn)的過程,將式(17)列混淆的矩陣表示替換為式(18)的代數(shù)表示。
3.4 輪密鑰加
輪密鑰加在所有輪函數(shù)中具有最簡單的代數(shù)形式,該操作由128 bit的明文經(jīng)過字節(jié)代換,行位移變換,列混淆(除最后一輪外)后與每輪密鑰進行簡單的異或相加。輪密鑰加的代數(shù)形式可以表示為:
輪函數(shù)中各部分之間的關(guān)系構(gòu)建AES加密算法的整體代數(shù)多項式。設(shè)f表示輪函數(shù)(除輪密鑰加)中的每一步或整個輪函數(shù)的組成g表示加密函數(shù)的部分或整體,任意輸入變量A用一個多項式方程g(f(A))i,j來表示部分加密或整體加密,其中0≤i≤3,0≤j≤Nb。
計算方法:
輪密鑰用常量函數(shù)表示而不能用f(K(r))i,j替換K(r)i,j,能很快實現(xiàn)AES加密算法的代數(shù)表示。
AES加密算法進行代數(shù)多項式表示,并非實現(xiàn)其嚴格意義上的代數(shù)表示,需要構(gòu)建多項式適合于函數(shù)f,函數(shù)g滿足多項式g(A)i,j,這樣才能夠滿足g(f(A))i,j的運算。因此構(gòu)建AES加密算法的代數(shù)表現(xiàn)形式是為研究人員提供一種方法來實現(xiàn)對該算法的深入研究與分析,可以利用這種方法找到一種更適合研究者需要代數(shù)表示方法。
[1]段紹華.高級數(shù)據(jù)加密標準的代數(shù)攻擊方法研究[D].長沙:中南大學(xué),2008.
[2]馬虹博,劉連浩.AES的S盒和逆S盒的代數(shù)表示[J].計算機工程,2006(18):149-151.
[3]丘維聲.高等代數(shù)下冊—大學(xué)高等代數(shù)課程創(chuàng)新教材[D].北京:清華大學(xué)出版社,2010.
[4]劉紹學(xué),郭晉云.環(huán)與代數(shù)[M].北京:科學(xué)出版社,2009.
Study on algebraic representation of AES encryption algorithm
Peng Guanli, Zhou Qin*
(China West Normal University, Nanchong 637009, China)
Aiming at the weakness of relative algebra in AES encryption algorithm, this paper proposes a representation method of algebraic polynomial to realize the overall description of the encryption algorithm, which is formed polynomial ring by combining polynomial of partial transformation modules to construct the algebraic polynomial of the entire AES encryption algorithm.
AES encryption algorithm; algebraic polynomial; polynomial ring
彭關(guān)禮(1988— ),男,四川萬源人,碩士;研究方向:無線電物理。
*通信作者:周琴(1988— ),女,四川武勝人,碩士,助教;研究方向:偏微分方程數(shù)值解。