◆詹鵬偉 謝小姣
?
DES與AES算法實(shí)現(xiàn)及其在圖像加密中的效率探究
◆詹鵬偉 謝小姣
(廣州大學(xué)數(shù)學(xué)與信息科學(xué)學(xué)院 廣東 510006)
DES算法與AES算法是常用的兩種分組加密算法。本文介紹了DES算法、AES算法及它們的具體操作與加密原理,并將這兩種算法運(yùn)用于圖像加密,進(jìn)一步探究了在不同工作模式下它們?cè)趫D像加密中的效率。結(jié)果表明,AES算法在不同工作模式下的加密效率普遍高于DES算法,且兩種算法在CFB模式下工作時(shí),效率遠(yuǎn)低于其他工作模式。
DES;AES;圖像加密;效率
密碼技術(shù)是用于保障信息安全的核心手段之一,廣泛應(yīng)用于商業(yè)、軍事等領(lǐng)域,是一門結(jié)合了計(jì)算機(jī)科學(xué)、數(shù)學(xué)、信息學(xué)等多門學(xué)科在內(nèi)的交叉學(xué)科,不僅可以保證信息的機(jī)密性,還能為信息的完整性以及確定性提供保障。本文介紹了分組密碼中DES算法與AES算法的實(shí)現(xiàn)原理,并對(duì)它們?cè)趫D像加密應(yīng)用中不同工作模式下的效率進(jìn)行了探究。
DES作為一種分組密碼,具有典型的Feistel結(jié)構(gòu),其分組長(zhǎng)度為64比特,密鑰長(zhǎng)度為64比特,其中有效密鑰長(zhǎng)度為56比特,剩下的8比特用做奇偶校驗(yàn)。本節(jié)中將介紹DES的原理以及實(shí)現(xiàn)。
一次完整的DES加密過(guò)程需要經(jīng)過(guò)16輪加密。在進(jìn)行加密之前,首先需要對(duì)需要加密的明文做初始置換IP,將明文分為L(zhǎng)0和R0兩部分,然后再將得到的32位的L0和R0輸入DES的第一輪加密中。在每一輪加密中,輪函數(shù)g的形式都為g(Li-1,Ri-1,Ki)=(Li,Ri),其中(Li-1,Ri-1)為前一輪加密所輸出的左右兩部分:
Li=Ri-1
Ri=Li-1⊕f(Ri-1,Ki)
Ki為當(dāng)前的輪密鑰,f為輪函數(shù)。Ki是由密鑰密鑰56比特的密鑰K所生成的密鑰編排方案(K1,K2,…,K16)中的第i輪的子密鑰,Ki為48比特。完整的DES加密過(guò)程以及輪函數(shù)f的具體操作如圖1所示。
圖1 DES加密過(guò)程及輪函數(shù)實(shí)現(xiàn)細(xì)節(jié)
其中輪函數(shù)f的具體操作為:(1)將上一輪中的右半部分Ri-1輸入,并根據(jù)一個(gè)固定的拓展函數(shù)E將其從32比特拓展為48比特。(2)將拓展過(guò)后的ERi-1)與輪密鑰Ki做亦或運(yùn)算,并將48比特的結(jié)果寫為6×8比特:B1,B2,…,B8。(3)每個(gè)B占6位,將第一位b1與第六位b6的組合b1b6作為行號(hào),其余的b2b3b4b5作為列號(hào)去查對(duì)應(yīng)的S盒Si,最終將6×8比特映射為4×8比特C,C2,…,C8。(4)將32比特的C,C2,…,C8經(jīng)過(guò)固定的置換P得到輪函數(shù)的輸出結(jié)果f(Ri-1),Ki)。
DES中一共有8個(gè)S盒,是由美國(guó)國(guó)家安全局精心挑選的。S盒作為DES中唯一的非線性部分,對(duì)其安全性至關(guān)重要。
AES算法是為了代替安全性不能滿足要求的DES算法而選出的,主要由拓展密鑰、加密模塊和解密模塊組成。AES的分組長(zhǎng)度為128比特,且有三種可選的密鑰長(zhǎng)度:128比特、192比特及256比特,分別對(duì)應(yīng)的加密輪數(shù)為10輪、12輪及14輪。本節(jié)中將以10輪的AES-128為例,介紹AES的原理以及實(shí)現(xiàn)。
AES輸入的128比特明文將被分為16個(gè)字節(jié),在進(jìn)入第一輪加密之前需要先進(jìn)行一次AddRoundKey變換,然后就進(jìn)入加密的主體,以SubBytes、ShiftRows、MixColumns、AddRoundKey操作的順序完成10輪加密,其中最后一輪不必進(jìn)行MixColumns操作,過(guò)程如圖2所示。
圖2 AES加密流程
其中涉及到的4種基本操作如下:
(1) SubBytes。在有限域GF(28)上利用模2加法仿射變換構(gòu)造S盒,再利用非線性的S盒實(shí)現(xiàn)當(dāng)前狀態(tài)的代換。
(2) ShiftRows。將當(dāng)前狀態(tài)字的各行按照不同的位移量循環(huán)移位。
(3) MixColumns。將當(dāng)前狀態(tài)看作GF(28)上的多項(xiàng)式,然后在域中與固定的多項(xiàng)式做乘法,再將所得到的碼字與固定碼字做亦或運(yùn)算。
(4) AddRoundKey。將輪密鑰與當(dāng)前狀態(tài)亦或。
其中輪密鑰是有128比特的種子密鑰經(jīng)過(guò)KeyExpansion密鑰編排方案構(gòu)造的,共有11個(gè),每個(gè)128比特。
在實(shí)際應(yīng)用中,DES有4種工作模式,而AES有5種,分別是:
(1)ECB模式?;炯用苣J剑纸M之后直接進(jìn)行加密。
(2)CBC模式。先將待加密密碼塊與前一個(gè)密碼塊亦或后再加密。
(3)CFB。將加密塊轉(zhuǎn)化為流密文后再加密。
(4)OFB模式。先用塊加密器生成密鑰流,然后將密鑰流與明文亦或得到密文流。
(5)CTR(僅AES)。利用密鑰加密一個(gè)自增的算子,然后將輸出與明文亦或得到密文。
將DES與AES用于圖像加密,首先需要將圖像轉(zhuǎn)化為像素序列,然后將像素分為指定大小的分組并依次加密,若像素?cái)?shù)量無(wú)法被分組大小整除,則需要在末尾組添0補(bǔ)齊,在加密完成后再刪除補(bǔ)位值。以ECB模式為例,圖像經(jīng)DES與AES加密后的結(jié)果如圖3所示。
圖3 圖像加密
為探究算法的加密效率,選取大小為2536×2536的BMP圖像。在不同的工作模式下,DES與AES算法的加密速度與效率如表1所示。
表1 不同工作模式下DES與AES算法加密圖像的速度與效率
工作模式DESAES 時(shí)間(s)效率(pix/s)時(shí)間(s)效率(pix/s) ECB0.798,140,8810.5411,909,807 CBC0.778,352,3320.6010,718,826 CFB2.812,288,7171.973,264,617 OFB0.768,462,2310.6210,373,058 CTR不支持不支持0.5910,900,501
分析結(jié)果可知,AES在圖像加密中的效率普遍高于DES,且兩種算法在CFB工作模式下,加密的效率遠(yuǎn)低于其他工作模式。
本文分析了DES算法與AES算法的加密原理,并實(shí)現(xiàn)了兩種算法在多種工作模式下對(duì)圖像的加密,進(jìn)一步探究了兩種加密算法在不同工作模式下的加密效率,最終得出AES的加密效率普遍比DES高,且CFB工作模式的加密效率遠(yuǎn)低于其他模式的結(jié)論。
AES算法不管從安全性還是加密效率上都要優(yōu)于DES算法,在不同的應(yīng)用場(chǎng)景下,在安全性與速度之間做出權(quán)衡,選擇合適的加密算法與工作模式是有重大意義的。
[1]蒙皓兵,路曉亞.DES算法分析[J].計(jì)算機(jī)安全, 2012.
[2]卜曉燕,張根耀,郭協(xié)潮.基于AES算法實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密[J].電子設(shè)計(jì)工程,2009.