龐 宇,魏 東,王俊超
(1.重慶郵電大學(xué) 光電信息感測與信息傳輸實驗室 重慶 400065;2.重慶大學(xué) 微電子與通信工程學(xué)院,重慶 400044)
目前,互聯(lián)網(wǎng)技術(shù)的快速發(fā)展使電子醫(yī)療變得便捷可行和普遍流行。電子醫(yī)療提供了一種基于互聯(lián)網(wǎng)系統(tǒng)的遠(yuǎn)程、在線就醫(yī)技術(shù)。患者可以聯(lián)系專家醫(yī)生進(jìn)行在線診斷。在線就醫(yī)過程中,一些涉及患者隱私的醫(yī)學(xué)圖像數(shù)據(jù)需要通過互聯(lián)網(wǎng)存儲和傳輸,在此過程中可能會面臨數(shù)據(jù)泄露問題。而數(shù)據(jù)加密是避免醫(yī)學(xué)圖像數(shù)據(jù)泄露、保護(hù)隱私的最佳方法。與普通圖像相比,醫(yī)學(xué)圖像具有的冗余、數(shù)據(jù)量大、像素相關(guān)性大等特點[1?2],使得類似于AES 等傳統(tǒng)的加密技術(shù)對醫(yī)學(xué)圖像這類特殊格式數(shù)據(jù)的加密效率低下[3]。醫(yī)學(xué)圖像加密算法不僅需要很高的安全性,還需要可觀的加密速度。
基于混沌算法的偽隨機(jī)數(shù)生成器(Pseudo Random Number Generator,PRNG)生成的偽隨機(jī)序列對初始值極度敏感、周期長、密鑰空間大,與其他數(shù)據(jù)序列相比在安全性上具有明顯的優(yōu)勢,用于醫(yī)學(xué)圖像加密具有很可觀的加密效果[4]。除了算法嚴(yán)格性外,一種有效的加密系統(tǒng)實現(xiàn)技術(shù)可保證加密的速度得到提升。而硬件實現(xiàn)的方式在能夠滿足應(yīng)用實時性的同時又可以防止運行算法的攻擊[5]?,F(xiàn)場可編程邏輯器件(Field -Programmable Gate Array,F(xiàn)PGA)以其高并行、可定制、能重構(gòu)、低成本等特點十分適合于混沌加密算法的硬件實現(xiàn)[6]。
為了解決上述算法在實際醫(yī)學(xué)圖像加密應(yīng)用中存在的問題,本文提出一種基于Logistic 映射浮點運算的偽隨機(jī)序列生成方法用于加密醫(yī)學(xué)圖像從而達(dá)到提高加密強(qiáng)度的目的??紤]到加密實時性,在FPGA 上實現(xiàn)加密系統(tǒng)?;煦缬成湓谟行ПWC加密隨機(jī)性的同時,浮點運算能顯著提升加密精度,擴(kuò)大密鑰空間。并對硬件加密系統(tǒng)進(jìn)行穩(wěn)定性測試,以及對密圖數(shù)據(jù)進(jìn)行統(tǒng)計分析,驗證了算法的有效性以及硬件加密系統(tǒng)的穩(wěn)定性。
將醫(yī)學(xué)圖像數(shù)據(jù)輸入到加密系統(tǒng)中,與PRNG 生成的偽隨機(jī)數(shù)異或得到加密圖像或原圖數(shù)據(jù)。整個加密系統(tǒng)架構(gòu)如圖1 所示,加密的關(guān)鍵在于PRNG 的設(shè)計。
圖1 加密系統(tǒng)框架圖
本文選擇Logistic 映射作為混沌序列迭代算法,該算法結(jié)構(gòu)簡單,隨機(jī)性好。方程式定義如式(1)所示:
式中,當(dāng)控制參數(shù)μ∈[0,4],可保證迭代值Xn∈[0,1]。隨著μ值增大,系統(tǒng)出現(xiàn)不同的動力學(xué)行為,越接近于4[15],迭代值在[0,1]之內(nèi)分布越均勻。
數(shù)字計算機(jī)使用二進(jìn)制數(shù)來表示數(shù)字,對于實數(shù),有定點和浮點兩種表示格式。浮點格式較之定點格式有更為寬廣的動態(tài)范圍,可以不用考慮數(shù)據(jù)的溢出和量化問題,因而可以縮短復(fù)雜算法的研發(fā)周期,與混沌系統(tǒng)結(jié)合可擴(kuò)大混沌序列空間。
IEEE-754 標(biāo)準(zhǔn)定義了單精度(FP32)和雙精度(FP64)兩種浮點格式[16],并將浮點數(shù)劃分為符號位S、指數(shù)位E和尾數(shù)位F 三部分,各部分位數(shù)如表1 所示[17]。
表1 IEEE 754 標(biāo)準(zhǔn)浮點格式
在此文中設(shè)計了雙精度浮點數(shù)運算迭代混沌序列可得到更高的精度。十進(jìn)制μ和Xn用IEEE-754 表示:
其中:{Δx(i),Δy(i),Δθ(i)}來自里程計的觀測值,{Ωx(i),Ωy(i),Ωθ(i)}是傳感器噪聲。
式(2)、式(3)中Bias 為指數(shù)偏移量,十進(jìn)制表示為:則雙精度指數(shù)偏移量為1 023。
混沌迭代過程涉及浮點數(shù)的減法和乘法運算模塊,運算方程分別如下:
其中:m=(-1)S× (1.f)。
為生成高質(zhì)量的加密密鑰,提出一種基于浮點數(shù)的PRNG 框架,如圖2 所示,包括初始密鑰輸入、浮點混沌系統(tǒng)、隨機(jī)序列量化三大模塊。
圖2 基于浮點數(shù)的PRNG 框架
初始密鑰X0范圍在(0,1)之間,雙精度浮點格式表示在(0,3FF0000000000000) 之間。浮點混沌系統(tǒng)首先接收初始密鑰,利用Logistic 混沌算法結(jié)合浮點運算迭代出浮點數(shù)格式的混沌偽隨機(jī)序列Xn。利用閾值量化法將混沌隨機(jī)序列Xn量化為單比特數(shù)據(jù)Sn(0,1),具體量化方法是指將Xn與3FF0000000000000 比較,若大于此值則將Xn量化為1,否則為0。這種量化方式可有效繼承原有序列的相關(guān)特性,并且量化后的輸出結(jié)果難以推斷出最初的混沌序列,可以提高安全性。
在本文,所提出的基于FPGA 的加密系統(tǒng)流程如圖3 所示。整個硬件加密系統(tǒng)在Altera 公司Cyclone IV EP4CE115F29C7N 開發(fā)平臺上設(shè)計、綜合以及驗證。加密系統(tǒng)的硬件資源使用情況如表2 所示。初始密鑰以及醫(yī)學(xué)圖像數(shù)據(jù)通過UART 串口通信模塊依次進(jìn)行傳輸。使能Load 以及復(fù)位后,初始密鑰key_loaded[63∶0]通過Uart_rx 端口傳輸?shù)絇RNG 模塊。在Logistic_Control 控制模塊作用下PRNG 迭代出用于加密的密鑰Xor_byte[7∶0],再與醫(yī)學(xué)圖像數(shù)據(jù)Image[7∶0]進(jìn)行異或加密,得到密圖數(shù)據(jù)Enc_Image[7∶0],并通過Uart_tx 發(fā)送出密圖數(shù)據(jù)到PC。
表2 FPGA 硬件資源使用
圖3 基于FPGA 的加密系統(tǒng)流程圖
為了驗證加密系統(tǒng)的可行性,用512×512 的Lena 灰色圖像數(shù)據(jù),在Altera 公司Cyclone IV EP4CE115F29C7 N 開發(fā)平臺上進(jìn)行加、解密。設(shè)置加密系統(tǒng)參數(shù)μ=64'h4010000000000000(4.0),
初始密鑰X0=64'h3FB999999999999A(0.1)。原圖像、加密圖像以及解密圖像如圖4 所示。結(jié)果顯示無法從密圖中識別出任何原圖像信息。解密圖像能夠恢復(fù)明文信息。
圖4 基于FPGA 的Logistic 混沌浮點加密過程
密鑰敏感性表征了密碼系統(tǒng)的安全性能。解密時,密鑰微小變動便無法解密密文圖像。為了檢驗加密系統(tǒng)的密鑰敏感性能,對圖像數(shù)據(jù)進(jìn)行加密,研究在初始密鑰上翻轉(zhuǎn)一位,進(jìn)行解密的效果。式(1)數(shù)據(jù)來源于將式(2)正確初始密鑰數(shù)據(jù)尾數(shù)的第1 bit 翻轉(zhuǎn)。式(3)將式(2)正確初始密鑰數(shù)據(jù)尾數(shù)最后1 bit 翻轉(zhuǎn)。分別將式(1)(2)(3)數(shù)據(jù)作為解密的初始密鑰,對密圖進(jìn)行解密。解密效果如圖5 所示。結(jié)果表明密鑰僅改變1 bit便不能正確解密,十分敏感。
圖5 初始密鑰翻轉(zhuǎn)1 位解密過程
3.2.1 灰度直方圖
圖像的灰度直方圖可以直觀地顯示每個灰度像素的統(tǒng)計特征[13]。從原圖的灰度直方圖可以很清晰看出圖像像素值的統(tǒng)計特征。攻擊者可以很輕易地從非均勻直方圖中獲取原圖統(tǒng)計信息。而一種安全加密算法能夠破壞原圖像素值的統(tǒng)計關(guān)系,得到均勻分布的直方圖,攻擊者就難以從密圖統(tǒng)計信息中獲取原圖相關(guān)信息。圖6 測試了幾組原始圖像以及基于本文算法加密后密圖的灰度直方圖。經(jīng)過對比驗證了圖像經(jīng)過加密系統(tǒng)加密后灰度值分布無規(guī)律可循,加密性能良好。
3.2.2 相鄰像素點相關(guān)性分析
為了進(jìn)一步分析圖像加密的效果,定性分析了圖像原圖與經(jīng)過加密系統(tǒng)加密后的密圖的相鄰像素值,如圖6 所示。圖6 表明原圖的兩個相鄰像素間存在極高的相關(guān)性。密圖的像素值分布雜亂,相關(guān)性較低。也可用相關(guān)系數(shù)定量分析圖像相鄰像素的相關(guān)性,相關(guān)系數(shù)的計算過程如下:
圖6 各類圖像加密前后灰度直方圖
圖7 Lena 圖像加密前后相鄰像素值分布
式中x、y是一對相鄰像素值,E(x) 是平均值,D(x) 是平均方差,rxy代表相關(guān)系數(shù),其值區(qū)間在[-1,1]之間。相關(guān)系數(shù)絕對值越低,加密效果越好。在表3 中將Lena 原始圖像和經(jīng)過本文算法加密后的圖像從水平、垂直以及對角線三個方向上進(jìn)行了相鄰像素相關(guān)性系數(shù)計算,并與當(dāng)前一些圖像加密算法加密后相關(guān)系數(shù)計算結(jié)果進(jìn)行了比較??梢钥闯鰣D像加密前相關(guān)系數(shù)較高,接近于1,加密后圖像相關(guān)系數(shù)很低,接近于0。
表3 圖像的相鄰像素相關(guān)系數(shù)
信息熵反映了信息的不確定性。圖像信息熵可以用來衡量加密后的圖像的混亂程度,從而判斷加密效果。信息熵的計算方法如下。
式中pi表示i發(fā)生的概率,對于灰度為256 的圖像,信息熵越接近8,則它越接近隨機(jī)圖像。經(jīng)過計算,表4 列出了本文Lena 密圖的信息熵以及一些經(jīng)過最新的圖像加密算法加密后的密圖的信息熵的對比。結(jié)果表明,基于本文算法計算的信息熵優(yōu)于其他算法的信息熵。本文算法加密后的圖像能有效降低成功攻擊的幾率。
表4 不同算法加密Lena 后的信息熵
本文提出了將Logistic 混沌浮點運算作為基本隨機(jī)序列迭代算法用于圖像加密。在ED2-115 硬件平臺上使用硬件描述語言Verilog 設(shè)計了基于上述算法的圖像數(shù)據(jù)加解密系統(tǒng),包括雙精度浮點數(shù)運算。以Lena 標(biāo)準(zhǔn)測試圖為例,對FPGA 硬件系統(tǒng)加密后的Lena 密圖作安全性分析,實驗驗證了密圖相鄰像素相關(guān)性極低,信息熵達(dá)到7.999 3,接近于一幅隨機(jī)圖像,優(yōu)于當(dāng)前一些加密算法。并且整個FPGA 密碼系統(tǒng)有較好的密鑰敏感性以及系統(tǒng)穩(wěn)定性。