本方法涉及信息技術(shù)領(lǐng)域的傳統(tǒng)aes加密算法的改造方法,特別是一種基于可逆邏輯電路的aes私密日志加密方法。
背景技術(shù):
高級(jí)加密標(biāo)準(zhǔn)(英語(yǔ):advancedencryptionstandard,縮寫(xiě):aes)是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來(lái)替代原先的des,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過(guò)五年的甄選流程,高級(jí)加密標(biāo)準(zhǔn)由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(nist)于2001年11月26日發(fā)布于fipspub197,并在2002年5月26日成為有效的標(biāo)準(zhǔn)。2006年,高級(jí)加密標(biāo)準(zhǔn)已然成為對(duì)稱(chēng)密鑰加密中最流行的算法之一。
aes的區(qū)塊長(zhǎng)度固定為128比特,密鑰長(zhǎng)度則可以是128,192或256比特。大多數(shù)aes計(jì)算是在一個(gè)特別的有限域完成的。
aes加密過(guò)程是在一個(gè)4×4的字節(jié)矩陣上運(yùn)作,這個(gè)矩陣又稱(chēng)為“狀態(tài)(state)”,其初值就是一個(gè)明文區(qū)塊(矩陣中一個(gè)元素大小就是明文區(qū)塊中的一個(gè)byte)。加密時(shí),各輪aes加密循環(huán)(除最后一輪外)均包含4個(gè)步驟:
addroundkey—矩陣中的每一個(gè)字節(jié)都與該次輪秘鑰(roundkey)做xor運(yùn)算;每個(gè)子密鑰由密鑰生成方案產(chǎn)生。
subbytes—通過(guò)非線性的替換函數(shù),用查找表的方式把每個(gè)字節(jié)替換成對(duì)應(yīng)的字節(jié)。
shiftrows—將矩陣中的每個(gè)橫列進(jìn)行循環(huán)式移位。
mixcolumns—為了充分混合矩陣中各個(gè)直行的操作。這個(gè)步驟使用線性轉(zhuǎn)換來(lái)混合每列的四個(gè)字節(jié)。
最后一個(gè)加密循環(huán)中省略mixcolumns步驟,而以另一個(gè)addroundkey取代。(以上摘自百度百科)
其存在的問(wèn)題在于傳統(tǒng)的邏輯門(mén)存在一定位上的扇出,即兩個(gè)輸入,卻只有一個(gè)輸出。這樣便有利于邊信道攻擊中的功耗分析進(jìn)行破解。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了克服以上不足,提供一種基于可逆邏輯電路的aes私密日志加密方法,可逆邏輯與經(jīng)典加密算法的結(jié)合大大增強(qiáng)了加密算法的抗攻擊能力以及加密速度。
本發(fā)明的目的通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):一種基于可逆邏輯電路的aes私密日志加密方法,具體步驟如下:
a、運(yùn)用可逆邏輯門(mén)的可逆特性,構(gòu)造特殊的可逆邏輯電路來(lái)替換、改造傳統(tǒng)aes算法中列混合過(guò)程的電路構(gòu)造,達(dá)到運(yùn)用可逆邏輯門(mén)來(lái)替代傳統(tǒng)邏輯門(mén)的效果,從而實(shí)現(xiàn)aes算法中的加密過(guò)程;
b、運(yùn)用可逆邏輯門(mén)的可逆特性,構(gòu)造特殊的可逆邏輯電路來(lái)替換、改造傳統(tǒng)aes算法中逆列混合過(guò)程的電路構(gòu)造,達(dá)到運(yùn)用可逆邏輯門(mén)來(lái)替代傳統(tǒng)邏輯門(mén)的效果,從而實(shí)現(xiàn)aes算法中的解密過(guò)程;
c、將這種基于可逆邏輯電路的aes加密方法運(yùn)用在私密日志的加解密過(guò)程當(dāng)中。
本發(fā)明的進(jìn)一步改進(jìn)在于:步驟a中列混合過(guò)程的具體步驟如下:
列混合的操作是通過(guò)矩陣相乘來(lái)實(shí)現(xiàn)的,在算法中,矩陣的乘法和加法都是定義基于z2[x]的不可約多項(xiàng)式m(x)=x8+x4+x3+x+1構(gòu)造的有限域gf(28)上的運(yùn)算,所涉及到的加法和乘法運(yùn)算具體如下:
列混合是針對(duì)字、字節(jié)和位的操作,到最終列混合是針對(duì)位的操作,寫(xiě)成多項(xiàng)式相乘的形式,令
w(x)={03}x3+{01}x2+{01}x+{02}
為了便于計(jì)算操作,可以寫(xiě)成如下的形式:
所以
經(jīng)過(guò)該乘法計(jì)算后,每一列中的一個(gè)字有下述結(jié)果取代:
通過(guò)構(gòu)造可逆邏輯可逆電路來(lái)實(shí)現(xiàn);
其中b7b6b5b4b3b2b1b0輸入的相應(yīng)的字節(jié),也即是狀態(tài)矩陣中每個(gè)元素的值,其中b(x)為一個(gè)字節(jié);
而一個(gè)狀態(tài)中共含有16個(gè)元素,即含有16個(gè)字節(jié),每一個(gè)字節(jié)都需要進(jìn)行上述的操作,為了簡(jiǎn)化電路,我們將迦羅瓦域中2·b(x)的運(yùn)算封裝成一個(gè)小的可逆邏輯模塊電路。
本發(fā)明的進(jìn)一步改進(jìn)在于:步驟b中逆列混合過(guò)程的具體步驟如下:
逆列混合變換是列混合變換的逆變換,逆混合變換是在狀態(tài)上對(duì)每一列進(jìn)行運(yùn)算,將每一列看作是4次多項(xiàng)式,將狀態(tài)的列看作gf(28)上的多項(xiàng)式且被一個(gè)固定的多項(xiàng)式w-1(x)模x4+1,其中w-1(x)為:
w-1(x)={03}x3+{01}x2+{01}x+{02}
同樣,這里可以寫(xiě)成矩陣乘法,令
經(jīng)過(guò)該乘法計(jì)算后,一列中的4個(gè)字節(jié)將由下述結(jié)果取代:
本發(fā)明的進(jìn)一步改進(jìn)在于:步驟c具體如下:
通過(guò)編寫(xiě)的代碼段來(lái)實(shí)現(xiàn)可逆邏輯門(mén)的功能,然后將這些可逆邏輯門(mén)應(yīng)用于搭建aes算法的代碼實(shí)現(xiàn)當(dāng)中,運(yùn)用基于可逆邏輯電路的aes私密日志加密方法的原理,從而達(dá)到更好的對(duì)私密日志的加密效果。
本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):
1、能耗低:
在計(jì)算機(jī)進(jìn)行算術(shù)/邏輯運(yùn)算時(shí),因?yàn)樾畔⑽坏膩G失會(huì)產(chǎn)生能量的損失,基于可逆邏輯進(jìn)行alu的設(shè)計(jì)思想,可以減少這部分信息位丟失而差生的能量。
2、密鑰種類(lèi)多:
基于可逆邏輯構(gòu)造的原理,通過(guò)增加可構(gòu)造密鑰的種類(lèi)提升了加密線路的抗攻擊性。在n條線路上的有限域內(nèi)可以構(gòu)造的密鑰種類(lèi)多達(dá)2n!種,而傳統(tǒng)的線路構(gòu)造方法可以實(shí)現(xiàn)的密鑰種類(lèi)僅有2n!種。
3、實(shí)現(xiàn)電路代價(jià)小:
在設(shè)計(jì)過(guò)程中,最大限度的使用可逆門(mén)輸出端的信號(hào),從而減少了可逆邏輯門(mén)和垃圾輸出的個(gè)數(shù),使得電路在實(shí)現(xiàn)時(shí)代價(jià)特別小。
附圖說(shuō)明
圖1是aes算法的加密流程圖;
圖2是為實(shí)現(xiàn)aes算法中的列混合過(guò)程而設(shè)計(jì)的可逆邏輯電路;
圖3是可逆邏輯電路數(shù)乘2的電路構(gòu)造;
圖4是u器件;
圖5是可逆邏輯電路;
圖6是逆列混合的電路構(gòu)造圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。在本發(fā)明的一種實(shí)施方式中描述的元素和特征可以與一個(gè)或更多個(gè)其它實(shí)施方式中示出的元素和特征相結(jié)合。應(yīng)當(dāng)注意,為了清楚的目的,說(shuō)明中省略了與本發(fā)明無(wú)關(guān)的、本領(lǐng)域普通技術(shù)人員已知的部件和處理的表示和描述?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有付出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
一種基于可逆邏輯電路的aes私密日志加密方法,具體步驟如下:
(1)、運(yùn)用可逆邏輯門(mén)的可逆特性,構(gòu)造特殊的可逆邏輯電路來(lái)替換、改造傳統(tǒng)aes算法中列混合過(guò)程的電路構(gòu)造,達(dá)到運(yùn)用可逆邏輯門(mén)來(lái)替代傳統(tǒng)邏輯門(mén)的效果,從而實(shí)現(xiàn)aes算法中的加密過(guò)程。
(2)、運(yùn)用可逆邏輯門(mén)的可逆特性,構(gòu)造特殊的可逆邏輯電路來(lái)替換、改造傳統(tǒng)aes算法中逆列混合過(guò)程的電路構(gòu)造,達(dá)到運(yùn)用可逆邏輯門(mén)來(lái)替代傳統(tǒng)邏輯門(mén)的效果,從而實(shí)現(xiàn)aes算法中的解密過(guò)程。
(3)、將這種基于可逆邏輯電路的aes加密方法運(yùn)用在私密日志(即字符串)的加解密過(guò)程當(dāng)中。
列混合過(guò)程改造:
列混合是整個(gè)加密過(guò)程中最為重要的一個(gè)部分,本質(zhì)上來(lái)講列混合的操作是通過(guò)矩陣相乘來(lái)實(shí)現(xiàn)的,在算法中,矩陣的乘法和加法都是定義基于z2[x]的不可約多項(xiàng)式m(x)=x8+x4+x3+x+1構(gòu)造的有限域gf(28)上的運(yùn)算,所涉及到的加法和乘法運(yùn)算的詳細(xì)介紹見(jiàn)下面所述。
列混合是針對(duì)字,字節(jié)和位的操作,到最終列混合說(shuō)到底是針對(duì)位的操作,之前提到列混合的操作相當(dāng)于是通過(guò)矩陣相乘來(lái)實(shí)現(xiàn)的,我們可以用來(lái)寫(xiě)成多項(xiàng)式相乘的形式,令
w(x)={03}x3+{01}x2+{01}x+{02}
為了便于計(jì)算操作,可以寫(xiě)成如下的形式:
所以
經(jīng)過(guò)該乘法計(jì)算后,每一列中的一個(gè)字有下述結(jié)果取代:
這里我們通過(guò)構(gòu)造可逆邏輯可逆電路來(lái)實(shí)現(xiàn),見(jiàn)圖3。
其中b7b6b5b4b3b2b1b0輸入的相應(yīng)的字節(jié),也即是狀態(tài)矩陣中每個(gè)元素的值,圖3就表示迦羅瓦域中2·b(x)的運(yùn)算,其中b(x)為一個(gè)字節(jié)。
而一個(gè)狀態(tài)中共含有16個(gè)元素,即含有16個(gè)字節(jié),每一個(gè)字節(jié)都需要進(jìn)行上面的操作,為了簡(jiǎn)化電路,我們將圖3封裝成一個(gè)小的可逆邏輯模塊電路圖,見(jiàn)圖4所示
而針對(duì)每一列所進(jìn)行的操作,我們構(gòu)造如下的可逆邏輯電路圖,見(jiàn)圖5。
逆列混合過(guò)程改造:
逆列混合變換是列混合變換的逆變換。逆混合變換是在狀態(tài)上對(duì)每一列進(jìn)行運(yùn)算。將每一列看作是4次多項(xiàng)式。將狀態(tài)的列看作gf(28)上的多項(xiàng)式且被一個(gè)固定的多項(xiàng)式w-1(x)模x4+1,其中w-1(x)為:
w-1(x)={03}x3+{01}x2+{01}x+{02}
同樣這里可以寫(xiě)成矩陣乘法。令
經(jīng)過(guò)該乘法計(jì)算后,一列中的4個(gè)字節(jié)將由下述結(jié)果取代:
構(gòu)造的可逆邏輯電路圖見(jiàn)圖6。
在私密日志加密上的應(yīng)用:
基于這種經(jīng)過(guò)可逆邏輯電路改造的aes算法可應(yīng)用于加密軟件對(duì)私密日志(即字符串)加解密的過(guò)程中。
使用者可以通過(guò)編寫(xiě)一定的代碼段來(lái)實(shí)現(xiàn)可逆邏輯門(mén)的功能,然后將這些可逆邏輯門(mén)應(yīng)用于搭建aes算法的代碼實(shí)現(xiàn)當(dāng)中,運(yùn)用基于可逆邏輯電路的aes私密日志加密方法的原理,從而達(dá)到更好的對(duì)私密日志的加密效果。
本發(fā)明運(yùn)用可逆邏輯門(mén)可有效地保證輸入數(shù)與輸出數(shù)上的相等,使得功耗不可用傳統(tǒng)的方式分析獲得。
最后應(yīng)說(shuō)明的是:雖然以上已經(jīng)詳細(xì)說(shuō)明了本發(fā)明及其優(yōu)點(diǎn),但是應(yīng)當(dāng)理解在不超出由所附的權(quán)利要求所限定的本發(fā)明的精神和范圍的情況下可以進(jìn)行各種改變、替代和變換。而且,本發(fā)明的范圍不僅限于說(shuō)明書(shū)所描述的過(guò)程、設(shè)備、手段、方法和步驟的具體實(shí)施例。本領(lǐng)域內(nèi)的普通技術(shù)人員從本發(fā)明的公開(kāi)內(nèi)容將容易理解,根據(jù)本發(fā)明可以使用執(zhí)行與在此所述的相應(yīng)實(shí)施例基本相同的功能或者獲得與其基本相同的結(jié)果的、現(xiàn)有和將來(lái)要被開(kāi)發(fā)的過(guò)程、設(shè)備、手段、方法或者步驟。因此,所附的權(quán)利要求旨在在它們的范圍內(nèi)包括這樣的過(guò)程、設(shè)備、手段、方法或者步驟。