一種編碼分組的可逆信息隱藏方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及圖像處理和信息安全領(lǐng)域,具體是一種編碼分組的可逆信息隱藏方 法。
【背景技術(shù)】
[0002] 近年來(lái),隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及,信息安全問(wèn)題越來(lái)越突出。加密作為傳統(tǒng)的信息 安全手段,如果加密信息在存儲(chǔ)和傳輸過(guò)程中被攻擊者截獲,加密后的密文會(huì)引起攻擊者 的注意。信息隱藏作為保證信息安全的一種方法,通過(guò)信息隱藏,存儲(chǔ)和傳輸?shù)氖请[藏秘密 信息后的載密信息,載密信息與一般信息一樣,不會(huì)引攻擊者的注意。可逆信息隱藏成為近 年的研究熱點(diǎn),在軍事和醫(yī)療等信息安全保護(hù)中具有重要的應(yīng)用價(jià)值。
[0003]可逆信息隱藏是接收方收到載密信息后,在載密信息中提取秘密信息并能無(wú)損的 恢復(fù)出原始的載體信息。已有的可逆信息隱藏方法包括基于無(wú)損壓縮方法、基于差分?jǐn)U展 方法和基于直方圖偏移方法?;跓o(wú)損壓縮方法是將圖像中的部分信息通過(guò)無(wú)損壓縮算法 壓縮,得到隱藏空間隱藏秘密信息,提取秘密信息后對(duì)壓縮信息解壓恢復(fù)出原始圖像?;?差分?jǐn)U展方法中,兩個(gè)相鄰像素為1組隱藏1位秘密信息,修改相鄰兩個(gè)像素使他們差值與2 的模等于秘密信息,差值與2的商為原來(lái)兩個(gè)像素的差值;恢復(fù)時(shí)先計(jì)算兩個(gè)相鄰像素的差 值,用差值恢復(fù)秘密信息,修改兩個(gè)像素使他們的差等于運(yùn)個(gè)差值,實(shí)現(xiàn)圖像的恢復(fù)。直方 圖偏移方法中,統(tǒng)計(jì)載體圖像的直方圖,找出直方圖中峰值點(diǎn)和最小值點(diǎn),在峰值點(diǎn)對(duì)應(yīng)像 素中隱藏信息,修改圖像中最小值點(diǎn)與峰值點(diǎn)之間像素的值,使他們的值不等于像素隱藏 信息后的值;恢復(fù)時(shí)先根據(jù)記錄的峰值提取秘密信息,再改變像素值介于峰值和最小值之 間的像素,實(shí)現(xiàn)載體圖像的恢復(fù)。在現(xiàn)有的幾類(lèi)可逆信息隱藏方法中,基于直方圖的可逆信 息隱藏算法應(yīng)用較多,但運(yùn)些算法隱藏容量都不大。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種編碼分組的可逆信息隱藏方法,通過(guò)對(duì)二進(jìn)制隱藏信 息進(jìn)行編碼分組,得到十進(jìn)制編碼組,將十進(jìn)制編碼隱藏在載體序列中,還設(shè)定一待隱藏 值,在載體序列中選擇與該隱藏值相等的元素用于隱藏編碼組,將頻數(shù)較大的編碼組隱藏 在較少載體中,提高隱藏容量,并修改與該隱藏值不相等的元素,實(shí)現(xiàn)可逆信息隱藏。
[000引實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案是:
[0006] -種編碼分組的可逆信息隱藏方法,包括如下步驟:
[0007] 1、對(duì)隱藏信息進(jìn)行編碼分組,將二進(jìn)制隱藏信息轉(zhuǎn)換成十進(jìn)制編碼,對(duì)十進(jìn)制編 碼兩兩分組;
[0008]具體是將二進(jìn)制隱藏信息比特流中化it作為一個(gè)單位轉(zhuǎn)換為1位十進(jìn)制的數(shù)字, 若二進(jìn)制隱藏信息的個(gè)數(shù)為奇數(shù),則最后一位單獨(dú)轉(zhuǎn)成十進(jìn)制數(shù)字;設(shè)轉(zhuǎn)換后的隱藏信息 十進(jìn)制數(shù)字編碼為C= ,C2,C3,…,Cm},則有0含Cl含3,將C兩兩進(jìn)行分組,若m為奇數(shù),則在 C中增加一個(gè)編碼Cm+l,且使Cm+l=Cm,Cm+l與Cm構(gòu)成一編碼組;為了準(zhǔn)確提取隱藏信息,設(shè)置標(biāo) 記信息flag,判斷是否增加編碼,若增加編碼Cm+I,fIag=I,否則fIag=O,將flag作為密鑰 發(fā)送給接收方,接收方可根據(jù)flag的取值確定嵌入是否增加額外的編碼,準(zhǔn)確提取隱藏信 息;設(shè)(Ck-I,C2k) ( 杉^ )為待隱藏編碼組,由于0 <Ci。,則(C2k-1,C2k)有16種組合,分 別為(〇,〇)、(〇, 1)、(〇,2)、(0,3)、(1,0)、(1,1)、(1,2)、(1,3)、(2,0)、(2,1)、(2,2)、(2,3)、 (3,0)、(3,1)、(3,2)、(3,3)。
[0009] 2、對(duì)兩兩分組的十進(jìn)制編碼進(jìn)行可逆信息隱藏;
[0010] 設(shè)隱藏載體信息一維序列為S,設(shè)定一待隱藏值K,在載體序列中求出所有值為K的 元素并記錄元素下標(biāo)信息,設(shè)值為K的元素序列為L(zhǎng)=Ul,b,l3,…,InK將隱藏信息編碼組 (C2k-i,C2k)隱藏在L中,由于隱藏時(shí)可能需要對(duì)L中元素力日1或減1,設(shè)置一變量sig,當(dāng)K含0 時(shí),Sig=I,否則Sig= -I,li+sig為修改后的值;設(shè)隱藏后的元素為T(mén)i,根據(jù)(;C2k-i,C2k)取值 情況確定隱藏方法。
[0011] 具體如下;
[0012] (1)(0,0)的隱藏
[001引從帥取Ii,Iw,Ii+褲續(xù)3個(gè)元素作為載體信息,隱藏方法如下:
[0014]l,i+j=li+j(0<j<2)
[0015] (0,0)對(duì)應(yīng)含密信息組為化,K,K),下一組編碼從li+3開(kāi)始隱藏;
[0016] (2)(1,1)、(2,2)和(3,3)的隱藏
[0017] 從帥取Ii,Iw,Iw,Ii+褲續(xù)4個(gè)值為K的元素作為載體,隱藏方法如下:
[00W /的.=護(hù), 八如-!((化3)
[0019] 隱藏后編碼組與信息組的對(duì)應(yīng)關(guān)系為:
[0020] (1,1)對(duì)應(yīng)含密信息組為化+31邑,1(,1(,1〇;
[0021] (2,2)對(duì)應(yīng)含密信息組為化,K+sig,K,K),
[0022] (3,3)對(duì)應(yīng)含密信息組為化,K,K+sig,K),下一組編碼從li+4開(kāi)始隱藏;
[0023] (3)其他編碼組的隱藏
[0024] 設(shè)m=max(C2k-i,C2k),從L中取Ii,li+j,…,li+m+痛續(xù)m+2個(gè)元素作為載體信息,其中l(wèi)i+m+l為標(biāo)志位,通過(guò)1'1姻+1確定C2k-1和C化的大小關(guān)系,令. ""SA-1 ,隱 Li腳+1+S培 C巧-l<C2k 藏方法如下:
[0025] 4,=護(hù)八佔(zhàn)'(2叫(〇卿)
[0026]隱藏后編碼組與信息組的對(duì)應(yīng)關(guān)系為:
[0027] (0,1)對(duì)應(yīng)含密信息組為化+31邑,1(+31邑,1(+31邑);
[002引(1,0)對(duì)應(yīng)含密信息組為化+31邑,1(+31邑,10;
[0029] (0,2)對(duì)應(yīng)含密信息組為化+sig,K,K+sig,K+sig);
[0030](2,0)對(duì)應(yīng)含密信息組為化+sig,K,K+sig,K);
[0031] (I,2)對(duì)應(yīng)含密信息組為化,K+sig,K+sig,K+sig);
[0032] (2,1)對(duì)應(yīng)含密信息組為化,K+sig,K+sig,K);
[0033] (0,3)對(duì)應(yīng)含密信息組為化+sig,K,K,K+sig,K+sig);
[0034] (3,0)對(duì)應(yīng)含密信息組為化+sig,K,K,K+sig,K);
[003引(1,3)對(duì)應(yīng)含密信息組為化,K+sig,K,K+sig,K+sig);
[0036] (3,1)對(duì)應(yīng)含密信息組為化,K+sig,K,K+sig,K);
[0037] (2,3)對(duì)應(yīng)含密信息組為化,K,K+sig,K+sig,K+sig);
[003引 (3,2)對(duì)應(yīng)含密信息組為化,K,K+sig,K+sig,K);
[0039]下一組編碼從li+m+2開(kāi)始隱藏。
[0040]從上可得到編碼組與隱藏載體的一一對(duì)應(yīng)關(guān)系,按需要載體數(shù)從小到大進(jìn)行排 序,當(dāng)載體數(shù)相同時(shí)按修改載體信息量從小到大排序,排序后的對(duì)應(yīng)關(guān)系如下:
[0041] (〇,〇)'化,1(,1〇(在3個(gè)載體數(shù)據(jù)隱藏4位信息并且不修改原始載體信息);
[0042] (1,0)'化+31旨,1(+31旨,1〇(在3個(gè)載體數(shù)據(jù)隱藏4位信息修改2個(gè)原始載體信息);
[0043] (0,l)f化+sig,K+sig,K+sig)(在3個(gè)載體數(shù)據(jù)隱藏4位信息修改3個(gè)原始載體信 息); (1, 1)/ (A"-hv/V,K,K,Kr
[0044] (2,巧/換.《+礙,&巧在4個(gè)載體數(shù)據(jù)隱藏4位信息修改1個(gè)原始載體信 0,巧f(K,K,化Sig,K)一 息); (1,())/(K+sig,K,A+.s/V, /0-1
[004引 在4個(gè)載體數(shù)據(jù)隱藏4位信息修改2個(gè)原始載體 (2,1)/烤,齡磅,化嘛,荷J f目息); (0,2)/' (/a.V如必人-十喊r,人'+略
[0046]- ^|(在4個(gè)載體數(shù)據(jù)隱藏4位信息修改3個(gè)原始 (1, 2)/{/<.K+sig,K+sig,K+sig)j 載體信息); P,0)/ (《+.、皆扳底肝y知巧^
[0047] (3, 1)/(K,K+sig,K,K-rsig,K) 濟(jì)5個(gè)載體數(shù)據(jù)隱藏4位信息修改2個(gè)原始 (3, 2)/{K,K.K+sig,K+sig,A〇_ 載體信息); 冷,句f獲,E:+dg,K,區(qū)H確,松過(guò)致
[0048] (0,刮/ (片."'護(hù)片片價(jià)-略,。-.V助^ (在5個(gè)載體數(shù)據(jù)隱藏4位信息修改3個(gè) I互,3').f(K,K,K+sig,K十Sig,K+sig). 原始載體信息);
[0049]隱藏相同位數(shù)的信息,若需要的載體信息數(shù)量越少,則隱藏容量越大;當(dāng)載體數(shù)量 相同時(shí),載體修改量越小,則對(duì)載體圖像改變?cè)叫 ?br>[0050]為了得到較大的隱藏容量和較好的隱藏效果,統(tǒng)計(jì)隱藏信息編碼組的頻數(shù)并按編 碼組頻數(shù)進(jìn)行排序,設(shè)頻數(shù)降序排列16個(gè)編碼組為mi,m2,…,mi6,將頻數(shù)降序排列16個(gè)編碼 組作為密鑰發(fā)送給接受方;將編碼組進(jìn)行變換,使頻數(shù)大編碼組隱藏所需的載體信息少,提 高隱藏容量和質(zhì)量。
[0051]編碼組變換及對(duì)應(yīng)載體隱藏后的關(guān)系如下:
[0068]通過(guò)上述方法將編碼組隱藏在L中,若L剩余元素個(gè)數(shù)小于即寸,則剩余元素不隱藏 信息。編碼組隱藏在值為K的元素中得到含有編碼組信息序列1/,!/中元素的值為K或K+ Sig,為實(shí)現(xiàn)可逆隱藏需對(duì)S中值不為K的元素進(jìn)行修改,使含有隱藏信息的