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