◆喬明秋 趙振洲
(北京政法職業(yè)學(xué)院信息技術(shù)系 北京 102628)
秘密共享是Shamir[1]和Blakely 提出的概念,即n 個(gè)分享者共同分享一個(gè)秘密,k 個(gè)(或多于k 個(gè))分享者可以一起恢復(fù)秘密,而少于k 個(gè)分享者無法恢復(fù)秘密,所以,秘密共享也稱為(k,n)門限方案。秘密共享是密碼學(xué)重要分支之一,廣泛適用于數(shù)據(jù)的安全存儲(chǔ)與加密領(lǐng)域。
盡管秘密共享體制已經(jīng)發(fā)展得較為完善,但卻不可避免地存在一個(gè)問題:秘密的恢復(fù)需要經(jīng)過大量的數(shù)學(xué)計(jì)算,并且使用者對(duì)密碼學(xué)知識(shí)有所了解。可視密碼是1994 年由Naor[2]和Shamir提出的,它是秘密共享的一個(gè)分支??梢暶艽a是將一個(gè)秘密圖像加密成n 張分享圖像,n 張分享圖像由n 個(gè)分享者分別保管,如果想要恢復(fù)秘密圖像,k 分(k 分享者)個(gè)分享者疊加各自的分享圖像,秘密圖像即可顯現(xiàn)出來;而少于k 個(gè)分享者無法恢復(fù)秘密圖像。與以往技術(shù)相比,可視密碼的不同之處在于加密對(duì)象為圖像,分享圖像疊加即可恢復(fù)秘密圖像,通過人眼就能識(shí)別,更加方便使用。Ateniese[3]提出了一般存取結(jié)構(gòu)的可視密碼,給出了可視密碼中加密矩陣的構(gòu)造方法。
可視密碼的優(yōu)點(diǎn)主要有:
(1)隱蔽性:可視密碼的分享圖像都是隨機(jī)分布的像素點(diǎn),具有很好的隱蔽性;
(2)絕對(duì)安全性:如果得到小于k 個(gè)分享圖像,通過分析方法無法獲得秘密圖像的一點(diǎn)信息;
(3)秘密恢復(fù)的簡(jiǎn)單性:只需k 個(gè)人將圖片疊加,秘密圖像就會(huì)呈現(xiàn)出來,秘密恢復(fù)簡(jiǎn)單;
目前,可視密碼主要的研究方向包括:多秘密共享可視密碼,像素不擴(kuò)展可視密碼[4-8],基于異或運(yùn)算的可視密碼[9][10],可視密碼在數(shù)字水印中的應(yīng)用[11]、可視密碼在二維碼中的應(yīng)用[12]等。
盡管可視密碼有諸多優(yōu)點(diǎn),但是像素?cái)U(kuò)展一直是可視密碼的一個(gè)非常明顯的弊端,像素?cái)U(kuò)展會(huì)帶來分享圖像存儲(chǔ)空間變大、傳輸不便等問題。文獻(xiàn)[6]針對(duì)(2,3)可視密碼給出了一種像素不擴(kuò)展的加密方案,可以實(shí)現(xiàn)分享圖像像素不擴(kuò)展。本文在文獻(xiàn)[6]基礎(chǔ)上提出了改進(jìn)的像素不擴(kuò)展的可視密碼,在保證像素不擴(kuò)展的前提下,恢復(fù)秘密圖像時(shí)可以得到更好的對(duì)比度。
文獻(xiàn)[6]提出了一種(2,3)像素不擴(kuò)展的可視密碼方案,在此方案中,當(dāng)加密秘密圖像加密時(shí),每次處理4 個(gè)像素,加密后得到的也是4 個(gè)像素,避免了傳統(tǒng)方案中像素?cái)U(kuò)展的問題。
所給方案對(duì)應(yīng)的基礎(chǔ)矩陣如下:
該可視密碼加密算法如下:對(duì)于需要加密的秘密圖像的4 個(gè)像素,如果其中有i 個(gè)白色像素,則加密矩陣對(duì)應(yīng)矩陣Si。將加密矩陣隨機(jī)列置換后,按照對(duì)應(yīng)矩陣的設(shè)置進(jìn)行加密。直到所有秘密圖像像素全部處理完成。
文獻(xiàn)[6]的方案可以實(shí)現(xiàn)(2,3)可視密碼加密后像素不擴(kuò)展,2 個(gè)分享圖像疊加后圖像對(duì)比度為1/4,3 個(gè)分享圖像疊加后圖像對(duì)比度為1/2。通過改進(jìn),我們的方案在實(shí)現(xiàn)(2,3)可視密碼加密后像素不擴(kuò)展的基礎(chǔ)上,能夠提高疊加后恢復(fù)秘密圖像的對(duì)比度。
2.1 兩組產(chǎn)婦臨床資料比較 兩組年齡、體質(zhì)量、孕周、孕次、既往剖宮產(chǎn)次數(shù)比較,差異無統(tǒng)計(jì)學(xué)意義(P>0.05),見表1。
該方案在加密秘密圖像時(shí),每次處理3 個(gè)像素,加密后也是3 個(gè)像素,保證了方案中像素不擴(kuò)展。
對(duì)于每次處理的3 個(gè)像素,可以分為4 種情況:
(1)3 個(gè)秘密圖像像素中3 個(gè)為白色像素;
(2)3 個(gè)秘密圖像像素中,2 個(gè)白色像素,1 個(gè)黑色像素;
(3)3 個(gè)秘密圖像像素中,2 個(gè)黑色像素,1 個(gè)白色像素;
(4)3 個(gè)秘密圖像像素中3 個(gè)為黑色像素。
所給方案對(duì)應(yīng)的基礎(chǔ)矩陣是
改進(jìn)的像素不擴(kuò)展的(2,3)可視密碼加密算法如下: (1)生成基礎(chǔ)矩陣S0,S1;
(2)每次按順序取3 個(gè)像素;
(3)如果3 個(gè)秘密圖像像素中3 個(gè)為白色像素,則對(duì)基礎(chǔ)矩陣S0進(jìn)行隨機(jī)列變換,轉(zhuǎn)步驟8;
(4)如果3 個(gè)秘密圖像像素中有1 個(gè)為黑色像素,其他2個(gè)是白色像素,則以1/3 的概率選擇S1,2/3 的概率選擇S0,并將選擇后的矩陣進(jìn)行隨機(jī)列置換,轉(zhuǎn)步驟8;
(5)如果3 個(gè)秘密圖像像素中有2 個(gè)為黑色像素,1 個(gè)為白色像素,則以2/3 的概率選擇S1,1/3 的概率選擇S0,并將選擇后的矩陣進(jìn)行隨機(jī)列置換,轉(zhuǎn)步驟8;
(6)如果3 個(gè)秘密圖像像素中3 個(gè)為黑色像素,則對(duì)基礎(chǔ)矩陣S1進(jìn)行列置換,轉(zhuǎn)步驟8;
(7)對(duì)于隨機(jī)列置換后的矩陣,每行對(duì)應(yīng)不同的分享圖像; (8)重復(fù)執(zhí)行2~7,直到秘密圖像所有像素處理結(jié)束; (9)得到分享圖像。
該可視密碼方案仍然使用傳統(tǒng)的(2,3)可視密碼的基礎(chǔ)矩陣,創(chuàng)新點(diǎn)在于同時(shí)對(duì)秘密圖像的3 個(gè)像素進(jìn)行加密,根據(jù)不同情況,以一定的概率選取不同的基礎(chǔ)矩陣,最后生成3 個(gè)像素,保證了方案的不擴(kuò)展性。
實(shí)驗(yàn)在matlab 環(huán)境中編程實(shí)現(xiàn),實(shí)驗(yàn)中所用的秘密圖像如圖1 所示,秘密圖像像素為256×256。將秘密圖像中每3 個(gè)像素進(jìn)行加密,使用前面介紹的算法,確定分享圖像的3 個(gè)像素,從而保證了加密的像素不擴(kuò)展性。
使用前面介紹的改進(jìn)的像素不擴(kuò)展的(2,3)可視密碼方案,對(duì)圖1 秘密圖像進(jìn)行加密,生成3 張分享圖像,三張分享圖像分別如圖2~圖4 所示,三張分享圖像分別由參與秘密分享的三個(gè)人保存。
任意兩個(gè)分享者將兩個(gè)分享圖像疊加,秘密圖像即可恢復(fù),將分享圖像1、分享圖像2 疊加后的結(jié)果如圖5 所示,恢復(fù)圖像對(duì)比度為1/3,其他任意兩張圖像的疊加效果與圖5 類似。
三個(gè)分享者將三個(gè)分享圖像疊加,秘密圖像對(duì)比度更好,可以達(dá)到2/3,將分享圖像1、分享圖像2 和分享圖像3 疊加后的結(jié)果如圖6 所示,可以看到圖像對(duì)比度較好。
圖1 秘密圖像
圖2 分享圖像1
圖3 分享圖像2
圖4 分享圖像3
圖5 兩張分享圖像恢復(fù)的秘密圖像
圖6 三張分享圖像恢復(fù)的秘密圖像
本方案和文獻(xiàn)[6]中的方案都可以保證像素的擴(kuò)展度為1,且圖像沒有變形,除此之外,本方案較文獻(xiàn)[6]有更好的對(duì)比度,本方案與文獻(xiàn)[6]的對(duì)比如表1 所示。
表1 本方案與文獻(xiàn)[6]的比較
像素?cái)U(kuò)展和對(duì)比度是衡量可視密碼算法的主要參數(shù),本文在文獻(xiàn)[6]基礎(chǔ)上提出了改進(jìn)的像素不擴(kuò)展的可視密碼,即在加密的時(shí)候每次處理3 個(gè)像素,而不是1 個(gè)像素,這樣就保證像素不會(huì)發(fā)生擴(kuò)展。在保證像素不擴(kuò)展的前提下,恢復(fù)秘密圖像時(shí)可以得到比之前算法更好的對(duì)比度。解決如何設(shè)計(jì)出更優(yōu)的可視密碼算法的問題,是今后需要努力的方向。