本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體而言,涉及一種信息加密、解密方法及裝置。
背景技術(shù):
現(xiàn)有AES算法中解密過程的列變換倍乘階數(shù)較高時,會很耗時;AES的加密和解密過程是不對稱的,解密速度遠遠低于加密速度,存在數(shù)據(jù)傳輸不平衡性;總體上會使數(shù)據(jù)備份過程耗時且效率低下。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提供一種信息加密、解密方法及裝置,以改善上述問題。
第一方面,本發(fā)明實施例提供了一種信息加密方法,所述方法包括:獲取待加密信息;基于所述待加密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)循環(huán)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰;對所述第一加密密鑰進行AES算法中的一輪加密,獲得第二加密密鑰;根據(jù)所述AES加密算法中PEAX認證模式,對所述第二加密密鑰和所述待加密信息進行加密認證,獲得所述待加密信息對應(yīng)的密文。
第二方面,本發(fā)明實施例提供了一種信息加密裝置,所述裝置包括待加密信息獲取單元,用于獲取待加密信息;加密迭代單元,用于基于所述待加密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)循環(huán)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰;一輪加密單元,用于對所述第一加密密鑰進行AES算法中的一輪加密,獲得第二加密密鑰;密文獲得單元,用于根據(jù)所述AES加密算法中PEAX認證模式,對所述第二加密密鑰和所述待加密信息進行加密認證,獲得所述待加密信息對應(yīng)的密文。
第三方面,本發(fā)明實施例提供了一種信息解密方法,所述方法包括:獲取待解密信息;基于所述待解密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES解密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一解密密鑰;對所述第一解密密鑰進行AES算法中一輪解密,獲得第二解密密鑰;對所述第二解密密鑰和所述待解密信息進行解密變換,獲得所述待解密信息對應(yīng)的明文。
第四方面,本發(fā)明實施例提供了一種信息解密裝置,所述裝置包括:待解密信息獲取單元,用于獲取待解密信息;解密迭代單元,用于基于所述待解密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES解密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一解密密鑰;一輪解密單元,用于根據(jù)對所述第一解密密鑰進行AES算法中一輪解密,獲得第二解密密鑰;明文獲得單元,用于對所述第二解密密鑰和所述待解密信息進行解密變換,獲得所述待解密信息對應(yīng)的明文。
本發(fā)明實施例提供的一種信息加密、解密方法及裝置,通過獲取待加密信息;基于所述待加密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)循環(huán)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰;對所述第一加密密鑰進行AES算法中的一輪加密,獲得第二加密密鑰;根據(jù)所述AES加密算法中PEAX認證模式,對所述第二加密密鑰和所述待加密信息進行加密認證,獲得所述待加密信息對應(yīng)的密文。通過查表的方式,簡化AES算法的流程,提高AES算法的速度。
本發(fā)明的其他特征和優(yōu)點將在隨后的說明書闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明實施例了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為一種可應(yīng)用于本申請實施例中的電子設(shè)備的結(jié)構(gòu)框圖;
圖2為本發(fā)明第一實施例提供的信息加密方法的流程圖;
圖3為本發(fā)明第一實施例提供的信息加密方法的PEAX加密認證模式過程描述示意圖;
圖4為本發(fā)明第二實施例提供的信息加密裝置的結(jié)構(gòu)框圖;
圖5為本發(fā)明第三實施例提供的信息解密方法的流程圖;
圖6為本發(fā)明第四實施例提供的信息解密裝置的流程圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
請參閱圖1,圖1示出了一種可應(yīng)用于本申請實施例中的電子設(shè)備100的結(jié)構(gòu)框圖。該電子設(shè)備100可以作為用戶終端,也可以是計算機或服務(wù)器,所述用戶終端可以為手機或平板電腦。如圖1所示,電子設(shè)備100可以包括存儲器110、存儲控制器111、處理器112和信息加密、解密的裝置。
存儲器110、存儲控制器111、處理器112各元件之間直接或間接地電連接,以實現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件之間可以通過一條或多條通訊總線或信號總線實現(xiàn)電連接。信息加密、解密裝置分別包括至少一個可以以軟件或固件(firmware)的形式存儲于存儲器110中的軟件功能模塊,例如所述信息加密、解密裝置包括的軟件功能模塊或計算機程序。
存儲器110可以存儲各種軟件程序以及模塊,如本申請實施例提供的信息加密、解密方法及裝置對應(yīng)的程序指令/模塊。處理器112通過運行存儲在存儲器110中的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)本申請實施例中的信息加密、解密方法及裝置。存儲器110可以包括但不限于隨機存取存儲器(Random Access Memory,RAM),只讀存儲器(Read Only Memory,ROM),可編程只讀存儲器(Programmable Read-Only Memory,PROM),可擦除只讀存儲器(Erasable Programmable Read-Only Memory,EPROM),電可擦除只讀存儲器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
處理器112可以是一種集成電路芯片,具有信號處理能力。上述處理器可以是通用處理器,包括中央處理器(Central Processing Unit,簡稱CPU)、網(wǎng)絡(luò)處理器(Network Processor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。其可以實現(xiàn)或者執(zhí)行本申請實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
第一實施例
請參閱圖2,本發(fā)明實施例提供了一種信息加密方法,所述方法包括:
步驟S200:獲取待加密信息;
步驟S210:基于所述待加密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)循環(huán)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰;
具體地,利用隨機種子算法,獲取隨機種子;
利用所述隨機種子對所述待加密信息進行初始化,獲得初始密鑰;
基于預(yù)設(shè)的加密等級,對所述初始密鑰依次進行字節(jié)替換操作、行移位操作、查找預(yù)設(shè)的列混淆變換表操作和輪密鑰變換操作循環(huán)迭代計算,獲得滿足預(yù)設(shè)循環(huán)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰。
所述查找預(yù)設(shè)的列混淆變換表操作,包括:
基于AES算法,計算出列混淆變換中所有列向量乘積對的數(shù)值結(jié)果;
對應(yīng)每個所述列向量,建立列向量乘積對與對應(yīng)的數(shù)值結(jié)果的列混淆變換表;
在列混淆變換操作時,查找所述列向量乘積對與對應(yīng)的數(shù)值結(jié)果的列混淆變換表,獲得所述列混淆變換操作的數(shù)值結(jié)果。
步驟S220:對所述第一加密密鑰進行AES算法中的一輪加密,獲得第二加密密鑰;
具體地,對所述第一加密密鑰進行字節(jié)替換操作、行移位操作、輪密鑰變換操作一輪計算,獲得第二加密密鑰。
在本實施例中,基于以下AES算法的數(shù)學(xué)基礎(chǔ),群-可交換群-環(huán)-可交換環(huán)-整環(huán)-域,滿足的條件越苛刻,A1到A5為5個加法運算規(guī)則,M1到M7為7個乘法運算規(guī)則。
A1:加法的封閉性:如果a和b屬于S,則a+b也屬于S。
A2:加法結(jié)合律:對S中的任意元素a、b、c,a+(b+c)=(a+b)+c。
A3:加法單位元:R中存在一個元素0,使得對于S中的任意元素a,有a+0=0+a=a。
A4:加法逆元:對于S中的任意元素a,S中一定存在一個元素-a,使得a+(-a)=(-a)+a=0。
A5:加法交換律:對于S中的任意元素a和b,有a+b=b+a。
M1:乘法的封閉性:如果a和b屬于S,ab也屬于S。
M2:乘法結(jié)合律:對于S中的任意元素a、b、c,有a(bc)=(ab)c。
M3:分配律:對于S中的任意元素a、b、c,有a(b+c)=ab+ac和(a+b)c=ac+bc。
M4:乘法交換律:對于S中的任意元素a和b,ab=ba。
M5:乘法單位元:對于S中的任意元素a,在S中存在一個元素1,使得a1=1a=a。
M6:無零因子:對于S中的元素a、b,若ab=0,則必有a=0或b=0。
M7:乘法逆元:如果a屬于S,且a不為0,則S中存在一個元素a-1,使得aa-1=a-1a=1。
基于以上A1-A5,M1-M7,群要滿足A1-A4;可交換群要滿足A1-A5;環(huán)要滿足A1-A5以及M1-M3;可交換環(huán)要滿足A1-A5以及M1-M3;整環(huán)要滿足A1-A5以及M1-M6;域要滿足A1-A5以及M1-M7。域要滿足5個加法條件和7個乘法條件。
有限域:有限域在許多密碼編碼學(xué)算法中扮演著重要的角色,有限域的元素個數(shù)必須是一個素數(shù)的冪pn,n為正整數(shù)。元素個數(shù)為pn的有限域一般記為GF(pn)。
乘法逆元:對于有限域GF(pn),對任意的w∈GF(pn),w≠0,存在z∈GF(pn)使得w×z≡1mod p,則z為w在該有限域上的乘法逆元。
如果定義了合適的運算,那么每一個這樣的集合S都是一個有限域。定義由如下幾條組成:該運算遵循基本代數(shù)規(guī)則中的普通多項式運算規(guī)則;系數(shù)運算以p為模,即遵循有限域上Zp的運算規(guī)則;如果乘法運算結(jié)果是次數(shù)大于n-1的多項式,那么必須將其除以某個次數(shù)為n的既約多項式m(x)并取余式。
AES密碼中的運算多數(shù)是按byte為單位進行的,用直接表示有限域GF(28)(下同)中的元素,還有一些是按4字節(jié)的方式定義的。由b7b6b5…b0構(gòu)成的字節(jié)b可以看成系數(shù)在GF(28)中的多項式:
b7x7+b6x6+…+b0x0
GF(28)中的加法定義為多項式的二元加法,系數(shù)為模2加。域加法就是簡單的按byte為單位的bit異或。GF(28)中的乘法定義為模一個8次既約多項式的乘法。對于AES算法,這個既約多項式為:
m(x)=x8+x4+x3+x+1
在AES乘法中,其實現(xiàn)技巧基于下面的等式:
x8mod m(x)=[m(x)-x8]=x4+x3+x+1 (1)
因此,GF(28)上的任意多項式f(x)=b7x7+b6x6+…+b0x0乘以x,可得:
x×f(x)=(b7x8+b6x7+…+b0x1)mod m(x)
如果b7=0,那么結(jié)果就是一個次數(shù)小于8的多項式,不需要進一步計算,如果b7≠0,則b7=1,可以通過等式(1)進行除m(x)取余運算。
x×f(x)=(b6x7+…+b0x1)+(x4+x3+x+1)
這表明乘以x(如00000010)的運算可以通過左移一位后按位異或00011011來實現(xiàn),即:
乘以一個高于一次的多項式可以通過重復(fù)使用公式(2)來實現(xiàn)。這樣一來,GF(28)上的乘法就可以用多個中間結(jié)果相加的方法實現(xiàn)。
AES是一種迭代分組密碼,采用的是代替/置換網(wǎng)絡(luò)(SPN)。將明文分組長度固定為128位,而且僅支持128位、196位或256位的密鑰長度。在AES中128位密鑰版本有10個左右的加密循環(huán),256比特密鑰版本則有14個左右加密循環(huán)。
目前AES加密算法主要由4個變換構(gòu)成:字節(jié)代換(SubByte)、行位移變換(ShiftRow)、列混淆變換(MixColumn)以及輪密鑰加(AddRoundKey)變換。AES是基于分組的加解密算法。即每次要加密,解密的數(shù)據(jù)塊大小必須是16字節(jié)。算法中大量使用移位操作。而移位操作屬于費時指令,不能與其他指令配對形成流水線,這大大影響了算法的執(zhí)行效率。輪加密采用循環(huán)變換,而循環(huán)和變量操作數(shù)可能會造成指令流水線的阻斷和指令預(yù)取的作廢。在本發(fā)明實施例提供的信息加密的方法采用優(yōu)化目前的AES算法,其優(yōu)化主要集中的輪函數(shù)優(yōu)化、字節(jié)變換優(yōu)化和解密密鑰生成優(yōu)化。中心思想是將輪函數(shù)中的四個操作合并起來采用查表的方式實現(xiàn)。
假設(shè)A是輪變換的輸入狀態(tài),E是輪變換的輸出狀態(tài),K為密鑰數(shù)組。用aij、eij、kij分別表示A、E、K中第i行第j列的元素,用aj、ej、kj分別表示A、E、K中第j列的元素。則有公式(3):
公式(3)中,S[a0,j]S[a1,j-1]S[a2,j-2]S[a3,j-3]分別對應(yīng)a0,j、a1,j-1、a2,j-2、a3,j-3的S盒的變換值。因此可以定義真值表T0、T1、T2、T3,都是8比特輸入,32比特輸出的函數(shù),如下:
從而,輪函數(shù)可以表示為:
其中j=0…Nb-1,Nb為待加密信息的列數(shù)。
公式(4)為預(yù)設(shè)的列混淆變換表。這樣,每一輪的每一列只需四次查表操作和四次異或操作即可完成,大大提高了運算速度。字節(jié)變換優(yōu)化可以通過指針類型的轉(zhuǎn)換來實現(xiàn),以避免大量的移位操作。在標(biāo)準的AES加密流程的基礎(chǔ)上優(yōu)化了算法中存在的大量移位操作。因為移位操作屬于費時指令,不能與其他指令配對形成流水線。因此優(yōu)化減少這些位移操作指令可以一定程度提高執(zhí)行效率。提升了數(shù)據(jù)備份速度和效率。本發(fā)明實施例提供的一種信息加密方法不僅完整地實現(xiàn)了AES算法的核心功能,而且加密速度比原來提高了大約1.33到1.75倍。
步驟S230:根據(jù)所述AES加密算法中PEAX認證模式,對所述第二加密密鑰和所述待加密信息進行加密認證,獲得所述待加密信息對應(yīng)的密文。
在本實施例中,如圖3所示,PEAX(Parallel-EAX,Encryption with Authentication for Transfer)模式的認證過程簡潔描述如下:
以0為初始值,應(yīng)用POMAC模式對Nonce進行認證,認證的結(jié)果是N′作為RCTRk加密模塊的初始向量(IV);以1為初始值,應(yīng)用POMAC模式對頭信息(Header)進行認證,認證的結(jié)果為H′;以N′為初始值,應(yīng)用RCTR模式對消息(Message)進行加密,加密后的密文為C;以2為初始值,應(yīng)用POMAC模式對密文C進行認證,認證的結(jié)果為C′;產(chǎn)生完整的認證標(biāo)識Tag;T←Tag的低τ位產(chǎn)生最終的認證標(biāo)識T,最終的密文為C||T。PEAX加密認證模式效率更高、更節(jié)省系統(tǒng)資源。
在步驟S200之后,所述方法還包括:
根據(jù)電碼本模式、密碼分組鏈接模式、計算器模式、密碼反饋模式或輸出反饋模式中的一種模式對所述待加密信息進行分塊,獲得多個待加密分塊信息;
相應(yīng)地,所述基于所述待加密信息以及查找預(yù)設(shè)的列混淆變換表,進行AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰,包括:
基于多個待加密分塊信息以及查找預(yù)設(shè)的列混淆變換表,進行AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰。
此外,在本實施例中,針對是否需要加密的系統(tǒng)服務(wù)文件過程如下:文件寫入:如果文件不需要加密則直接寫入,對需要加密的文件按照指定的加密方式寫入到指定的位置;文件讀?。喝绻x取的文件沒有進行加密則直接進行讀取文件內(nèi)容,若讀取文件為已加密的文件,需要按照對應(yīng)的解密方式進行解密后再進行文件內(nèi)容讀取;文件刪除:若文件沒有進行加密則直接刪除文件,若要刪除的文件為已加密的文件,需要進行身份認證成功后才能刪除文件。
本發(fā)明實施例提供的一種信息加密方法,所述方法包括獲取待加密信息;基于所述待加密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)循環(huán)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰;對所述第一加密密鑰進行AES算法中的一輪加密,獲得第二加密密鑰;根據(jù)所述AES加密算法中PEAX認證模式,對所述第二加密密鑰和所述待加密信息進行加密認證,獲得所述待加密信息對應(yīng)的密文。通過查表的方式,簡化AES算法的流程,提高AES算法的加密速度。
第二實施例
請參閱圖4,本發(fā)明實施例提供了一種信息加密裝置300,所述裝置300包括:
待加密信息獲取單元310,用于獲取待加密信息。
分塊單元320,用于根據(jù)電碼本模式、密碼分組鏈接模式、計算器模式、密碼反饋模式或輸出反饋模式中的一種模式對所述待加密信息進行分塊,獲得多個待加密分塊信息。
加密迭代單元320,用于基于所述待加密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)循環(huán)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰。
所述基于所述待加密信息以及查找預(yù)設(shè)的列混淆變換表,進行AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰,包括:
基于多個待加密分塊信息以及查找預(yù)設(shè)的列混淆變換表,進行AES加密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰。
作為一種實施方式,所述加密迭代單元330可以包括隨機種子獲得子單元331、初始密鑰獲得子單元332及迭代計算子單元333。
隨機種子獲得子單元331,用于利用隨機種子算法,獲取隨機種子。
初始密鑰獲得子單元332,用于利用所述隨機種子對所述待加密信息進行初始化,獲得初始密鑰;
迭代計算子單元333,用于基于預(yù)設(shè)的加密等級,對所述初始密鑰依次進行字節(jié)替換操作、行移位操作、查找預(yù)設(shè)的列混淆變換表操作和輪密鑰變換操作循環(huán)迭代計算,獲得滿足預(yù)設(shè)循環(huán)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰。
一輪加密單元340,用于對所述第一加密密鑰進行AES算法中的一輪加密,獲得第二加密密鑰。
一輪加密單元340可以包括一輪加密子單元341。
一輪加密子單元341,用于對所述第一加密密鑰進行字節(jié)替換操作、行移位操作、輪密鑰變換操作一輪計算,獲得第二加密密鑰。
密文獲得單元350,用于根據(jù)所述AES加密算法中PEAX認證模式,對所述第二加密密鑰和所述待加密信息進行加密認證,獲得所述待加密信息對應(yīng)的密文。
以上各單元可以是由軟件代碼實現(xiàn),此時,上述的各單元可存儲存儲器110內(nèi)。以上各單元同樣可以由硬件例如集成電路芯片實現(xiàn)。
本發(fā)明實施例提供的信息加密裝置300,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應(yīng)內(nèi)容。
第三實施例
請參閱圖5,本發(fā)明實施例提供了一種信息解密方法,所述方法包括:
步驟S400:獲取待解密信息;
步驟S410:基于所述待解密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES解密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一解密密鑰;
基于步驟S410,具體地,利用隨機種子算法,獲取隨機種子;
利用所述隨機種子對所述待解密信息進行初始化,獲得初始密鑰;
對所述初始密鑰依次進行字節(jié)反向替換操作、行回位操作、查找預(yù)設(shè)的逆列混淆變換表操作和輪密鑰變換操作循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰。
查找預(yù)設(shè)的逆列混淆變換表操作,包括:
根據(jù)預(yù)先獲得的加密過程中的加密變換矩陣和解密變換矩陣,計算出所述加密變換矩陣轉(zhuǎn)換至所述解密變換矩陣的關(guān)系矩陣,再建立所述加密變換矩陣與所述關(guān)系矩陣相對應(yīng)的逆列混淆變換表;
對應(yīng)關(guān)系矩陣預(yù)設(shè)異或邏輯,在進行逆列混淆變換時,根據(jù)加密變換矩陣查找所述逆列混淆變換表,得到該加密變換矩陣對應(yīng)的關(guān)系矩陣,再通過該加密變換矩陣對應(yīng)的關(guān)系矩陣的異或邏輯,獲得所述逆列混淆變換的結(jié)果矩陣。
步驟S420:對所述第一解密密鑰進行AES算法中一輪解密,獲得第二解密密鑰;
步驟S430:對所述第二解密密鑰和所述待解密信息進行解密變換,獲得所述待解密信息對應(yīng)的明文。
需要說明的是,本實施例是第一實施例提供的信息加密方法的逆過程。
信息加密過程中S盒的構(gòu)造:
首先按字節(jié)值的升序逐行初始化S盒(相當(dāng)于每個值都代表了坐標(biāo));
其次,把S盒的每個字節(jié)映射為它在有限域GF(28)中的逆;
再把S盒中的每個字節(jié)的8個構(gòu)成位記為(b7,b6,b5,b4,b3,b2,b1,b0)。對S
盒的每個字節(jié)的每個位作如下變換:
其中,ci是指值為{63}的字節(jié)c的第i位。
AES標(biāo)準用矩陣形式描述了這個變換:
逆S盒的構(gòu)造:按字節(jié)值的升序逐行初始化S盒;利用式(5)的逆變換,該逆變換如下:
di是指值為{05}的字節(jié)d的第i位。也可以用矩陣形式描述:
再求其在GF(28)內(nèi)的乘法逆。
可逆證明:
令字節(jié)代替變換和逆字節(jié)代替變換中的矩陣分別為X和Y,常量c和d的向量表示分別為C和D。對于某個8位的向量B,公式(6)變成了需證明如下:
以上,證明成立。解密密鑰生成優(yōu)化可以通過S盒和T的逆表來生成解密密鑰,提高算法速度。
本發(fā)明實施例提供了一種信息解密方法,所述方法包括:獲取待解密信息;基于所述待解密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES解密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一解密密鑰;對所述第一解密密鑰進行AES算法中一輪解密,獲得第二解密密鑰;對所述第二解密密鑰和所述待解密信息進行解密變換,獲得所述待解密信息對應(yīng)的明文。通過查表的方式,簡化AES算法的流程,提高AES算法的解密速度。
第四實施例
請參閱圖6,本發(fā)明實施例提供了一種信息解密裝置500,所述裝置500包括:
待解密信息獲取單元510,用于獲取待解密信息。
解密迭代單元520,用于基于所述待解密信息,進行查找預(yù)設(shè)的列混淆變換表以及AES解密算法循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一解密密鑰。
作為一種實施方式,所述解密迭代單元520可以包括解密種子獲得子單元521、解密初始密鑰獲得子單元522及解密迭代計算子單元523。
解密種子獲得子單元521,用于利用隨機種子算法,獲取隨機種子。
解密初始密鑰獲得子單元522,用于利用所述隨機種子對所述獲取到的待解密信息進行初始化,獲得初始密鑰。
解密迭代計算子單元523,用于對所述初始密鑰依次進行字節(jié)反向替換操作、行回位操作、查找預(yù)設(shè)的逆列混淆變換表操作和輪密鑰變換操作循環(huán)迭代計算,獲得滿足預(yù)設(shè)迭代數(shù)的倒數(shù)第二輪的第一加密密鑰。
查找預(yù)設(shè)的逆列混淆變換表操作,包括根據(jù)預(yù)先獲得的加密過程中的加密變換矩陣和解密變換矩陣,計算出所述加密變換矩陣轉(zhuǎn)換至所述解密變換矩陣的關(guān)系矩陣,再建立所述加密變換矩陣與所述關(guān)系矩陣相對應(yīng)的逆列混淆變換表;
對應(yīng)關(guān)系矩陣預(yù)設(shè)異或邏輯,在進行逆列混淆變換時,根據(jù)加密變換矩陣查找所述逆列混淆變換表,得到該加密變換矩陣對應(yīng)的關(guān)系矩陣,再通過該加密變換矩陣對應(yīng)的關(guān)系矩陣的異或邏輯,獲得所述逆列混淆變換的結(jié)果矩陣。
一輪解密單元530,用于根據(jù)對所述第一解密密鑰進行AES算法中一輪解密,獲得第二解密密鑰。
明文獲得單元540,用于對所述第二解密密鑰和所述待解密信息進行解密變換,獲得所述待解密信息對應(yīng)的明文。
以上各單元可以是由軟件代碼實現(xiàn),此時,上述的各單元可存儲存儲器110內(nèi)。以上各單元同樣可以由硬件例如集成電路芯片實現(xiàn)。
本發(fā)明實施例提供的信息解密裝置500,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應(yīng)內(nèi)容。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。