圖像文件加密技術(shù)中演化硬件的應(yīng)用

系統(tǒng)中的演化硬件不僅可以自動搜索密鑰,而且配置好的演化硬件還可以在加密過程中繼續(xù)使用,硬件的重用性好。引入演化硬件還可以實現(xiàn)密鑰分散,使得密鑰空間增大。為此本文將演化硬件和細胞自動機加密結(jié)合起來,用FPGA對圖像進行加密。由于演化硬件足可配置的,所以它既可以作搜索密鑰的工具,也可以作為規(guī)則表的邏輯電路,密鑰更換時不需要更換硬件,增加了硬件的重用性。系統(tǒng)不僅加密速度快,而且實現(xiàn)了密鑰分散。使得加密的安全性得到了增強。

一、設(shè)計思想及設(shè)計實現(xiàn)

1、開發(fā)平臺

本文使用的FPGA是Xilinx公司生產(chǎn)的XC2VP30開發(fā)板,它的資源如表1所示。此外,XC2VP30還提供了XSGA、AC97、RS_232和PS_2等接口,方便輸入和輸出。XC2VP30還支持CF卡讀寫,用戶可以把要操作的數(shù)據(jù)文件如圖片、文檔等存在CF卡中,也可以把FPGA的配置文件存在CF卡中,使得FPGA斷電后重新啟動不必再從計算機下載配置文件。

XC2VP30中提供了兩個32位的RISC處理器Power-PC 405,它采用IP植入架構(gòu)的形式整合到XC2VP30器件中。XC2VP30還提供了一個軟核(MicroBlaze Processor),它的最高處理器頻率和總線頻率都是100MHz,而Power-PC的最高處理器頻率可達300MHz,本文實驗中使用了PowerPC 405作為處理器。

通過XILINX公司的EDK開發(fā)軟件,可以很方便她在Virtex-II Pro系列芯片上搭建自己需要的硬件系統(tǒng)。除了可以選擇軟核和硬核作處理器,總線有OPB和PLB兩種總線可供選擇。同時,EDK還免費提供了多個IP核供用戶使用,用戶也可以定制IP,通過EDK提供的IPic模塊可以方便地連接到系統(tǒng)中。

通過XILINX公司的SDK軟件,可以使用C或者C++編寫應(yīng)用程序。SDK提供了豐富的庫函數(shù)供用戶調(diào)用。在定制用戶艫時,系統(tǒng)可以生成與該IP相關(guān)的基本輸入輸出等函數(shù)供用戶調(diào)用。包含應(yīng)用軟件項目的XPS項目,最后需要連同硬件系統(tǒng)的.bit文件和軟件項目的.elf文件共同下載到FPGA中。

本文使用的系統(tǒng),MMA是自己的用戶IP,用VHDI,語言編寫,而遺傳算法和細胞自動機加密算法是用C語言編寫的應(yīng)用項目。

2、硬件系統(tǒng)

系統(tǒng)結(jié)構(gòu)如圖1所示。

由于采用了PowerPC作為處理器,系統(tǒng)有處理器局部總線PLB( Processor Local Bus,簡稱PLB)和片上外設(shè)總線OPB(On-Chip -Peripheral Bus,簡稱OPB)兩條總線。OPB總線連接一些低速和低性能設(shè)備,如UART和PS2。OPB總線不直接連接到處理器內(nèi)核,通過總線橋與PLB總線上的設(shè)備如內(nèi)核和存儲器聯(lián)系。而PLB總線用來連接一些高速的設(shè)備,如片內(nèi)存儲器BRAM(Block RAM)和雙向靜態(tài)存儲器DDR SDRAM。

由于FPGA的片上內(nèi)存有限,增加了一個512MB的內(nèi)存條,用來存放軟件項目的堆棧。

3、MMA

MMA是一個基本邏輯電路,是用戶定制的IP核,通過OPB總線IP核接口模塊(OPB IPIF)與OPB總線相連。它是一個可配置的函數(shù)級邏輯電路,功能與FPGA類似,但其結(jié)構(gòu)簡單,而且規(guī)模較小,可以通過遺傳算法快速求解。它由一些基本邏輯單元按一定的規(guī)則排列、連接而形成,如圖2所示。

每個基本邏輯單元有3個輸入和1個輸出,每個輸入和輸出都是邏輯值O或者1。每個基本邏輯單元的功能由它的函數(shù)類型(如表2)確定。

輸入和輸出線與其他單元的連線由單元的配置串決定,單元配置串的結(jié)構(gòu)如圖3所示。MMA每一列的輸入可以是前一列的輸出或者是第一列的輸入,如果MMA是mXn規(guī)模,單元配置串中每個輸人的位長是應(yīng)該滿足:2k-2<m≤2k-1,有9種函數(shù)類型,所以單元配置串中函數(shù)有4位,每個基本邏輯單元的配置串長為3k+4位,MMA的配置串總長為mXn×(3k+4)。

