《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 兼顧可用性和可靠性的可視密碼最佳方案
兼顧可用性和可靠性的可視密碼最佳方案
喬明秋,趙振洲
(北京政法職業(yè)學(xué)院 信息技術(shù)系,北京 102628)
摘要: 自1994年Naor和Shamir提出可視密碼被提出以來,可視密碼的像素擴展和圖像對比度差一直是需要解決的問題。在m點加密的基礎(chǔ)上,在兼顧可用性和可靠性的前提下,提出了實現(xiàn)可視密碼的最佳方案,一方面能夠使分存圖像像素不產(chǎn)生擴展,即分存圖像與加密圖像一樣大;另一方面,通過重構(gòu)使恢復(fù)后的圖像達到最好的對比度。
中圖分類號:TP309.7
文獻標(biāo)識碼: A
DOI: 10.19358/j.issn.2096-5133.2019.04.010
引用格式:喬明秋,趙振洲.兼顧可用性和可靠性的可視密碼最佳方案[J].信息技術(shù)與網(wǎng)絡(luò)安全,2019,38(4):46-49.
Optimal visual cryptography scheme considering availability and reliability
Qiao Mingqiu, Zhao Zhenzhou
(IT Department, Beijing College of Politics and Law, Beijing 102628, China)
Abstract: Since visual cryptography was proposed in 1994,pixel expansion and poor image contrast of visual cryptography have been a problem to be solved.On the basis of m-points encryption,on the premise of both availability and reliability,this paper proposes an optimal visual cryptography scheme.On the one hand,it can make the shared image pixels not expand,the shared image is as large as the encrypted image;on the other hand,it can achieve the best image contrast by reconstructing.
Key words : visual cryptography;secret sharing;m-points encode;reconsitution

0    引言     


SHAMIR A[1]和BLAKELY于1979年分別提出了秘密共享的概念,其主要思想是在n個參與者之間分享一個秘密,k個(或k個以上)參與者可以恢復(fù)秘密,而少于k個參與者則無法恢復(fù)秘密,所以,秘密共享也稱為(k,n)門限方案。可視密碼[2-3]是一種依靠人眼解密的秘密共享方法,它是將一個秘密圖像加密成n張分存圖像,n張分存圖像可以打印到膠片上、存入電腦或移動存儲器中,且分別由n個人保存。解密時只需k個人(或k個以上)將各自的分存圖像疊加,秘密圖像就會呈現(xiàn)出來,而少于k個人無法獲得秘密圖像的一點信息。

傳統(tǒng)可視密碼方法都是使用像素擴展的方法來進行加密,因此使得分存圖像被擴展為秘密圖像的好多倍,這樣不但造成存儲空間的浪費,也使得攜帶更為不方便。

在傳統(tǒng)(k,n)可視密碼中,秘密圖像中的每個像素都單獨處理,由n個人共享,每個共享由m個黑白子像素組成。構(gòu)建一個n×m布爾矩陣B=[Bij],當(dāng)且僅當(dāng)Bij=1時第i個共享者的第j個子像素為黑;當(dāng)且僅當(dāng)Bij=0時第i個共享者的第j個子像素為白。當(dāng)把投影片疊放在一起時,就相當(dāng)于對于每一行都做了或運算。疊放后圖像的灰度值與進行或運算之后的向量V的漢明重量H()成正比。使用者利用視覺系統(tǒng)解釋灰度值如下,如果H()≥d該點像素為黑,如果H()≤d-αm該點像素為白。


1    像素不擴展的方案


ITO R[5]等人針對黑白可視密碼提出了一種不擴展的(k,n)-threshold可視密碼方案,當(dāng)要分享一個黑(白)點時,便從對應(yīng)于黑(白)點的基礎(chǔ)矩陣中隨機選擇列,并且將這個列向量的第i行分配給第i個分存圖像。由于不論是黑點或白點的基礎(chǔ)矩陣,其每一行0與1分布的比例都相同,因此分存圖像上每一個像素,會填上黑點或白點的幾率也都一樣,依次無法從分存圖像上猜測到有關(guān)秘密圖像的信息。而還原圖像則靠式(1)來產(chǎn)生對比。在式(1)中,p0和p1分別代表白點和黑點在疊加圖像上產(chǎn)生黑點的概率。只要這兩個概率值差別夠大,人眼便可自動區(qū)分疊加圖像上黑色與白色的區(qū)域。

微信截圖_20190508163959.png(1)

ITO R[5]等所提出的不擴展模型,在分享一個像素時,是完全隨機地從基礎(chǔ)矩陣中選擇行,雖然在整張疊加圖像上,能夠達到式(1)的對比,但是在小區(qū)域上,黑點與白點的分布就可能無法達到式(1)的對比。侯永昌等人提出了像素不擴展之灰階密碼方案[6]及像素不擴展之彩色視覺密碼技術(shù)[7],其提出m點同時加密的概念,即用m點同時加密來保證分存圖像的像素不擴展。


