王宛平,李 冰
(1.河南質(zhì)量工程職業(yè)學(xué)院現(xiàn)教中心,河南 平頂山 467000;2.平頂山學(xué)院,河南 平頂山 467000)
隨著多媒體技術(shù)及因特網(wǎng)的發(fā)展,數(shù)字圖像在互聯(lián)網(wǎng)中的收發(fā)越來(lái)越頻繁,其存儲(chǔ)總量也越來(lái)越多[1-2]。近年來(lái),一些針對(duì)數(shù)據(jù)云中心的網(wǎng)絡(luò)攻擊造成了一系列嚴(yán)重的損失,因此高價(jià)值數(shù)字圖像在數(shù)據(jù)云中心的安全存儲(chǔ)問(wèn)題引發(fā)了廣泛關(guān)注。針對(duì)這一問(wèn)題,研究者們提出了一系列的解決方案。在圖像抗破譯方面,研究者們提出了圖像加密[3-4]、圖像隱寫[5-6]等技術(shù)。在圖像的抗破壞方面,研究者們提出了圖像分布式存儲(chǔ)[7],圖像秘密共享[8-9]等技術(shù)。
由于混沌映射對(duì)初始迭代值及系統(tǒng)參數(shù)的高度敏感性與圖像加密算法所要求的高度密鑰敏感性不謀而合,因此各種基于混沌映射的圖像加密算法在實(shí)際中應(yīng)用最為廣泛。在現(xiàn)實(shí)場(chǎng)景中,為了避免存儲(chǔ)設(shè)備的偶發(fā)故障而導(dǎo)致的圖像數(shù)據(jù)丟失,圖像的分布式備份存儲(chǔ)是一種常用的手段。但這種冗余手段也會(huì)增加圖像被竊取、篡改的風(fēng)險(xiǎn)。有鑒于此,部分研究者提出了(k,n)門限圖像秘密分享技術(shù),將圖片通過(guò)秘密分享技術(shù)拆分成n份,任意k份便可以完整恢復(fù)出原始圖像,但少于k份則不能得到任何原始圖像中的有用信息。這種特性完美地解決了圖像分布式存儲(chǔ)的安全問(wèn)題,因此得到了廣泛應(yīng)用。
為同時(shí)提高圖像的抗破譯能力和抗破壞能力,本文設(shè)計(jì)了一種新型的圖像加密-秘密分享算法,在算法中,基于2D-CMCM的圖像加密算法和基于拉格朗日插值的(k,n)門限秘密分享算法被合并使用,同時(shí),在圖像加密環(huán)節(jié),本文通過(guò)已加密像素點(diǎn)參與加密新像素點(diǎn)的方式使算法具有了明文相關(guān)特性,這種特性進(jìn)一步提升了算法的安全性。在安全性分析中,本文所提出算法顯示出了高度的抗攻擊性;在可逆性分析中,通過(guò)秘密分享產(chǎn)生的秘密子圖被證實(shí)可以實(shí)現(xiàn)原始圖像的無(wú)損重構(gòu);在執(zhí)行效率測(cè)試實(shí)驗(yàn)中,本文所提出的算法的高執(zhí)行效率也得到了驗(yàn)證。經(jīng)過(guò)一系列實(shí)驗(yàn),本文所提出算法的高度實(shí)用性得到了證實(shí)。
文獻(xiàn)[10]通過(guò)合并混沌映射串聯(lián)架構(gòu)[11]和混沌映射閉環(huán)耦合架構(gòu)[12],提出了一種新型的串聯(lián)調(diào)制耦合架構(gòu)(Cascade modulation couple module,CMC)。該架構(gòu)如公式(1)所示。
(1)
其中:f為一個(gè)線性映射函數(shù),G,F分別為一個(gè)一維混沌映射。序列X={xi,i=0,1,2,…}和序列Y={yi,i=0,1,2,…}為該混沌映射架構(gòu)所生成的兩個(gè)混沌序列。k∈(0,+)為調(diào)制耦合參數(shù)。在該架構(gòu)中,映射G的輸出通過(guò)線性函數(shù)f進(jìn)行調(diào)制,調(diào)制之后的輸出作為混沌映射F的輸入,其在各個(gè)階段的輸出構(gòu)成混沌隨機(jī)數(shù)序列。
Logistic映射[13]和無(wú)限折疊迭代混沌映射[14](Iterative chaotic map with infinite collapse,ICMIC)因優(yōu)良的混沌性能,在密碼學(xué)的各項(xiàng)應(yīng)用中被廣泛采用。這兩個(gè)一維混沌映射的數(shù)學(xué)定義如公式(2)和(3)所示。
xi+1=αxi(1-xi),
(2)
(3)
其中:α和c均為系統(tǒng)參數(shù)。當(dāng)滿足α∈(0,4]時(shí)Logistic映射處于混沌狀態(tài),當(dāng)滿足c∈(0,+)時(shí)ICMIC處于混沌狀態(tài)。在文獻(xiàn)[10]中,線性映射函數(shù)被定義為f(x)=x+3,混沌映射G、F分別被定義為L(zhǎng)ogistic映射和ICMIC。其中ICMIC的系統(tǒng)參數(shù)c=21。通過(guò)此種方式設(shè)定的混沌映射被稱為二維串聯(lián)調(diào)制耦合映射(Two-dimensional cascade modulation coupling map,2D-CMCM),如公式(4)所示。
(4)
設(shè)待處理的密鑰數(shù)據(jù)為D,Shamir[9]提出的(k,n)門限密鑰秘密分享方案的實(shí)現(xiàn)流程如下所述:
步驟1:在一個(gè)均勻分布的區(qū)間內(nèi)隨機(jī)取k-1個(gè)值a1,a2,…,ak-1,令a0=D,構(gòu)造k-1階多項(xiàng)式q(x)=a0+a1x+a2x2+…+ak-1xk-1;
步驟2:代入{x1=1,x2=2,…,xn=n,n>k}到多項(xiàng)式q(x),得到n個(gè)函數(shù)值點(diǎn)對(duì)(x1,y1),(x2,y2),(x3,y3),…,(xn,yn);
步驟3:根據(jù)拉格朗日插值公式構(gòu)造的唯一性[15],通過(guò)任意k個(gè)函數(shù)值點(diǎn)對(duì)構(gòu)造k-1階拉格朗日插值多項(xiàng)式q′(x),q′(x)的常數(shù)項(xiàng)就是密鑰數(shù)據(jù)D。
本文所設(shè)計(jì)的基于2D-CMCM和(k,n)門限秘密分享技術(shù)的圖像加密-秘密共享方案包含3個(gè)部分:圖像加密模塊、圖像秘密分享模塊和圖像重構(gòu)模塊。
圖像加密模塊的輸入為原始圖像及如圖1所示的密鑰對(duì),輸出為類似噪聲圖像的加密圖像。本模塊的運(yùn)行流程如圖2中加密模塊所示。設(shè)原始圖像為IM*N,生成加密圖像的詳細(xì)步驟如下所述:
步驟1:設(shè)置密鑰對(duì){x0,y0,k,α},通過(guò)2D-CMCM產(chǎn)生兩個(gè)長(zhǎng)度分別為2M和2N的混沌隨機(jī)數(shù)序列X={x0,x1,…,x2M-1}和Y={y0,y1,…,y2N-1};
步驟2:將隨機(jī)數(shù)序列X分為兩個(gè)子隨機(jī)數(shù)序列:X1={x0,x1,…,xM-1}和X2={xM,xM+1,…,x2M-1};將隨機(jī)數(shù)序列Y分為兩個(gè)子隨機(jī)數(shù)序列:Y1={y0,y1,…,yN-1}和Y2={yN,yN+1,…,y2N-1};
步驟3:將X1(Y1)按升序排列并將xi,i=0,2,…,M-1(yj,j=0,2,…,N-1)的排列序號(hào)數(shù)作為待加密圖像對(duì)應(yīng)的第i行(j列)像素下(右)移的行(列)數(shù),通過(guò)該過(guò)程完成圖像的行(列)置亂,生成圖像I1;
(5)
圖1 密鑰對(duì)結(jié)構(gòu)Fig.1 Structure of secret keys
圖2 圖像加密及秘密分享模塊運(yùn)行流程Fig.2 Running process of imageencryption and secret sharing module
圖像秘密分享模塊的輸入為加密圖像I2,輸出為5幅類似噪聲圖像的秘密子圖:S1,S2,S3,S4,S5。首先構(gòu)造函數(shù)q(x)=a0+a1x+a2x2,將a0的值依次設(shè)為I2中各像素值,剩余的兩個(gè)系數(shù)a1和a2從區(qū)間[0,255]中任意取得。代入xi,i=1,2,…,5,到q(x)中,生成q(xi,i=1,2,…,5)。按照a0在I2中的行列位置,將q(xi,i=1,2,…,5)作為圖像Si,i=1,2,…,5中對(duì)應(yīng)位置的像素。
在原始圖像重構(gòu)步驟中,只需任意3幅秘密子圖便可以完整復(fù)原原始圖像,但少于3幅秘密子圖將不能得到任何信息。該模塊的詳細(xì)運(yùn)行流程如下所述:
步驟1:獲取任意3幅不同的秘密子圖:Si1,i1=1,2,…,5,Si2,i2=1,2,…,5和Si3,i3=1,2,…,5。然后遍歷3幅子圖中的各像素值,通過(guò)構(gòu)造3階拉格朗日插值公式得到其常數(shù)項(xiàng),將常數(shù)項(xiàng)作為圖像I2中對(duì)應(yīng)位置的像素值;
步驟2:通過(guò)密鑰對(duì){x0,y0,k,α}驅(qū)動(dòng)2D-CMCM,生成與秘密分享階段相同的4個(gè)隨機(jī)數(shù)序列X1,X2,Y1和Y2;
步驟3:通過(guò)步驟2生成的4個(gè)隨機(jī)數(shù)序列分別完成行和列的逆向置亂(擴(kuò)散)操作,生成原始圖像。
以圖片數(shù)據(jù)集textures中圖片作為測(cè)試樣本,本小節(jié)展示了本算法在一系列圖像安全算法評(píng)價(jià)指標(biāo)上的測(cè)試結(jié)果,這些指標(biāo)包括:明文敏感性、密文魯棒性、峰值信噪比(Peak Signal to Noise Ratio,PSNR)和算法執(zhí)行速度。同時(shí),為了驗(yàn)證本文所提出算法的安全性和執(zhí)行效率,將幾種常見的圖像加密算法[3-4,10]與本文所提出的算法進(jìn)行了比較。本小節(jié)包含的所有測(cè)試程序均使用Eclipse編譯環(huán)境運(yùn)行。所使用計(jì)算機(jī)的主要配置如下:Windows10,64位;Core-i7 8809 G,3.1 GHz;64 G內(nèi)存。
圖片數(shù)據(jù)集textures中部分樣本圖片如圖3(a)所示。使用本文所提出的算法對(duì)textures數(shù)據(jù)集中圖片進(jìn)行處理,生成的部分秘密子圖如圖3(b)所示,經(jīng)過(guò)本文算法完成重構(gòu)之后得到的部分重構(gòu)圖像如圖3(c)所示。
4.1.1 明文敏感性分析
明文敏感性分析的目的在于衡量算法對(duì)明文攻擊和選擇性明文攻擊這兩種最常見的圖像攻擊方式的抵抗能力。當(dāng)明文發(fā)生微小變化時(shí),若使用同一對(duì)密鑰加密原明文圖像和變化后的明文圖像所得到的兩幅密文圖像有顯著差異,則該加密方案的明文敏感性強(qiáng)。
(a)數(shù)據(jù)集textures中部分樣本圖片(a)Part of sample images in dataset textures
(b)數(shù)據(jù)集textures中部分秘密子圖(b)Partial secret subgraphs in dataset textures
(c)圖像重構(gòu)之后得到的部分重構(gòu)圖像(c)Part of the reconstructed images圖3 部分樣本圖片、秘密子圖及重構(gòu)圖像。Fig.3 Part of sample images,secret subgraphs and reconstructed images.
以數(shù)據(jù)集textures中圖片作為測(cè)試圖片,每張圖片隨機(jī)選擇一個(gè)像素點(diǎn)將像素值置為0得到新測(cè)試圖片,兩張圖片使用本文算法與參與比較的幾種算法分別進(jìn)行加密-秘密分享處理,計(jì)算原測(cè)試圖片得到的5幅秘密子圖和新測(cè)試圖片得到的5幅秘密子圖之間的平均NPCR(Number of pixels change rate),部分圖片的實(shí)驗(yàn)結(jié)果列于表1。在理想情況下,兩幅完全不相同的圖像之間的NPCR約為99.6094%。設(shè)有兩幅尺寸均為M×N的圖像P、P′,NPCR的定義如公式(6)所示。
(6)
表1 部分樣本圖片的NPCR測(cè)試結(jié)果Tab.1 NPCR test results for some images
通過(guò)表1可以看出,相比于3種參考算法,本文所提出的算法測(cè)出的NPCR指標(biāo)更接近理想值,說(shuō)明當(dāng)測(cè)試圖像發(fā)生微小變化時(shí),通過(guò)本文所提出算法進(jìn)行加密-秘密分享之后生成的秘密子圖與原始測(cè)試圖對(duì)應(yīng)的秘密子圖之間具有顯著差異,兩者近似完全不相關(guān)。因此,相比于3種參考算法,本文所提出算法具有更高的明文敏感性,對(duì)明文攻擊和選擇性明文攻擊具有很強(qiáng)的抵抗能力。
4.1.2 密文魯棒性分析
密文圖像在保存時(shí)往往會(huì)遭受數(shù)據(jù)損失攻擊,具有較強(qiáng)魯棒性的圖像保密算法可以在密文圖像部分受損的情況下恢復(fù)出具有較高可視性的原始圖像。通過(guò)人為將加密得到的密文圖像中部分像素點(diǎn)置0(數(shù)量為總像素點(diǎn)數(shù)目的1%,2%,4%),然后進(jìn)行秘密分享生成秘密子圖,最后觀察重構(gòu)圖像的可視性,算法的抗數(shù)據(jù)損失攻擊能力也得到了測(cè)試。部分圖片的測(cè)試結(jié)果見圖4。
通過(guò)圖4(b~d)可以看出,密文圖像中部分?jǐn)?shù)據(jù)的損失讓密文圖像被污染,這導(dǎo)致了重構(gòu)圖像的可視性下降,但解密者仍可以從中獲取絕大多數(shù)有用信息。因此,本文所提出的算法具有較強(qiáng)的抗數(shù)據(jù)損失攻擊能力。
(a)密文圖像及其對(duì)應(yīng)的重建圖像(a)Encrypted image and its decrypted image
(b)包含1%數(shù)據(jù)損失的密文圖像及其對(duì)應(yīng)的重建圖像(b)Encrypted image with 1% data loss and its decrypted image
(c)包含2%數(shù)據(jù)損失的密文圖像及其對(duì)應(yīng)的重建圖像(c)Encrypted image with 2% data loss and its decrypted image
(d)包含4%數(shù)據(jù)損失的密文圖像及其對(duì)應(yīng)的重建圖像(d)Encrypted image with 4% data loss and its decrypted image圖4 密文圖像魯棒性分析實(shí)驗(yàn)結(jié)果Fig.4 Experimental results ciphertext image robustness analysis
峰值信噪比(Peak Signal to Noise Ratio,PSNR)這個(gè)指標(biāo)經(jīng)常被用于檢驗(yàn)數(shù)字圖像加密算法是否能高質(zhì)量地恢復(fù)加密圖,峰值信噪比越高,說(shuō)明被重構(gòu)出的圖像越接近原始圖像。PSNR定義如公式(7)所示。
(7)
(8)
部分樣本圖片的PSNR測(cè)試結(jié)果列于表2。由表2可知,本文所提出的算法重建出的圖像與原始明文圖像間的不相同像素點(diǎn)數(shù)目在2個(gè)以內(nèi),遠(yuǎn)少于另外幾種參考算法,表明本文所提出的算法具有更高的圖像可逆性,通過(guò)秘密子圖能幾乎完整地恢復(fù)出原始明文圖像。
表2 部分樣本的PSNR測(cè)試結(jié)果Tab.2 PSNR test results of partial samples
續(xù) 表
為了實(shí)現(xiàn)海量圖片的實(shí)時(shí)性加密-秘密分享及原始圖像重建,每幅圖像的加密-秘密分享時(shí)間及圖像重建時(shí)間必須盡可能短。以數(shù)據(jù)集textures中圖像作為測(cè)試樣例,本算法與另外幾種參與比較的算法的加密-秘密分享消耗時(shí)間及圖像重建時(shí)間列于表3。通過(guò)表3可以看出,使用本文所提出算法時(shí),每幅圖像完成加密-秘密分享及重建的總消耗時(shí)間均不超過(guò)0.5 s,因此本文所提出的算法能夠?qū)崿F(xiàn)海量圖片的實(shí)時(shí)分布式秘密存儲(chǔ)。
表3 部分圖片執(zhí)行效率測(cè)試結(jié)果Tab.3 Execution efficiency of partial samples
為了實(shí)現(xiàn)數(shù)字圖像的分布式保密存儲(chǔ),本文提出了一種圖像加密-秘密分享算法。圖像加密包含行/列置亂和擴(kuò)散兩個(gè)步驟,使用2D-CMCM產(chǎn)生的4個(gè)隨機(jī)數(shù)序列完成,通過(guò)在行擴(kuò)散階段使用已加密像素點(diǎn)參與擴(kuò)散,本文算法的安全性進(jìn)一步得到了提高。在對(duì)圖像加密得到的密文圖像進(jìn)行秘密分享的階段,使用基于拉格朗日多項(xiàng)式插值的(3,5)門限秘密分享算法,通過(guò)帶入5個(gè)不同的整數(shù)值到多項(xiàng)式,將密文圖像分為5份秘密子圖。解密者只有在獲取不少于3份的秘密子圖及密鑰的情況下才能實(shí)現(xiàn)原始圖像的無(wú)損重建。在安全性分析實(shí)驗(yàn)中,本文所提出算法顯示出了高度的抗明文/選擇性明文攻擊能力和抗數(shù)據(jù)損失攻擊能力;在可逆性分析中,秘密子圖被證實(shí)可以實(shí)現(xiàn)原始明文圖像的無(wú)損重構(gòu),重構(gòu)出的圖像與原始明文圖像的差異不超過(guò)2個(gè)像素點(diǎn);在執(zhí)行效率測(cè)試實(shí)驗(yàn)中,本文所提出算法的高執(zhí)行效率也得到了驗(yàn)證。經(jīng)過(guò)一系列實(shí)驗(yàn),本文所提出算法的高度實(shí)用性得到了證實(shí)。