4、遺傳算法

對基本邏輯電路的演化是一件非常困難的事情,搜索空間指數(shù)級的擴大限制了演化硬件在更復雜問題求解中的應(yīng)用。針對演化硬件特殊的結(jié)構(gòu),對于大規(guī)模而且很復雜的問題可以采用如演化分解、染色體壓縮、增加基本邏輯單元的復雜性和問題分解等方法。

由于本文使用的基本邏輯電路規(guī)模較小,所以可使用簡單的遺傳算法,每個個體就是一個配置串。使用輪盤賭的選擇策略選擇進行遺傳操作的個體,變異概率為0.2,雜交概率為0.5,繁殖概率為0.3。種群規(guī)模為10,每次遺傳操作產(chǎn)生10個新個體作為下一代種群。

對于加密半徑為r的一維細胞自動機,有22r+1個規(guī)則項,對于每個規(guī)則項設(shè)其輸入為oi(O≤i≤22r+1)。有資料證明了當規(guī)則表中規(guī)則包含0、1狀態(tài)的比率為1/2時,生成l位密文序列時不確定度即熵最大。而且提出了一種構(gòu)造輸出序列熵最大化規(guī)則的方法,即將規(guī)則表的22r+l種領(lǐng)域狀態(tài)根據(jù)除sit+j位除外的2r位將狀態(tài)劃分為22r個狀態(tài)組,將每組的兩個狀態(tài)賦值為:

其中,當J=r時,為右反轉(zhuǎn)規(guī)則。本文根據(jù)此規(guī)則構(gòu)造的評價函數(shù)為:

5、加密算法流程

采用演化硬件對罔像加密分為兩個階段:

第一階段:密鑰演化。通過遺傳算法對基本邏輯電路進行演化,找到能使對于各輸入的輸出滿足右反轉(zhuǎn)規(guī)則的正確配置串。

(1)初始化。

(2)計算種群適應(yīng)值。

①用個體(配置串)配置邏輯電路。

②將規(guī)則表中的輸入項依次輸出到邏輯電路中,根據(jù)它們的輸出計算個體的適應(yīng)值。

(3)判斷是否找到了最優(yōu)解,即最優(yōu)個體的適應(yīng)值是否達到了最大適應(yīng)值ω(對于加密半徑為r的規(guī)則表,最大適應(yīng)值ω=22r)。如果找到了最優(yōu)解,那么將最優(yōu)解輸出,轉(zhuǎn)(5);否則,轉(zhuǎn)(4)。

(4)產(chǎn)生新種群,轉(zhuǎn)(2)。

(5)停止。密鑰演化階段結(jié)束。

第二階段:加密/解密。在加密/解密之前,需要用某種規(guī)則的配置串去配置基本邏輯電路MMA。對配置之后的MMA輸入規(guī)則項就可以得劍其對應(yīng)的規(guī)則。

本文使用的加密/解密算法是簡化的反向迭代加密技術(shù),該算法具有較大的密鑰空間和較簡單的硬件結(jié)構(gòu)。該方法通過循環(huán)移位進行數(shù)據(jù)加密,加密過程如圖4所示,將I0,I1,….I2r作為規(guī)則表的輸入項,輸入到配置好的邏輯電路中。將硬件輸出的結(jié)果,即規(guī)則項,與加密像素進行異或運算,用加密后的值I1'替換原來的值In,然后將整行像素值循環(huán)左移1位,取In',I0…,I2,1作為規(guī)則表的輸入項對In-1進行加密。對I0進行加密后,加密結(jié)束。加密順序為In,In-1,..,Io。解密時,需用與加密相同的密鑰和邏輯電路連接結(jié)構(gòu)和配置串對邏輯電路進行配置。解密與加密過程相反,解密過程如圖5所示,解密順序為Io,I1,…,In。

二、實驗結(jié)果和分析

1、演化效率

本文采用簡單遺傳算法對基本邏輯電路進行演化,遺傳算法的各參數(shù)見上文。每種問題都運行100次,取演化代數(shù)的平均值。通過10000代的運行時間,計算各問題每代的演化時間。對各種規(guī)模和輸入都是1輸出。