2     舉例說明m點加密


微信截圖_20190508165436.png


因為基礎(chǔ)矩陣Bm×n的列數(shù)m=2,所以選擇秘密圖像上的連續(xù)兩個點為加密對象,稱這兩點為加密序列,加密方法如下:


(1)當(dāng)加密序列為兩個白點時用矩陣M0加密,保證兩個分存圖像疊加后,此兩點為一黑一白;


(2)當(dāng)加密序列為兩個黑點時用矩陣M1加密,保證兩個分存圖像疊加后,此兩點全黑;


(3)當(dāng)加密序列為一黑點一白點時,一半用矩陣M0加密,一半用矩陣M1加密。保證兩個分存圖像疊加后,此兩點或者是一黑一白,或者是全黑,且這兩種情況各占一半。


通過總結(jié),得到(2,2)可視密碼加密規(guī)則,其中,e代表秘密圖像上已經(jīng)加密過的黑白各半的加密序列的個數(shù),加密規(guī)則如下:


if e mod 2<1


M1進行加密


else用M0進行加密


3     兼顧可用性和可靠性的可視密碼最佳方案



侯永昌等人的多點加密可以較好地實現(xiàn)像素的不擴展,但是在解密過程中仍然存在秘密圖像的對比度不高的問題。結(jié)合侯永昌等人的多點加密,在解密的時候使用算法進行重構(gòu),方法是在秘密圖像的連續(xù)m個點中,如果黑色像素H()≥d,則對應(yīng)m個點像素為黑點,否則m個點為白點。


B0B1分別代表對應(yīng)于白點與黑點的n×m基礎(chǔ)矩陣,加密序列的長度為m,即一次取秘密圖像上的m點來加密,b代表加密序列中的黑點個數(shù)(0≤b≤m),eb則代表具有b個黑點的加密序列已加密過的個數(shù),加密程序如下:


(1)令eb=0 for b=1,2,…,m;


(2)由秘密圖像中取出尚未加密的加密序列,并計算其黑點個數(shù)b;


(3)將基礎(chǔ)矩陣做列向量隨機重排,其中矩陣根據(jù)下列規(guī)則決定:


if eb mod m<b


B=B1


else B=B0


(4)eb=eb+1;


(5)重復(fù)步驟(2)~(4)直到秘密圖像上的所有像素都加密完畢。


解密重構(gòu)過程如下:


①令C為k個分享者的分存圖像疊加后的圖像,D為C重構(gòu)后的圖像;


②存在整數(shù)p、q,使m=p×q,且|p-q|最小;


③對于B中的m像素,計算黑點個數(shù):


for x=p:-1:0


for y=q:-1:0


計算解密圖像C中m=p×q個點C((p×i-x),(q×j-y))的黑點個數(shù)b


end


end


(4)如果黑點個數(shù)大于閾值d,重構(gòu)圖像D對應(yīng)的m個點為黑點,否則為白點:


for x=p:-1:0


for y=q:-1:0


ifb≥d


D((p×i-x),(q×j-y))=1;


else


D((p×i-x),(q×j-y))=0;


endif


end


end


(5)重復(fù)步驟(3)~(4)直到秘密圖像上的所有像素都重構(gòu)完畢。


4    兼顧可用性和可靠性的可視密碼最佳方案的實例


以(2,3)可視密碼來具體說明本文的方法,(2,3)可視密碼的基礎(chǔ)矩陣如下:


微信截圖_20190508170606.png


在傳統(tǒng)的可視密碼中,對于加密圖像逐點加密,如果該點為白點,則將B0進行隨機列置換后得到C0,將C0的第一行分給第一個分享者,將C0的第二行分給第二個分享者,將C0的第三行分給第三個分享者;如果該點為黑點,則將B1進行隨機列置換后得到C1,將C1的第一行分給第一個分享者,將C1的第二行分給第二個分享者,將C1的第三行分給第三個分享者。這樣分享圖像和解密圖像都將擴大三倍,產(chǎn)生像素擴展。


對于(2,3)可視密碼,加密算法為:


(1)令eb=0 for b=1,2


(2)由秘密圖像中取出尚未加密的加密序列,并計算其黑點個數(shù)b.


(3)將基礎(chǔ)矩陣B做列向量隨機重排,其中矩陣B根據(jù)下列規(guī)則決定:


if    eb mod 3<b;


B=B1;


else  B=B0;


(4)eb=eb+1;


(5)重復(fù)步驟(2)~(4)直到秘密圖像上的所有像素都加密完畢。

