◆李莉 劉夢
基于DNA編碼圖像加密系統(tǒng)的FPGA實現(xiàn)
◆李莉 劉夢
(北京電子科技學(xué)院電子與通信工程系 北京 100070)
圖像相比傳統(tǒng)文本蘊含更復(fù)雜和豐富的信息,圖像的廣泛應(yīng)用使得其對安全和隱私的需求也越來越高,如何實現(xiàn)圖像數(shù)據(jù)的安全傳輸和存儲一直是研究的熱點。本文基于DNA編碼,提出了一種將DNA計算和線性反饋移位寄存器相結(jié)合的圖像加密方案,使用線性反饋移位寄存器產(chǎn)生的隨機序列作為DNA計算過程中的選擇密鑰,實現(xiàn)對DNA計算的選擇,利用DNA計算的多樣性實現(xiàn)數(shù)據(jù)的加解密處理。設(shè)計在國產(chǎn)紫光同創(chuàng)PGL22G FPGA上進行了實現(xiàn),加密性能測試及統(tǒng)計分析結(jié)果顯示,此圖像加密系統(tǒng)硬件實現(xiàn)簡單、資源占用低,且具有良好的隨機性和安全性,加密效果良好。
圖像加密;DNA計算;國產(chǎn)FPGA
作為主流的多媒體形式,圖像相比于文本蘊含更多的信息。數(shù)字圖像的廣泛應(yīng)用使得其在傳輸、存儲上的安全愈來愈受到重視。圖像加密作為保護圖像數(shù)據(jù)安全和用戶隱私的一種方法,一直是研究的熱點。目前的圖像加密技術(shù)主要分為兩種,一是空域圖像加密技術(shù),對圖像數(shù)據(jù)直接進行加密運算操作,常見的方法有像素置亂、現(xiàn)代密碼體制的加密,如:DES、AES等;二是壓縮圖像加密技術(shù),將圖像數(shù)據(jù)使用某種壓縮格式或編碼技術(shù)進行加密,如JPEG編碼、算術(shù)編碼等。從實現(xiàn)方法上來說,又分為軟件實現(xiàn)和硬件實現(xiàn)兩種,硬件運算的快速性成了追求高用戶體驗的設(shè)計首選。本文利用DNA運算的多樣性和硬件實現(xiàn)的便利性,提出了一種將DNA編碼和線性反饋移位寄存器相結(jié)合的圖像加密方案,通過線性反饋移位寄存器產(chǎn)生的隨機序列作為DNA編碼過程中的選擇密鑰,利用DNA計算的多樣性實現(xiàn)數(shù)據(jù)的加解密處理,并對方案進行了性能分析。
數(shù)字圖像可以對應(yīng)為一個像素矩陣,矩陣的每個元素表示對應(yīng)位置像素點的像素值,數(shù)字圖像的加密即是對矩陣元素的處理。最典型的空域圖像加密算法是Arnold置亂算法,它將圖像的像素信息按照一定規(guī)律打亂,從而實現(xiàn)圖像的加密。由于只改變像素的位置,像素的灰度分布不變,單純的像素置亂并不能起到良好的加密效果,而且隨著迭代次數(shù)的增加,經(jīng)過一定次數(shù)的置亂之后又會恢復(fù)到原始圖像,因此需要將像素置亂與其他的安全性方案一同進行。文獻[1]提出了一種基于整體置亂的并行加密方法,將明文圖像進行子圖像劃分、打亂并利用兩個混沌系統(tǒng)的狀態(tài)組合來改變圖像的像素值,此方案具有良好的敏感性和安全性,子圖像劃分有效的混淆了明文圖像中像素位置并削弱相鄰像素之間的相關(guān)性,而混沌系統(tǒng)產(chǎn)生的混沌序列具有隨機性強、對初始值和參數(shù)敏感等特點,非常適合應(yīng)用于圖像加密算法。但是該方案也存在子圖像劃分數(shù)量受限,以及混沌系統(tǒng)固有的不足。
現(xiàn)代密碼體制的加密算法將圖像信息當(dāng)作明文進行加密,接收方可用事先約定好的密鑰對加密數(shù)據(jù)進行解密。文獻[4]提出了一種將置亂和優(yōu)化的RSA相結(jié)合的圖像加密算法,文獻[5]提出了利用混沌序列對傳統(tǒng)DES算法改進的加密方案,但由于密鑰長度短、密鑰空間小,容易受到窮舉攻擊和差分分析攻擊。算術(shù)編碼對數(shù)據(jù)的處理具有很好的壓縮效率,在實現(xiàn)完整加密的同時可以解決由于圖像數(shù)據(jù)量龐大、冗余度高帶來的計算時資源占用大的問題。但算術(shù)編碼實現(xiàn)的困難之處在于算術(shù)編碼的數(shù)據(jù)字符的統(tǒng)計很復(fù)雜且需要不斷更新,給數(shù)據(jù)建模、保存帶來了很大的問題,且編碼器和譯碼器在數(shù)據(jù)更新時需要同步。
基于混沌序列的圖像加密算法在圖像加密領(lǐng)域十分普遍,混沌系統(tǒng)對初始值和參數(shù)的敏感性可以很好滿足密碼學(xué)中要求的密鑰敏感性,并且盡管混沌系統(tǒng)運動軌跡隨機、錯綜復(fù)雜、無法進行預(yù)測,但始終處于有限區(qū)域內(nèi),而且在具有內(nèi)在隨機性的同時也可以通過控制系統(tǒng)參數(shù)與初值來確定運動軌跡。但存在一維混沌映射密鑰空間小、安全性差,多維混沌映射要多輪置亂和擴散,時間消耗量大的問題。文獻[2]提出了一種組合不同的一維映射構(gòu)成混合混沌函數(shù),并同時提出了一種優(yōu)化S-box和產(chǎn)生動態(tài)密鑰的加密方案,通過混沌系統(tǒng)的迭代產(chǎn)生的向量對S盒進行了優(yōu)化用于加密置換,在實現(xiàn)速度上表現(xiàn)了較好性能,但是運算復(fù)雜度相對高。文獻[3]提出了一種基于四元數(shù)的圖像加密算法,以32個四元數(shù)為基礎(chǔ),即32×4的塊來處理圖像。由于四元數(shù)僅包含四個數(shù),相比于矩陣和歐拉角要簡便得多,因此算法運行速度較快,運算復(fù)雜度較低,但四元數(shù)的使用要求極為苛刻,輸入數(shù)據(jù)錯誤或者存在誤差都有可能造成四元數(shù)不合法。
在DNA計算加密方面,文獻[6]提出了混沌系統(tǒng)和DNA編碼結(jié)合的圖像加密方案,文獻[7]提出了基于DNA編碼的多圖像加密算法,DNA密碼學(xué)利用其特有的多種編碼選擇的特征對數(shù)據(jù)進行加密存儲,可保證信息的安全傳輸。但存在單獨使用DNA編碼安全性低的問題,結(jié)合混沌序列可以解決這一問題,但混沌系統(tǒng)在硬件實現(xiàn)中存在低級混沌系統(tǒng)效果不好而高級混沌系統(tǒng)需要較長的前置時間的問題。
DNA分子有四種含氮堿基(脫氧核苷酸):腺嘌呤(A)、鳥嘌呤(G)、胞嘧啶(C)、胸腺嘧啶(T),DNA的雙鏈螺旋結(jié)構(gòu)意味著一條核苷酸鏈上的含氮堿基必須與另一條核苷酸鏈上的堿基以某種方式相對應(yīng),其中A與T、C與G間存在互補配對關(guān)系。利用二進制數(shù)中0和1間的互補特性來契合DNA的堿基互補配對原則,即可完美的描述DNA計算相關(guān)內(nèi)容[8]。DNA計算包含了DNA編碼、DNA替換、DNA異或計算和DNA解碼幾部分,每部分均有多種方式可以選擇,所以DNA計算具有更大的選擇性和操作性。
結(jié)合DNA四種含氮堿基的互補原則和二進制中的0、1特性,可以使用兩位二進制數(shù)來對應(yīng)一種含氮堿基,實現(xiàn)二進制數(shù)和四種含氮堿基之間的一一對應(yīng)。在DNA中,腺嘌呤A對應(yīng)胸腺嘧啶T,鳥嘌呤C對應(yīng)胞嘧啶G,兩位二進制中00和11視為互補,01和10視為互補,用四組二進制來對應(yīng)四種含氮堿基,共有24種方案,其中有8種方案滿足互補條件[9],如表1所示。據(jù)此,可將數(shù)字圖像的像素編碼成含有4個含氮堿基的DNA序列。例如像素為156的像素點,其二進制表示為10011100,若采用堿基編碼方式1,可知對應(yīng)的DNA堿基序列為CGTA;若將CGTA按照堿基編碼方式3來解碼,可得二進制數(shù)11001001,像素發(fā)生了變化,由156變?yōu)榱?11。
表1 DNA堿基編碼方式
DNA堿基替換是為了打亂編碼后的DNA序列,具體的DNA替換方式如表2所示,A→T→C→G→A表示將編碼后序列中的A用T替換,T用C替換,C用G替換,G用A替換,任意確定一個起始項,例如以堿基A為起點,剩下三個堿基不重復(fù)出現(xiàn)的排列順序有6種。
表2 DNA 堿基替換方式
對應(yīng)于DNA的8種不同的堿基編碼方式,存在8種不同的加減法運算和異或運算方式。本文設(shè)計中使用到了DNA序列的堿基異或運算,以編碼方式1為例,DNA堿基異或運算規(guī)則如表3所示。
表3 DNA堿基異或運算規(guī)則(編碼方式1)
本文設(shè)計的加密系統(tǒng)采用DNA編碼結(jié)合LFSR所產(chǎn)生的隨機序列作為選擇密鑰進行加密的方案,系統(tǒng)結(jié)構(gòu)如圖1所示,由四部分組成:選擇密鑰生成模塊、編碼模塊、加密替換模塊、運算模塊和解碼模塊。其中LFSR用于生成選擇密鑰,LFSR具有電路簡單,易于硬件實現(xiàn)的特點,可以產(chǎn)生周期性良好、數(shù)據(jù)量足夠大的隨機序列,生成的選擇密鑰便于實時更新,比較適合用來進行圖像加密中DNA計算的選擇。在加密過程中,每個8bit像素根據(jù)選擇密鑰編碼為4個堿基序列,進行DNA計算。由于每個堿基為2bit,即DNA計算是對2bit二進制數(shù)的操作,可以通過并行處理的方式一次對四組數(shù)據(jù)進行同時處理,實現(xiàn)一次處理一個像素的操作。
圖1 圖像加密系統(tǒng)框圖
由于DNA計算中的編碼、替換、運算、解碼不止一種工作方式,為了使得加密具有安全性,針對不同的像素采用隨機且不同的工作方式進行處理。工作方式的選擇由選擇密鑰完成,選擇密鑰的產(chǎn)生需要滿足如下條件:(1)選擇密鑰需要不斷的更新變化,保證每次運算的選擇密鑰不同。(2)選擇密鑰的產(chǎn)生要具有良好的隨機性。(3)選擇密鑰的數(shù)量要足夠多,保證每個數(shù)據(jù)使用的加密都是各不相同的。
綜合考慮編碼、替換、運算、解碼這幾種處理的工作方式,編碼有8種工作方式,替換有6種工作方式,運算和解碼都是在編碼的基礎(chǔ)上進行的,也有8種處理方式,因此選擇密鑰的長度設(shè)定為3bit。這里選擇使用32級斐波那契LFSR(異或門外接型LFSR)來進行選擇密鑰的生成,這種電路構(gòu)造簡單,運行速度只與移位單元和異或單元的延遲時間有關(guān),因此具有較高的運行速度[10-11]。由于斐波那契LFSR每次計算更新的是最低位的數(shù)據(jù),為了避免初始種子對選擇密鑰帶來的影響,同時又不浪費處理初始種子長度數(shù)據(jù)的時間,將選擇密鑰設(shè)定為每一次線性反饋移位寄存器更新的第三位數(shù)據(jù),既保證了選擇密鑰的隨機性,又保證了選擇密鑰的實時更新變化的性質(zhì)。
編碼模塊的作用是將輸入的兩位二進制通過編碼來轉(zhuǎn)換成A、T、C、G構(gòu)成的堿基序列,對于DNA的8種編碼方式,使用000~111共8組二進制數(shù)來進行選擇,在每一種選擇下的編碼方式都不同,具體如表1所示。如若輸入信號為00,當(dāng)選擇密鑰為000時,編碼結(jié)果為A;當(dāng)選擇密鑰為010時,編碼結(jié)果為G;當(dāng)選擇密鑰為101時,編碼結(jié)果為C;當(dāng)選擇密鑰為110時,編碼結(jié)果為T。編碼模塊的具體構(gòu)造框圖如圖2所示。
圖2 編碼模塊結(jié)構(gòu)框圖
加密替換模塊的功能是將編碼模塊輸出的DNA堿基序列再一次的順序打亂。對于替換存在的6種方式,使用3bit選擇密鑰進行選擇。例如:當(dāng)選擇密鑰為000時,那么當(dāng)輸入信號為A時,將其替換結(jié)果輸出為T;那么當(dāng)輸入信號為T時,將其替換結(jié)果輸出為G;那么當(dāng)輸入信號為G時,將其替換結(jié)果輸出為C;那么當(dāng)輸入信號為C時,將其替換結(jié)果輸出為A;加密替換模塊的具體構(gòu)造框圖如圖3所示。
圖3 加密替換模塊結(jié)構(gòu)框圖
運算模塊將加密替換操作后產(chǎn)生的DNA堿基序列打亂后的運算,一個像素的8bit數(shù)據(jù)對應(yīng)為4個DNA堿基,保持一位不變,其余三位均與不變的堿基進行異或運算處理,由于DNA的異或運算是基于DNA編碼操作的,所以DNA異或運算也就有8種方式,使用000~111共8組二進制進行選擇,例如:選擇密鑰為000時,兩組輸入信號為AA、TT、CC、GG時,將其運算結(jié)果輸出為A;兩組輸入信號為AT時,將其運算結(jié)果輸出為T;兩組輸入信號為AG時,將其運算結(jié)果輸出為G;兩組輸入信號為AC時,將其運算結(jié)果輸出為C;兩組輸入信號為CT時,將其運算結(jié)果輸出為G;兩組輸入信號為CG時,將其運算結(jié)果輸出為T;兩組輸入信號為GT時,將其運算結(jié)果輸出為C;運算模塊的具體構(gòu)造框圖如圖4所示。
圖4 運算模塊結(jié)構(gòu)框圖
解碼模塊將運算模塊輸出的DNA堿基序列轉(zhuǎn)換為二進制數(shù)據(jù),其原理為編碼操作的逆處理,具體構(gòu)造如圖2,將編碼運算改為解碼運算即可。對應(yīng)于DNA的8種編碼方式,同樣也有8種解碼方式,使用選擇密鑰進行選擇,在每一種選擇下的解碼方式都不同,例如:選擇密鑰為000時,那么當(dāng)輸入信號為A時,將其解碼結(jié)果輸出為00;那么當(dāng)輸入信號為T時,將其解碼結(jié)果輸出為11;那么當(dāng)輸入信號為C時,將其解碼結(jié)果輸出為10;那么當(dāng)輸入信號為G時,將其解碼結(jié)果輸出為01。
加密操作逆序即可實現(xiàn)解密。唯一不同的是加密模塊和解密模塊中的替換模塊在條件選擇下的輸入和輸出的對應(yīng)關(guān)系不同,例如;當(dāng)選擇密鑰為000時,在加密替換模塊中,輸入信號為A時,產(chǎn)生的輸出信號為T;而在解密替換模塊中,輸入信號為A時,產(chǎn)生的輸出信號為C,具體對比關(guān)系如表4所示。
表4 加密替換和解密替換輸入輸出對比
該圖像加密系統(tǒng)基于紫光同創(chuàng)Logos系列PGL22G FPGA開發(fā)板開發(fā),采用 Verilog HDL語言,操作系統(tǒng):Windows10,開發(fā)工具:Pango Design Suite、matlab R2016a。選擇標(biāo)準測試圖像lena.jpg,編碼密鑰和解碼密鑰均為32bit。系統(tǒng)實現(xiàn)效果如圖5所示。
圖5 圖像加密系統(tǒng)實現(xiàn)效果
(1)直方圖統(tǒng)計
灰度直方圖描述一幅圖像中不同灰度級的像素出現(xiàn)的頻率,據(jù)圖6所示,加密處理后圖像的R、G、B三個分量的灰度直方圖分布均勻,表明方案具有良好的統(tǒng)計分析的能力。
圖6 直方圖分析
(2)相鄰像素相關(guān)性分析
相鄰像素具有較強相關(guān)性是圖像最大的特點,也反映了圖像像素的隨機性強弱。本文所設(shè)計的圖像加密后的相鄰像素相關(guān)性如圖7、表5所示。
表5 圖像相鄰像素相關(guān)性分析表
(3)信息熵
表6 加密圖像信息熵分析
加密系統(tǒng)是否安全最基本的特點就是要有足夠大的密鑰空間,而DNA計算與之相比增加了算法本身的多選擇性:DNA編碼具有8種方式、替換具有6種方式、運算具有8種方式、解碼具有8種方式,對于一個像素來說,理論上每一個像素都具有的加密情況就具有3072種,32bit的密鑰具有264的密鑰空間,因此本文設(shè)計的圖像加密系統(tǒng)具有很好的可以抵御暴力破解攻擊的能力。
理論分析上DNA加密只需要包括數(shù)據(jù)處理、編碼、替換、計算、解碼在內(nèi)的五個周期即可完成,且在硬件實現(xiàn)上,每個周期的運算以查表為主,處理數(shù)據(jù)方式簡單,具有輕計算量的優(yōu)勢。采取對4000組8bit數(shù)據(jù)進行測試,硬件處理時間對比如表6所示,兩組方案在PGL22G FPGA上的資源占用情況如表7所示??梢姳舅惴梢栽谳^少的資源占用情況下,達到理想的運算處理速度。
表7 兩組加密算法的硬件處理時間對比
表8 資源占用及速度對比
本文基于線性反饋移位寄存器和DNA編碼設(shè)計實現(xiàn)了一種圖像加密的硬件實現(xiàn)方案,將線性反饋移位寄存器產(chǎn)生的偽隨機序列來作為選擇密鑰,應(yīng)用于DNA編碼、替換、運算、解碼的各個環(huán)節(jié),控制DNA序列計算完成圖像數(shù)據(jù)的加解密,增加了算法加密過程的隨機性。性能測試及統(tǒng)計分析表明此圖像加密系統(tǒng)具有良好的隨機性和安全性,加密效果良好。由于本文并未對DNA算法的硬件實現(xiàn)做進一步的優(yōu)化,所以在其運算耗時上,還有較大的改進空間。
[1]Omid Mirzaei,Mahdi Yaghoobi,Hassan Irani. A new image encryption method: parallel sub-image encryption with hyper chaos[J]. Springer Netherlands,2012,67(1).
[2]M. A. Ben Farah,A. Farah,T. Farah. An image encryption scheme based on a new hybrid chaotic map and optimized substitution box[J]. Nonlinear Dynamics,2019(prepublish).
[3]Mohamed Boussif,Noureddine Aloui,Adnene Cherif. Images encryption algorithm ba-sed on the quaternion multiplication and the XOR operation[J]. Multimedia Tools and Applications,2019,78(24).
[4]楊洋,楊潔,馮久超.一種基于Arnold置亂和優(yōu)化大素數(shù)選取方案的RSA數(shù)字圖像加密算法[J].計算機科學(xué),2013,40(S2):178-180.
[5]湯任君,段競哲,鄧洪敏.Logistic混沌序列和DES算法的圖像加密方法[J].計算機應(yīng)用,2017,37(S1):89-92.
[6]胡裴龍. 基于混沌理論與DNA編碼的圖像加密算法研究[D].安徽大學(xué),2018.
[7]孫鶴鵬,張曉強.基于DNA編碼的多圖像加密算法[J].計算機工程與設(shè)計,2018,39(10):3050-3054+3099.
[8]霍家佳,張文政.DNA密碼與DNA計算及應(yīng)用[J].中國電子科學(xué)研究院學(xué)報,2014,9(01):17-21.
[9]張勛才,劉奕杉,崔光照.基于DNA編碼和超混沌系統(tǒng)的圖像加密算法[J].計算機應(yīng)用研究,2019,36(04):1139-1143.
[10]潘曉英.基于線性反饋移位寄存器和分組密碼的偽隨機數(shù)生成方法[J].通信技術(shù),2015,48(02):228-231.
[11]郝洪偉.基于FPGA的Leap-forward型線性反饋移位寄存器在偽隨機序列算法中的應(yīng)用[J].控制與信息技術(shù),2018(02):56-60.
北京市共建項目專項資助