本發(fā)明屬于圖像安全和圖像信號(hào)處理交叉領(lǐng)域,涉及一種圖像加密及解密方法,特別涉及一種結(jié)合零水印和塊分類融合的自恢復(fù)圖像加密和解密方法。
背景技術(shù):
針對(duì)圖像加密,已提出了多種圖像加密方法:
①通過對(duì)像素值改變來對(duì)圖像進(jìn)行混淆加密的圖像加密方法,例如:彭再平等,2014(彭再平,王春華,林愿,等.一種新型的四維多翼超混沌吸引子及其在圖像加密中的研究[J].物理學(xué)報(bào),2014,63(24):240506-1–240506-10)和朱從旭等,2012(朱從旭,孫克輝.對(duì)一類超混沌圖像加密算法的密碼分析與改進(jìn)[J].物理學(xué)報(bào),2012,61(12):12503-1-12503-12)通過4維超混沌系統(tǒng)產(chǎn)生隨機(jī)序列對(duì)圖像像素值進(jìn)行異或加密。Zhang Xuanping等,2014a(Xuanping Zhang,Yanbin Mao,Zhongmeng Zhao.An efficient image encryption based on alternate cicular S-boxes[J].Nonlinear Dynamics,2014,78(1):359-369)和Zhang Xuanping等,2014b(Xuanping Zhang,Zhongmeng Zhao,Jiayin Wang.Chaotic image encryption based on circularsubstitution box and key stream buffer[J].Signal Processing:Image Communication,2014,29(8):902-913)將圖像像素在S-BOX上的映射值作為圖像像素的加密值。
②擾亂鄰近像素位置相關(guān)性的置換環(huán)節(jié)和改變像素值相關(guān)性的混淆環(huán)節(jié)的圖像加密方法,官國榮等,2015(官國榮,吳成茂,賈倩.一種改進(jìn)Lorenz混沌系統(tǒng)構(gòu)造及其加密應(yīng)用[J].小型微型計(jì)算機(jī)系統(tǒng),2015,36(4):830-835)和趙玉青,2014(趙玉青.基于改進(jìn)Chen混沌系統(tǒng)的加密算法[J].小型微型計(jì)算機(jī)系統(tǒng),2014,35(9):2162-2166)分別對(duì)改進(jìn)Lorenz混沌系統(tǒng)和添加擾動(dòng)的Chen系統(tǒng)產(chǎn)生的隨機(jī)序列進(jìn)行預(yù)處理,通過排序?qū)Υ用軋D像像素進(jìn)行位置置換,并將置換后的圖像像素進(jìn)行異或混淆加密。Xiao Juntong等,2015(Xiao Juntong,Zhu Wang,Miao Zhang,et al.An image encryption algorithm based on the perturbed high-dimensional chaotic map[J].Nonlinear Dynamics,2015,80(3):1493-1508)將圖像像素矩陣劃分為5個(gè)部分,由不同初始值驅(qū)動(dòng)貓映射進(jìn)行像素位置置換,然后對(duì)像素進(jìn)行異或混淆加密。
③基于置換與混淆加密環(huán)節(jié)耦合性相結(jié)合的圖像加密方法,例如Narendra K等,2013(Narendra K.Pareek,Vinod Patidar,Krishan K.Sud.Diffusion–substitution based gray imageencryption scheme[J].Digital Signal Processing,2013,23(3):894-901)通過128位外部密鑰將對(duì)圖像的全局異或加密,分塊混淆過程的塊大小和塊內(nèi)元素的起始位置以及鄰近元素的異或加密方向耦合到了一起。徐亞等,2015(徐亞,張紹武.基于Arnold映射的分塊雙層自適應(yīng)擴(kuò)散圖像加密算法[J].中國圖像圖形學(xué)報(bào),2015,20(6):0740-0748)采用外部密鑰將Arnold對(duì)塊及塊內(nèi)像素置換以及擴(kuò)散操作耦合在了一起,加密后的像素與外部密鑰共同更新混沌系統(tǒng)初始參數(shù)。
④基于加密圖像明文屬性的圖像加密算法,例如Yicong Zhou等,2014(Yicong Zhou,Weijia Cao,C.L.Philip Chen.Image encryption using binary bitplane[J].Signal Processing,2014,100(7):197-207)將明文像素和與Logistic映射迭代次數(shù)相綁定,從而不同像素對(duì)應(yīng)于不同的logistic映射迭代次數(shù)。Xingyuan Wang等,2014(Xingyuan Wang,Kang Guo.A new image alternate encryption algorithm based on chaotic map[J].Nonlinear Dynamics.2014,76(4):1943-1950)將明文像素和作為映射參數(shù),使得不同圖像對(duì)應(yīng)不同隨機(jī)數(shù)。
⑤選擇性圖像加密方法,包含對(duì)比特位面和比特位的選擇性加密策略,例如Rehman A U,2015.(Rehman A U,Liao X,Kulsoom A,et al.Selective encryption for gray images based on chaos and DNA complementary rules[J].Multimedia Tools and Applications,2015,74(13):4655-4677)對(duì)待加密圖像的高低位比特位面通過不同的DNA序列加密。Kulsoom A,2016.(Kulsoom A,Xiao D,Aqeel-ur-Rehman,et al.An efficient and noise resistive selective image encryption scheme for gray images based on chaotic maps and DNA complementary rules[J].Multimedia Tools and Applications,2016,75(1):1-23.)進(jìn)一步引入圖像MD5值來提高Rehman A U,2015所述策略的抗選擇明文攻擊能力。對(duì)圖像像素和像素塊進(jìn)行篩選,對(duì)篩選出的像素和像素塊進(jìn)行選擇性加密,例如趙亮,2010.(趙亮,廖曉峰,向濤等.基于Z矩陣映射和選擇加密的彩色圖像退化算法研究.物理學(xué)報(bào)[J],2010,59[3]:1507-1523.)給出了基于像素隨機(jī)篩選模版和像素信息熵的圖像退化加密方法。Wen W,2015.(Wen W,Zhang Y,Fang Z,et al.Infrared target-based selective encryption bychaotic maps[J].Optics Communications,2015,341:131–139.)利用幾何活動(dòng)輪廓和偏微分方程對(duì)紅外圖像目標(biāo)區(qū)域進(jìn)行篩選,然后對(duì)篩選出像素塊進(jìn)行加密。Khashan O A,2014.(Khashan O A,Zin A M,Sundararajan E A.Performance study of selective encryption in comparison to full encryption for still visual images[J].Journal of Zhejiang University SCIENCE C,2014,15(6):435-444.)對(duì)圖像劃分的不重疊分塊計(jì)算像素和,根據(jù)像素和設(shè)定閾值之間的關(guān)系篩選出blowfish加密像素塊。對(duì)圖像特定頻域系數(shù)進(jìn)行選擇性加密。汪麗華,2010.(汪麗華,廖曉峰,向濤等.基于小波變換的圖像人工退化算法[J].計(jì)算機(jī)工程,2010,36(16):203-207.)將原始圖像轉(zhuǎn)換為不同頻率成分的小波域子圖像,通過對(duì)高頻部分添加乘性噪聲和加性噪聲來對(duì)圖像進(jìn)行頻域選擇性加密。
盡管目前已提出了大量圖像加密方法,但現(xiàn)有圖像加密方法通常關(guān)注的是如何有效和安全地構(gòu)造加密策略,而對(duì)加密圖像的抗攻擊能力關(guān)注較為有限,一些圖像加密方法盡管具備一定抗攻擊能力,但抵御攻擊的能力十分有限并且上述所給出的圖像加密方法都不具備攻擊后修復(fù)能力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的在于克服現(xiàn)有技術(shù)缺陷,提供一種結(jié)合零水印和塊分類融合的自恢復(fù)圖像加密和解密方法,同現(xiàn)有方法相比,所提方法既可對(duì)圖像進(jìn)行加密,還可對(duì)信道受攻擊后具備修復(fù)能力。
為實(shí)現(xiàn)該目的,本發(fā)明采用以下技術(shù)方案:
一種結(jié)合零水印和塊分類融合的自恢復(fù)圖像加密方法,包括以下步驟:
第1步:記分辨率為m×n的原始圖像A且滿足(m)mod4=0,(n)mod4=0,將A劃分為4×4不重疊小塊Au,v,u=0,1,…,(m/4)-1,v=0,1,…,(n/4)-1,記劃分小塊數(shù)為bm×bn,則有bm=m/4,bn=n/4,輸入用戶給定參數(shù)x0∈(0,1)和μ0∈[3.57,4];
第2步:記Au,v=(ai,j)4×4,對(duì)Au,v進(jìn)行頻域變換,記變換后輸出塊為A′u,v=(a′s,t)4×4;
第3步:計(jì)算A′u,v=(a′s,t)4×4的交變系數(shù)能量Eu,v,確定Au,v的塊類型Tu,v;
第4步:對(duì)所有A′u,v根據(jù)Tu,v保留交直流系數(shù)作為恢復(fù)系數(shù)參考矩陣Ru,v;
第5步:將用戶給定的參數(shù)x0和μ0映射為μ′0∈[3.57,4]和x′0∈(0,1),然后以μ′0,x′0為參數(shù)產(chǎn)生(0,1)范圍內(nèi)的隨機(jī)數(shù),在迭代時(shí),為消除暫態(tài)效應(yīng),將最開始生成的IT,IT>0次隨機(jī)數(shù)刪除掉,將后續(xù)生成的隨機(jī)數(shù)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0,T1,T2,T3∈[0,IT-1],其中w=bm,h=bn;
第6步:將所有矩陣小塊Ru,v位置置亂,將置亂后小塊記為將A′u,v和融合在一起作為A″u,v,其中A′u,v稱為A″u,v主信息,稱為A″u,v副信息,置亂參數(shù)取a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及t=T0,w=bm,h=bn;
第7步:取a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]與t=T1,T2,w=bm,h=bn分別將所有矩陣小塊Ru,v對(duì)應(yīng)的DC系數(shù)DCu,v置亂為將所有Tu,v位置置亂,將置亂后Tu,v記為
第8步:設(shè)定閾值T,T≥0,對(duì)所有A″u,v,將待編碼圖像塊A″u,v中DCT系數(shù)與閾值T進(jìn)行比較,然后轉(zhuǎn)換為編碼矩陣Bu,v=(bi,j)4×4;
第9步:生成隨機(jī)起始值lstart∈(0,1),將所有Bu,v量化為2值比特位串lru,v,lcu,v,ldu,v,由lstart和μ0產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù),將前IT,IT>0次生成隨機(jī)數(shù)剔除掉,將后續(xù)生成隨機(jī)數(shù)依次作為篩選比特位串lru,v,lcu,v,ldu,v的隨機(jī)數(shù)種子,從lru,v,lcu,v,ldu,v分別隨機(jī)篩選出6位比特位串lr′u,v,lc′u,v,ld′u,v并將lr′u,v,lc′u,v,ld′u,v映射為6位隨機(jī)比特autu,v,將autu,v作為塊A″u,v的6位認(rèn)證比特auu,v,將所有auu,v置亂,記置亂后auu,v為置亂參數(shù)取a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及t=T3,w=bm,h=bn;
第10步:將置亂后位于同一位置的DCu,v,Tu,v,auu,v構(gòu)成三元組集合作為零水印存儲(chǔ)在第3方公信方對(duì)應(yīng)的數(shù)據(jù)庫中;
第11步:將所有A″u,v進(jìn)行恢復(fù),并重構(gòu)圖像A″′;
第12步:將μ′0∈[3.57,4]和x′0∈(0,1)映射為μ″0∈[3.57,4]和x″0∈(0,1),然后以μ″0,x″0為參數(shù)產(chǎn)生(0,1)范圍內(nèi)的隨機(jī)數(shù),在迭代時(shí)將前IT,IT>0次隨機(jī)數(shù)剔除掉,將后續(xù)生成的隨機(jī)數(shù)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0∈[0,IT-1],其中w=m,h=n;
第13步:由所有A″u,v重構(gòu)圖像A″,將A″=(a″i,j)m×n位置置亂為A″′,將A″′輸出作為加密后圖像,其中參數(shù)取a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及t=T0,w=m,h=n。
進(jìn)一步,在第2步中對(duì)Au,v進(jìn)行頻域變換的具體方法為式(1):
式(1)中,cs為標(biāo)準(zhǔn)化系數(shù),其具體取值如式(2)所示:
在第3步中計(jì)算A′u,v=(a′s,t)4×4對(duì)應(yīng)的交變系數(shù)能量Eu,v,確定Au,v所對(duì)應(yīng)的塊類型Tu,v的具體方法為:按式(3)計(jì)算A′u,v=(a′s,t)4×4對(duì)應(yīng)的交變系數(shù)能量Eu,v,然后按式(4)確定Au,v對(duì)應(yīng)的塊類型Tu,v;
式(4)中,λ0,λ1,λ2為分割閾值;
在第4步中對(duì)所有A′u,v根據(jù)塊類型Tu,v保留對(duì)應(yīng)位置的交直流系數(shù)作為恢復(fù)系數(shù)參考矩陣Ru,v的具體方法為式(17):
式(17)中,DC為直流系數(shù),AC為交變系數(shù)。
進(jìn)一步,第3步式(4)中確定分割閾值λ0,λ1,λ2的具體確定方法為:
第3.1步:生成平滑矩陣模板
第3.2步:將參數(shù)x0和μ0分別作為式(5)初始值和系統(tǒng)參數(shù),驅(qū)動(dòng)式(5)產(chǎn)生(0,1)范圍內(nèi)的隨機(jī)數(shù),在迭代時(shí),為消除暫態(tài)效應(yīng),將前IT,IT>0次生成的隨機(jī)數(shù)刪掉,將后續(xù)生成的160個(gè)隨機(jī)數(shù)記為xIT,xIT+1,…,xIT+159按式(6)量化為[0,255]范圍內(nèi)整數(shù)X0,X1,…,X159,按式(7)產(chǎn)生候選隨機(jī)矩陣模板
xn+1=μxn(1-xn) (5)
式(5)中,xn∈(0,1)為迭代起始值,μ為變換參數(shù),當(dāng)μ∈[3.57,4]時(shí),式(5)處于混沌狀態(tài)具有初值敏感性;
第3.3步:按式(8)計(jì)算的均值矩陣M=(mi,j)4×4,按式(9)找出與均值矩陣M差異最大矩陣與均值矩陣M差異最小的矩陣并將和從Mk中去掉,將Mk中剩余的8個(gè)矩陣計(jì)算得到均值矩陣作為隨機(jī)矩陣模板num>1:
第3.4步:對(duì)和按式(10)加權(quán),產(chǎn)生num-1個(gè)模板矩陣然后按式(3)計(jì)算交變系數(shù)能量El,l=0,1,…,num;
第3.5步:將區(qū)間[E0,Enum]按式(11)劃分為L,L>1個(gè)區(qū)間并分配能量階K,K=0,1,…,L-1,對(duì)能量階進(jìn)行統(tǒng)計(jì)形成能量直方圖HE=(hK)L,其中hK表示能量階為K的交變系數(shù)能量發(fā)生次數(shù),并按式(12)計(jì)算每個(gè)能量階發(fā)生概率PK,K=0,1,…,L-1;
第3.6步:按式(13)可確定劃分閾值λ0,λ1,λ2,即對(duì)區(qū)間范圍內(nèi)的λ∈[λbegin,λend],求解使目標(biāo)式δ最大化的λ,即
式(13)中upart1,upart2,utotal分別按式(14)、式(15)和式(16)計(jì)算:
將λbegin=0,λend=L-1代入式(13),可確定分割閾值λ1;將λbegin=0,λend=λ1-1代入式(14),可確定分割閾值λ0;將λbegin=λ1+1,λend=L-1代入式(13),可確定閾值λ2。
進(jìn)一步,在第5步中將后續(xù)生成隨機(jī)數(shù)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0,T1,T2,T3∈[0,IT-1],其中w=bm,h=bn的具體方法為:記后續(xù)生成隨機(jī)數(shù)為l0,l1,l2,l3,l4,l5,l6,l7,l8,l9∈(0,1),將其按式(20)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0,T1,T2,T3∈[0,IT-1],其中式(20)中取w=bm,h=bn,反復(fù)取后續(xù)生成隨機(jī)數(shù)作為l0,l1,l2,l3,l4,l5,l6,l7,l8,l9∈(0,1)直至按式(20)生成的映射值滿足式(21)的條件;
式(21)中“|”表示或,p=gcd(w,h)為w,h的最大公因子且w=pz1,h=pz2;
在第6步中將所有矩陣小塊Ru,v位置置亂的具體方法為式(22):
在第7步中將所有矩陣小塊Ru,v對(duì)應(yīng)的DC系數(shù)DCu,v置亂為將所有Tu,v位置置亂為的具體方法為式(22);
在第12步中將后續(xù)生成的隨機(jī)數(shù)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0∈[0,IT-1],其中取w=m,h=n的具體方法為:記后續(xù)生成隨機(jī)數(shù)為l0,l1,l2,l3,l4,l5,l6∈(0,1),將其按式(20)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0∈[0,IT-1],其中式(20)中w=m,h=n,反復(fù)取后續(xù)生成隨機(jī)數(shù)作為l0,l1,l2,l3,l4,l5,l6∈(0,1)直至按式(20)生成映射值滿足式(21)條件;
在第13步中,將A″=(a″i,j)m×n位置置亂為A″′的具體方法為式(22)。
進(jìn)一步,在第6步中將A′u,v和融合在一起作為A″u,v的具體方法為:
記Tu,v,分別對(duì)應(yīng)為A′u,v和的塊類型,將A′u,v和融合的具體方法如式(23a)~式(23d)所示,式中ACi和AC′i分別對(duì)應(yīng)為A′u,v和的交變系數(shù):
式(23a)~式(23d)中,當(dāng)時(shí),此時(shí)直接將A″u,v作為A″u,v,即A″u,v=A′u,v。
進(jìn)一步,在第8步中將待編碼圖像塊A″u,v中的DCT系數(shù)與閾值T進(jìn)行比較,然后轉(zhuǎn)換為編碼矩陣Bu,v=(bi,j)4×4的具體方法為式(24):
式(24)中,cofi,j為待編碼圖像塊第(i,j)位置的DCT系數(shù);
在第9步中生成隨機(jī)起始值lstart∈(0,1)的具體方法為式(25):
lstart=(l0+l1+…+l9)/10 (25)
在第9步中,將所有Bu,v量化為2值比特位串lru,v,lcu,v,ldu,v的具體方法為式(26)、式(27)和式(28):
式(26)、式(27)和式(28)中,函數(shù)bin()為2值化函數(shù),bin(v)執(zhí)行的功能如式(29)所示:
在第6步中,將lr′u,v,lc′u,v,ld′u,v映射為6位隨機(jī)比特autu,v的具體方法為式(30):
式(30)中,為異或運(yùn)算符。
一種結(jié)合零水印和塊分類融合的自恢復(fù)圖像解密方法,包括以下步驟:
第1步:記接收到分辨率為m×n的信道傳輸圖像為Z=(zi,j)m×n且滿足(m)mod4=0,(n)mod4=0,記Z可劃分4×4不重疊小塊的塊數(shù)為bm×bn,則有bm=m/4,bn=n/4,輸入用戶給定的參數(shù)x0∈(0,1),μ0∈[3.57,4],閾值T以及消除暫態(tài)效應(yīng)的濾除迭代次數(shù)IT,IT>0;
第2步:將用戶給定參數(shù)x0和μ0映射為μ′0∈[3.57,4]和x′0∈(0,1),然后驅(qū)動(dòng)μ′0,x′0產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù),在迭代時(shí),為消除暫態(tài)效應(yīng),將最開始生成的IT,IT>0次隨機(jī)數(shù)剔除,將后續(xù)生成隨機(jī)數(shù)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0,T1,T2,T3∈[0,IT-1],其中w=bm,h=bn;
第3步:從第3方公信方提取出零水印對(duì)應(yīng)的三元組集合,記其中1個(gè)三元組對(duì)應(yīng)為(DCu,v,Tu,v,auu,v),以a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T1,T2,T3∈[0,IT-1]為參數(shù),取w=bm,h=bn,將其中u=0,1,…,bm-1,v=0,1,…,bn-1;
第4步:生成隨機(jī)起始值lstart∈(0,1),將T0記為S0,由μ′0∈[3.57,4]和x′0∈(0,1)映射生成μ″0∈[3.57,4]和x″0∈(0,1),然后驅(qū)動(dòng)μ″0,x″0產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù),在迭代時(shí),將前IT,IT>0次隨機(jī)數(shù)剔除掉,將后續(xù)生成隨機(jī)數(shù)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0∈[0,IT-1],其中w=m,h=n;
第5步:將Z恢復(fù)為Z′=(z′i,j)m×n,其中參數(shù)取a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及t=T0,w=m,h=n,將Z′劃分為4×4不重疊小塊Z′u,v,u=0,1,…,bm-1,v=0,1,…,bn-1,將每個(gè)小塊Z′u,v變換為Z″u,v=(z″s,t)4×4;
第6步:對(duì)所有Z″u,v,將Z″u,v中DCT系數(shù)與閾值T進(jìn)行比較,轉(zhuǎn)換為編碼矩陣Bu,v=(bi,j)4×4;
第7步:將所有Bu,v量化為2值比特位串lru,v,lcu,v,ldu,v,由lstart和μ0產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù),將前IT,IT>0次隨機(jī)數(shù)刪除掉,將后續(xù)生成隨機(jī)數(shù)依次作為篩選比特位串lru,v,lcu,v,ldu,v的隨機(jī)數(shù)種子,從lru,v,lcu,v,ldu,v中隨機(jī)篩選出6位比特位串lr′u,v,lc′u,v,ld′u,v,將lr′u,v,lc′u,v,ld′u,v映射為6位隨機(jī)比特autu,v,將autu,v作為塊Z″u,v的6位認(rèn)證比特au′u,v;
第8步:對(duì)所有塊Z″u,v,若au′u,v=auu,v,則將Z″u,v標(biāo)記為完整塊,否則將Z″u,v標(biāo)記為待修復(fù)塊,并通過標(biāo)記矩陣S=(su,v)bm×bn進(jìn)行標(biāo)記,當(dāng)su,v=1時(shí)為完整塊,su,v=0為待修復(fù)塊,su,v=2為已修復(fù)塊;
第9步:若塊Z″u,v標(biāo)記狀態(tài)為su,v=0,則對(duì)塊Z″u,v主信息A′u,v進(jìn)行試探性恢復(fù);
第10步:重復(fù)第9步,直至將所有標(biāo)記狀態(tài)為su,v=0的Z″u,v恢復(fù)為A′u,v;
第11步:對(duì)所有su,v=1的Z″u,v,提取Z″u,v存儲(chǔ)的交變系數(shù)AC0,AC1,…,ACk-1,將DCu,v作為Z″u,v的直流系數(shù),其余元素清零,然后填充到Z″u,v中的第1~k個(gè)位置,并將Z″u,v作為A′u,v輸出,其中k為Z″u,v主信息交變系數(shù)個(gè)數(shù);
第12步:將所有A′u,v=(a′s,t)4×4恢復(fù)為Au,v=(ap,q)4×4并重構(gòu)秘密圖像A。
進(jìn)一步,在第2步中將用戶給定參數(shù)x0和μ0映射為μ′0∈[3.57,4]和x′0∈(0,1)的具體方法為:
在第2步中驅(qū)動(dòng)μ′0,x′0產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù)的具體方法為式(5):
xn+1=μxn(1-xn) (5);
在2步中將后續(xù)生成隨機(jī)數(shù)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0,T1,T2,T3∈[0,IT-1],其中w=bm,h=bn的具體方法為:記后續(xù)生成隨機(jī)數(shù)為l0,l1,l2,l3,l4,l5,l6,l7,l8,l9∈(0,1),將其按式(20)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0,T1,T2,T3∈[0,IT-1],其中式(20)中的w=bm,h=bn,反復(fù)取后續(xù)生成隨機(jī)數(shù)作為l0,l1,l2,l3,l4,l5,l6,l7,l8,l9∈(0,1)直至按式(20)生成映射值滿足式(21)的條件;
式(21)中“|”表示或,p=gcd(w,h)為w,h的最大公因子且w=pz1,h=pz2;
在第3步中,將的具體方法為式(32):
在第4步中生成隨機(jī)起始值lstart∈(0,1)具體方法為式(25):
lstart=(l0+l1+…+l9)/10 (25)
在第4步中由μ′0∈[3.57,4]和x′0∈(0,1)映射生成μ″0∈[3.57,4]和x″0∈(0,1)的具體方法為將μ′0∈[3.57,4]和x′0∈(0,1)作為式(18)和式(19)中的μ0,x0,利用式(18)和式(19)映射生成μ′0∈[3.57,4]和x′0∈(0,1):
在第4步中將后續(xù)生成隨機(jī)數(shù)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0∈[0,IT-1],其中w=m,h=n的具體方法為:將后續(xù)生成隨機(jī)數(shù)記為l0,l1,l2,l3,l4,l5,l6∈(0,1),將其按式(20)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0∈[0,IT-1],其中式(20)中的w=m,h=n,反復(fù)取后續(xù)生成隨機(jī)數(shù)作為l0,l1,l2,l3,l4,l5,l6∈(0,1)直至按式(20)生成的映射值滿足式(21)的條件;
在第5步中將Z恢復(fù)為Z′=(z′i,j)m×n的具體方法為式(32);
在第5步中將每個(gè)小塊Z′u,v變換為Z″u,v=(z″s,t)4×4的具體方法為式(1):
式(1)中,cs為標(biāo)準(zhǔn)化系數(shù),其具體取值如式(2)所示:
進(jìn)一步,在第6步中轉(zhuǎn)換為編碼矩陣Bu,v=(bi,j)4×4的具體方法為式(24):
式(24)中,cofi,j為待編碼圖像塊第(i,j)位置DCT系數(shù);
在第7步中將所有Bu,v量化為2值比特位串lru,v,lcu,v,ldu,v的具體方法為式(26)、式(27)和式(28):
式(26)、式(27)和式(28)中,函數(shù)bin()為2值化函數(shù),bin(v)功能如式(29)所示:
在第7步中由lstart和μ0產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù)具體方法為式(5);
在第7步中將lr′u,v,lc′u,v,ld′u,v映射為6位隨機(jī)比特autu,v具體方法為式(30)
在第12步中,將所有A′u,v=(a′s,t)4×4恢復(fù)為Au,v=(ap,q)4×4具體方法為式(35)。
進(jìn)一步,在第9步中對(duì)塊Z″u,v主信息A′u,v進(jìn)行試探性恢復(fù)的具體方法為在于包括以下步驟:
第9.1步:將塊Z″u,v中的所有元素清零,將t=S0,w=bm,h=bn代入式(32),按式(32)找到Z″u,v所對(duì)應(yīng)的映射塊;
第9.2步;若標(biāo)記狀態(tài)將Z″u,v所對(duì)應(yīng)的DC系數(shù)置為DCu,v;
第9.3步:若標(biāo)記狀態(tài)則根據(jù)和Z″u,v塊類型Tu,v按式(33a)~(33d)將Z″u,v的交變系數(shù)AC′0,AC′1,…,AC′k-1從中提取出來,然后將DCu,v作為Z″u,v直流系數(shù)DC,將AC′0,AC′1,…,AC′k-1按式(34)矩陣元素對(duì)應(yīng)索引位置填充到Z″u,v中的第1~第k個(gè)位置,其中k為存儲(chǔ)副信息交變系數(shù)個(gè)數(shù);
式(33a)~(33d)中,ACi和AC′i分別為存儲(chǔ)的主信息和副信息交變系數(shù);
第9.4步:將Z″u,v作為A′u,v輸出并置su,v=2。
本發(fā)明同現(xiàn)有技術(shù)優(yōu)點(diǎn)分析:
①傳統(tǒng)圖像加密方法通常關(guān)注的是如何有效和安全地構(gòu)造加密策略,而對(duì)加密圖像抗攻擊能力關(guān)注較為有限,一些圖像加密方法盡管具備一定抗攻擊能力,但抵御攻擊能力十分有限并且上述所給出的圖像加密方法都不具備攻擊后修復(fù)能力。同現(xiàn)有技術(shù)不同,本發(fā)明自恢復(fù)能力主要體現(xiàn)在恢復(fù)時(shí),可利用主副信息認(rèn)證關(guān)系和零水印恢復(fù)主信息并重構(gòu)解密圖像,通過主副信息的認(rèn)證關(guān)系,可對(duì)主信息進(jìn)行不同程度的恢復(fù),在認(rèn)證時(shí),即使主信息遭受破壞,若存儲(chǔ)于其他認(rèn)證塊中的副信息通過認(rèn)證,也可對(duì)主信息進(jìn)行近似恢復(fù),若主副信息都遭受破壞,則依然可以通過可靠存儲(chǔ)的零水印對(duì)主信息進(jìn)行一定程度的恢復(fù),恢復(fù)出塊均值。從而相對(duì)于傳統(tǒng)方法,提高了圖像加密方法的抗攻擊能力和攻擊后修復(fù)能力。
②同傳統(tǒng)圖像加密方法不同,為增強(qiáng)所提策略抗攻擊能力,本發(fā)明引入了零水印通過第3方公信方來存儲(chǔ)待加密圖像小塊直流分量,認(rèn)證位以及塊類型編碼,使得即使加密圖像遭受大面積攻擊,掌握正確密鑰的用戶則至少可以對(duì)攻擊區(qū)域內(nèi)圖像小塊的均值進(jìn)行恢復(fù),而整個(gè)提取的零水印數(shù)量僅和圖像最低有效位數(shù)量相當(dāng),不會(huì)消耗太大存儲(chǔ)空間。零水印中的直流分量,認(rèn)證位以及塊類型編碼被充分置亂且僅能起到認(rèn)證和加密圖像的塊均值恢復(fù)作用,使得零水印可以安全存儲(chǔ)于第3方公信方。
③為減少對(duì)待加密圖像小塊量化而造成修復(fù)參考矩陣的視覺質(zhì)量損失,需對(duì)待加密圖像小塊進(jìn)行準(zhǔn)確分類,為避免固定閾值所帶來的分類偏差,本發(fā)明利用待加密圖像小塊的頻域交變系數(shù)能量和并依據(jù)平滑模板和隨機(jī)模板進(jìn)行自適應(yīng)分類,使得不同待加密圖像小塊都可準(zhǔn)確分類,從而避免了加密圖像小塊量化為修復(fù)參考矩陣時(shí)帶來的視覺質(zhì)量損失。
④為提高認(rèn)證準(zhǔn)度,避免JPEG量化對(duì)認(rèn)證準(zhǔn)度的影響,本發(fā)明引入了基于量化閾值的編碼矩陣,通過編碼矩陣的行、列和對(duì)角相關(guān)性構(gòu)造認(rèn)證比特,通過與密鑰有關(guān)的篩選策略來隨機(jī)篩選認(rèn)證比特,使得只有提供正確密鑰的用戶才能進(jìn)行認(rèn)證,同時(shí)又對(duì)JPEG壓縮有較好的攻擊容忍能力。
⑤同現(xiàn)有方法相比,所提方法既可對(duì)圖像進(jìn)行有效的加密,還可對(duì)信道中的攻擊具備一定的恢復(fù)能力,因而具備更高的應(yīng)用價(jià)值。
附圖說明
圖1是加密流程圖;
圖2是恢復(fù)流程圖;
圖3是原始圖像;
圖4是圖3塊分類情況示意圖;圖5是含恢復(fù)信息圖像;
圖6是置亂含恢復(fù)信息圖像;
圖7是圖6經(jīng)質(zhì)量因子為80的JPEG壓縮圖像;
圖8是由圖7置亂恢復(fù)圖像;
圖9是圖8對(duì)應(yīng)的篡改檢測圖像;
圖10是最終恢復(fù)秘密圖像;
圖11是由圖3按2維雙尺度矩形映射直接置亂圖像;
圖12是對(duì)圖11經(jīng)質(zhì)量因子為80的JPEG壓縮得到圖像;
圖13是由圖12直接恢復(fù)圖像。
具體實(shí)施方式
實(shí)驗(yàn)測試環(huán)境為Windows 10操作系統(tǒng),CPU為Inter(R)Core(TM)i5-6600,主頻為3.31GHz,內(nèi)存為8.00GB,,實(shí)驗(yàn)編碼語言為Java jdk1.8.0_65,以下結(jié)合附圖對(duì)本發(fā)明實(shí)施方式進(jìn)行詳細(xì)說明,但不局限于本實(shí)施案例,其中圖1是加密流程圖,圖2是恢復(fù)流程圖。嵌入方法的具體實(shí)施步驟如下:
第1步:記分辨率為m×n原始圖像A,并且滿足(m)mod4=0,(n)mod4=0,將A劃分為4×4不重疊小塊Au,v,u=0,1,…,(m/4)-1,v=0,1,…,(n/4)-1,記劃分小塊數(shù)為bm×bn,則有bm=m/4,bn=n/4,輸入用戶給定參數(shù)x0∈(0,1)和μ0∈[3.57,4];例如:取圖3為原始圖像,原始圖像是分辨率為512×512的8位灰度圖像Lena,其中m=512,n=512,bm=m/4=128,bn=n/4=128,輸入用戶給定參數(shù)x0=0.8178099125461247,μ0=3.811008696444322;
第2步:記Au,v=(ai,j)4×4,按式(1)對(duì)Au,v進(jìn)行2維離散余弦變換,記變換后輸出塊為A′u,v=(a′s,t)4×4;例如A127,0經(jīng)式(1)對(duì)應(yīng)的輸出塊A′127,0分別為:
第3步:按式(3)計(jì)算A′u,v=(a′s,t)4×4交變系數(shù)能量Eu,v,按式(4)確定Au,v塊類型Tu,v;例如按式(3)可得到A0,0交變系數(shù)能量為E0,0=1.7320508075688772;式(4)中λ0,λ1,λ2為分割閾值,具體生成方法如下:
第3.1步:生成平滑矩陣模板
第3.2步:將參數(shù)x0和μ0作為式(5)初始值和系統(tǒng)參數(shù),驅(qū)動(dòng)式(5)產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù),在迭代時(shí),為消除暫態(tài)效應(yīng),將前IT,IT>0次生成隨機(jī)數(shù)刪掉,將后續(xù)生成160個(gè)隨機(jī)數(shù)記為xIT,xIT+1,…,xIT+159按式(6)量化為[0,255]范圍內(nèi)隨機(jī)整數(shù)X0,X1,…,X159,按式(7)產(chǎn)生候選隨機(jī)矩陣模板例如:將x0=0.8178099125461247和μ0=3.811008696444322代入式(5),取IT=1000,則濾除前1000個(gè)隨機(jī)數(shù),將后續(xù)生成的160個(gè)隨機(jī)數(shù)記為xIT=0.5267391586011982,0.9500273691943842,…,xIT+159=0.3115701697334002,按式(6)量化得到隨機(jī)整數(shù)為X0=238,X1=144,…,X159=24,按式(7)產(chǎn)生隨機(jī)矩陣模板:
第3.3步:按式(8)計(jì)算均值矩陣M=(mi,j)4×4,按式(9)找出與均值矩陣M差異最大矩陣與均值矩陣M差異最小的矩陣將和從Mk中去掉,將Mk中剩余8個(gè)矩陣計(jì)算均值矩陣作為隨機(jī)矩陣模板num>0:例如:按式(8)可得到均值矩陣為M,按式(9)找出差異最小矩陣差異最大矩陣則最終得到隨機(jī)矩陣模板RDnum分別為:
第3.4步:對(duì)和按式(10)加權(quán),產(chǎn)生num-1個(gè)模板矩陣然后按式(3)計(jì)算對(duì)應(yīng)的交變系數(shù)能量El,l=0,1,…,num;例如對(duì)RD0和RDnum按式(10)加權(quán),取num=100產(chǎn)生模板矩陣為:
按式(3)得:E0=0,E1=1.9364916731037085,…,E100=137.07821672315407;
第3.5步:將區(qū)間[E0,Enum]按式(11)劃分為L,L>1個(gè)區(qū)間并分配能量階K,K=0,1,…,L-1,對(duì)能量階進(jìn)行統(tǒng)計(jì)形成能量直方圖HE=(hK)L,其中hK表示能量階為K交變系數(shù)能量發(fā)生次數(shù),并按式(12)計(jì)算每個(gè)能量階的發(fā)生概率PK,K=0,1,…,L-1;例如:取L=137,若總共有101個(gè)交變系數(shù)能量,若落入第0個(gè)區(qū)間有1個(gè)交變系數(shù)能量,則按式(12)有:P0=1/101.
第3.6步:按式(13)可確定劃分閾值λ0,λ1,λ2,即對(duì)區(qū)間范圍內(nèi)λ∈[λbegin,λend],求解使目標(biāo)式δ最大化的λ,即將λbegin=0,λend=L-1代入式(13),可確定分割閾值λ1;將λbegin=0,λend=λ1-1代入式(14),可確定分割閾值λ0;將λbegin=λ1+1,λend=L-1代入式(13),可確定分割閾值λ2;例如若已經(jīng)確定P0,P1,…,PL-1,且有λbegin=0,λend=136,將其分別帶入式(14)、式(15)和式(16)可分別得到upart1=0.0,upart2=69.29576829310979,utotal=68.60967157733643,然后將P0,P1,…,PL-1和upart1=0.0,upart2=69.29576829310979,utotal=68.60967157733643代入式(13)可得到:δ0=47.07,δ1=92.43,…,δ67=1200.08,…,δ137=-3.1356830691664262E-12從而可得到分割點(diǎn)λ1=67,同理可得分割點(diǎn)λ0=33,λ2=103,獲得了分割閾值λ0,λ1,λ2,則可按式(4)確定Au,v所對(duì)應(yīng)的塊類型Tu,v,例如E0,0=1.7320508075688772,則T0,0=0;
第4步:對(duì)所有A′u,v根據(jù)塊類型Tu,v按式(17)保留對(duì)應(yīng)位置交直流系數(shù)作為恢復(fù)系數(shù)參考矩陣Ru,v;例如A′127,0塊交變系數(shù)為E127,0=69.45502141674135,根據(jù)式(4)知T127,0=2,按式(17)可得到A′127,0恢復(fù)系數(shù)參考矩陣R127,0為:
第5步:將用戶給定的參數(shù)x0∈(0,1)和μ0∈[3.57,4]按式(18)和式(19)映射為μ′0∈[3.57,4]和x′0∈(0,1),然后驅(qū)動(dòng)式(5)產(chǎn)生(0,1)范圍內(nèi)的隨機(jī)數(shù),在迭代時(shí),為消除暫態(tài)效應(yīng),將最開始生成的IT,IT>0次的隨機(jī)數(shù)刪掉,記后續(xù)生成隨機(jī)數(shù)為l0,l1,l2,l3,l4,l5,l6,l7,l8,l9∈(0,1),將其按式(20)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0,T1,T2,T3∈[0,IT-1],其中式(20)中的w=bm,h=bn,反復(fù)取后續(xù)隨機(jī)數(shù)作為l0,l1,l2,l3,l4,l5,l6,l7,l8,l9∈(0,1)直至按式(20)生成映射值滿足式(21)條件;例如將x0=0.8178099125461247和μ0=3.811008696444322代入式(5),取IT=1000,則濾除前1000個(gè)隨機(jī)數(shù),按式(18)和(19)可得:x′0=0.665854370759757和μ′0=3.8659376278555553,將后續(xù)生成的滿足式(21)隨機(jī)數(shù)記為:按式(20)可得到:a0=78,a1=55,a2=86,a3=41,a4=104,a5=41,T0=274,T1=291,T2=850,T3=38;
第6步:按式(22)將所有小塊Ru,v位置置亂,將置亂后小塊記為式(22)中取t=T0,w=bm,h=bn,記Tu,v分別為A′u,v和塊類型,則根據(jù)Tu,v,按式(23a)~式(23d)將A′u,v和融合在一起作為A″u,v,其中A′u,v稱為A″u,v主信息,稱為A″u,v的副信息;例如取t=T0=274,w=128,h=128,按式(22)可將R127,0置亂為R94,89,若A′127,0對(duì)應(yīng)T127,0=2,A′94,89對(duì)應(yīng)T94,89=1,則按式(23c)可將A′127,0和R94,89融合在一起作為A″127,0,以下分別是:A′127,0,R94,89和A″127,0,其中A′127,0稱為A″127,0主信息,R94,89是A″127,0副信息;
第7步:取式(22)中t=T1,按式(22)將所有矩陣小塊Ru,v對(duì)應(yīng)的DC系數(shù)DCu,v置亂為取式(22)t=T2,按式(22)將所有Tu,v位置置亂,將置亂后Tu,v記為式(22)中取w=bm,h=bn;例如:取參數(shù)t=T1=291,則可將R127,0對(duì)應(yīng)DC系數(shù)DC127,0置亂為DC65,119,取參數(shù)t=T2=850,則可將R127,0對(duì)應(yīng)塊類型T127,0置亂為T62,121;
第8步:設(shè)定閾值T,T≥0作為用戶密鑰,對(duì)所有A″u,v,將待編碼圖像塊A″u,v中DCT系數(shù)與閾值T進(jìn)行比較,按式(24)轉(zhuǎn)換為編碼矩陣Bu,v=(bi,j)4×4;
例如:取閾值T=20,以塊A″127,0為例,則按式(24)得到的編碼矩陣B127,0為:
第9步:將l0,l1,l2,l3,l4,l5,l6,l7,l8,l9按式(25)映射為隨機(jī)起始值lstart∈(0,1),對(duì)所有Bu,v按式(26)、式(27)和式(28)量化為2值比特位串lru,v,lcu,v,ldu,v,將lstart和μ0代入式(5)產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù),將前IT,IT>0次生成隨機(jī)數(shù)剔除掉,將后續(xù)生成隨機(jī)數(shù)依次作為篩選比特位串lru,v,lcu,v,ldu,v隨機(jī)數(shù)種子,從lru,v,lcu,v,ldu,v分別隨機(jī)篩選出6位比特位串lr′u,v,lc′u,v,ld′u,v,按式(30)映射為6位隨機(jī)比特autu,v,將autu,v作為塊A″u,v6位認(rèn)證比特auu,v,按式(22)將所有auu,v置亂,記置亂后的auu,v為式(22)中取t=T3,w=bm,h=bn;例如:將l0,l1,l2,l3,l4,l5,l6,l7,l8,l9按式(25)映射得到的隨機(jī)起始值為lstart=0.6029878202434327,將B127,0按式(26)、式(27)和式(28)量化為2值比特位串lr127,0=(11111111)2,lc127,0=(11111111)2,ld127,0=(11111111)2,將lstart和μ0作為初始值,代入式(5)去除前1000次之后,產(chǎn)生隨機(jī)數(shù)為0.5922295126716617,0.9203346555945013,0.27941849792679074,依次作為從lr127,0,lc127,0,ld127,0中各篩選出6位比特位串的隨機(jī)數(shù)種子,篩選后比特位串為lr′127,0=(111111)2,lc′127,0=(111111)2,ld′127,0=(111111)2,按式(30)將lr′127,0,lc′127,0,ld′127,0映射為6位隨機(jī)比特位串a(chǎn)ut127,0=(111111)2,并將aut127,0作為塊A″127,06位認(rèn)證比特au127,0,取式(22)中參數(shù)w=128,h=128,t=T3=38,按式(22)可將au127,0置亂為au12,43;
第10步:將置亂后位于同一位置的DCu,v,Tu,v,auu,v構(gòu)成三元組集合作為零水印存儲(chǔ)在第3方公信方對(duì)應(yīng)的數(shù)據(jù)庫中;例如:圖像塊A″127,0對(duì)應(yīng)置亂后的DC系數(shù)為DC65,119,將DC65,119以及與他相同位置T65,119和au65,119構(gòu)成的三元組集合(DC65,119,T65,119,au65,119),由所有三元組(DCu,v,Tu,v,auu,v)可構(gòu)成集合作為零水印存儲(chǔ)在第3方公信方對(duì)應(yīng)的數(shù)據(jù)庫中;
第11步:將所有A″u,v按式(31)進(jìn)行恢復(fù),并重構(gòu)圖像A″′,記A″′4×4不重疊塊為A″′u,v且A″u,v=(a″s,t)4×4,A″′u,v=(a″′p,q)4×4;例如:將A″127,0按式(31)進(jìn)行恢復(fù),可得到圖像塊為:
第12步:將μ′0∈[3.57,4]和x′0∈(0,1)作為式(18)和式(19)中的μ0,x0,利用式(18)和式(19)映射生成μ″0∈[3.57,4]和x″0∈(0,1),然后驅(qū)動(dòng)式(5)產(chǎn)生(0,1)范圍內(nèi)的隨機(jī)數(shù),在迭代時(shí),將前IT,IT>0次隨機(jī)數(shù)剔除掉,記后續(xù)生成隨機(jī)數(shù)為l0,l1,l2,l3,l4,l5,l6∈(0,1),將其按式(20)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0∈[0,IT-1],其中式(20)中的w=m,h=n,反復(fù)取后續(xù)生成隨機(jī)數(shù)作為l0,l1,l2,l3,l4,l5,l6∈(0,1)直至按式(20)生成映射值滿足式(21)的條件;例如:將x′0=0.665854370759757和μ′0=3.8659376278555553作為式(18)和式(19)中μ0,x0,利用式(18)和式(19)映射生成μ″0=3.8611245074562137和x″0=0.5824811722021471,按式(20)映射生成滿足式(21)隨機(jī)數(shù):按式(20)可映射得到滿足式(21)約束的7個(gè)數(shù):a0=237,a1=148,a2=250,a3=395,a4=501,a5=102,T0=523其中式(20)參數(shù)取w=512,h=512;
第13步:由所有A″u,v重構(gòu)圖像A″,按式(22)將A″=(a″i,j)m×n位置置亂為A″′,將A″′輸出作為加密后圖像,其中t=T0,w=m,h=n。例如:若式(22)中參數(shù)取t=T0=523,w=512,h=512,則像素點(diǎn)a″0,0將被置亂到a″102,372,由所有置亂后像素可構(gòu)成A″′。
恢復(fù)方法的具體實(shí)施步驟:
第1步:記接收到分辨率為m×n信道傳輸圖像為Z=(zi,j)m×n并且滿足(m)mod4=0,(n)mod4=0,記Z可劃分4×4不重疊小塊的塊數(shù)為bm×bn,則有bm=m/4,bn=n/4,輸入用戶給定參數(shù)x0∈(0,1),μ0∈[3.57,4],閾值T以及消除暫態(tài)效應(yīng)濾除迭代次數(shù)IT,IT>0;例如:以圖7為接收到的圖像,圖7分辨率為512×512,滿足(512)mod4=0,可劃分為4×4不重疊小塊塊數(shù)為128×128,用戶給定的參數(shù)x0=0.8178099125461247,μ0=3.811008696444322,閾值T=20,消除暫態(tài)效應(yīng)濾除迭代次數(shù)IT=1000;
第2步:將用戶給定參數(shù)x0和μ0按式(18)和式(19)映射為μ′0∈[3.57,4]和x′0∈(0,1),然后驅(qū)動(dòng)式(5)產(chǎn)生(0,1)范圍內(nèi)的隨機(jī)數(shù),在迭代時(shí),為消除暫態(tài)效應(yīng),將最開始生成的IT,IT>0次隨機(jī)數(shù)剔除,記后續(xù)生成隨機(jī)數(shù)為l0,l1,l2,l3,l4,l5,l6,l7,l8,l9∈(0,1),將其按式(20)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0,T1,T2,T3∈[0,IT-1],其中式(20)中w=bm,h=bn,反復(fù)取后續(xù)生成的隨機(jī)數(shù)作為l0,l1,l2,l3,l4,l5,l6,l7,l8,l9∈(0,1)直至按式(20)生成的映射值滿足式(21)的條件;例如:用戶給定參數(shù)x0=0.8178099125461247,μ0=3.811008696444322作為式(5)的初始值按式x0和μ0,IT=1000,按(18)和(19)映射產(chǎn)生的數(shù)分別為x′0=0.665854370759757和μ′0=3.8659376278555553,若后續(xù)生成隨機(jī)數(shù)為:
按式(20)可得到:a0=78,a1=55,a2=86,a3=41,a4=104,a5=41,T0=274,T1=291,T2=850,T3=38,由于a0,a1,a2,a3,a4,a5滿足式(21)條件,因此映射值a0,a1,a2,a3,a4,a5和T0,T1,T2,T3生成完畢;
第3步:從第3方公信方中提取出零水印對(duì)應(yīng)的三元組集合,記其中的1個(gè)三元組對(duì)應(yīng)為(DCu,v,Tu,v,auu,v),將t=T1代入式(32),利用式(32)將所有DCu,v恢復(fù)為將t=T2代入式(32),利用式(32)將所有Tu,v恢復(fù)為將t=T3代入式(32),利用式(32)將所有auu,v恢復(fù)為式(32)中取w=bm,h=bn,由此可將其中u=0,1,…,bm-1,v=0,1,…,bn-1;例如:對(duì)于三元組DC0,0,T0,0,au0,0,取(32)中的參數(shù)t=T1=291,將DC0,0恢復(fù)為DC80,111,取式(32)中的參數(shù)t=T2=850,將T0,0恢復(fù)為T23,73,取式(32)中的參數(shù)t=T3=38,將au0,0恢復(fù)為au117,27,式(32)中取w=128,h=128;
第4步:將l0,l1,l2,l3,l4,l5,l6,l7,l8,l9按式(25)映射為隨機(jī)起始值lstart∈(0,1),將T0記為S0,然后將μ′0∈[3.57,4]和x′0∈(0,1)作為式(18)和式(19)中的μ0,x0,利用式(18)和式(19)映射生成μ″0∈[3.57,4]和x″0∈(0,1),然后驅(qū)動(dòng)式(5)產(chǎn)生(0,1)范圍內(nèi)隨機(jī)數(shù),在迭代時(shí),將前IT,IT>0次隨機(jī)數(shù)剔除掉,記后續(xù)生成隨機(jī)數(shù)為l0,l1,l2,l3,l4,l5,l6∈(0,1),將其按式(20)映射為a0,a1,a2∈[0,w-1]和a3,a4,a5∈[0,h-1]以及T0∈[0,IT-1],其中式(20)中w=m,h=n,反復(fù)取后續(xù)生成隨機(jī)數(shù)作為l0,l1,l2,l3,l4,l5,l6∈(0,1)直至按式(20)生成映射值滿足式(21)條件;例如:將l0,l1,l2,l3,l4,l5,l6,l7,l8,l9按式(25)映射得到隨機(jī)起始值為lstart=0.6029878202434327,將T0記為S0即S0=T0=274,然后將x′0=0.665854370759757和μ′0=3.8659376278555553作為式(18)和式(19)中x0,μ0映射產(chǎn)生的數(shù)分別為x″0=0.5824811722021471和μ″0=3.8611245074562137,若后續(xù)生成隨機(jī)數(shù)為:按式(20)可得到:a0=237,a1=148,a2=250,a3=395,a4=501,a5=102,T0=523,由于a0,a1,a2,a3,a4,a5滿足式(21)的條件,因此a0,a1,a2,a3,a4,a5,T0生成完畢,式(20)中取w=512,h=512;
第5步:按式(32)將Z恢復(fù)為Z′=(z′i,j)m×n,其中式(32)中的參數(shù)取t=T0,w=m,h=n,將Z′劃分為4×4大小的不重疊小塊Z′u,v,u=0,1,…,bm-1,v=0,1,…,bn-1,對(duì)每個(gè)小塊Z′u,v按式(1)變換為Z″u,v=(z″s,t)4×4;
例如:式(32)中參數(shù)取t=T0=523,w=512,h=512,則按式(32)可將z102,372恢復(fù)為z′0,0,由所有恢復(fù)后像素可得到Z′,將Z′劃分為4×4不重疊小塊,例如其中1個(gè)小塊Z′94,89和經(jīng)式(1)對(duì)應(yīng)輸出塊Z″94,89:
第6步:對(duì)所有Z″u,v,將Z″u,v中DCT系數(shù)與閾值T進(jìn)行比較,按式(24)轉(zhuǎn)換為編碼矩陣Bu,v=(bi,j)4×4;例如:取閾值T=20,以塊Z″94,89為例,則按式(24)得到的編碼矩陣B94,89為:
第7步:對(duì)所有Bu,v按式(26)、式(27)和式(28)量化為2值比特位串lru,v,lcu,v,ldu,v,將lstart和μ0代入式(5)產(chǎn)生(0,1)范圍內(nèi)的隨機(jī)數(shù),將前IT,IT>0次隨機(jī)數(shù)刪除掉,將后續(xù)生成的隨機(jī)數(shù)依次作為篩選比特位串lru,v,lcu,v,ldu,v的隨機(jī)數(shù)種子,從lru,v,lcu,v,ldu,v分別隨機(jī)篩選出6位比特位串lr′u,v,lc′u,v,ld′u,v,按式(30)映射為6位隨機(jī)比特autu,v,將autu,v作為塊Z″u,v的6位認(rèn)證比特au′u,v,例如:對(duì)B94,89按式(26)、式(27)和式(28)量化為2值比特位串lr94,89=(11111011)2,lc94,89=(10111111)2,ld91,89=(10111111)2,將lstart和μ0作為初始值,代入式(5)去除前1000次之后,產(chǎn)生隨機(jī)數(shù)為0.5922295126716617,0.9203346555945013,0.27941849792679074,依次作為從lr94,89,lc94,89,ld94,89中各篩選除6位比特位串隨機(jī)數(shù)種子,篩選后比特位串為lr′94,89=(011111)2,lc′94,89=(110111)2,ld′94,89=(110111)2,按式(30)將lr′94,89,lc′94,89,ld′94,89映射為6位隨機(jī)比特位串a(chǎn)ut94,89=(011111)2,并將aut94,89作為塊Z″94,896位認(rèn)證比特au′94,89;
第8步:對(duì)所有塊Z″u,v,若au′u,v=auu,v,則將Z″u,v標(biāo)記為完整塊,否則將Z″u,v標(biāo)記為待修復(fù)塊,并通過標(biāo)記矩陣S=(su,v)bm×bn進(jìn)行標(biāo)記,當(dāng)su,v=1時(shí)為完整塊,su,v=0時(shí)為待修復(fù)塊,su,v=2為已修復(fù)塊;例如:對(duì)塊Z″94,89,若au′94,89=au94,89,則將Z″94,89標(biāo)記為完整塊,否則將Z″94,89標(biāo)記為待修復(fù)塊,并通過標(biāo)記矩陣S=(su,v)bm×bn進(jìn)行標(biāo)記,已知從第3方公信方提取的au94,89=(001000)2,第7步得出au′94,89=(011111)2,則au′94,89≠au94,89,所以將Z″94,89標(biāo)記為待修復(fù)塊,并記錄s94,89=0;
第9步:若塊Z″u,v標(biāo)記狀態(tài)為su,v=0,則對(duì)塊Z″u,v主信息A′u,v進(jìn)行試探性恢復(fù),其具體方法為:
第9.1步:將塊Z″u,v中的所有元素清零,將t=S0,w=bm,h=bn代入式(32),按式(32)找到Z″u,v所對(duì)應(yīng)映射塊;例如對(duì)于塊Z″94,89,將t=S0=274,w=128,h=128代入式(32),按式(32)找到Z″94,89所對(duì)應(yīng)映射塊為Z″53,106;
第9.2步;若標(biāo)記狀態(tài)將Z″u,v所對(duì)應(yīng)DC系數(shù)置為DCu,v;
例如若塊Z″53,106標(biāo)記狀態(tài)為s53,106=0,將Z″94,89所對(duì)應(yīng)DC系數(shù)置為DC94,89=618.7499999999999;
第9.3步:若標(biāo)記狀態(tài)則根據(jù)和Z″u,v塊類型Tu,v按式(33a)~(33d)將Z″u,v交變系數(shù)AC′0,AC′1,…,AC′k-1從中提取出來,然后將DCu,v作為Z″u,v的直流系數(shù)DC,將AC′0,AC′1,…,AC′k-1按式(34)矩陣元素對(duì)應(yīng)索引位置填充到Z″u,v中的第1個(gè)~第k個(gè)位置,其中k為存儲(chǔ)副信息交變系數(shù)個(gè)數(shù);例如:若塊Z″53,106的標(biāo)記狀態(tài)為s53,106=1,塊Z″53,106和Z″94,89塊類型分別為T53,106=0,T94,89=1,按式(33a)~(33d)將Z″94,89的交變系數(shù)AC′0,AC′1提取出來,由于:
可知AC′0=36.30753239223936,AC′1=156.3779400082328,將DC94,89=618.7499999999999作為Z″94,89的直流系數(shù)DC,按式(34)矩陣元素對(duì)應(yīng)索引位置填充到Z″94,89中的第1個(gè)和第2個(gè)位置,得到修復(fù)后Z″94,89為:
第9.4步:將Z″u,v作為A′u,v輸出并置su,v=2;例如將修復(fù)后圖像塊:作為A′94,89輸出,并置s94,89=2;
第10步:重復(fù)第9步,直至將所有標(biāo)記狀態(tài)為su,v=0的Z″u,v恢復(fù)為A′u,v;
第11步:對(duì)所有su,v=1的Z″u,v,提取Z″u,v存儲(chǔ)交變系數(shù)AC0,AC1,…,ACk-1,將DCu,v作為Z″u,v直流系數(shù),其余元素清零,然后按式(34)矩陣元素對(duì)應(yīng)的索引位置填充到Z″u,v中的第1個(gè)~第k個(gè)位置,并將Z″u,v作為A′u,v輸出,其中k為Z″u,v主信息交變系數(shù)個(gè)數(shù);例如圖像塊Z″19,28,其標(biāo)記狀態(tài)s19,28=1:
且T19,28=0,根據(jù)式(32)可知,存儲(chǔ)的是圖像塊Z″76,27的恢復(fù)信息且T76,27=0,根據(jù)式(33a)~(33d)提取Z″19,28存儲(chǔ)的交變系數(shù)AC0,AC1,…,AC14,將DC19,28=377.2499999999999作為Z″19,28的直流系數(shù),其余元素清零,然后按式(34)矩陣元素對(duì)應(yīng)的索引位置填充到Z″19,28中的第1個(gè)~第15個(gè)位置,得到修復(fù)后的Z″19,28,將其作為A′19,28輸出;
第12步:將所有A′u,v=(a′s,t)4×4按式(35)恢復(fù)為Au,v=(ap,q)4×4并重構(gòu)秘密圖像A,如:
按式(35)恢復(fù)為
圖4~圖6是以圖3為原始圖像,按圖1加密流程得到的實(shí)施例,圖4是圖3分類情況,其中黑色是最平滑,深灰是次平滑,淺灰是復(fù)雜,白色是最復(fù)雜;圖5是分辨率為512×512的8位含恢復(fù)信息圖像,圖6是圖5置亂含恢復(fù)信息圖像,即加密后圖像;圖7實(shí)施例,是圖6傳輸過程中經(jīng)過質(zhì)量因子為80的JPEG壓縮攻擊后圖像;圖8~圖10是以圖7為待解密圖像,按圖2恢復(fù)流程得到實(shí)施例,其中圖8是圖7初步解密圖像,相對(duì)于圖3的PSNR為25.56dB,圖9是對(duì)圖8進(jìn)行篡改檢測結(jié)果,黑色部分為完整塊,白色部分為待修復(fù)塊,圖10是根據(jù)圖9對(duì)圖8進(jìn)行修復(fù)的結(jié)果,相對(duì)于圖3的PSNR為29.78dB;圖11~圖13是對(duì)照例,其中圖11是圖3直接采用2維雙尺度矩形映射置亂的結(jié)果,置亂參數(shù)取a0=237,a1=148,a2=250,a3=395,a4=501,a5=102,w=512,h=512,T0=523,對(duì)應(yīng)置亂和恢復(fù)公式如式(22)和式(32)所示,圖12是圖11經(jīng)過質(zhì)量因子為80的JPEG壓縮后圖像,圖13是圖12逆置亂恢復(fù)圖像,圖13相對(duì)于圖3的PSNR為12.70dB。