從表3中可以看出,當基本電路規(guī)模為8×8時,輸入越少其平均運行代數(shù)越小,而且每代運行時間也越短。這是因為計算適應(yīng)值時測試的數(shù)不同,對于5輸入,計算適應(yīng)值時,需要計算25-32個數(shù)的輸出,而對于7輸入,需要計算27= 128個數(shù)的輸出,每次評價過程7輸入問題都是5輸入問題4倍的運算量。但是,每代運行時間卻增加不到2倍,這說明運行的主要時間開銷不是在適應(yīng)值評價,而是在其他步驟。這種現(xiàn)象的原因是MMA是硬件電路,其運算速度比軟件的運行速度高。隨著電路規(guī)模的擴大和問題的復雜性增加,所需要的平均演化代數(shù)也在增加。

每種問題的最小運行代數(shù)均為1,這是由MMA的構(gòu)造引起的。例如,對于4X4的規(guī)模,3輸入的問題,當函數(shù)類型不為2~8(概率為7/16),而且第一個輸人為2(概率為1/16)時,得到的邏輯電路就滿足規(guī)則(概率為7/256)。還有其他的一些規(guī)則可以簡單地通過連接幾個基本邏輯單元實現(xiàn),所以很有可能在第一代就存在最優(yōu)個體。

雖然最小代數(shù)為1,但是最大代數(shù)是平均代數(shù)的10倍左右。這也是演化硬件固有的特點,其適應(yīng)值函數(shù)存在多個局部最優(yōu)解,搜索很容易陷入局部最優(yōu)。

由于電路規(guī)模小,而且輸入和輸出數(shù)目較少,所以遺傳算法很快找到了正確的配置串,成功率為100%。

2、加密效果

采用一維細胞自動機反向迭代加密,每一次循環(huán)迭代對一行像素進行加密。從圖6中可以看出,當半徑為0時,加密圖像中體現(xiàn)出了原始圖像的輪廓,而在加密半徑為1和2時,圖像已經(jīng)完全分辨不出。

從圖7中可以看出,原始圖像被很好地置亂。隨著加密半徑的增加,圖像的加密效果并沒有太多改進,但增加半徑會擴大密鑰空間。如果采用傳統(tǒng)的保存規(guī)則表的方法,隨著加密半徑的增加,保存空間按指數(shù)級增長。使用演化硬件,不僅加密速度快,而對于8X8的MMA。加密半徑為O、1、2、3時,硬件都不需要發(fā)生變化,重用性非常好。對加密后的圖像解密完整的可以得到原始圖像。

一般的加密算法都會通過多次迭代增強加密效果,采用細胞自動機加密,即使加密半徑很小,通過多次迭代也可以將圖像信息很好地置亂,如圖8所示。

演化硬件在現(xiàn)實中應(yīng)用的瓶頸就是隨著問題的規(guī)模的擴大,搜索空間急劇增長。但是,對于細胞自動機圖像加密問題,可以使用小規(guī)模的基本邏輯電路,通過多次迭代來解決加密半徑太小置亂效果差的問題。所以,演化硬件應(yīng)用于細胞自動機圖像加密很有實用價值。

3、安全性分析

半徑為r的系統(tǒng)共有S=22r+1種狀態(tài),每種狀態(tài)可對應(yīng)O、1兩種規(guī)則,所以有分種規(guī)則,滿足本文規(guī)則的密鑰也有2s門種。當r=3時,密鑰空間高達2的64次方≈1.844 7×10IP,而且會隨r的增加呈指數(shù)級增加,因此采用窮舉搜索2s/2密鑰是不可能的,即系統(tǒng)在計算上是安全的。

除密鑰空間大外,由于采用了演化硬件,使得密鑰分為多個部分,包括硬件電路的規(guī)模和連線結(jié)構(gòu),函數(shù)的類型和排列順序,電路配置串,每次加密的位數(shù),加密半徑等,不僅增加了密鑰空間,而且有效地實現(xiàn)了密鑰分散,單獨獲得任何一個或幾個信息都不能破譯密文,因此系統(tǒng)的安全性非常好。

小知識之演化硬件

演化硬件:EHW,是Evolution Hardware的縮寫,指的是仿照自然界中以碳為基的生物進化過程,有可能在現(xiàn)有的FPGA芯片基礎(chǔ)上實現(xiàn)可控的“硅基進化”。演化設(shè)計的主要實現(xiàn)方法是將電路的結(jié)構(gòu)、參數(shù)等項內(nèi)容作為染色體加以編碼并施加交叉、變異等演化操作。電路的輸人一輸出特性與預期結(jié)果的符合程度便作為該個體的適應(yīng)度,指導下一步的演化操作。如此反復,逐步通過計算找到符合要求的個體,即最終電路。因此,演化設(shè)計的結(jié)果是能夠?qū)呻娐沸酒锌芍嘏渲玫倪壿媶卧M行重配和組合,使得系統(tǒng)體系結(jié)構(gòu)、連接方式均可得以變更。從而,可以實現(xiàn)局部的功能調(diào)整,甚至予以整體上的重新設(shè)定。