◆喬明秋 趙振洲
(北京政法職業學院信息技術系 北京 102628)
秘密共享是Shamir[1]和Blakely 提出的概念,即n 個分享者共同分享一個秘密,k 個(或多于k 個)分享者可以一起恢復秘密,而少于k 個分享者無法恢復秘密,所以,秘密共享也稱為(k,n)門限方案。秘密共享是密碼學重要分支之一,廣泛適用于數據的安全存儲與加密領域。
盡管秘密共享體制已經發展得較為完善,但卻不可避免地存在一個問題:秘密的恢復需要經過大量的數學計算,并且使用者對密碼學知識有所了解。可視密碼是1994 年由Naor[2]和Shamir提出的,它是秘密共享的一個分支。可視密碼是將一個秘密圖像加密成n 張分享圖像,n 張分享圖像由n 個分享者分別保管,如果想要恢復秘密圖像,k 分(k 分享者)個分享者疊加各自的分享圖像,秘密圖像即可顯現出來;而少于k 個分享者無法恢復秘密圖像。與以往技術相比,可視密碼的不同之處在于加密對象為圖像,分享圖像疊加即可恢復秘密圖像,通過人眼就能識別,更加方便使用。Ateniese[3]提出了一般存取結構的可視密碼,給出了可視密碼中加密矩陣的構造方法。
可視密碼的優點主要有:
(1)隱蔽性:可視密碼的分享圖像都是隨機分布的像素點,具有很好的隱蔽性;
(2)絕對安全性:如果得到小于k 個分享圖像,通過分析方法無法獲得秘密圖像的一點信息;
(3)秘密恢復的簡單性:只需k 個人將圖片疊加,秘密圖像就會呈現出來,秘密恢復簡單;
目前,可視密碼主要的研究方向包括:多秘密共享可視密碼,像素不擴展可視密碼[4-8],基于異或運算的可視密碼[9][10],可視密碼在數字水印中的應用[11]、可視密碼在二維碼中的應用[12]等。
盡管可視密碼有諸多優點,但是像素擴展一直是可視密碼的一個非常明顯的弊端,像素擴展會帶來分享圖像存儲空間變大、傳輸不便等問題。文獻[6]針對(2,3)可視密碼給出了一種像素不擴展的加密方案,可以實現分享圖像像素不擴展。本文在文獻[6]基礎上提出了改進的像素不擴展的可視密碼,在保證像素不擴展的前提下,恢復秘密圖像時可以得到更好的對比度。
文獻[6]提出了一種(2,3)像素不擴展的可視密碼方案,在此方案中,當加密秘密圖像加密時,每次處理4 個像素,加密后得到的也是4 個像素,避免了傳統方案中像素擴展的問題。
所給方案對應的基礎矩陣如下:

該可視密碼加密算法如下:對于需要加密的秘密圖像的4 個像素,如果其中有i 個白色像素,則加密矩陣對應矩陣Si。將加密矩陣隨機列置換后,按照對應矩陣的設置進行加密。直到所有秘密圖像像素全部處理完成。
文獻[6]的方案可以實現(2,3)可視密碼加密后像素不擴展,2 個分享圖像疊加后圖像對比度為1/4,3 個分享圖像疊加后圖像對比度為1/2。通過改進,我們的方案在實現(2,3)可視密碼加密后像素不擴展的基礎上,能夠提高疊加后恢復秘密圖像的對比度。
2.1 兩組產婦臨床資料比較 兩組年齡、體質量、孕周、孕次、既往剖宮產次數比較,差異無統計學意義(P>0.05),見表1。
該方案在加密秘密圖像時,每次處理3 個像素,加密后也是3 個像素,保證了方案中像素不擴展。
對于每次處理的3 個像素,可以分為4 種情況:
(1)3 個秘密圖像像素中3 個為白色像素;
(2)3 個秘密圖像像素中,2 個白色像素,1 個黑色像素;
(3)3 個秘密圖像像素中,2 個黑色像素,1 個白色像素;
(4)3 個秘密圖像像素中3 個為黑色像素。
所給方案對應的基礎矩陣是

改進的像素不擴展的(2,3)可視密碼加密算法如下: (1)生成基礎矩陣S0,S1;
(2)每次按順序取3 個像素;
(3)如果3 個秘密圖像像素中3 個為白色像素,則對基礎矩陣S0進行隨機列變換,轉步驟8;
(4)如果3 個秘密圖像像素中有1 個為黑色像素,其他2個是白色像素,則以1/3 的概率選擇S1,2/3 的概率選擇S0,并將選擇后的矩陣進行隨機列置換,轉步驟8;
(5)如果3 個秘密圖像像素中有2 個為黑色像素,1 個為白色像素,則以2/3 的概率選擇S1,1/3 的概率選擇S0,并將選擇后的矩陣進行隨機列置換,轉步驟8;
(6)如果3 個秘密圖像像素中3 個為黑色像素,則對基礎矩陣S1進行列置換,轉步驟8;
(7)對于隨機列置換后的矩陣,每行對應不同的分享圖像; (8)重復執行2~7,直到秘密圖像所有像素處理結束; (9)得到分享圖像。
該可視密碼方案仍然使用傳統的(2,3)可視密碼的基礎矩陣,創新點在于同時對秘密圖像的3 個像素進行加密,根據不同情況,以一定的概率選取不同的基礎矩陣,最后生成3 個像素,保證了方案的不擴展性。
實驗在matlab 環境中編程實現,實驗中所用的秘密圖像如圖1 所示,秘密圖像像素為256×256。將秘密圖像中每3 個像素進行加密,使用前面介紹的算法,確定分享圖像的3 個像素,從而保證了加密的像素不擴展性。
使用前面介紹的改進的像素不擴展的(2,3)可視密碼方案,對圖1 秘密圖像進行加密,生成3 張分享圖像,三張分享圖像分別如圖2~圖4 所示,三張分享圖像分別由參與秘密分享的三個人保存。
任意兩個分享者將兩個分享圖像疊加,秘密圖像即可恢復,將分享圖像1、分享圖像2 疊加后的結果如圖5 所示,恢復圖像對比度為1/3,其他任意兩張圖像的疊加效果與圖5 類似。
三個分享者將三個分享圖像疊加,秘密圖像對比度更好,可以達到2/3,將分享圖像1、分享圖像2 和分享圖像3 疊加后的結果如圖6 所示,可以看到圖像對比度較好。

圖1 秘密圖像

圖2 分享圖像1

圖3 分享圖像2

圖4 分享圖像3

圖5 兩張分享圖像恢復的秘密圖像

圖6 三張分享圖像恢復的秘密圖像
本方案和文獻[6]中的方案都可以保證像素的擴展度為1,且圖像沒有變形,除此之外,本方案較文獻[6]有更好的對比度,本方案與文獻[6]的對比如表1 所示。

表1 本方案與文獻[6]的比較
像素擴展和對比度是衡量可視密碼算法的主要參數,本文在文獻[6]基礎上提出了改進的像素不擴展的可視密碼,即在加密的時候每次處理3 個像素,而不是1 個像素,這樣就保證像素不會發生擴展。在保證像素不擴展的前提下,恢復秘密圖像時可以得到比之前算法更好的對比度。解決如何設計出更優的可視密碼算法的問題,是今后需要努力的方向。