專利名稱:基于aes加密算法的多模式可重構(gòu)加密方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,具體涉及一個(gè)基于AES加密算法的多模式可重構(gòu)加密方法。
背景技術(shù):
密碼算法是實(shí)現(xiàn)信息安全的重要基礎(chǔ),一種加密算法可以在一定環(huán)境中提供數(shù)據(jù)內(nèi)容的機(jī)密性保護(hù),實(shí)現(xiàn)數(shù)據(jù)完整性保護(hù)以及消息來源的認(rèn)證。上世紀(jì)末,比利時(shí)Joan Daeman和Vincent Rijmen提交的Rijndael算法被提議為AES(AdvanCed Encryption Mandard,高級加密標(biāo)準(zhǔn))的最終算法,此算法成為美國新的數(shù)據(jù)加密標(biāo)準(zhǔn)而被廣泛應(yīng)用在各個(gè)領(lǐng)域中。盡管人們對AES還有不同的看法,但總體來說, AES作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn)。AES 設(shè)計(jì)有三個(gè)密鑰長度1 ,192,256位,相對而言,AES的1 密鑰比DES (數(shù)據(jù)加密標(biāo)準(zhǔn)) 的56密鑰強(qiáng)1021倍。從AES的應(yīng)用來看,目前AES加密算法主要用于基于私鑰數(shù)據(jù)加密算法(對稱密鑰加密算法)的各種信息安全技術(shù)和安全產(chǎn)品中,AES通常被認(rèn)為是DES的取代者,為原有的數(shù)據(jù)加密應(yīng)用提供更強(qiáng)的數(shù)據(jù)安全保障。在AES標(biāo)準(zhǔn)公布前,IPSec (Internet 協(xié)議安全性)協(xié)議中ESP (封裝安全載荷)所用的數(shù)據(jù)加密算法主要用的是DES,隨著AES 標(biāo)準(zhǔn)的公布,IETF (互聯(lián)網(wǎng)工程任務(wù)組)的IPSec工作組下一步正使AES成為ESP使用的默認(rèn)加密算法,要求所有IPSec實(shí)現(xiàn)必須兼容AES加密算法?,F(xiàn)在大多數(shù)提供VPN(虛擬專用網(wǎng))設(shè)備和解決方案的公司都已經(jīng)使用AES加密算法代替DES加密算法,并作為宣傳企業(yè)產(chǎn)品的重要砝碼。AES加密算法主要包括三個(gè)方面輪變化、圈數(shù)和密鑰擴(kuò)展。AES加密算法每一輪中有四個(gè)步驟分別是字節(jié)代換(SubBytes)、移行轉(zhuǎn)換(ShiftRows)、混列轉(zhuǎn)
換(MixColumns)、輪密相加(AddRoundKey)。AddRoundKey-----矩陣中的每一個(gè)字節(jié)
都與該輪子密鑰(round key)做異或O(OR)運(yùn)算;每個(gè)子密鑰由密鑰生成方案產(chǎn)生。
SubBytes------通過一個(gè)非線性的替換函數(shù),用查找表的方式把每個(gè)字節(jié)替換成對應(yīng)的字
節(jié),所述的字節(jié)代換所用的查找表通常也稱為S盒。ShiftRows——將矩陣中的每個(gè)橫列進(jìn)行循環(huán)式移位。MixColumns——為了充分混合矩陣中各個(gè)直行的操作,是使用線性轉(zhuǎn)換來混合每內(nèi)聯(lián)的四個(gè)字節(jié)。傳統(tǒng)的數(shù)據(jù)加密方法有兩種一種是軟件加密;另一種是硬件加密。兩種數(shù)據(jù)加密方法各有特點(diǎn),軟件加密雖然靈活,但加密速度慢,并且容易被人改動;硬件加密雖然速度快,但算法單一,且固定不變,長此以往,總有破解的一天。為了解決上述兩種加密方法的缺點(diǎn),運(yùn)用可重構(gòu)技術(shù)設(shè)計(jì)出可以實(shí)現(xiàn)多種密碼算法的密碼芯片,使得既能靈活、快速地實(shí)現(xiàn)多種不同的密碼算法,又能避免上述安全上的隱患。所謂可重構(gòu)加密方法/系統(tǒng)實(shí)際上是一個(gè)其內(nèi)部算法程序結(jié)構(gòu)和功能可被靈活改變的密碼處理系統(tǒng),它能夠在主處理器的控制和驅(qū)動下靈活、快速地實(shí)現(xiàn)多種不同的加密、解密操作,以便適應(yīng)不同密碼算法和工作模式的需求。基于可重構(gòu)結(jié)構(gòu)的加密方法/系統(tǒng)具有靈活、快速、安全的特點(diǎn),在保密通訊和網(wǎng)絡(luò)安全等領(lǐng)域中具有良好的應(yīng)用前景??芍貥?gòu)計(jì)算技術(shù)近些年來得到了大力發(fā)展,如國防科技大學(xué)在可重構(gòu)密碼處理結(jié)構(gòu)方面做了較為深入研究,提出并設(shè)計(jì)了可重構(gòu)層次互連密碼處理結(jié)構(gòu)(RHCA)。北京科技大學(xué)研制了 REL0G_DIGG系統(tǒng),可實(shí)現(xiàn)部分分組密碼算法以及序列密碼算法。然而目前使用得最廣泛的可重構(gòu)計(jì)算系統(tǒng)是以FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)為代表的硬件結(jié)構(gòu)系統(tǒng)。雖然密碼算法的硬件實(shí)現(xiàn)具備較高的效率,但硬件實(shí)現(xiàn)對諸如電磁攻擊,差分能量攻擊等側(cè)信道攻擊的抵抗能力較弱。此外,在可重構(gòu)密碼處理結(jié)構(gòu)設(shè)計(jì)中,缺乏系統(tǒng)的設(shè)計(jì)方法和具有通用性的模型,結(jié)構(gòu)設(shè)計(jì)差異性很大,這就給可重構(gòu)密碼系統(tǒng)的使用和管理上帶來很多麻煩。
發(fā)明內(nèi)容
本發(fā)明針對目前密碼算法的硬件實(shí)現(xiàn)技術(shù)面臨的側(cè)信道攻擊,以及可重構(gòu)密碼處理結(jié)構(gòu)設(shè)計(jì)差異性較大的問題,提出一種基于AES加密算法的多模式可重構(gòu)加密方法。本發(fā)明方法改變現(xiàn)有AES中的S盒生成方式,根據(jù)用戶需求合理調(diào)整了工作輪數(shù),同時(shí)實(shí)現(xiàn)了分組密碼的的五種主要的工作模式。基于AES加密算法的多模式可重構(gòu)加密方法,具體包括以下步驟步驟1、用戶根據(jù)需要選擇工作模式和密鑰長度;步驟2、用戶選擇S盒隨機(jī)方式以及S盒尺寸;所述的S盒隨機(jī)方式有兩種全隨機(jī)S盒與偏隨機(jī)S盒;步驟3、判斷用戶選擇的S盒尺寸是否合理,若合理,生成相應(yīng)的S盒,若不合理,提示用戶錯(cuò)誤,轉(zhuǎn)步驟2執(zhí)行;步驟4、根據(jù)用戶的速度需求和安全需求,確定加密輪數(shù);所述的速度需求包括兩種高速要求和無速度要求;所述的安全需求包括兩種高安全要求和無安全要求;用戶不能夠既選擇高速又選擇高安全;步驟5、指明待加密的源文件和存放密文的目標(biāo)文件,對源文件進(jìn)行加密或解密操作;步驟6、將加密或解密的數(shù)據(jù)結(jié)果保存,并顯示給用戶查看。步驟1中所述的工作模式有5種電子編碼本(Electronic Code Book,簡稱ECB) 模式、密碼分組鏈接(Cipher Block Chaining,簡稱CBC)模式、密碼反饋(Cipher FeedBack Mode,簡稱CFB)模式、輸出反饋(Output FeedBack,簡稱0FB)模式和計(jì)數(shù)器模式(CTR)。步驟2中所述的偏隨機(jī)S盒尺寸為8X8 ;全隨機(jī)S盒尺寸有3種12X8、10X8和 8X8。步驟3中所述的判斷用戶選擇的S盒尺寸是否合理的依據(jù)是若步驟一中選擇的工作模式為ECB模式、CBC模式或CFB模式,且用戶需要加密,也需要解密,則此時(shí)的S盒尺寸只能為8 X 8,否則S盒尺寸選擇不合理。步驟3中所述的全隨機(jī)S盒的生成方法為首先,利用隨機(jī)數(shù)的生成方式生成一個(gè)由0-Ok-D組成的共2k個(gè)數(shù)的隨機(jī)置換方陣A,k取值為12、10或者8,根據(jù)用戶選擇的S 盒尺寸的第一個(gè)數(shù)字確定;然后將初始輸入的4個(gè)16進(jìn)制表示下的字節(jié)運(yùn)用DES中的擴(kuò)展函數(shù)擴(kuò)展成48位;最后將擴(kuò)展后的4個(gè)字節(jié)代入隨機(jī)置換方陣A,得出同樣長度為k位的
5字節(jié),每個(gè)字節(jié)去掉最后4位,輸出8位的4個(gè)字節(jié)。步驟3中所述的偏隨機(jī)S盒的生成方法為首先,根據(jù)用戶選擇的有限域GF(28), 對每個(gè)字節(jié)求逆,得到該字節(jié)在有限域GF (28)中的乘法逆元素,然后,通過下式對得到的乘法逆元素做仿射變換Y = AX+B其中,Y表示仿射變換后的輸出列,X表示輸入的乘法逆元素列,A為仿射變換的隨機(jī)8X8的矩陣,B為常數(shù)列;所述的矩陣A的生成方法是首先隨機(jī)產(chǎn)生一列由0,1組成的八行數(shù)組,然后按循環(huán)矩陣的生成方式依次產(chǎn)生剩余7列,最終得到一個(gè)8 * 8的矩陣;所述常數(shù)列B是隨機(jī)生成的由0,1組成的列。步驟4中所述的加密輪數(shù)的確定方法為根據(jù)S盒的差分均勻度δ⑶和非線性度NF(S)估算最少加密輪數(shù),所述的非線性度NF(S)為經(jīng)⑶=2"-1Jmax
Σ(-]
\v*5(x)+w*x
!=1
<2n'1 -V
,U, ν, χ e Zr2其中,U、ν為中間參數(shù),χ、S (χ)分別是S盒的輸入及輸出,η代表輸入的比特?cái)?shù), Z2"代表的是有限域GF Qn);所述的差分均勻度δ (S)為= max {|x e GF(2")| ^(x)十 十 α)=八 α e GF(2n), β e GF(2")jS (χ)表示從S盒的輸出,χ是輸入,α和β為中間參數(shù),GFQn)為有限域;最后,根據(jù)用戶選擇的需求來確定加密輪數(shù)如果用戶對速度的要求是高速,則加密輪數(shù)為最少加密輪數(shù),如果用戶對速度無要求,則加密輪數(shù)為10輪;如果用戶對安全性的要求是高安全,則加密輪數(shù)為14,如果用戶對安全性無要求,則加密輪數(shù)為10輪。本發(fā)明的優(yōu)點(diǎn)與積極效果在于(1)本發(fā)明方法將可重構(gòu)技術(shù)應(yīng)用于密碼算法的軟件實(shí)現(xiàn),有效避免了硬件實(shí)現(xiàn)可能面臨的側(cè)信道攻擊;( 本發(fā)明方法將大部分分組密碼算法的重構(gòu)所需的參數(shù)轉(zhuǎn)換成了面向用戶的需求,優(yōu)化了可重構(gòu)密碼方法的操作方式; (3)本發(fā)明方法適用于構(gòu)造一套可重構(gòu)的軟件加密系統(tǒng),將分組密碼的重構(gòu)集成于同一個(gè)加密系統(tǒng)中,有利于系統(tǒng)的管理。
圖1是本發(fā)明加密方法的步驟流程圖;圖2是本發(fā)明加密方法中步驟3中重構(gòu)S盒的流程示意圖;圖3是本發(fā)明加密方法中步驟4中加密或者解密的流程示意圖。
具體實(shí)施例方式下面將結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。本發(fā)明方法的可重構(gòu)性主要體現(xiàn)在對S盒的重構(gòu),輪數(shù)的調(diào)整和工作模式的實(shí)現(xiàn)方式上。具體本發(fā)明基于AES加密算法的多模式可重構(gòu)加密方法,如圖1所示,包括以下6 個(gè)步驟。步驟1 用戶根據(jù)需要選擇工作模式和密鑰長度。
本發(fā)明方法中設(shè)置了五種常用的工作模式ECB模式、CBC模式、CFB模式、OFB模式和CTR模式,讓用戶有著更多選擇的空間。ECB模式、CBC模式和CFB模式屬于這種方式 明文消息通常要比特定的分組大小長得多,且使用不同加密技術(shù)或加密操作方式。ECB模式使用同一個(gè)密鑰簡單地將每個(gè)明文塊一個(gè)接一個(gè)地進(jìn)行加密;CBC模式,是每個(gè)明文塊在加密前先與前一密文塊進(jìn)行“異或”運(yùn)算,從而增加了復(fù)雜程度,可以使某些攻擊更難以實(shí)施。OFB模式類似CBC模式,但是進(jìn)行“異或”的量是獨(dú)立生成的。CTR模式通過對計(jì)數(shù)器序列Tl,…Tm調(diào)用分組加密算法得到密鑰流,然后和明文異或得到密文。對計(jì)數(shù)器序列的要求是兩兩不同的,不僅是在一個(gè)消息的操作中,在同一密鑰的所有操作中均要求所有計(jì)數(shù)器序列兩兩不同。用戶根據(jù)自己的需要可以選擇上述工作模式之一。密鑰長度有3種選擇U8bits,192bits,256bits。bits表示單位比特。步驟2 用戶選擇S盒隨機(jī)方式以及S盒尺寸。S盒隨機(jī)方式有兩種全隨機(jī)S盒和偏隨機(jī)S盒。全隨機(jī)S盒的尺寸有3種12X8,10X8,8X8。偏隨機(jī)S盒的尺寸有1種 8X8。S盒尺寸的單位是位。用戶若選擇偏隨機(jī)S盒,則還需要選擇計(jì)算S盒所需要的有限域GF O8)。所述的有限域也就是不可約多項(xiàng)式,一共有30個(gè)不可約多項(xiàng)式可供選擇11B, 11D, 12B, 12D, 139,13F, 14D, 15F, 163,165,169,171,177,17B, 187,18B, 18D, 19F, 1A3,1A9, 1B1,1BD, 1C3,1CF,1D7,1DD,1E7,1F3,1F5,1F9。步驟3 判斷用戶選擇的S盒尺寸是否合理,若合理,生成相應(yīng)的S盒,繼續(xù)下一步驟,若不合理,提示用戶錯(cuò)誤,轉(zhuǎn)步驟2,重新選擇S盒。為了滿足加密算法可逆性的需求,工作模式的選擇與S盒尺寸的選擇存在如下的聯(lián)系ECB模式、CBC模式和CFB模式即需要加密方法,也需要解密方法,這個(gè)時(shí)候只能選擇 8X8的S盒,否則解密方法不存在,若用ECB模式、CBC模式和CFB模式只需要加密操作,則三種S盒尺寸都可以選擇。OFB模式和CTR模式只需要加密方法,12X8和10X8、8X8的S 盒都能使用。在第一步中需要對用戶的選擇的參數(shù)進(jìn)行判斷,提醒用戶某些選擇是否合理。本發(fā)明根據(jù)不同的生成方式,產(chǎn)生兩種隨機(jī)S盒,分別是全隨機(jī)S盒和偏隨機(jī)S
品.ο全隨機(jī)S盒生成法的核心思想是用一個(gè)隨機(jī)置換直接替換現(xiàn)有AES算法中的S 盒。但是8X8的隨機(jī)置換性質(zhì)可能還不如原來的S盒,于是改變S盒的輸入規(guī)模,生成 12 X 8或10 X 8或8 X 8的S盒,。如圖2所示,下面舉例說明如何產(chǎn)生一個(gè)12X8的全隨機(jī)
S 品.O首先利用隨機(jī)數(shù)的生成方式生成一個(gè)由O-Q12-I)這212個(gè)數(shù)組成的隨機(jī)置換方陣 C。初始輸入4個(gè)16進(jìn)制表示下的字節(jié),由于是在16進(jìn)制下的字節(jié),因此依次可以表示為
4 個(gè)比特流bl......b8 ;b9......bl6 ;bl7…...b24 ;b25......b32。運(yùn)用如式(1)所示的 DES
中的擴(kuò)展函數(shù)擴(kuò)展成48比特
權(quán)利要求
1.一種基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,所述方法具體包括以下步驟步驟1 用戶根據(jù)需要選擇工作模式和密鑰長度;步驟2 用戶選擇S盒隨機(jī)方式以及S盒尺寸;所述的S盒隨機(jī)方式有兩種全隨機(jī)S 盒與偏隨機(jī)S盒;步驟3 判斷用戶選擇的S盒尺寸是否合理,若合理,生成相應(yīng)的全隨機(jī)S盒或偏隨機(jī)S 盒,若不合理,提示用戶錯(cuò)誤,轉(zhuǎn)步驟2執(zhí)行;步驟4 用戶選擇的速度需求和安全需求,所述的速度需求包括兩種高速和無速度要求;所述的安全需求包括兩種高安全和無安全要求,且用戶不能夠同時(shí)選擇高速和高安全,然后確定加密輪數(shù);步驟5 指明待加密的源文件和存放密文的目標(biāo)文件,對源文件進(jìn)行加密或解密操作;步驟6 將加密或解密的結(jié)果數(shù)據(jù)保存,并顯示給用戶查看。
2.根據(jù)權(quán)利要求1所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,步驟1中所述的工作模式包括5種電子編碼本模式、密碼分組鏈接模式、密碼反饋模式、輸出反饋模式和計(jì)數(shù)器模式。
3.根據(jù)權(quán)利要求1所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,步驟2中所述的全隨機(jī)S盒尺寸有3種12X8、10X8和8X8 ;偏隨機(jī)S盒尺寸為8X8。
4.根據(jù)權(quán)利要求1或2或3所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,步驟3中所述的判斷S盒尺寸是否合理的方法是若步驟一中選擇的工作模式為電子編碼本模式、密碼分組鏈接模式或者密碼反饋模式,且用戶需要加密,也需要解密,則此時(shí)的S盒尺寸只能為8 X 8,否則S盒尺寸選擇不合理。
5.根據(jù)權(quán)利要求1所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,步驟3中所述的全隨機(jī)S盒的生成方法為首先,利用隨機(jī)數(shù)的生成方式生成一個(gè)由O-Qk-I) 組成的共2k個(gè)數(shù)的隨機(jī)置換方陣C,k取值為12、10或者8,根據(jù)用戶選擇的S盒尺寸的第一個(gè)數(shù)字確定;然后將初始輸入的4個(gè)16進(jìn)制表示下的字節(jié)運(yùn)用DES中的擴(kuò)展函數(shù)擴(kuò)展成 48位;最后將擴(kuò)展后的4個(gè)字節(jié)代入隨機(jī)置換方陣C,得出同樣長度為k位的字節(jié),每個(gè)字節(jié)去掉最后4位,輸出8位的4個(gè)字節(jié)。
6.根據(jù)權(quán)利要求1所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,步驟3中所述的偏隨機(jī)S盒的生成方法為首先,根據(jù)用戶選擇的有限域GFQ8),對每個(gè)字節(jié)求逆,得到該字節(jié)在有限域GF (28)中的乘法逆元素,然后,通過下式對得到的乘法逆元素做仿射變換Y = AX+B其中,Y表示仿射變換后的輸出列,X表示輸入的乘法逆元素列,A為仿射變換的隨機(jī) 8X8的矩陣,B為常數(shù)列;所述的矩陣A的生成方法是首先隨機(jī)產(chǎn)生一列由0,1組成的八行數(shù)組,然后按循環(huán)矩陣的生成方式依次產(chǎn)生剩余7列,最終得到一個(gè)8 * 8的矩陣;所述常數(shù)列B是隨機(jī)生成的由0,1組成的列。
7.根據(jù)權(quán)利要求6所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,所述的有限域GF O8)有30個(gè)不可約多項(xiàng)式供選擇,30個(gè)不可約多項(xiàng)式為11B,11D,12B,12D, 139,13F, 14D, 15F, 163,165,169,171,177,17B, 187,18B, 18D, 19F, 1A3,1A9,1B1,1BD,1C3,1CF, 1D7,1DD,1E7,1F3,1F5,1F9。
8.根據(jù)權(quán)利要求1所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,步驟4中所述的加密輪數(shù)的確定方法為首先,根據(jù)S盒的非線性度和差分均勻度估算最少加密輪數(shù);所述的S盒的非線性度NF(S)為
9.根據(jù)權(quán)利要求8所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于,所述的最少加密輪數(shù)為4。
10.根據(jù)權(quán)利要求1所述的基于AES加密算法的多模式可重構(gòu)加密方法,其特征在于, 步驟5中所述的加密操作,是從源文件讀取數(shù)據(jù),以每1 位進(jìn)行分組,最后一組若不夠128 位,則以O(shè)補(bǔ)足,然后進(jìn)行加密操作首先擴(kuò)展密鑰,接著輪密相加,然后再按照步驟4中確定的加密輪數(shù)進(jìn)行重復(fù)輪加密,每一輪包括字節(jié)代換、移行轉(zhuǎn)換、混列轉(zhuǎn)換和輪密相加四個(gè)步驟,最后一輪加密只有字節(jié)代換、移行轉(zhuǎn)換和輪密相加三個(gè)步驟,字節(jié)代換中使用步驟3 中生成的S盒,將把每個(gè)字節(jié)替換成對應(yīng)的字節(jié),最后把加密后的數(shù)據(jù)以字節(jié)流的方式寫入到目標(biāo)文件中。
全文摘要
本發(fā)明提出一種基于AES加密算法的多模式可重構(gòu)加密方法,該方法中提供了五種工作模式供用戶選擇,并提供了全隨機(jī)S盒和偏隨機(jī)S盒的生成方式,首先判斷用戶選擇的工作方式和S盒是否合理,若不合理提示用戶重新選擇,若合理則進(jìn)一步根據(jù)生成的S盒的差分均勻度和非線性度計(jì)算最少加密輪數(shù),并根據(jù)用戶的要求確定最終加密輪數(shù),然后選擇源文件進(jìn)行加密或者解密操作,最后將加密或者解密后得到的數(shù)據(jù)文件保存起來,并提供給用戶進(jìn)行查看。本發(fā)明方法有效避免了加密采用硬件實(shí)現(xiàn)可能面臨的側(cè)信道攻擊,優(yōu)化了可重構(gòu)密碼方法的操作方式,適用于構(gòu)造一套可重構(gòu)的軟件加密系統(tǒng),將分組密碼的重構(gòu)集成于同一個(gè)軟件系統(tǒng)中,也便于操作和管理。
文檔編號H04L9/06GK102185692SQ20111010382
公開日2011年9月14日 申請日期2011年4月25日 優(yōu)先權(quán)日2011年4月25日
發(fā)明者劉昭, 宋倩倩, 張堯, 張?bào)? 王釗, 趙罡, 邱望潔, 鄭志明 申請人:北京航空航天大學(xué)