圖1為加密圖像,在加密圖像上選取連續(xù)3個點,如果3個點中有0個黑點,一直使用B0加密;如果3個點中有1個黑點,則第1次使用B1加密,后2次這種情況使用B0加密;如果3個點中有2個黑點,則第2次使用B1加密,后1次這種情況使用B0加密;如果3個點都為黑點,一直使用B1加密。使用上面的方法得到分存圖像,如圖2所示,分存圖像沒有像素擴展。將任意兩個分存圖像進行疊加,得到解密圖像C,如圖3所示,解密圖像沒有像素擴展。(本文中所有圖像都縮小為原圖像的50%。)


微信截圖_20190508171009.png




將解密圖像利用算法進行重構(gòu),重構(gòu)過程如下:


(1)令C為k個分享者的分存圖像疊加后的圖像,D為將C重構(gòu)后的圖像;


(2)存在整數(shù)p、q,使3=p×q,且|p-q|最小,則p=1,q=3;


(3)對于B中的3像素,計算黑點個數(shù):


for y=3:-1:0


計算解密圖像C中3個點C(i,(3×j-y))的黑點個數(shù)b


end


(4)如果黑點個數(shù)大于閾值2,重構(gòu)圖像D對應(yīng)的m個點為黑點,否則為白點:


for y=3:-1:0


ifb≥2


D(i,(3×j-y))=1;


else


D(i,(3×j-y))=0;


endif


end


(5)重復(fù)步驟(3)~(4)直到解密圖像上的所有像素都重構(gòu)完畢。


C為解密圖像,計算C中連續(xù)3個點的黑點個數(shù),如果黑點個數(shù)大于等于2,則該點為黑點;否則為白點。得到的重構(gòu)圖像如圖4所示,重構(gòu)圖像中沒有像素擴展,且有更好的視覺對比度。對于(2,3)可視密碼,本方案和其他方案的對比如表1所示。從表1中可以看到,本方案像素?zé)o擴展,所以圖像也不會有變形,且達到最好的黑白像素對比度。

微信截圖_20190508171850.png



5     結(jié)論


本文在兼顧可用性和可靠性的前提下,提出了實現(xiàn)可視密碼的最佳方案,在加密時利用m點加密實現(xiàn)了分存圖像的像素不擴展,在解密時利用重構(gòu)得到更優(yōu)對比度的重構(gòu)圖像,并以(2,3)可視密碼為例說明了該方法的優(yōu)點。該方法雖然避免了像素擴展且對比度很好,但是解密圖像黑色像素邊緣會稍有模糊,如何設(shè)計更優(yōu)的像素不擴展算法,是今后需要努力的方向。



參考文獻


 

[1] SHAMIR A.How to share a secret[J].Communications.ACM,1979,22(11):612-613

[2] NAOR M,SHAMIR A.Visual cryptography[J]. Advance in cryptology Euro crypt′94.Lecture Notes in Computer Science,Berlin:Springer,Berlin, 1995,950:1-12.

[3] DROSTE S.New results on visual cryptography[J]. Lecture Notes in Computer Science, Berlin:Springer-Verlag, 1996,1109:401-415.

[4] ATENIESE G,BLUNDO C,DE SANTIS A,et al.Visual cryptography for general access structures[J]. Information and Computation,1996,129(2):86-106.

[5] ITO R, KUWAKADO H,TANAKA H.Image size invariant visual cryptography.IEICE Transactions on Fundamentals of Electronics Communications and Computer Science, 1999, E82-A(10): 2172-2177.

[6] 侯永昌,許慶升. 像素不擴展之灰階視覺密碼方法,資管評論,2004,12(13):107-1240

[7] 侯永昌.像素不擴展之彩色視覺密碼技術(shù)[J].Journal of Information,Technology and Society,2004(1):95-110.

[8] 喬明秋,朱悅冬,劉煥平.多秘密共享可視密碼及在防止欺騙上的應(yīng)用[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報,2007(2):61-65.

[9] 張舒,艾小川.一種具有理想對比度的可視密碼方案[J]. 計算機與數(shù)字工程,2015(8):1462-1464.

[10] 李春艷,基于像素不擴展視覺密碼的水印算法[J]. 大理大學(xué)學(xué)報,2017(6):19-21.

[11] 王洪君,馬冬鶴,張恩綺,等.一種無像素膨脹的(3,3)視覺密碼方案[J]. 武漢大學(xué)學(xué)報(工學(xué)版),2018(12):1123-1128.


[12] 沈剛,付正欣,郁濱.基于XOR的(2,2,n) 多秘密視覺密碼[J]. 計算機應(yīng)用研究,2012(10):3797-3799.



(收稿日期:2019-01-20)



作者簡介:



喬明秋(1982-),通信作用,女,碩士研究生,講師,主要研究方向:密碼學(xué)、信息安全。E-mail: qiaomingqiu@163.com。


趙振洲(1978-),男,碩士研究生,副教授,主要研究方向:數(shù)據(jù)恢復(fù)、信息安全。


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。