一種完全可分離的加密域圖像可逆數據隱藏方法
【專利摘要】本發明公開了一種完全可分離的加密域圖像可逆數據隱藏方法,其在圖像加密部分中先將圖像分割成圖像塊,然后將每個圖像塊中的每個像素點的像素值與用于加密的隨機序列中的一個元素的值相加后對256求模實現加密,這種加密方式可使得圖像塊中的非中心像素點的像素值與中心像素點的像素值的差值在加密前和加密后保持一致,不僅確保了能夠在加密后的圖像中進行數據隱藏,而且確保了數據提取與圖像解密的完全分離,可在加密域或解密域有效地提取出隱秘數據,同時能保證在提取隱秘信息后可無失真地恢復出原始圖像;在加密域圖像可逆數據隱藏部分中以組合方式嵌入隱秘信息,出現頻率大的組合嵌入隱秘信息的比特位數多,從而有效地提高了數據嵌入容量。
【專利說明】
-種完全可分離的加密域圖像可逆數據隱藏方法
技術領域
[0001] 本發明設及一種圖像可逆數據隱藏方法,尤其是設及一種完全可分離的加密域圖 像可逆數據隱藏方法。
【背景技術】
[0002] 為適應云計算的數據安全和隱私保護需求,敏感圖像W加密形式存儲在云端,運 樣攻擊者即使獲得了圖像也無法獲得其內容,從而保證了圖像在云端的安全。例如醫療機 構,負有保護患者隱私的義務,但是他們數據處理能力較弱,需要第Ξ方來實現數據處理分 析W達到更好的醫療效果或者科研水平,運樣他們就需要委托有較強數據處理能力的第Ξ 方(云計算中屯、)實現數據處理,而直接將數據交給第Ξ方是不道德的,也是不被法律所允 許的,為此醫療機構可W將加密后的數據發送至云計算中屯、,云計算中屯、處理完成后返回 給醫療機構。
[0003] 在很多應用場景,某些沒有解密權限的云服務管理者需在加密載體中嵌入一些附 加消息,如標注或認證數據、作品來源信息、所有者身份信息等,用于管理和認證加密圖像 數據。同時,在一些重要的應用場合,如醫學診斷、法庭認證、軍事/航空等敏感領域往往需 要在提取附加消息后能精確地恢復原宿主信息。例如,為保護病人隱私,對醫學圖像等信息 進行了加密,數據庫管理者會在相應的加密圖像中嵌入病人的隱私信息和認證信息。如果 在敏感圖像數據中嵌入附加消息,則需事先對敏感圖像數據解密,運就意味著在敏感圖像 數據的整個生命周期中,至少有一部分時間是W明文形式存在的,運樣會帶來嚴重的隱私 問題。此外,為了不影響診斷,授權的醫生希望在解密和提取附加信息后,可W完全恢復原 始圖像內容。加密域可逆數據隱藏技術可W確保數據隱藏者在不解密的前提下,直接對加 密圖像進行數據的嵌入和提取操作,可W幫助解決圖像安全和隱私泄露的擔憂。現有的加 密域可逆數據隱藏技術可分為兩類:一類是對圖像進行加密后尋找數據嵌入空間,運類方 法普遍嵌入容量較低,且會發生數據提取出錯;另一類是圖像加密前預留數據嵌入空間,運 類方法嵌入容量大且失真低,但缺點是圖像加密者和數據嵌入者之間需要復雜的協議。
【發明內容】
[0004] 本發明所要解決的技術問題是提供一種完全可分離的加密域圖像可逆數據隱藏 方法,其能夠在加密后的圖像中進行數據隱藏,并能夠保證隱秘信息的提取與解密完全可 分離,即隱秘信息在加密域圖像和解密域圖像中都能有效地被提取出,同時能夠保證在提 取隱秘信息后可無失真地恢復出原始圖像。
[0005] 本發明解決上述技術問題所采用的技術方案為:一種完全可分離的加密域圖像可 逆數據隱藏方法,其特征在于包括圖像加密、加密域圖像可逆數據隱藏、隱秘數據提取和原 始圖像無損恢復Ξ部分;其中,
[0006] 所述的圖像加密部分的處理過程為:
[0007] @_1、設定待加密的圖像的寬度和高度對應為W和Η,如果W X Η能夠被3 X 3整除,貝U 將待加密的圖像劃分成個互不重疊的尺寸大小為3X3的圖像塊;如果WXH不能夠被 3. 3 3X3整除,則將待加密的圖像劃分成^ X 個互不重疊的尺寸大小為3X3的圖像塊, 并將待加密的圖像的右方和下方尺寸大小不為3X3的塊也作為圖像塊,共有^ X 個 圖像塊,其中,符號"L」"為向下取整符號,符號"「1"為向上取整符號;
[000引 @_2、根據隨意設定的一個文本,生成一個作為randomO函數的輸入參數的密鑰; 然后由randomO函數隨機產生一個隨機序列,隨機序列中的每個元素的值在0~255之間, 隨機序列的長度遠大于待加密的圖像中包含的圖像塊的總個數;
[0009] @_3、將待加密的圖像中當前待處理的第m個圖像塊定義為當前圖像塊,將當前從 隨機序列中提取出的第j個元素定義為當前元素,其中,m和j的初始值均為1,1含m含Μ,Μ表 示待加密的圖像中包含的圖像塊的總個數,1含j含J,J表示隨機序列的總長度;
[0010] @_4、利用當前元素對當前圖像塊中的每個像素點進行加密,對當前圖像塊中的 第i個像素點進行加密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素的值 相加后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中,1 < i Ucur,Icur表示當前圖像塊中包含的像素點的總個數,Icur的值為9或6或4或3或2或1;
[0011] @_5、令m=m+l,并令j = j+l,將待加密的圖像中下一個待處理的圖像塊作為當前 圖像塊,將下一個從隨機序列中提取出的元素作為當前元素,然后返回步驟①_4繼續執行, 直至待加密的圖像中的所有圖像塊處理完畢,完成圖像加密的過程,得到加密域圖像,其 中,m=m+l和j = j+1中的為賦值符號;
[0012] 所述的加密域圖像可逆數據隱藏部分的處理過程為:
[0013] 這)_1、將加密域圖像劃分成^ X ^個互不重疊的尺寸大小為3X3的圖像塊,并 _ 3」L _ 定義一個第一標記序列和一個第二標記序列,其中,符號AL」"為向下取整符號;
[0014] (D_2、將加密域圖像中當前待處理的第m'個圖像塊定義為當前圖像塊,其中,m'的 初始值為1,1如?!'言X ^ ;
[001引 @_3、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的像 素值求差值后對256求模;然后按序查看每個模值,若當前查看的模值為126,則將該模值 126的標記設為0,并將標記存入第一標記序列中;若當前查看的模值為127,則將該模值127 的標記設為1,并將標記存入第一標記序列中;若當前查看的模值為128,則將該模值128的 標記設為1,并將標記存入第一標記序列中;若當前查看的模值為129,則將該模值129的標 記設為0,并將標記存入第一標記序列中;接著將模值為127對應的非中屯、像素點的像素值 減1,將模值為128對應的非中屯、像素點的像素值加1;
[0016] (D_4、將第i'個非中屯、像素點對應的模值Ml'與第i'+l個非中屯、像素點對應的模值 Mi'+i配對組成一個組合,記為(1^,1^+1),其中,1' = 1,3,5,7;
[0017] (D_5、令111'=111' + 1,將加密域圖像中下一個待處理的圖像塊作為當前圖像塊,然后 返回步驟②_3繼續執行,直至加密域圖像中的所有圖像塊處理完畢,共得到X x4 個組合,其中,m ' =m '+1中的為賦值符號;
[001引這)_6、按序遍歷X X4個組合,將當前遍歷到的組合定義為當前組合;
[0019] 這)_7、如果當前組合為組合(0,125),則將當前組合的標記設為0,并將標記存入第 二標記序列中,再執行步驟@_8;如果當前組合為組合(0,126),則將當前組合的標記設為 1,并將標記存入第二標記序列中,然后將當前組合修改為(0,125),再執行步驟②_8;如果 當前組合為組合(125,0),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執 行步驟(D_8;如果當前組合為組合(126,0),則將當前組合的標記設為1,并將標記存入第二 標記序列中,然后將當前組合修改為(125,0),再執行步驟②_8;
[0020] 如果當前組合為組合(0,130),則將當前組合的標記設為0,并將標記存入第二標 記序列中,再執行步驟@_8;如果當前組合為組合(0,129),則將當前組合的標記設為1,并 將標記存入第二標記序列中,然后將當前組合修改為(0,130),再執行步驟②_8;如果當前 組合為組合(125,255),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執行 步驟②_8;如果當前組合為組合(126,255),則將當前組合的標記設為1,并將標記存入第二 標記序列中,然后將當前組合修改為(125,255),再執行步驟②_8;
[0021] 如果當前組合為組合(130,0),則將當前組合的標記設為0,并將標記存入第二標 記序列中,再執行步驟@_8;如果當前組合為組合(129,0),則將當前組合的標記設為1,并 將標記存入第二標記序列中,然后將當前組合修改為(130,0),再執行步驟②_8;如果當前 組合為組合(255,125),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執行 步驟②_8;如果當前組合為組合(255,126),則將當前組合的標記設為1,并將標記存入第二 標記序列中,然后將當前組合修改為(255,125),再執行步驟②_8;
[0022] 如果當前組合為組合(130,255),則將當前組合的標記設為0,并將標記存入第二 標記序列中,再執行步驟@_8;如果當前組合為組合(129,255),則將當前組合的標記設為 1,并將標記存入第二標記序列中,然后將當前組合修改為(130,255),再執行步驟②_8;如 果當前組合為組合(255,130),則將當前組合的標記設為0,并將標記存入第二標記序列中, 再執行步驟②_8;如果當前組合為組合(255,129),則將當前組合的標記設為1,并將標記存 入第二標記序列中,然后將當前組合修改為(255,130),再執行步驟②_8;
[0023] 這)_8、如果當前組合為組合(0,0),則從隱秘信息中提取出第k位至第k巧位比特信 息作為當前嵌入信息,當當前嵌入信息為"000"時,保持當前組合不變,完成隱秘信息嵌入; 當當前嵌入信息為"00Γ時,將當前組合修改為(〇,1),完成隱秘信息嵌入;當當前嵌入信息 為"010"時,將當前組合修改為(1,〇),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將當前 組合修改為(1,1),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為(〇,2), 完成隱秘信息嵌入;當前嵌入信息為"10Γ時,將當前組合修改為(2,0),完成隱秘信息嵌 入;當前嵌入信息為"110"時,將當前組合修改為(1,2),完成隱秘信息嵌入;當前嵌入信息 為"11Γ時,將當前組合修改為(2,1),完成隱秘信息嵌入;然后令k=k+3;再執行步驟②_9; 其中,k的初始值化,k=k+3中的為賦值符號;
[0024] 如果當前組合為組合(0,v),則從隱秘信息中提取出第k位比特信息作為當前嵌入 信息,當當前嵌入信息為"ο"時,將當前組合修改為(〇,v+2),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(l,v+2),完成隱秘信息嵌入;然后令k = k+l;再執行步 驟②_9;其中,1含V。27,k的初始值化,k=k+1中的為賦值符號;
[0025]如果當前組合為組合(u,0),則從隱秘信息中提取出第k位比特信息作為當前嵌入 信息,當當前嵌入信息為"0"時,將當前組合修改為(u+2,0),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(u+2,l),完成隱秘信息嵌入;然后令k = k+l;再執行步 驟②_9;其中,1 ^。27,k的初始值化,k = k+1中的為賦值符號;
[00%]如果當前組合為組合(0,255),則從隱秘信息中提取出第k位至第k+2位比特信息 作為當前嵌入信息,當當前嵌入信息為"000"時,保持當前組合不變,完成隱秘信息嵌入;當 當前嵌入信息為"00Γ時,將當前組合修改為(〇,254),完成隱秘信息嵌入;當當前嵌入信息 為"010"時,將當前組合修改為(1,255),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將當 前組合修改為(1,254),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為 (0,253),完成隱秘信息嵌入;當前嵌入信息為"10Γ時,將當前組合修改為(2,255),完成隱 秘信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(1,253),完成隱秘信息嵌入;當 前嵌入信息為"11Γ時,將當前組合修改為(2,254),完成隱秘信息嵌入;然后令4 = 4+3;再 執行步驟②_9;其中,k的初始值為1,k=k+3中的為賦值符號;
[0027] 如果當前組合為組合(0,v),則從隱秘信息中提取出第k位比特信息作為當前嵌入 信息,當當前嵌入信息為"0"時,將當前組合修改為(〇,v-2),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(l,v-2),完成隱秘信息嵌入;然后令k = k+l;再執行步 驟②_9;其中,128含V。54,k的初始值化,k = k+l中的為賦值符號;
[0028] 如果當前組合為組合(u,255),則從隱秘信息中提取出第k位比特信息作為當前嵌 入信息,當當前嵌入信息為"0"時,將當前組合修改為(u+2,255),完成隱秘信息嵌入;當當 前嵌入信息為"Γ時,將當前組合修改為(u+2,254),完成隱秘信息嵌入;然后令k = k+l;再 執行步驟②_9;其中,1 < U < 127,k的初始值為1,k = k+l中的為賦值符號;
[0029] 如果當前組合為組合(255,0),則從隱秘信息中提取出第k位至第k+2位比特信息 作為當前嵌入信息,當當前嵌入信息為"000"時,保持當前組合不變,完成隱秘信息嵌入;當 當前嵌入信息為"00Γ時,將當前組合修改為(255,1),完成隱秘信息嵌入;當當前嵌入信息 為"010"時,將當前組合修改為(254,0),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將當 前組合修改為(254,1),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為 (255,2),完成隱秘信息嵌入;當前嵌入信息為"101"時,將當前組合修改為(253,0),完成隱 秘信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(254,2),完成隱秘信息嵌入;當 前嵌入信息為"11Γ時,將當前組合修改為(253,1),完成隱秘信息嵌入;然后令k = k+3;再 執行步驟②_9;其中,k的初始值為1,k = k+3中的為賦值符號;
[0030] 如果當前組合為組合(255,v),則從隱秘信息中提取出第k位比特信息作為當前嵌 入信息,當當前嵌入信息為"0"時,將當前組合修改為(255,v+2),完成隱秘信息嵌入;當當 前嵌入信息為"Γ時,將當前組合修改為(254,v+2),完成隱秘信息嵌入;然后令k = k+l;再 執行步驟②_9;其中,1 < V < 127,k的初始值為1,k = k+l中的為賦值符號;
[0031] 如果當前組合為組合(u,0),則從隱秘信息中提取出第k位比特信息作為當前嵌入 信息,當當前嵌入信息為"0"時,將當前組合修改為(u-2,0),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(U-2,1),完成隱秘信息嵌入;然后令k = k+l;再執行步 驟②_9;其中,128 ^。54,k的初始值化,k = k+l中的為賦值符號;
[0032] 如果當前組合為組合(255,255),則從隱秘信息中提取出第k位至第k+2位比特信 息作為當前嵌入信息,當當前嵌入信息為"000"時,保持當前組合不變,完成隱秘信息嵌入; 當當前嵌入信息為"00Γ時,將當前組合修改為(255,254),完成隱秘信息嵌入;當當前嵌入 信息為"010"時,將當前組合修改為(254,255),完成隱秘信息嵌入;當前嵌入信息為"01Γ 時,將當前組合修改為(254,254),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組 合修改為(255,253),完成隱秘信息嵌入;當前嵌入信息為"10Γ時,將當前組合修改為 (253,255),完成隱秘信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(254,253),完 成隱秘信息嵌入;當前嵌入信息為"11Γ時,將當前組合修改為(253,254),完成隱秘信息嵌 入;然后令k = k+3;再執行步驟②_9;其中,k的初始值為l,k = k+3中的為賦值符號;
[0033] 如果當前組合為組合(255,v),則從隱秘信息中提取出第k位比特信息作為當前嵌 入信息,當當前嵌入信息為"0"時,將當前組合修改為(255,v-2),完成隱秘信息嵌入;當當 前嵌入信息為"Γ時,將當前組合修改為(254,v-2),完成隱秘信息嵌入;然后令k = k+l;再 執行步驟②_9;其中,128 < V < 254,k的初始值為1,k = k+l中的為賦值符號;
[0034] 如果當前組合為組合(u,255),則從隱秘信息中提取出第k位比特信息作為當前嵌 入信息,當當前嵌入信息為"0"時,將當前組合修改為(u-2,255),完成隱秘信息嵌入;當當 前嵌入信息為"Γ時,將當前組合修改為(u-2,254),完成隱秘信息嵌入;然后令k = k+l;再 執行步驟②_9;其中,128 < U < 254,k的初始值為1,k = k+l中的為賦值符號;
[0035] 這)_9、對當前組合進行移位:若當前組合為(u,v)且1 <u< 127、1 < v< 127,則將當 前組合(u,v)修改為(u+l,v+l);若當前組合為(u,v)且1含11。27、128< v^54,則將當前 組合(u,v)修改為(U+1,v-l);若當前組合為(U,V)且128 < U < 254、1 < V < 127,則將當前組 合(u,v)修改為(U-1,v+l);若當前組合為(u,v)且128 < U < 254、128 < V < 254,則將當前組 合(u,v)修改為(U-1,V-1);
[0036] @_10、將下一個遍歷到的組合作為當前組合,然后返回步驟②_7繼續執行,直至 ^ X x4個組合全部處理完畢,完成加密域圖像可逆數據隱藏的過程,得到含隱秘信 息的加密域圖像,并將隨機序列、第一標記序列和第二標記序列發送到隱秘數據提取端;
[0037] 所述的隱秘數據提取和原始圖像無損恢復部分中的隱秘數據提取在加密域完成 或在解密域完成,在加密域完成隱秘數據提取和原始圖像無損恢復的處理過程為:
[0038] ③_1_1、將含隱秘信息的加密域圖像劃分成^ ^個互不重疊的尺寸大小為 3X3的圖像塊,其中,符號"L」"為向下取整符號;
[0039] ③_1_2、將含隱秘信息的加密域圖像中當前待處理的第m'個圖像塊定義為當前圖 像塊,其中,m'的初始值為^ X ;
[0040] ③_1_3、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的 像素值求差值后對256求模;
[0041] ③_1_4、將第i'個非中屯、像素點對應的模值Ml'與第i' + l個非中屯、像素點對應的模 值Mi'+i配對組成一個組合,記為(1^,1^+1),其中,1' = 1,3,5,7;
[0042] ③_1_5、令111'=111'+1,將含隱秘信息的加密域圖像中下一個待處理的圖像塊作為 當前圖像塊,然后返回步驟③_1_3繼續執行,直至含隱秘信息的加密域圖像中的所有圖像 塊處理完畢,共得到^ X x4個組合,其中,m'=m'+l中的為賦值符號;
[0043] ③_1_6、按序遍歷^ X x4個組合,將當前遍歷到的組合定義為當前組合;并 按序提取第二標記序列中的每個元素,將當前提取的元素定義為當前第二元素;
[0044] ③_1_7、如果當前組合為組合(0,0),則提取出嵌入比特"000" W完成隱秘信息提 取,并保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(0,1),則提取出嵌入 比特"OOrW完成隱秘信息提取,并將當前組合修改為(0,0),然后執行步驟③_1_8;如果當 前組合為組合(1,〇),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改為 (〇,〇),然后執行步驟③_1_8;如果當前組合為組合(1,1),則提取出嵌入比特"OirW完成 隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前組合為組合(0, 2),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(0,0),然后執行步 驟③_1_8;如果當前組合為組合(2,0),則提取出嵌入比特"lOrW完成隱秘信息提取,并將 當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前組合為組合(1,2),則提取出嵌入比 特"110" W完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前 組合為組合(2,1),則提取出嵌入比特"lirW完成隱秘信息提取,并將當前組合修改為(0, 0),然后執行步驟③_1_8;
[0045] 如果當前組合為組合(0,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(〇,v-2),然后執行步驟③_1_8;如果當前組合為組合(l,v),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(〇,v-2),然后執行步驟③_1_8;其中,1< v< 127;
[0046] 如果當前組合為組合(u,0),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(u-2,0),然后執行步驟③_1_8;如果當前組合為組合(u,l),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(u-2,0),然后執行步驟③_1_8;其中,1< u< 127;
[0047] 如果當前組合為組合(0,255),則提取出嵌入比特"000" W完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(0,254),則提取出嵌入比 特"OOrW完成隱秘信息提取,并將當前組合修改為(0,255),然后執行步驟③_1_8;如果當 前組合為組合(1,255),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改 為(〇,255),然后執行步驟③_1_8;如果當前組合為組合(1,254),則提取出嵌入比特"01Γ W完成隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8;如果當前組合 為組合(0,253),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(0, 255),然后執行步驟③_1_8;如果當前組合為組合(2,255),則提取出嵌入比特"101"^完成 隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8;如果當前組合為組合 (1,253),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前組合修改為(0,255),然 后執行步驟③_1_8;如果當前組合為組合(2,254),則提取出嵌入比特"lirW完成隱秘信 息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8;
[004引如果當前組合為組合(0,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(0,v+2),然后執行步驟③_1_8;如果當前組合為組合(l,v),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(0,v+2),然后執行步驟③_1_8;其中,128 < v< 254;
[0049] 如果當前組合為組合(u,255),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(u-2,255),然后執行步驟③_1_8;如果當前組合為組合(u,254),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(11-2,255),然后執行步驟③_1_8; 其中,1 <u< 127;
[0050] 如果當前組合為組合(255,0),則提取出嵌入比特"000" W完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(255,1),則提取出嵌入比 特"OOrW完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當 前組合為組合(254,0),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改 為(255,0),然后執行步驟③_1_8;如果當前組合為組合(254,1),則提取出嵌入比特"01Γ W完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當前組合 為組合(255,2),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(255, 0),然后執行步驟③_1_8;如果當前組合為組合(253,0),則提取出嵌入比特"lOrW完成隱 秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當前組合為組合 (254,2),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前組合修改為(255,0),然 后執行步驟③_1_8;如果當前組合為組合(253,1),則提取出嵌入比特"lirW完成隱秘信 息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;
[0051] 如果當前組合為組合(255,v),則提取出嵌入比特"0"w完成隱秘信息提取,并將 當前組合修改為(255,v-2),然后執行步驟③_1_8;如果當前組合為組合(254,v),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(255,v-2),然后執行步驟③_1_8; 其中,1 < v< 127;
[0052] 如果當前組合為組合(u,0),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(U巧,0),然后執行步驟③_1_8;如果當前組合為組合(u,l),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(u+2,0),然后執行步驟③_1_8;其中,128 <u< 254;
[0053] 如果當前組合為組合(255,255),則提取出嵌入比特"000" W完成隱秘信息提取, 并保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(255,254),則提取出嵌 入比特"OOrW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8; 如果當前組合為組合(254,255),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(254,254),則提取出嵌 入比特"OirW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8; 如果當前組合為組合(255,253),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(253,255),則提取出嵌 入比特"lOrW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8; 如果當前組合為組合(254,253),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(253,254),則提取出嵌 入比特"lirW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8;
[0054] 如果當前組合為組合(255,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(255,v+2),然后執行步驟③_1_8;如果當前組合為組合(254,v),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(255,v+2),然后執行步驟③_1_8; 其中,128< v< 254;
[0055] 如果當前組合為組合(u,255),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(u+2,255),然后執行步驟③_1_8;如果當前組合為組合(u,254),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(11+2,255),然后執行步驟③_1_8; 其中,128<u< 254;
[0056] ③ _1_8、如果當前組合為(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或 (255.125) 或(130,255)或(255,130),則當當前第二元素的值為加寸,保持當前組合不變,然 后將下一個提取的元素作為當前第二元素,再執行步驟③_1_9;當當前第二元素的值為1 時,對當前組合進行修改,然后將下一個提取的元素作為當前第二元素,再執行步驟③_1_ 9,其中修改過程為:若當前組合為(0,125),那么將當前組合修改為(0,126);若當前組合為 (125,0),那么將當前組合修改為(126,0);若當前組合為(0,130),那么將當前組合修改為 (0,129);若當前組合為(125,255),那么將當前組合修改為(126,255);若當前組合為(130, 0),那么將當前組合修改為(129,0);若當前組合為(255,125),那么將當前組合修改為 (255.126) ;若當前組合為(130,255),那么將當前組合修改為(129,255);若當前組合為 (255,130),那么將當前組合修改為(255,129);
[0057] 如果當前組合不為(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、 (130,255)、(255,130)中的其中一個,則直接執行步驟③_1_9;
[005引③_1_9、將下一個遍歷到的組合作為當前組合,然后返回步驟③_1_7繼續執行,直 至f X f x4個組合全部處理完畢,至此在加密域完成隱秘數據提取的過程,得到已提 取隱秘信息的加密域圖像;
[0化9]③_1_10、將已提取隱秘信息的加密域圖像劃分成^ X ^個互不重疊的尺寸 大小為3X3的圖像塊;
[0060]③將已提取隱秘信息的加密域圖像中當前待處理的第m'個圖像塊定義為 當前圖像塊;并按序提取第一標記序列中的每個元素,將當前提取的元素定義為當前第一 元素,其中,111'的初始值為1,1《游'< Y ;
[0061 ]③_1_12、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的 像素值求差值后對256求模;
[0062] ③_1_13、按序查看每個模值,將當前查看的模值定義為當前模值;
[0063] ③_1_14、如果當前模值為126或129,則當當前第一元素的值為0時,保持當前模值 不變,然后將下一個提取的元素作為當前第一元素,再執行步驟③當當前第一元素 的值為1時,對當前模值進行修改,然后將下一個提取的元素作為當前第一元素,再執行步 驟③其中修改過程為:若當前模值為126,那么將當前模值修改為127;若當前模值為 129,那么將當前模值修改為128;
[0064] 如果當前模值不為126和129,則直接執行步驟③
[0065] ③_1_15、令111'=111' + 1,將已提取隱秘信息的加密域圖像中下一個待處理的圖像塊 作為當前圖像塊,然后返回步驟③_1_12繼續執行,直至已提取隱秘信息的加密域圖像中的 所有圖像塊處理完畢,至此完成原始圖像無損恢復的過程,得到已提取隱秘信息并已無損 恢復的加密域圖像,其中,m'=m'+l中的為賦值符號;
[0066] ③_1_16、對已提取隱秘信息并已無損恢復的加密域圖像進行解密,具體過程為:
[0067] ③_l_16a、將已提取隱秘信息并已無損恢復的加密域圖像劃分成個互不重 疊的尺寸大小為3X3的圖像塊;如果WXH不能夠被3X3整除,則將已提取隱秘信息并已無 損恢復的加密域圖像劃分成^ X 個互不重疊的尺寸大小為3X3的圖像塊,并將已提 取隱秘信息并已無損恢復的加密域圖像的右方和下方尺寸大小不為3X3的塊也作為圖像 塊,共有y X y個圖像塊;
[0068] ③_1_1化、將已提取隱秘信息并已無損恢復的加密域圖像中當前待處理的第m個 圖像塊定義為當前圖像塊,將當前從隨機序列中提取出的第j個元素定義為當前元素,其 中,m和j的初始值均為1,1含m含M,M表示已提取隱秘信息并已無損恢復的加密域圖像中包 含的圖像塊的總個數,1 < j < JJ表示隨機序列的總長度;
[0069] ③_l_16c、利用當前元素對當前圖像塊中的每個像素點進行解密,對當前圖像塊 中的第i個像素點進行解密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素 的值相減后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中, 1 y Ucur,Icur表示當前圖像塊中包含的像素點的總個數,Icur的值為9或6或4或3或2或1;
[0070] ③_l_16d、令m=m+l,并令j = j+l,將已提取隱秘信息并已無損恢復的加密域圖像 中下一個待處理的圖像塊作為當前圖像塊,將下一個從隨機序列中提取出的元素作為當前 元素,然后返回步驟③_l_16c繼續執行,直至已提取隱秘信息并已無損恢復的加密域圖像 中的所有圖像塊處理完畢,完成圖像解密的過程,得到解密域圖像,其中,m = m+l和j = j+l 中的為賦值符號;
[0071] 在解密域完成隱秘數據提取和原始圖像無損恢復的處理過程為:
[0072] ③_2_1、對含隱秘信息的加密域圖像進行解密,具體過程為:
[0073] ③_2_la、將含隱秘信息的加密域圖像劃分成個互不重疊的尺寸大小為3X 3的圖像塊;如果WXH不能夠被3X3整除,則將含隱秘信息的加密域圖像劃分成^ X ^ 個互不重疊的尺寸大小為3X3的圖像塊,并將含隱秘信息的加密域圖像的右方和下方尺寸 大小不為3X3的塊也作為圖像塊,共有X ^個圖像塊;
[0074] ③_2_化、將含隱秘信息的加密域圖像中當前待處理的第m個圖像塊定義為當前圖 像塊,將當前從隨機序列中提取出的第j個元素定義為當前元素,其中,m和j的初始值均為 1,1 <m含M,M表示含隱秘信息的加密域圖像中包含的圖像塊的總個數,1 < j y,J表示隨機 序列的總長度;
[0075] ③_2_lc、利用當前元素對當前圖像塊中的每個像素點進行解密,對當前圖像塊中 的第i個像素點進行解密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素的 值相減后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中,1 y Ucur,Icur表示當前圖像塊中包含的像素點的總個數,Icur的值為9或6或4或域域1;
[0076] ③_2_1 d、令m = m+1,并令j = j+1,將含隱秘信息的加密域圖像中下一個待處理的 圖像塊作為當前圖像塊,將下一個從隨機序列中提取出的元素作為當前元素,然后返回步 驟③_2_lc繼續執行,直至含隱秘信息的加密域圖像中的所有圖像塊處理完畢,完成圖像解 密的過程,得到含隱秘信息的解密域圖像,其中,m=m+l和j = j+l中的為賦值符號;
[0077] ③_2_2、將含隱秘信息的解密域圖像劃分成^ X ^個互不重疊的尺寸大小為3 X3的圖像塊,其中,符號"L」"為向下取整符號;
[0078] ③_2_3、將含隱秘信息的解密域圖像中當前待處理的第m'個圖像塊定義為當前圖 像塊,其中,m'的初始值為1,1全所'《等X等·;
[0079] ③_2_4、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的 像素值求差值后對256求模;
[0080] ③_2_5、將第i'個非中屯、像素點對應的模值Ml'與第i' + l個非中屯、像素點對應的模 值Mi'+i配對組成一個組合,記為(1^,1^+1),其中,1' = 1,3,5,7;
[0081] ③_2_6、令111'=111'+1,將含隱秘信息的解密域圖像中下一個待處理的圖像塊作為 當前圖像塊,然后返回步驟③_2_4繼續執行,直至含隱秘信息的解密域圖像中的所有圖像 塊處理完畢,共得到X ^ x4個組合,其中,m'=m'+l中的為賦值符號;
[0082] ③_2_7、按序遍歷X 個組合,將當前遍歷到的組合定義為當前組合;并 按序提取第二標記序列中的每個元素,將當前提取的元素定義為當前第二元素;
[0083] ③_2_8、如果當前組合為組合(0,0),則提取出嵌入比特"000" W完成隱秘信息提 取,并保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(0,1),則提取出嵌入 比特"OOrW完成隱秘信息提取,并將當前組合修改為(0,0),然后執行步驟③_2_9;如果當 前組合為組合(1,〇),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改為 (〇,〇),然后執行步驟③_2_9;如果當前組合為組合(1,1),則提取出嵌入比特"OirW完成 隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前組合為組合(0, 2),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(0,0),然后執行步 驟③_2_9;如果當前組合為組合(2,0),則提取出嵌入比特"lOrW完成隱秘信息提取,并將 當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前組合為組合(1,2),則提取出嵌入比 特"110" W完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前 組合為組合(2,1),則提取出嵌入比特"lirW完成隱秘信息提取,并將當前組合修改為(0, 0),然后執行步驟③_2_9;
[0084] 如果當前組合為組合(0,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(〇,v-2),然后執行步驟③_2_9;如果當前組合為組合(l,v),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(〇,v-2),然后執行步驟③_2_9;其中,1< v< 127;
[0085] 如果當前組合為組合(u,0),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(u-2,0),然后執行步驟③_2_9;如果當前組合為組合(u,l),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(u-2,0),然后執行步驟③_2_9;其中,1< u< 127;
[0086] 如果當前組合為組合(0,255),則提取出嵌入比特"000" W完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(0,254),則提取出嵌入比 特"OOrW完成隱秘信息提取,并將當前組合修改為(0,255),然后執行步驟③_2_9;如果當 前組合為組合(1,255),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改 為(〇,255),然后執行步驟③_2_9;如果當前組合為組合(1,254),則提取出嵌入比特"01Γ W完成隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9;如果當前組合 為組合(0,253),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(0, 255),然后執行步驟③_2_9;如果當前組合為組合(2,255),貝順取出嵌入比特"101"^完成 隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9;如果當前組合為組合 (1,253),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前組合修改為(0,255),然 后執行步驟③_2_9;如果當前組合為組合(2,254),則提取出嵌入比特"111"^完成隱秘信 息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9;
[0087] 如果當前組合為組合(0,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(〇,v+2),然后執行步驟③_2_9;如果當前組合為組合(l,v),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(〇,v+2),然后執行步驟③_2_9;其中,128 < v< 254;
[008引如果當前組合為組合(u,255),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(u-2,255),然后執行步驟③_2_9;如果當前組合為組合(u,254),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(11-2,255),然后執行步驟③_2_9; 其中,1 <u< 127;
[0089]如果當前組合為組合(255,0),則提取出嵌入比特"000" W完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(255,1),則提取出嵌入比 特"OOrW完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當 前組合為組合(254,0),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改 為(255,0),然后執行步驟③_2_9;如果當前組合為組合(254,1),則提取出嵌入比特"01Γ W完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當前組合 為組合(255,2),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(255, 0),然后執行步驟③_2_9;如果當前組合為組合(253,0),貝順取出嵌入比特"lOrW完成隱 秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當前組合為組合 (254,2),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前組合修改為(255,0),然 后執行步驟③_2_9;如果當前組合為組合(253,1),則提取出嵌入比特"lirW完成隱秘信 息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;
[0090] 如果當前組合為組合(255,v),則提取出嵌入比特"0"w完成隱秘信息提取,并將 當前組合修改為(255,v-2),然后執行步驟③_2_9;如果當前組合為組合(254,v),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(255,v-2),然后執行步驟③_2_9; 其中,1 < v< 127;
[0091] 如果當前組合為組合(u,0),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(U巧,0),然后執行步驟③_2_9;如果當前組合為組合(u,l),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(u+2,0),然后執行步驟③_2_9;其中,128 <u< 254;
[0092] 如果當前組合為組合(255,255),則提取出嵌入比特"000" W完成隱秘信息提取, 并保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(255,254),則提取出嵌 入比特"OOrW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9; 如果當前組合為組合(254,255),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_2_9;如果當前組合為組合(254,254),則提取出嵌 入比特"OirW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9; 如果當前組合為組合(255,253),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_2_9;如果當前組合為組合(253,255),則提取出嵌 入比特"lOrW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9; 如果當前組合為組合(254,253),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_2_9;如果當前組合為組合(253,254),則提取出嵌 入比特"lirW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9;
[0093] 如果當前組合為組合(255,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(255,v+2),然后執行步驟③_2_9;如果當前組合為組合(254,v),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(255,v+2),然后執行步驟③_2_9; 其中,128< v< 254;
[0094] 如果當前組合為組合(u,255),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(u+2,255),然后執行步驟③_2_9;如果當前組合為組合(u,254),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(U巧,255),然后執行步驟③_2_9; 其中,128<u< 254;
[00M]③ _2_9、如果當前組合為(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或 (255,125)或(130,255)或(255,130),則當當前第二元素的值為加寸,保持當前組合不變,然 后將下一個提取的元素作為當前第二元素,再執行步驟③_2_10;當當前第二元素的值為1 時,對當前組合進行修改,然后將下一個提取的元素作為當前第二元素,再執行步驟③_2_ 10,其中修改過程為:若當前組合為(0,125),那么將當前組合修改為(0,126);若當前組合 為(125,0 ),那么將當前組合修改為(126,0);若當前組合為(0,130 ),那么將當前組合修改 為(0,129);若當前組合為(125,255),那么將當前組合修改為(126,255);若當前組合為 (130,0),那么將當前組合修改為(129,0);若當前組合為(255,125),那么將當前組合修改 為(255,126);若當前組合為(130,255),那么將當前組合修改為(129,255);若當前組合為 (255,130),那么將當前組合修改為(255,129);
[0096] 如果當前組合不為(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、 (130,255)、( 255,130)中的其中一個,則直接執行步驟③_2_10;
[0097] ③_2_10、將下一個遍歷到的組合作為當前組合,然后返回步驟③_2_8繼續執行, 直至? X f X4個組合全部處理完畢,至此在解密域完成隱秘數據提取的過程,得到已 提取隱秘信息的解密域圖像;
[0098] ③_2_11、將已提取隱秘信息的解密域圖像劃分成X 個互不重疊的尺寸大 小為3X3的圖像塊;
[0099] ③_2_12、將已提取隱秘信息的解密域圖像中當前待處理的第m'個圖像塊定義為 當前圖像塊;并按序提取第一標記序列中的每個元素,將當前提取的元素定義為當前第一 元素,其中,m'的初始值為1,1<附'《^ X ;
[0100] ③_2_13、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的 像素值求差值后對256求模;
[0101] ③_2_14、按序查看每個模值,將當前查看的模值定義為當前模值;
[0102] ③_2_15、如果當前模值為126或129,則當當前第一元素的值為0時,保持當前模值 不變,然后將下一個提取的元素作為當前第一元素,再執行步驟③_2_16;當當前第一元素 的值為1時,對當前模值進行修改,然后將下一個提取的元素作為當前第一元素,再執行步 驟③_2_16,其中修改過程為:若當前模值為126,那么將當前模值修改為127;若當前模值為 129,那么將當前模值修改為128;
[0103] 如果當前模值不為126和129,則直接執行步驟③_2_16;
[0104] ③_2_16、令111'=111' + 1,將已提取隱秘信息的解密域圖像中下一個待處理的圖像塊 作為當前圖像塊,然后返回步驟③_2_13繼續執行,直至已提取隱秘信息的解密域圖像中的 所有圖像塊處理完畢,至此完成原始圖像無損恢復的過程,得到已提取隱秘信息并已無損 恢復的解密域圖像,其中,m'=m'+l中的為賦值符號。
[0105] 所述的步驟①_2中根據隨意設定的一個文本,生成一個作為randomO函數的輸入 參數的密鑰的具體過程為:
[0106] @_2a、隨意設定一個文本,如果文本的長度不能夠被8整除,則在文本的末尾補字 符"0",使文本的長度能夠被8整除;
[0107] @_2b、將文本中的每個字符轉化成ASCII碼,然后W8個字節為一組將所有ASCII 碼按序分成多個碼組,假設共有N個碼組,其中,N〉l;
[0108] @_2c、將第1個碼組與第2個碼組中對應的ASCII碼兩兩求和后對256求模,得到第 1個新碼組;然后將第1個新碼組與第3個碼組中對應的ASCII碼兩兩求和后對256求模,得到 第2個新碼組;依次類推,將第N-2個新碼組與第N個碼組中對應的ASCn碼兩兩求和后對256 求模,得到第N-1個新碼組,將第N-1個新碼組作為random()函數的輸入參數的密鑰。
[0109] 與現有技術相比,本發明的優點在于:
[0110] 1)數據隱藏者利用本發明方法可W直接在加密的圖像中嵌入隱秘信息,即使數據 隱藏者不知道原始圖像內容,可W有效地解決圖像內容安全和隱私泄露問題。
[0111] 2)本發明方法在加密域圖像可逆數據隱藏部分中,將每個圖像塊中順序上依次相 鄰的兩個非中屯、像素點對應的模值配對組成一個組合,每個圖像塊對應四個組合,然后W 組合方式嵌入隱秘信息,出現頻率大的組合嵌入隱秘信息的比特位數多,從而有效地提高 了數據嵌入容量。
[0112] 3)本發明方法在圖像加密部分中采用了特定的加密機制,即先將圖像分割成圖像 塊,然后將每個圖像塊中的每個像素點的像素值與用于加密的隨機序列中的一個元素的值 相加后對256求模實現加密,運種圖像加密方式可W使得圖像塊中的非中屯、像素點的像素 值與中屯、像素點的像素值的差值在加密前和加密后保持一致,不僅確保了能夠在加密后的 圖像中進行數據隱藏,而且確保了數據提取與圖像解密的完全分離,既可W在加密域有效 地提取出隱秘數據,也可W在解密域有效地提取出隱秘數據,實用性更強,同時能夠保證在 提取隱秘信息后可無失真地恢復出原始圖像。
【附圖說明】
[0113] 圖1為本發明方法的總體實現框圖;
[0114] 圖2為圖像的右方和下方尺寸大小不為3X3的塊也作為圖像塊的分割示意圖。
【具體實施方式】
[0115] W下結合附圖實施例對本發明作進一步詳細描述。
[0116] 本發明提出的一種完全可分離的加密域圖像可逆數據隱藏方法,其總體流程框圖 如圖1所示,其包括圖像加密、加密域圖像可逆數據隱藏、隱秘數據提取和原始圖像無損恢 復Ξ部分;其中,
[0117] 所述的圖像加密部分的處理過程為:
[0118] @_1、設定待加密的圖像的寬度和高度對應為W和Η,如果WX Η能夠被3 X 3整除,貝U 將待加密的圖像劃分成個互不重疊的尺寸大小為3X3的圖像塊;如果WXH不能夠被 3X3整除,則將待加密的圖像劃分成^ X 個互不重疊的尺寸大小為3X3的圖像塊, 并將待加密的圖像的右方和下方尺寸大小不為3X3的塊也作為圖像塊,共有^ X ^個 圖像塊,如圖2所示,其中,符號'1」"為向下取整符號,符號"「1"為向上取整符號。
[0119] @_2、根據隨意設定的一個文本,生成一個作為randomO函數的輸入參數的密鑰; 然后由randomO函數隨機產生一個隨機序列,隨機序列中的每個元素的值在0~255之間, 隨機序列的長度遠大于待加密的圖像中包含的圖像塊的總個數。在此,randomO函數為一 個現有函數。
[0120] 在此具體實施例中,步驟中根據隨意設定的一個文本,生成一個作為random 0函數的輸入參數的密鑰的具體過程為:
[0121 ] @_2a、隨意設定一個文本,如果文本的長度不能夠被8整除,則在文本的末尾補字 符"0",使文本的長度能夠被8整除。
[0122] @_2b、將文本中的每個字符轉化成ASCII碼,然后W8個字節為一組將所有ASCII 碼按序分成多個碼組,假設共有N個碼組,其中,N〉l。
[0123] @_2c、將第1個碼組與第2個碼組中對應的ASCII碼兩兩求和后對256求模,得到第 1個新碼組;然后將第1個新碼組與第3個碼組中對應的ASCII碼兩兩求和后對256求模,得到 第2個新碼組;依次類推,將第N-2個新碼組與第N個碼組中對應的ASCn碼兩兩求和后對256 求模,得到第N-1個新碼組,將第N-1個新碼組作為random()函數的輸入參數的密鑰。
[0124] @_3、將待加密的圖像中當前待處理的第m個圖像塊定義為當前圖像塊,將當前從 隨機序列中提取出的第j個元素定義為當前元素,其中,m和j的初始值均為1,1含m含M,M表 示待加密的圖像中包含的圖像塊的總個數,1含j含JJ表示隨機序列的總長度。
[0125] @_4、利用當前元素對當前圖像塊中的每個像素點進行加密,對當前圖像塊中的 第i個像素點進行加密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素的值 相加后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中,1 < i Ucur,Icur表示當前圖像塊中包含的像素點的總個數,Icur的值為9或6或4或3或2或1。
[01%] @_5、令m=m+l,并令j = j+1,將待加密的圖像中下一個待處理的圖像塊作為當前 圖像塊,將下一個從隨機序列中提取出的元素作為當前元素,然后返回步驟①_4繼續執行, 直至待加密的圖像中的所有圖像塊處理完畢,完成圖像加密的過程,得到加密域圖像,其 中,m=m+l和j = j+1中的為賦值符號。
[0127] 所述的加密域圖像可逆數據隱藏部分的處理過程為:
[0128] @_1、將加密域圖像劃分成^ X ^個互不重疊的尺寸大小為3X3的圖像塊, 并定義一個第一標記序列和一個第二標記序列,其中,符號"L」"為向下取整符號。
[0129] (D_2、將加密域圖像中當前待處理的第m'個圖像塊定義為當前圖像塊,其中,m'的 初始值為1,1如'違等X尋。
[0130] @_3、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的像 素值求差值后對256求模;然后按序查看每個模值,若當前查看的模值為126,則將該模值 126的標記設為0,并將標記存入第一標記序列中;若當前查看的模值為127,則將該模值127 的標記設為1,并將標記存入第一標記序列中;若當前查看的模值為128,則將該模值128的 標記設為1,并將標記存入第一標記序列中;若當前查看的模值為129,則將該模值129的標 記設為0,并將標記存入第一標記序列中;接著將模值為127對應的非中屯、像素點的像素值 減1,將模值為128對應的非中屯、像素點的像素值加1。
[0131] (D_4、將第i'個非中屯、像素點對應的模值Ml'與第i'+l個非中屯、像素點對應的模值 Mi'+i配對組成一個組合,記為(1^,1^+1),其中,1' = 1,3,5,7。
[0132] 這)_5、令111'=111' + 1,將加密域圖像中下一個待處理的圖像塊作為當前圖像塊,然后 返回步驟②_3繼續執行,直至加密域圖像中的所有圖像塊處理完畢,共得到^ X x4 個組合,其中,m ' =m '+1中的"="為賦值符號。
[0133] 這)_6、按序遍歷^ X |^><4個組合,將當前遍歷到的組合定義為當前組合。
[0134] 這)_7、如果當前組合為組合(0,125),則將當前組合的標記設為0,并將標記存入第 二標記序列中,再執行步驟@_8;如果當前組合為組合(0,126),則將當前組合的標記設為 1,并將標記存入第二標記序列中,然后將當前組合修改為(0,125),再執行步驟②_8;如果 當前組合為組合(125,0),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執 行步驟(D_8;如果當前組合為組合(126,0),則將當前組合的標記設為1,并將標記存入第二 標記序列中,然后將當前組合修改為(125,0),再執行步驟②_8。
[0135] 如果當前組合為組合(0,130),則將當前組合的標記設為0,并將標記存入第二標 記序列中,再執行步驟@_8;如果當前組合為組合(0,129),則將當前組合的標記設為1,并 將標記存入第二標記序列中,然后將當前組合修改為(0,130),再執行步驟②_8;如果當前 組合為組合(125,255),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執行 步驟②_8;如果當前組合為組合(126,255),則將當前組合的標記設為1,并將標記存入第二 標記序列中,然后將當前組合修改為(125,255),再執行步驟②_8。
[0136] 如果當前組合為組合(130,0),則將當前組合的標記設為0,并將標記存入第二標 記序列中,再執行步驟@_8;如果當前組合為組合(129,0),則將當前組合的標記設為1,并 將標記存入第二標記序列中,然后將當前組合修改為(130,0),再執行步驟②_8;如果當前 組合為組合(255,125),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執行 步驟②_8;如果當前組合為組合(255,126),則將當前組合的標記設為1,并將標記存入第二 標記序列中,然后將當前組合修改為(255,125),再執行步驟②_8。
[0137] 如果當前組合為組合(130,255),則將當前組合的標記設為0,并將標記存入第二 標記序列中,再執行步驟@_8;如果當前組合為組合(129,255),則將當前組合的標記設為 1,并將標記存入第二標記序列中,然后將當前組合修改為(130,255),再執行步驟②_8;如 果當前組合為組合(255,130),則將當前組合的標記設為0,并將標記存入第二標記序列中, 再執行步驟②_8;如果當前組合為組合(255,129),則將當前組合的標記設為1,并將標記存 入第二標記序列中,然后將當前組合修改為(255,130),再執行步驟②_8。
[0138] 這)_8、如果當前組合為組合(0,0),則從隱秘信息中提取出第k位至第k巧位比特信 息作為當前嵌入信息,當當前嵌入信息為"000"時,保持當前組合不變,完成隱秘信息嵌入; 當當前嵌入信息為"00Γ時,將當前組合修改為(〇,1),完成隱秘信息嵌入;當當前嵌入信息 為"010"時,將當前組合修改為(1,〇),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將當前 組合修改為(1,1),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為(〇,2), 完成隱秘信息嵌入;當前嵌入信息為"10Γ時,將當前組合修改為(2,0),完成隱秘信息嵌 入;當前嵌入信息為"110"時,將當前組合修改為(1,2),完成隱秘信息嵌入;當前嵌入信息 為"11Γ時,將當前組合修改為(2,1),完成隱秘信息嵌入;然后令k=k+3;再執行步驟②_9; 其中,k的初始值化,k=k+3中的為賦值符號。
[0139] 如果當前組合為組合(0,v),則從隱秘信息中提取出第k位比特信息作為當前嵌入 信息,當當前嵌入信息為"0"時,將當前組合修改為(〇,v+2),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(l,v+2),完成隱秘信息嵌入;然后令k = k+l;再執行步 驟②_9;其中,1含V。27,k的初始值化,k = k+1中的"="為賦值符號。
[0140] 如果當前組合為組合(u,0),則從隱秘信息中提取出第k位比特信息作為當前嵌入 信息,當當前嵌入信息為"0"時,將當前組合修改為(u+2,0),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(u+2,l),完成隱秘信息嵌入;然后令k = k+l;再執行步 驟②_9;其中,1 ^。27,k的初始值化,k = k+1中的為賦值符號。
[0141] 表1給出了當前組合為組合(0,0)或為組合(0,v)(l<v<127)或為組合(u,0)(l< u< 127)時,隱秘信息的嵌入方式。
[0142] 表1當前組合為組合(0,0)或為組合(0,v)或為組合(u,0)時隱秘信息的嵌入方式
[0143]
[0144] 如果當前組合為組合(0,255),則從隱秘信息中提取出第k位至第k+2位比特信息 作為當前嵌入信息,當當前嵌入信息為"000"時,保持當前組合不變,完成隱秘信息嵌入;當 當前嵌入信息為"00Γ時,將當前組合修改為(〇,254),完成隱秘信息嵌入;當當前嵌入信息 為"010"時,將當前組合修改為(1,255),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將當 前組合修改為(1,254),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為 (0,253),完成隱秘信息嵌入;當前嵌入信息為"10Γ時,將當前組合修改為(2,255),完成隱 秘信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(1,253),完成隱秘信息嵌入;當 前嵌入信息為"11Γ時,將當前組合修改為(2,254),完成隱秘信息嵌入;然后令k = k+3;再 執行步驟②_9;其中,k的初始值為l,k=k+3中的為賦值符號。
[0145] 如果當前組合為組合(0,v),則從隱秘信息中提取出第k位比特信息作為當前嵌入 信息,當當前嵌入信息為"0"時,將當前組合修改為(〇,v-2),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(l,v-2),完成隱秘信息嵌入;然后令k = k+l;再執行步 驟②_9;其中,128含V。54,k的初始值為1,k = k+l中的為賦值符號。
[0146] 如果當前組合為組合(u,255),則從隱秘信息中提取出第k位比特信息作為當前嵌 入信息,當當前嵌入信息為"0"時,將當前組合修改為(u+2,255),完成隱秘信息嵌入;當當 前嵌入信息為"Γ時,將當前組合修改為(u+2,254),完成隱秘信息嵌入;然后令k = k+l;再 執行步驟②_9;其中,1 ^。27,k的初始值化,k = k+l中的為賦值符號。
[0147] 如果當前組合為組合(255,0),則從隱秘信息中提取出第k位至第k+2位比特信息 作為當前嵌入信息,當當前嵌入信息為"000"時,保持當前組合不變,完成隱秘信息嵌入;當 當前嵌入信息為"00Γ時,將當前組合修改為(255,1),完成隱秘信息嵌入;當當前嵌入信息 為"010"時,將當前組合修改為(254,0),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將當 前組合修改為(254,1),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為 (255,2),完成隱秘信息嵌入;當前嵌入信息為"101"時,將當前組合修改為(253,0),完成隱 秘信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(254,2),完成隱秘信息嵌入;當 前嵌入信息為"11Γ時,將當前組合修改為(253,1),完成隱秘信息嵌入;然后令k = k+3;再 執行步驟②_9;其中,k的初始值為l,k = k+3中的為賦值符號。
[0148] 如果當前組合為組合(255,v),則從隱秘信息中提取出第k位比特信息作為當前嵌 入信息,當當前嵌入信息為"0"時,將當前組合修改為(255,v+2),完成隱秘信息嵌入;當當 前嵌入信息為"Γ時,將當前組合修改為(254,v+2),完成隱秘信息嵌入;然后令k = k+l;再 執行步驟②_9;其中,1 < V < 127,k的初始值為1,k = k+l中的為賦值符號。
[0149] 如果當前組合為組合(u,0),則從隱秘信息中提取出第k位比特信息作為當前嵌入 信息,當當前嵌入信息為"0"時,將當前組合修改為(u-2,0),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(u-2,l),完成隱秘信息嵌入;然后令k = k+l;再執行步 驟②_9;其中,128 ^。54,k的初始值為1,k = k+l中的為賦值符號。
[0150] 如果當前組合為組合(255,255),則從隱秘信息中提取出第k位至第k+2位比特信 息作為當前嵌入信息,當當前嵌入信息為"000"時,保持當前組合不變,完成隱秘信息嵌入; 當當前嵌入信息為"00Γ時,將當前組合修改為(255,254),完成隱秘信息嵌入;當當前嵌入 信息為"010"時,將當前組合修改為(254,255),完成隱秘信息嵌入;當前嵌入信息為"01Γ 時,將當前組合修改為(254,254),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組 合修改為(255,253),完成隱秘信息嵌入;當前嵌入信息為"10Γ時,將當前組合修改為 (253,255),完成隱秘信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(254,253),完 成隱秘信息嵌入;當前嵌入信息為"11Γ時,將當前組合修改為(253,254),完成隱秘信息嵌 入;然后令k = k+3;再執行步驟②_9;其中,k的初始值為l,k = k+3中的為賦值符號。
[0151] 如果當前組合為組合(255,v),則從隱秘信息中提取出第k位比特信息作為當前嵌 入信息,當當前嵌入信息為"0"時,將當前組合修改為(255,v-2),完成隱秘信息嵌入;當當 前嵌入信息為"Γ時,將當前組合修改為(254,v-2),完成隱秘信息嵌入;然后令k = k+l;再 執行步驟②_9;其中,128 < V < 254,k的初始值為1,k = k+l中的"="為賦值符號。
[0152] 如果當前組合為組合(u,255),則從隱秘信息中提取出第k位比特信息作為當前嵌 入信息,當當前嵌入信息為"0"時,將當前組合修改為(u-2,255),完成隱秘信息嵌入;當當 前嵌入信息為"Γ時,將當前組合修改為(u-2,254),完成隱秘信息嵌入;然后令k = k+l;再 執行步驟②_9;其中,128 < U < 254,k的初始值為1,k = k+l中的為賦值符號。
[0153] 這)_9、對當前組合進行移位:若當前組合為(u,v)且1 <u< 127、1 < v< 127,則將當 前組合(u,v)修改為(u+l,v+l);若當前組合為(u,v)且1含11。27、128< v^54,則將當前 組合(u,v)修改為(U+1,v-l);若當前組合為(U,V)且128 < U < 254、1 < V < 127,則將當前組 合(u,v)修改為(U-1,v+l);若當前組合為(u,v)且128 < U < 254、128 < V < 254,則將當前組 合(u,v)修改為(U-1,V-1)。
[0154] @_10、將下一個遍歷到的組合作為當前組合,然后返回步驟②_7繼續執行,直至 ^ X x4個組合全部處理完畢,完成加密域圖像可逆數據隱藏的過程,得到含隱秘信 息的加密域圖像,并將隨機序列、第一標記序列和第二標記序列發送到隱秘數據提取端。
[0155] 所述的隱秘數據提取和原始圖像無損恢復部分中的隱秘數據提取在加密域完成 或在解密域完成,在加密域完成隱秘數據提取和原始圖像無損恢復的處理過程為:
[0156] ③_1_1、將含隱秘信息的加密域圖像劃分成^ X 個互不重疊的尺寸大小為 3 X 3的圖像塊,其中,符號W L」"為向下取整符號。
[0157] ③_1_2、將含隱秘信息的加密域圖像中當前待處理的第m'個圖像塊定義為當前圖 像塊,其中,111'的初始值為1,1空說'< y。
[015引③_1_3、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的 像素值求差值后對256求模。
[0159] ③_1_4、將第i'個非中屯、像素點對應的模值Ml'與第i' + l個非中屯、像素點對應的模 值Mi'+i配對組成一個組合,記為(1^,1川),其中,1' = 1,3,5,7。
[0160] ③_1_5、令111'=111'+1,將含隱秘信息的加密域圖像中下一個待處理的圖像塊作為 當前圖像塊,然后返回步驟③_1_3繼續執行,直至含隱秘信息的加密域圖像中的所有圖像 塊處理完畢,共得到^ X x4個組合,其中,m'=m'+l中的為賦值符號。
[0161] ③_1_6、按序遍歷X ^ x4個組合,將當前遍歷到的組合定義為當前組合;并 按序提取第二標記序列中的每個元素,將當前提取的元素定義為當前第二元素。
[0162] ③_1_7、如果當前組合為組合(0,0),則提取出嵌入比特"000" W完成隱秘信息提 取,并保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(0,1),則提取出嵌入 比特"OOrW完成隱秘信息提取,并將當前組合修改為(0,0),然后執行步驟③_1_8;如果當 前組合為組合(1,〇),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改為 (〇,〇),然后執行步驟③_1_8;如果當前組合為組合(1,1),則提取出嵌入比特"OirW完成 隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前組合為組合(0, 2),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(0,0),然后執行步 驟③_1_8;如果當前組合為組合(2,0),則提取出嵌入比特"lOrW完成隱秘信息提取,并將 當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前組合為組合(1,2),則提取出嵌入比 特"110" W完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前 組合為組合(2,1),則提取出嵌入比特"lirW完成隱秘信息提取,并將當前組合修改為(0, 0),然后執行步驟③_1_8。
[0163] 如果當前組合為組合(0,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(〇,v-2),然后執行步驟③_1_8;如果當前組合為組合(l,v),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(〇,v-2),然后執行步驟③_1_8;其中,1< v< 127〇
[0164] 如果當前組合為組合(u,0),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(u-2,0),然后執行步驟③_1_8;如果當前組合為組合(u,l),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(u-2,0),然后執行步驟③_1_8;其中,1< u< 127〇
[0165] 如果當前組合為組合(0,255),則提取出嵌入比特"000" W完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(0,254),則提取出嵌入比 特"OOrW完成隱秘信息提取,并將當前組合修改為(0,255),然后執行步驟③_1_8;如果當 前組合為組合(1,255),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改 為(〇,255),然后執行步驟③_1_8;如果當前組合為組合(1,254),則提取出嵌入比特"01Γ W完成隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8;如果當前組合 為組合(0,253),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(0, 255),然后執行步驟③_1_8;如果當前組合為組合(2,255),則提取出嵌入比特"101"^完成 隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8;如果當前組合為組合 (1,253),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前組合修改為(0,255),然 后執行步驟③_1_8;如果當前組合為組合(2,254),則提取出嵌入比特"111"^完成隱秘信 息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8。
[0166] 如果當前組合為組合(0,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(〇,v+2),然后執行步驟③_1_8;如果當前組合為組合(l,v),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(〇,v+2),然后執行步驟③_1_8;其中,128 < v< 254。
[0167] 如果當前組合為組合(u,255),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(u-2,255),然后執行步驟③_1_8;如果當前組合為組合(u,254),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(11-2,255),然后執行步驟③_1_8; 其中,1 <u< 127。
[0168] 如果當前組合為組合(255,0),則提取出嵌入比特"000" W完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(255,1),則提取出嵌入比 特"OOrW完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當 前組合為組合(254,0),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改 為(255,0),然后執行步驟③_1_8;如果當前組合為組合(254,1),則提取出嵌入比特"ΟΙΓ W完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當前組合 為組合(255,2),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(255, 0),然后執行步驟③_1_8;如果當前組合為組合(253,0),則提取出嵌入比特"lOrW完成隱 秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當前組合為組合 (254,2),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前組合修改為(255,0),然 后執行步驟③_1_8;如果當前組合為組合(253,1),則提取出嵌入比特"lirW完成隱秘信 息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8。
[0169] 如果當前組合為組合(255,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(255,v-2),然后執行步驟③_1_8;如果當前組合為組合(254,v),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(255,v-2),然后執行步驟③_1_8; 其中,1 < v< 127。
[0170] 如果當前組合為組合(u,0),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(U巧,0),然后執行步驟③_1_8;如果當前組合為組合(u,l),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(u+2,0),然后執行步驟③_1_8;其中,128 <u< 254。
[0171] 如果當前組合為組合(255,255),則提取出嵌入比特"000" W完成隱秘信息提取, 并保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(255,254),則提取出嵌 入比特"OOrW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8; 如果當前組合為組合(254,255),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(254,254),則提取出嵌 入比特"OirW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8; 如果當前組合為組合(255,253),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(253,255),則提取出嵌 入比特"lOrW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8; 如果當前組合為組合(254,253),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(253,254),則提取出嵌 入比特"11Γ W完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8。
[0172] 如果當前組合為組合(255,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(255,v+2),然后執行步驟③_1_8;如果當前組合為組合(254,v),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(255,v+2),然后執行步驟③_1_8; 其中,128< v< 254。
[0173] 如果當前組合為組合(u,255),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(u+2,255),然后執行步驟③_1_8;如果當前組合為組合(u,254),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(11+2,255),然后執行步驟③_1_8; 其中,128<u< 254。
[0174] ③ _1_8、如果當前組合為(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或 (255,125)或(130,255)或(255,130),則當當前第二元素的值為加寸,保持當前組合不變,然 后將下一個提取的元素作為當前第二元素,再執行步驟③_1_9;當當前第二元素的值為1 時,對當前組合進行修改,然后將下一個提取的元素作為當前第二元素,再執行步驟③_1_ 9,其中修改過程為:若當前組合為(0,125),那么將當前組合修改為(0,126);若當前組合為 (125,0),那么將當前組合修改為(126,0);若當前組合為(0,130),那么將當前組合修改為 (0,129);若當前組合為(125,255),那么將當前組合修改為(126,255);若當前組合為(130, 0),那么將當前組合修改為(129,0);若當前組合為(255,125),那么將當前組合修改為 (255,126);若當前組合為(130,255),那么將當前組合修改為(129,255);若當前組合為 (255,130),那么將當前組合修改為(255,129)。
[01 巧]如果當前組合不為(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、 (130,255)、(255,130)中的其中一個,則直接執行步驟③_1_9。
[0176] ③_1_9、將下一個遍歷到的組合作為當前組合,然后返回步驟③_1_7繼續執行,直 至X ^ x4個組合全部處理完畢,至此在加密域完成隱秘數據提取的過程,得到已提 取隱秘信息的加密域圖像。
[0177] ③_1_10、將已提取隱秘信息的加密域圖像劃分成^ X 個互不重疊的尺寸大 小為3X3的圖像塊。
[0178] ③將已提取隱秘信息的加密域圖像中當前待處理的第m'個圖像塊定義為 當前圖像塊;并按序提取第一標記序列中的每個元素,將當前提取的元素定義為當前第一 元素,其中,111'的初始值為1,1聾於< y。
[0179] ③_1_12、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的 像素值求差值后對256求模。
[0180] ③_1_13、按序查看每個模值,將當前查看的模值定義為當前模值。
[0181] ③_1_14、如果當前模值為126或129,則當當前第一元素的值為0時,保持當前模值 不變,然后將下一個提取的元素作為當前第一元素,再執行步驟③當當前第一元素 的值為1時,對當前模值進行修改,然后將下一個提取的元素作為當前第一元素,再執行步 驟③其中修改過程為:若當前模值為126,那么將當前模值修改為127;若當前模值為 129,那么將當前模值修改為128。
[0182] 如果當前模值不為126和129,則直接執行步驟③_1_15。
[0183] ③_1_15、令111'=111' + 1,將已提取隱秘信息的加密域圖像中下一個待處理的圖像塊 作為當前圖像塊,然后返回步驟③_1_12繼續執行,直至已提取隱秘信息的加密域圖像中的 所有圖像塊處理完畢,至此完成原始圖像無損恢復的過程,得到已提取隱秘信息并已無損 恢復的加密域圖像,其中,m'=m'+l中的為賦值符號。
[0184] ③_1_16、對已提取隱秘信息并已無損恢復的加密域圖像進行解密,具體過程為:
[0185] ③_l_16a、將已提取隱秘信息并已無損恢復的加密域圖像劃分成個互不重 疊的尺寸大小為3X3的圖像塊;如果WXH不能夠被3X3整除,則將已提取隱秘信息并已無 損恢復的加密域圖像劃分成^ X 個互不重疊的尺寸大小為3X3的圖像塊,并將已提 取隱秘信息并已無損恢復的加密域圖像的右方和下方尺寸大小不為3X3的塊也作為圖像 塊,共有^ X f個圖像塊,如圖2所示。
[0186] ③_1_1化、將已提取隱秘信息并已無損恢復的加密域圖像中當前待處理的第m個 圖像塊定義為當前圖像塊,將當前從隨機序列中提取出的第j個元素定義為當前元素,其 中,m和j的初始值均為1,1含m含M,M表示已提取隱秘信息并已無損恢復的加密域圖像中包 含的圖像塊的總個數,1 < j < JJ表示隨機序列的總長度。
[0187] ③_l_16c、利用當前元素對當前圖像塊中的每個像素點進行解密,對當前圖像塊 中的第i個像素點進行解密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素 的值相減后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中, 1 y Ucur,Icur表示當前圖像塊中包含的像素點的總個數,Icur的值為9或6或4或3或2或1。
[0188] ③_l_16d、令m=m+l,并令j = j+l,將已提取隱秘信息并已無損恢復的加密域圖像 中下一個待處理的圖像塊作為當前圖像塊,將下一個從隨機序列中提取出的元素作為當前 元素,然后返回步驟③_l_16c繼續執行,直至已提取隱秘信息并已無損恢復的加密域圖像 中的所有圖像塊處理完畢,完成圖像解密的過程,得到解密域圖像,其中,m = m+l和j = j+l 中的為賦值符號。
[0189] 在解密域完成隱秘數據提取和原始圖像無損恢復的處理過程為:
[0190] ③_2_1、對含隱秘信息的加密域圖像進行解密,具體過程為:
[0191] ③_2_la、將含隱秘信息的加密域圖像劃分成罩個互不重疊的尺寸大小為3 X 3 3 3的圖像塊;如果WXH不能夠被3X3整除,則將含隱秘信息的加密域圖像劃分成^ X 個互不重疊的尺寸大小為3X3的圖像塊,并將含隱秘信息的加密域圖像的右方和下方尺寸 大小不為3X3的塊也作為圖像塊,共有X 個圖像塊,如圖2所示。
[0192] ③_2_化、將含隱秘信息的加密域圖像中當前待處理的第m個圖像塊定義為當前圖 像塊,將當前從隨機序列中提取出的第j個元素定義為當前元素,其中,m和j的初始值均為 1,1 <m<M,M表示含隱秘信息的加密域圖像中包含的圖像塊的總個數,1 < j < JJ表示隨機 序列的總長度。
[0193] ③_2_lc、利用當前元素對當前圖像塊中的每個像素點進行解密,對當前圖像塊中 的第i個像素點進行解密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素的 值相減后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中,1 y Ucur,Icur表示當前圖像塊中包含的像素點的總個數,Icur的值為9或6或4或3或2或1。
[0194] ③_2_ld、令m = m+l,并令j = j+l,將含隱秘信息的加密域圖像中下一個待處理的 圖像塊作為當前圖像塊,將下一個從隨機序列中提取出的元素作為當前元素,然后返回步 驟③_2_lc繼續執行,直至含隱秘信息的加密域圖像中的所有圖像塊處理完畢,完成圖像解 密的過程,得到含隱秘信息的解密域圖像,其中,m=m+l和j = j+l中的為賦值符號。
[01M]③_2_2、將含隱秘信息的解密域圖像劃分成^ X: 個互不重疊的尺寸大小為 3X3的圖像塊,其中,符號"L」"為向下取整符號。
[0196] ③_2_3、將含隱秘信息的解密域圖像中當前待處理的第m'個圖像塊定義為當前圖 像塊,其中,m'的初始值為^ X 。
[0197] ③_2_4、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的 像素值求差值后對256求模。
[0198] ③_2_5、將第i'個非中屯、像素點對應的模值Ml'與第i' + l個非中屯、像素點對應的模 值Mi'+i配對組成一個組合,記為(1^,1川),其中,1' = 1,3,5,7。
[0199] ③_2_6、令111'=111'+1,將含隱秘信息的解密域圖像中下一個待處理的圖像塊作為 當前圖像塊,然后返回步驟③_2_4繼續執行,直至含隱秘信息的解密域圖像中的所有圖像 塊處理完畢,共得到^ X X4個組合,其中,m'=m'+l中的為賦值符號。 W Η
[0200] ③_2_7、按序遍歷y X y x4個組合,將當前遍歷到的組合定義為當前組合;并 按序提取第二標記序列中的每個元素,將當前提取的元素定義為當前第二元素。
[0201] ③_2_8、如果當前組合為組合(0,0),則提取出嵌入比特"000" W完成隱秘信息提 取,并保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(0,1),則提取出嵌入 比特"OOrW完成隱秘信息提取,并將當前組合修改為(0,0),然后執行步驟③_2_9;如果當 前組合為組合(1,〇),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改為 (〇,〇),然后執行步驟③_2_9;如果當前組合為組合(1,1),則提取出嵌入比特"OirW完成 隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前組合為組合(0, 2),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(0,0),然后執行步 驟③_2_9;如果當前組合為組合(2,0),則提取出嵌入比特"lOrW完成隱秘信息提取,并將 當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前組合為組合(1,2),則提取出嵌入比 特"110" W完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前 組合為組合(2,1),則提取出嵌入比特"lirW完成隱秘信息提取,并將當前組合修改為(0, 0),然后執行步驟③_2_9。
[0202] 如果當前組合為組合(0,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(〇,v-2),然后執行步驟③_2_9;如果當前組合為組合(l,v),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(〇,v-2),然后執行步驟③_2_9;其中,1< v< 127〇
[0203] 如果當前組合為組合(u,0),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(u-2,0),然后執行步驟③_2_9;如果當前組合為組合(u,l),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(u-2,0),然后執行步驟③_2_9;其中,1<
[0204] 如果當前組合為組合(0,255),則提取出嵌入比特"000" W完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(0,254),則提取出嵌入比 特"OOrW完成隱秘信息提取,并將當前組合修改為(0,255),然后執行步驟③_2_9;如果當 前組合為組合(1,255),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改 為(〇,255),然后執行步驟③_2_9;如果當前組合為組合(1,254),則提取出嵌入比特"01Γ W完成隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9;如果當前組合 為組合(0,253),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(0, 255),然后執行步驟③_2_9;如果當前組合為組合(2,255),貝順取出嵌入比特"101"^完成 隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9;如果當前組合為組合 (1,253),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前組合修改為(0,255),然 后執行步驟③_2_9;如果當前組合為組合(2,254),則提取出嵌入比特"111"^完成隱秘信 息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9。
[0205] 如果當前組合為組合(0,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(〇,v+2),然后執行步驟③_2_9;如果當前組合為組合(l,v),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(〇,v+2),然后執行步驟③_2_9;其中,128 < v< 254。
[0206] 如果當前組合為組合(u,255),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(u-2,255),然后執行步驟③_2_9;如果當前組合為組合(u,254),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(11-2,255),然后執行步驟③_2_9; 其中,1 <u< 127。
[0207] 如果當前組合為組合(255,0),則提取出嵌入比特"000" W完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(255,1),則提取出嵌入比 特"OOrW完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當 前組合為組合(254,0),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前組合修改 為(255,0),然后執行步驟③_2_9;如果當前組合為組合(254,1),則提取出嵌入比特"01Γ W完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當前組合 為組合(255,2),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前組合修改為(255, 0),然后執行步驟③_2_9;如果當前組合為組合(253,0),貝順取出嵌入比特"lOrW完成隱 秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當前組合為組合 (254,2),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前組合修改為(255,0),然 后執行步驟③_2_9;如果當前組合為組合(253,1),則提取出嵌入比特"lirW完成隱秘信 息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9。
[0208] 如果當前組合為組合(255,v),則提取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(255,v-2),然后執行步驟③_2_9;如果當前組合為組合(254,v),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(255,v-2),然后執行步驟③_2_9; 其中,1 < v< 127。
[0209] 如果當前組合為組合(u,0),則提取出嵌入比特"0"W完成隱秘信息提取,并將當 前組合修改為(U巧,0),然后執行步驟③_2_9;如果當前組合為組合(u,l),則提取出嵌入比 特"rW完成隱秘信息提取,并將當前組合修改為(u+2,0),然后執行步驟③_2_9;其中,128 <u< 254。
[0210] 如果當前組合為組合(255,255),則提取出嵌入比特"000" W完成隱秘信息提取, 并保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(255,254),則提取出嵌 入比特"oorw完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9; 如果當前組合為組合(254,255),則提取出嵌入比特"010" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_2_9;如果當前組合為組合(254,254),則提取出嵌 入比特"OirW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9; 如果當前組合為組合(255,253),則提取出嵌入比特"100" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_2_9;如果當前組合為組合(253,255),則提取出嵌 入比特"lOrW完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9; 如果當前組合為組合(254,253),則提取出嵌入比特"110" W完成隱秘信息提取,并將當前 組合修改為(255,255),然后執行步驟③_2_9;如果當前組合為組合(253,254),則提取出嵌 入比特"11Γ W完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9。 [021。 如果當前組合為組合(255,v),貝順取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(255,v+2),然后執行步驟③_2_9;如果當前組合為組合(254,v),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(255,v+2),然后執行步驟③_2_9; 其中,128< v< 254。
[0212] 如果當前組合為組合(u,255),貝順取出嵌入比特"0"W完成隱秘信息提取,并將 當前組合修改為(u+2,255),然后執行步驟③_2_9;如果當前組合為組合(u,254),則提取出 嵌入比特"rW完成隱秘信息提取,并將當前組合修改為(U巧,255),然后執行步驟③_2_9; 其中,128<u< 254。
[0213] ③ _2_9、如果當前組合為(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或 (255,125)或(130,255)或(255,130),則當當前第二元素的值為加寸,保持當前組合不變,然 后將下一個提取的元素作為當前第二元素,再執行步驟③_2_10;當當前第二元素的值為1 時,對當前組合進行修改,然后將下一個提取的元素作為當前第二元素,再執行步驟③_2_ 10,其中修改過程為:若當前組合為(0,125),那么將當前組合修改為(0,126);若當前組合 為(125,0 ),那么將當前組合修改為(126,0);若當前組合為(0,130 ),那么將當前組合修改 為(0,129);若當前組合為(125,255),那么將當前組合修改為(126,255);若當前組合為 (130,0),那么將當前組合修改為(129,0);若當前組合為(255,125),那么將當前組合修改 為(255,126);若當前組合為(130,255),那么將當前組合修改為(129,255);若當前組合為 (255,130),那么將當前組合修改為(255,129)。
[0214] 如果當前組合不為(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、 (130,255)、( 255,130)中的其中一個,則直接執行步驟③_2_10。
[0215] ③_2_10、將下一個遍歷到的組合作為當前組合,然后返回步驟③_2_8繼續執行, 直至"f X f x4個組合全部處理完畢,至此在解密域完成隱秘數據提取的過程,得到已 提取隱秘信息的解密域圖像。
[0216] ③_2_11、將已提取隱秘信息的解密域圖像劃分成^ X 個互不重疊的尺寸大 小為3X3的圖像塊。
[0217] ③_2_12、將已提取隱秘信息的解密域圖像中當前待處理的第m'個圖像塊定義為 當前圖像塊;并按序提取第一標記序列中的每個元素,將當前提取的元素定義為當前第一 元素,其中,m'的初始值為^ X ^。 >3 >3
[0218] ③_2_13、對當前圖像塊中周圍的8個非中屯、像素點的像素值各自與中屯、像素點的 像素值求差值后對256求模。;
[0219] ③_2_14、按序查看每個模值,將當前查看的模值定義為當前模值。
[0220] ③_2_15、如果當前模值為126或129,則當當前第一元素的值為0時,保持當前模值 不變,然后將下一個提取的元素作為當前第一元素,再執行步驟③_2_16;當當前第一元素 的值為1時,對當前模值進行修改,然后將下一個提取的元素作為當前第一元素,再執行步 驟③_2_16,其中修改過程為:若當前模值為126,那么將當前模值修改為127;若當前模值為 129,那么將當前模值修改為128。
[0221] 如果當前模值不為126和129,則直接執行步驟③_2_16。
[0222] ③_2_16、令111'=111' + 1,將已提取隱秘信息的解密域圖像中下一個待處理的圖像塊 作為當前圖像塊,然后返回步驟③_2_13繼續執行,直至已提取隱秘信息的解密域圖像中的 所有圖像塊處理完畢,至此完成原始圖像無損恢復的過程,得到已提取隱秘信息并已無損 恢復的解密域圖像,其中,m'=m'+l中的為賦值符號。
【主權項】
1. 一種完全可分離的加密域圖像可逆數據隱藏方法,其特征在于包括圖像加密、加密 域圖像可逆數據隱藏、隱秘數據提取和原始圖像無損恢復三部分;其中, 所述的圖像加密部分的處理過程為: ① 」、設定待加密的圖像的寬度和高度對應為W和Η,如果W X Η能夠被3 X 3整除,則將待 加密的圖像劃分成^X ^個互不重疊的尺寸大小為3 X 3的圖像塊;如果WX Η不能夠被3 X 3 整除,則將待加密的圖像劃分成f X f個互不重疊的尺寸大小為3X3的圖像塊,并將 待加密的圖像的右方和下方尺寸大小不為3X3的塊也作為圖像塊,共有f f個圖像 塊,其中,符號'1」"為向下取整符號,符號"「1"為向上取整符號; Φ_2、根據隨意設定的一個文本,生成一個作為random()函數的輸入參數的密鑰;然后 由random()函數隨機產生一個隨機序列,隨機序列中的每個元素的值在0~255之間,隨機 序列的長度遠大于待加密的圖像中包含的圖像塊的總個數; Φ_3、將待加密的圖像中當前待處理的第m個圖像塊定義為當前圖像塊,將當前從隨機 序列中提取出的第j個元素定義為當前元素,其中,m和j的初始值均為1,Km <M,M表示待 加密的圖像中包含的圖像塊的總個數,1 < j <J,J表示隨機序列的總長度; Φ_4、利用當前元素對當前圖像塊中的每個像素點進行加密,對當前圖像塊中的第i個 像素點進行加密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素的值相加 后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中,1 < i < I cur,I cur表示當前圖像塊中包含的像素點的總個數,I cur的值為9或6或4或3或2或1; φ_5、令m=m+l,并令j = j+Ι,將待加密的圖像中下一個待處理的圖像塊作為當前圖像 塊,將下一個從隨機序列中提取出的元素作為當前元素,然后返回步驟①_4繼續執行,直至 待加密的圖像中的所有圖像塊處理完畢,完成圖像加密的過程,得到加密域圖像,其中,m = m+1和j = j+1中的"="為賦值符號; 所述的加密域圖像可逆數據隱藏部分的處理過程為: ② 」、將加密域圖像劃分成f X f個互不重疊的尺寸大小為3X3的圖像塊,并定義 一個第一標記序列和一個第二標記序列,其中,符號" 1_」"為向下取整符號; ?_2、將加密域圖像中當前待處理的第m'個圖像塊定義為當前圖像塊,其中,m'的初始 …r , W Η 值為1,1玄w $ j x 了; _ i」L 3 _ ?_3、對當前圖像塊中周圍的8個非中心像素點的像素值各自與中心像素點的像素值 求差值后對256求模;然后按序查看每個模值,若當前查看的模值為126,則將該模值126的 標記設為0,并將標記存入第一標記序列中;若當前查看的模值為127,則將該模值127的標 記設為1,并將標記存入第一標記序列中;若當前查看的模值為128,則將該模值128的標記 設為1,并將標記存入第一標記序列中;若當前查看的模值為129,則將該模值129的標記設 為〇,并將標記存入第一標記序列中;接著將模值為127對應的非中心像素點的像素值減1, 將模值為128對應的非中心像素點的像素值加1; @_4、將第i '個非中心像素點對應的模值Mi,與第i ' +1個非中心像素點對應的模值Mi,+1 配對組成一個組合,記為(1^,1^,+1),其中,1'=1,3,5,7; ②_5、令"1'="1'+1,將加密域圖像中下一個待處理的圖像塊作為當前圖像塊,然后返回 步驟②_3繼續執行,直至加密域圖像中的所有圖像塊處理完畢,共得到f X f x4個組 合,其中,m'=m'+l中的"="為賦值符號; (D_6、按序遍歷f X f x4個組合,將當前遍歷到的組合定義為當前組合; ?_7、如果當前組合為組合(0,125),則將當前組合的標記設為0,并將標記存入第二標 記序列中,再執行步驟?_8;如果當前組合為組合(0,126),則將當前組合的標記設為1,并 將標記存入第二標記序列中,然后將當前組合修改為(0,125),再執行步驟②_8;如果當前 組合為組合(125,0),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執行步 驟②_8;如果當前組合為組合(126,0),則將當前組合的標記設為1,并將標記存入第二標記 序列中,然后將當前組合修改為(125,0),再執行步驟②_8; 如果當前組合為組合(0,130),則將當前組合的標記設為0,并將標記存入第二標記序 列中,再執行步驟(D_8;如果當前組合為組合(0,129),則將當前組合的標記設為1,并將標 記存入第二標記序列中,然后將當前組合修改為(0,130),再執行步驟②_8;如果當前組合 為組合(125,255),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執行步驟 (D_8;如果當前組合為組合(126,255),則將當前組合的標記設為1,并將標記存入第二標記 序列中,然后將當前組合修改為(125,255),再執行步驟②_8; 如果當前組合為組合(130,0),則將當前組合的標記設為0,并將標記存入第二標記序 列中,再執行步驟(D_8;如果當前組合為組合(129,0),則將當前組合的標記設為1,并將標 記存入第二標記序列中,然后將當前組合修改為(130,0),再執行步驟②_8;如果當前組合 為組合(255,125),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執行步驟 (D_8;如果當前組合為組合(255,126),則將當前組合的標記設為1,并將標記存入第二標記 序列中,然后將當前組合修改為(255,125),再執行步驟②_8; 如果當前組合為組合(130,255),則將當前組合的標記設為0,并將標記存入第二標記 序列中,再執行步驟?_8;如果當前組合為組合(129,255),則將當前組合的標記設為1,并 將標記存入第二標記序列中,然后將當前組合修改為(130,255),再執行步驟②_8;如果當 前組合為組合(255,130),則將當前組合的標記設為0,并將標記存入第二標記序列中,再執 行步驟(D_8;如果當前組合為組合(255,129),則將當前組合的標記設為1,并將標記存入第 二標記序列中,然后將當前組合修改為(255,130),再執行步驟②_8; ?_8、如果當前組合為組合(0,0),則從隱秘信息中提取出第k位至第k+2位比特信息作 為當前嵌入信息,當當前嵌入信息為"〇〇〇"時,保持當前組合不變,完成隱秘信息嵌入;當當 前嵌入信息為"001"時,將當前組合修改為(〇,1),完成隱秘信息嵌入;當當前嵌入信息為 "010"時,將當前組合修改為(1,0),完成隱秘信息嵌入;當前嵌入信息為"011"時,將當前組 合修改為(1,1),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為(〇,2),完 成隱秘信息嵌入;當前嵌入信息為"101"時,將當前組合修改為(2,0),完成隱秘信息嵌入; 當前嵌入信息為"110"時,將當前組合修改為(1,2),完成隱秘信息嵌入;當前嵌入信息為 "111"時,將當前組合修改為(2,1),完成隱秘信息嵌入;然后令k=k+3;再執行步驟②_9;其 中,k的初始值為l,k=k+3中的"="為賦值符號; 如果當前組合為組合(〇,v),則從隱秘信息中提取出第k位比特信息作為當前嵌入信 息,當當前嵌入信息為"〇"時,將當前組合修改為(〇,v+2),完成隱秘信息嵌入;當當前嵌入 信息為"Γ時,將當前組合修改為(l,v+2),完成隱秘信息嵌入;然后令k=k+l;再執行步驟 (D_9;其中,1 <以127,k的初始值為1,k=k+l中的"="為賦值符號; 如果當前組合為組合(u,0),則從隱秘信息中提取出第k位比特信息作為當前嵌入信 息,當當前嵌入信息為"〇"時,將當前組合修改為(u+2,0),完成隱秘信息嵌入;當當前嵌入 信息為"Γ時,將當前組合修改為(u+2,l),完成隱秘信息嵌入;然后令k=k+l;再執行步驟 (D_9;其中,1 < u < 127,k的初始值為1,k = k+l中的"="為賦值符號; 如果當前組合為組合(〇,255),則從隱秘信息中提取出第k位至第k+2位比特信息作為 當前嵌入信息,當當前嵌入信息為"〇〇〇"時,保持當前組合不變,完成隱秘信息嵌入;當當前 嵌入信息為"001"時,將當前組合修改為(〇,254),完成隱秘信息嵌入;當當前嵌入信息為 "010"時,將當前組合修改為(1,255),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將當前 組合修改為(1,254),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為(0, 253),完成隱秘信息嵌入;當前嵌入信息為"101"時,將當前組合修改為(2,255),完成隱秘 信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(1,253),完成隱秘信息嵌入;當前 嵌入信息為"111"時,將當前組合修改為(2,254),完成隱秘信息嵌入;然后令1^ = 1^3;再執 行步驟(D_9;其中,k的初始值為1,k = k+3中的"="為賦值符號; 如果當前組合為組合(〇,v),則從隱秘信息中提取出第k位比特信息作為當前嵌入信 息,當當前嵌入信息為"〇"時,將當前組合修改為(〇,v-2),完成隱秘信息嵌入;當當前嵌入 信息為"Γ時,將當前組合修改為(l,v-2),完成隱秘信息嵌入;然后令k=k+l;再執行步驟 (D_9;其中,128 <以254,k的初始值為1,k = k+l中的"="為賦值符號; 如果當前組合為組合(u,255),則從隱秘信息中提取出第k位比特信息作為當前嵌入信 息,當當前嵌入信息為"〇"時,將當前組合修改為(u+2,255),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(u+2,254),完成隱秘信息嵌入;然后令k = k+l;再執行 步驟②_9;其中,1 < u < 127,k的初始值為1,k = k+l中的"="為賦值符號; 如果當前組合為組合(255,0),則從隱秘信息中提取出第k位至第k+2位比特信息作為 當前嵌入信息,當當前嵌入信息為"〇〇〇"時,保持當前組合不變,完成隱秘信息嵌入;當當前 嵌入信息為"001"時,將當前組合修改為(255,1),完成隱秘信息嵌入;當當前嵌入信息為 "010"時,將當前組合修改為(254,0 ),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將當前 組合修改為(254,1),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改為 (255,2),完成隱秘信息嵌入;當前嵌入信息為"101"時,將當前組合修改為(253,0),完成隱 秘信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(254,2),完成隱秘信息嵌入;當 前嵌入信息為"111"時,將當前組合修改為(253,1),完成隱秘信息嵌入;然后令k = k+3;再 執行步驟②_9;其中,k的初始值為1,k = k+3中的"="為賦值符號; 如果當前組合為組合(255,v),則從隱秘信息中提取出第k位比特信息作為當前嵌入信 息,當當前嵌入信息為"〇"時,將當前組合修改為(255,v+2),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(254,v+2),完成隱秘信息嵌入;然后令k = k+l;再執行 步驟②_9;其中,1 < v < 127,k的初始值為1,k = k+l中的"="為賦值符號; 如果當前組合為組合(u,0),則從隱秘信息中提取出第k位比特信息作為當前嵌入信 息,當當前嵌入信息為"〇"時,將當前組合修改為(u-2,0),完成隱秘信息嵌入;當當前嵌入 信息為"Γ時,將當前組合修改為(u-2,l),完成隱秘信息嵌入;然后令k = k+l;再執行步驟 (D_9;其中,128 < u < 254,k的初始值為1,k = k+l中的"="為賦值符號; 如果當前組合為組合(255,255),則從隱秘信息中提取出第1^位至第1^2位比特信息作 為當前嵌入信息,當當前嵌入信息為"〇〇〇"時,保持當前組合不變,完成隱秘信息嵌入;當當 前嵌入信息為"001"時,將當前組合修改為(255,254),完成隱秘信息嵌入;當當前嵌入信息 為"010"時,將當前組合修改為(254,255),完成隱秘信息嵌入;當前嵌入信息為"01Γ時,將 當前組合修改為(254,254),完成隱秘信息嵌入;當前嵌入信息為"100"時,將當前組合修改 為(255,253),完成隱秘信息嵌入;當前嵌入信息為"101"時,將當前組合修改為(253,255), 完成隱秘信息嵌入;當前嵌入信息為"110"時,將當前組合修改為(254,253),完成隱秘信息 嵌入;當前嵌入信息為"111"時,將當前組合修改為(253,254),完成隱秘信息嵌入;然后令k = k+3;再執行步驟②_9;其中,k的初始值為1,k = k+3中的"="為賦值符號; 如果當前組合為組合(255,v),則從隱秘信息中提取出第k位比特信息作為當前嵌入信 息,當當前嵌入信息為"〇"時,將當前組合修改為(255,v-2),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(254,v-2),完成隱秘信息嵌入;然后令k = k+l;再執行 步驟②_9;其中,128 < v < 254,k的初始值為1,k = k+l中的"="為賦值符號; 如果當前組合為組合(u,255),則從隱秘信息中提取出第k位比特信息作為當前嵌入信 息,當當前嵌入信息為"〇"時,將當前組合修改為(u-2,255),完成隱秘信息嵌入;當當前嵌 入信息為"Γ時,將當前組合修改為(u-2,254),完成隱秘信息嵌入;然后令k = k+l;再執行 步驟②_9;其中,128 < u < 254,k的初始值為1,k = k+l中的"="為賦值符號; @_9、對當前組合進行移位:若當前組合為(u,v)且1 < u < 127、1 < v < 127,則將當前組 合(u,v)修改為(u+l,v+l);若當前組合為(u,v)且1^11<127、128<以254,則將當前組合 (u,V)修改為(u+l,V-l);若當前組合為(u,V)且128<u< 254、l<V<127,則將當前組合(u, v)修改為(u-l,v+l);若當前組合為(u,v)且128<u< 254、128<v< 254,則將當前組合(u, v)修改為(u-1 ,ν-l); @_10、將下一個遍歷到的組合作為當前組合,然后返回步驟②_7繼續執行,直至 f X f 個組合全部處理完畢,完成加密域圖像可逆數據隱藏的過程,得到含隱秘信 息的加密域圖像,并將隨機序列、第一標記序列和第二標記序列發送到隱秘數據提取端; 所述的隱秘數據提取和原始圖像無損恢復部分中的隱秘數據提取在加密域完成或在 解密域完成,在加密域完成隱秘數據提取和原始圖像無損恢復的處理過程為: W Η ③jj、將含隱秘信息的加密域圖像劃分成y x y個互不重疊的尺寸大小為3X3 的圖像塊,其中,符號'1」"為向下取整符號; ③_1_2、將含隱秘信息的加密域圖像中當前待處理的第m'個圖像塊定義為當前圖像 塊,其中,m,的初始值為要x I 3 [_ 3 _ ③_1_3、對當前圖像塊中周圍的8個非中心像素點的像素值各自與中心像素點的像素 值求差值后對256求模; ?j_4、將第i'個非中心像素點對應的模值Mr與第i'+l個非中心像素點對應的模值 Mi,+1配對組成一個組合,記為(1^,,1^+1),其中,1' = 1,3,5,7; ③^_5、令"1'="1' + 1,將含隱秘信息的加密域圖像中下一個待處理的圖像塊作為當前 圖像塊,然后返回步驟③_1_3繼續執行,直至含隱秘信息的加密域圖像中的所有圖像塊處 理完畢,共得到f X 4 x4個組合,其中,m'=m'+l中的"="為賦值符號; ③_1_6、按序遍歷f X f x4個組合,將當前遍歷到的組合定義為當前組合;并按序 提取第二標記序列中的每個元素,將當前提取的元素定義為當前第二元素; ③_1_7、如果當前組合為組合(0,0),則提取出嵌入比特"000"以完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(0,1),則提取出嵌入比特 "001"以完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前組 合為組合(1,〇),則提取出嵌入比特"010"以完成隱秘信息提取,并將當前組合修改為(0, 〇),然后執行步驟③_1_8;如果當前組合為組合(1,1),則提取出嵌入比特"011"以完成隱秘 信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前組合為組合(0,2), 則提取出嵌入比特"100"以完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟 ③_1_8;如果當前組合為組合(2,0),則提取出嵌入比特"101"以完成隱秘信息提取,并將當 前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前組合為組合(1,2),則提取出嵌入比特 "110"以完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_1_8;如果當前組 合為組合(2,1),則提取出嵌入比特"111"以完成隱秘信息提取,并將當前組合修改為(0, 〇),然后執行步驟③_1_8; 如果當前組合為組合(〇,ν),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前組 合修改為(〇,ν-2),然后執行步驟如果當前組合為組合(1,ν),則提取出嵌入比特 "Γ以完成隱秘信息提取,并將當前組合修改為(〇,ν-2),然后執行步驟③_1_8;其中,1<ν < 127; 如果當前組合為組合(u,0),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前組 合修改為(u-2,0),然后執行步驟如果當前組合為組合(u,l),則提取出嵌入比特 "Γ以完成隱秘信息提取,并將當前組合修改為(u-2,0),然后執行步驟③_1_8;其中,l<u < 127; 如果當前組合為組合(〇,255),則提取出嵌入比特"000"以完成隱秘信息提取,并保持 當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(0,254),則提取出嵌入比特 "001"以完成隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8;如果當前 組合為組合(1,255),則提取出嵌入比特"010"以完成隱秘信息提取,并將當前組合修改為 (0,255),然后執行步驟@_1_8;如果當前組合為組合(1,254),則提取出嵌入比特"011"以 完成隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8;如果當前組合為 組合(Ο,253),則提取出嵌入比特"100"以完成隱秘信息提取,并將當前組合修改為(Ο, 255),然后執行步驟③_1_8;如果當前組合為組合(2,255),則提取出嵌入比特"101"以完成 隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8;如果當前組合為組合 (1,253),則提取出嵌入比特"110"以完成隱秘信息提取,并將當前組合修改為(0,255),然 后執行步驟③_1_8;如果當前組合為組合(2,254),則提取出嵌入比特"111"以完成隱秘信 息提取,并將當前組合修改為(〇,255),然后執行步驟③_1_8; 如果當前組合為組合(〇,ν),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前組 合修改為(〇,ν+2),然后執行步驟如果當前組合為組合(1,ν),則提取出嵌入比特 "Γ以完成隱秘信息提取,并將當前組合修改為(〇,ν+2),然后執行步驟③_1_8;其中,128 < ν< 254; 如果當前組合為組合(u,255),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前 組合修改為(u-2,255),然后執行步驟③_1_8;如果當前組合為組合(u,254),則提取出嵌入 比特"Γ以完成隱秘信息提取,并將當前組合修改為(u-2,255),然后執行步驟其 中,1 <u< 127; 如果當前組合為組合(255,0),則提取出嵌入比特"000"以完成隱秘信息提取,并保持 當前組合不變,然后執行步驟③_1_8;如果當前組合為組合(255,1),則提取出嵌入比特 "001"以完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當前 組合為組合(254,0),則提取出嵌入比特"010"以完成隱秘信息提取,并將當前組合修改為 (255,0),然后執行步驟③_1_8;如果當前組合為組合(254,1),則提取出嵌入比特"011"以 完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當前組合為 組合(255,2),則提取出嵌入比特"100"以完成隱秘信息提取,并將當前組合修改為(255, 〇),然后執行步驟③_1_8;如果當前組合為組合(253,0),則提取出嵌入比特"101"以完成隱 秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8;如果當前組合為組合 (254,2),則提取出嵌入比特"110"以完成隱秘信息提取,并將當前組合修改為(255,0),然 后執行步驟③_1_8;如果當前組合為組合(253,1),則提取出嵌入比特"111"以完成隱秘信 息提取,并將當前組合修改為(255,0),然后執行步驟③_1_8; 如果當前組合為組合(255,v),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前 組合修改為(255,v-2),然后執行步驟③_1_8;如果當前組合為組合(254,v),則提取出嵌入 比特"Γ以完成隱秘信息提取,并將當前組合修改為(255,v-2),然后執行步驟其 中,1 < v< 127; 如果當前組合為組合(u,0),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前組 合修改為(u+2,0),然后執行步驟如果當前組合為組合(u,l),則提取出嵌入比特 "Γ以完成隱秘信息提取,并將當前組合修改為(u+2,0),然后執行步驟③_1_8;其中,128 < u< 254; 如果當前組合為組合(255,255),則提取出嵌入比特"000"以完成隱秘信息提取,并保 持當前組合不變,然后執行步驟③j_8;如果當前組合為組合(255,254),則提取出嵌入比 特"001"以完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8;如果 當前組合為組合(254,255),則提取出嵌入比特"010"以完成隱秘信息提取,并將當前組合 修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(254,254),則提取出嵌入比 特"oil"以完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_1_8;如果 當前組合為組合(255,253),則提取出嵌入比特"100"以完成隱秘信息提取,并將當前組合 修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(253,255),則提取出嵌入比 特"101"以完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟(1)_1_8;如果 當前組合為組合(254,253),則提取出嵌入比特"110"以完成隱秘信息提取,并將當前組合 修改為(255,255),然后執行步驟③_1_8;如果當前組合為組合(253,254),則提取出嵌入比 特"111"以完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟(1)_1_8; 如果當前組合為組合(255,v),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前 組合修改為(255,v+2),然后執行步驟③_1_8;如果當前組合為組合(254,v),則提取出嵌入 比特"Γ以完成隱秘信息提取,并將當前組合修改為(255,v+2),然后執行步驟其 中,128< v< 254; 如果當前組合為組合(u,255),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前 組合修改為(u+2,255),然后執行步驟③_1_8;如果當前組合為組合(u,254),則提取出嵌入 比特"Γ以完成隱秘信息提取,并將當前組合修改為(u+2,255),然后執行步驟其 中,128<u< 254; ③ _1_8、如果當前組合為(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255, 125) 或(130,255)或(255,130),則當當前第二元素的值為0時,保持當前組合不變,然后將 下一個提取的元素作為當前第二元素,再執行步驟③_1_9;當當前第二元素的值為1時,對 當前組合進行修改,然后將下一個提取的元素作為當前第二元素,再執行步驟③_1_9,其中 修改過程為:若當前組合為(0,125),那么將當前組合修改為(0,126);若當前組合為(125, 0 ),那么將當前組合修改為(126,0);若當前組合為(0,130 ),那么將當前組合修改為(0, 129) ;若當前組合為(125,255),那么將當前組合修改為(126,255);若當前組合為(130,0), 那么將當前組合修改為(129,0);若當前組合為(255,125),那么將當前組合修改為(255, 126) ;若當前組合為(130,255),那么將當前組合修改為(129,255);若當前組合為(255, 130) ,那么將當前組合修改為(255,129); 如果當前組合不為(〇, 125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130, 255)、(255,130)中的其中一個,則直接執行步驟③_1_9; ③_1_9、將下一個遍歷到的組合作為當前組合,然后返回步驟③_1_7繼續執行,直至 X 4 x4個組合全部處理完畢,至此在加密域完成隱秘數據提取的過程,得到已提取 _ J5 _ 隱秘信息的加密域圖像; ③_1_10、將已提取隱秘信息的加密域圖像劃分成f X #個互不重疊的尺寸大小為 _ .3」[_ 3 _ 3X3的圖像塊; ③」jl、將已提取隱秘信息的加密域圖像中當前待處理的第m'個圖像塊定義為當前 圖像塊;并按序提取第一標記序列中的每個元素,將當前提取的元素定義為當前第一元素, 其中,m'的初始值為1,1?< f X f ; ③_1_12、對當前圖像塊中周圍的8個非中心像素點的像素值各自與中心像素點的像素 值求差值后對256求模; ③_1_13、按序查看每個模值,將當前查看的模值定義為當前模值; ③如果當前模值為126或129,則當當前第一元素的值為0時,保持當前模值不 變,然后將下一個提取的元素作為當前第一元素,再執行步驟當當前第一元素的 值為1時,對當前模值進行修改,然后將下一個提取的元素作為當前第一元素,再執行步驟 ③其中修改過程為:若當前模值為126,那么將當前模值修改為127;若當前模值為 129,那么將當前模值修改為128; 如果當前模值不為126和129,則直接執行步驟③_1_15; ③_1_15、令!11'=111'+1,將已提取隱秘信息的加密域圖像中下一個待處理的圖像塊作為 當前圖像塊,然后返回步驟③_1_12繼續執行,直至已提取隱秘信息的加密域圖像中的所有 圖像塊處理完畢,至此完成原始圖像無損恢復的過程,得到已提取隱秘信息并已無損恢復 的加密域圖像,其中,m'=m'+l中的"="為賦值符號; ③_1_16、對已提取隱秘信息并已無損恢復的加密域圖像進行解密,具體過程為: ③_l_16a、將已提取隱秘信息并已無損恢復的加密域圖像劃分成個互不重疊的 尺寸大小為3X3的圖像塊;如果WXH不能夠被3X3整除,則將已提取隱秘信息并已無損恢 復的加密域圖像劃分成f X f個互不重疊的尺寸大小為3X3的圖像塊,并將已提取隱 秘信息并已無損恢復的加密域圖像的右方和下方尺寸大小不為3X3的塊也作為圖像塊,共 Γιτ?「好.? 有Τ χ I個圖像塊; ?_lj6b、將已提取隱秘信息并已無損恢復的加密域圖像中當前待處理的第m個圖像 塊定義為當前圖像塊,將當前從隨機序列中提取出的第j個元素定義為當前元素,其中,m和 j的初始值均為l,l<m<M,M表示已提取隱秘信息并已無損恢復的加密域圖像中包含的圖 像塊的總個數,1 < j < J,J表示隨機序列的總長度; ?_lj6c、利用當前元素對當前圖像塊中的每個像素點進行解密,對當前圖像塊中的 第i個像素點進行解密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素的值 相減后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中,1 < i < I⑶r,Icur表示當前圖像塊中包含的像素點的總個數,Icur的值為9或6或4或3或2或1; ③_l_16d、令m=m+l,并令j = j+l,將已提取隱秘信息并已無損恢復的加密域圖像中下 一個待處理的圖像塊作為當前圖像塊,將下一個從隨機序列中提取出的元素作為當前元 素,然后返回步驟③_l_16c繼續執行,直至已提取隱秘信息并已無損恢復的加密域圖像中 的所有圖像塊處理完畢,完成圖像解密的過程,得到解密域圖像,其中,m = m+l和j = j + l中 的"="為賦值符號; 在解密域完成隱秘數據提取和原始圖像無損恢復的處理過程為: ③_2_1、對含隱秘信息的加密域圖像進行解密,具體過程為: @_2ja、將含隱秘信息的加密域圖像劃分成個互不重疊的尺寸大小為3X3的 3 〇 圖像塊;如果WXH不能夠被3X3整除,則將含隱秘信息的加密域圖像劃分成f x #個互 _ 3 J _ _ 不重疊的尺寸大小為3X3的圖像塊,并將含隱秘信息的加密域圖像的右方和下方尺寸大小 不為3X3的塊也作為圖像塊,共有f X f個圖像塊; ③_2_lb、將含隱秘信息的加密域圖像中當前待處理的第m個圖像塊定義為當前圖像 塊,將當前從隨機序列中提取出的第j個元素定義為當前元素,其中,m和j的初始值均為1,1 <π^Μ,Μ表示含隱秘信息的加密域圖像中包含的圖像塊的總個數,1 < j < J,J表示隨機序 列的總長度; ③_2_lc、利用當前元素對當前圖像塊中的每個像素點進行解密,對當前圖像塊中的第 i個像素點進行解密的過程為:將當前圖像塊中的第i個像素點的像素值與當前元素的值相 減后對256求模,然后將得到的值作為當前圖像塊中的第i個像素點的像素值,其中, I cur,I cur表示當前圖像塊中包含的像素點的總個數,I cur的值為9或6或4或3或2或1; ③_2_ld、令m=m+l,并令j = j + Ι,將含隱秘信息的加密域圖像中下一個待處理的圖像 塊作為當前圖像塊,將下一個從隨機序列中提取出的元素作為當前元素,然后返回步驟③_ 2_lc繼續執行,直至含隱秘信息的加密域圖像中的所有圖像塊處理完畢,完成圖像解密的 過程,得到含隱秘信息的解密域圖像,其中,m=m+l和j = j+l中的"="為賦值符號; ③_2_2、將含隱秘信息的解密域圖像劃分成f X |個互不重疊的尺寸大小為3X3 的圖像塊,其中,符號"1」"為向下取整符號; ③_2_3、將含隱秘信息的解密域圖像中當前待處理的第m'個圖像塊定義為當前圖像 塊,其中,m,的初始值為譬X警; ③_2_4、對當前圖像塊中周圍的8個非中心像素點的像素值各自與中心像素點的像素 值求差值后對256求模; ③_2_5、將第i '個非中心像素點對應的模值Mi,與第i ' +1個非中心像素點對應的模值 Mi,+1配對組成一個組合,記為(1^,,1^+1),其中,1' = 1,3,5,7; ③_2_6、令!11'=111' + 1,將含隱秘信息的解密域圖像中下一個待處理的圖像塊作為當前 圖像塊,然后返回步驟③_2_4繼續執行,直至含隱秘信息的解密域圖像中的所有圖像塊處 理完畢,共得到f X f x4個組合,其中,m'=m'+l中的"="為賦值符號; ③_2_7、按序遍歷f X f 個組合,將當前遍歷到的組合定義為當前組合;并按序 提取第二標記序列中的每個元素,將當前提取的元素定義為當前第二元素; ③_2_8、如果當前組合為組合(0,0),則提取出嵌入比特"000"以完成隱秘信息提取,并 保持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(0,1),則提取出嵌入比特 "001"以完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前組 合為組合(1,〇),則提取出嵌入比特"010"以完成隱秘信息提取,并將當前組合修改為(0, 〇),然后執行步驟③_2_9;如果當前組合為組合(1,1),則提取出嵌入比特"Oil"以完成隱秘 信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前組合為組合(0,2), 則提取出嵌入比特"100"以完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟 ③_2_9;如果當前組合為組合(2,0),則提取出嵌入比特"101"以完成隱秘信息提取,并將當 前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前組合為組合(1,2),則提取出嵌入比特 "110"以完成隱秘信息提取,并將當前組合修改為(〇,〇),然后執行步驟③_2_9;如果當前組 合為組合(2,1),則提取出嵌入比特"111"以完成隱秘信息提取,并將當前組合修改為(0, 〇),然后執行步驟③_2_9; 如果當前組合為組合(〇,v),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前組 合修改為(〇,v-2),然后執行步驟③_2_9;如果當前組合為組合(l,v),則提取出嵌入比特 "Γ以完成隱秘信息提取,并將當前組合修改為(〇,v-2),然后執行步驟③_2_9;其中,1<ν < 127; 如果當前組合為組合(u,0),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前組 合修改為(u-2,0),然后執行步驟③_2_9;如果當前組合為組合(u,l),則提取出嵌入比特 "Γ以完成隱秘信息提取,并將當前組合修改為(u-2,0),然后執行步驟③_2_9;其中,l<u < 127; 如果當前組合為組合(〇,255),則提取出嵌入比特"000"以完成隱秘信息提取,并保持 當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(0,254),則提取出嵌入比特 "001"以完成隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9;如果當前 組合為組合(1,255),則提取出嵌入比特"010"以完成隱秘信息提取,并將當前組合修改為 (0,255),然后執行步驟@_2_9;如果當前組合為組合(1,254),則提取出嵌入比特"011"以 完成隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9;如果當前組合為 組合(0,253),則提取出嵌入比特"100"以完成隱秘信息提取,并將當前組合修改為(0, 255),然后執行步驟③_2_9;如果當前組合為組合(2,255),則提取出嵌入比特"101"以完成 隱秘信息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9;如果當前組合為組合 (1,253),則提取出嵌入比特"110"以完成隱秘信息提取,并將當前組合修改為(0,255),然 后執行步驟③_2_9;如果當前組合為組合(2,254),則提取出嵌入比特"111"以完成隱秘信 息提取,并將當前組合修改為(〇,255),然后執行步驟③_2_9; 如果當前組合為組合(〇,v),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前組 合修改為(〇,v+2),然后執行步驟③_2_9;如果當前組合為組合(l,v),則提取出嵌入比特 "Γ以完成隱秘信息提取,并將當前組合修改為(〇,v+2),然后執行步驟③_2_9;其中,128 < v< 254; 如果當前組合為組合(u,255),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前 組合修改為(u-2,255),然后執行步驟③_2_9;如果當前組合為組合(u,254),則提取出嵌入 比特"Γ以完成隱秘信息提取,并將當前組合修改為(u-2,255),然后執行步驟③_2_9;其 中,1 <u< 127; 如果當前組合為組合(255,0),則提取出嵌入比特"000"以完成隱秘信息提取,并保持 當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(255,1),則提取出嵌入比特 "001"以完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當前 組合為組合(254,0),則提取出嵌入比特"010"以完成隱秘信息提取,并將當前組合修改為 (255,0),然后執行步驟③_2_9;如果當前組合為組合(254,1),則提取出嵌入比特"011"以 完成隱秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當前組合為 組合(255,2),則提取出嵌入比特"100"以完成隱秘信息提取,并將當前組合修改為(255, 〇),然后執行步驟③_2_9;如果當前組合為組合(253,0),則提取出嵌入比特"101"以完成隱 秘信息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9;如果當前組合為組合 (254,2),則提取出嵌入比特"110"以完成隱秘信息提取,并將當前組合修改為(255,0),然 后執行步驟③_2_9;如果當前組合為組合(253,1),則提取出嵌入比特"111"以完成隱秘信 息提取,并將當前組合修改為(255,0),然后執行步驟③_2_9; 如果當前組合為組合(255,v),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前 組合修改為(255,v-2),然后執行步驟③_2_9;如果當前組合為組合(254,v),則提取出嵌入 比特"Γ以完成隱秘信息提取,并將當前組合修改為(255,v-2),然后執行步驟③_2_9;其 中,1 < v< 127; 如果當前組合為組合(u,0),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前組 合修改為(u+2,0),然后執行步驟③_2_9;如果當前組合為組合(u,l),則提取出嵌入比特 "Γ以完成隱秘信息提取,并將當前組合修改為(u+2,0),然后執行步驟③_2_9;其中,128 < u< 254; 如果當前組合為組合(255,255),則提取出嵌入比特"000"以完成隱秘信息提取,并保 持當前組合不變,然后執行步驟③_2_9;如果當前組合為組合(255,254),則提取出嵌入比 特"001"以完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9;如果 當前組合為組合(254,255),則提取出嵌入比特"010"以完成隱秘信息提取,并將當前組合 修改為(255,255),然后執行步驟@_2_9;如果當前組合為組合(254,254),則提取出嵌入比 特"01Γ以完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9;如果 當前組合為組合(255,253),則提取出嵌入比特"100"以完成隱秘信息提取,并將當前組合 修改為(255,255),然后執行步驟③_2_9;如果當前組合為組合(253,255),則提取出嵌入比 特"101"以完成隱秘信息提取,并將當前組合修改為(255,255),然后執行步驟③_2_9;如果 當前組合為組合(254,253),則提取出嵌入比特"110"以完成隱秘信息提取,并將當前組合 修改為(255,255),然后執行步驟③_2_9;如果當前組合為組合(253,254),則提取出嵌入比 特"11Γ以完成隱秘信息提取,并將當前組合修改為(255,255 ),然后執行步驟③_2_9; 如果當前組合為組合(255,v),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前 組合修改為(255,v+2),然后執行步驟③_2_9;如果當前組合為組合(254,v),則提取出嵌入 比特"Γ以完成隱秘信息提取,并將當前組合修改為(255,v+2),然后執行步驟③_2_9;其 中,128< v< 254; 如果當前組合為組合(u,255),則提取出嵌入比特"0"以完成隱秘信息提取,并將當前 組合修改為(u+2,255),然后執行步驟③_2_9;如果當前組合為組合(u,254),則提取出嵌入 比特"Γ以完成隱秘信息提取,并將當前組合修改為(u+2,255),然后執行步驟③_2_9;其 中,128<u< 254; ③ _2_9、如果當前組合為(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255, 125)或(130,255)或(255,130),則當當前第二元素的值為0時,保持當前組合不變,然后將 下一個提取的元素作為當前第二元素,再執行步驟③_2_10;當當前第二元素的值為1時,對 當前組合進行修改,然后將下一個提取的元素作為當前第二元素,再執行步驟@_2j0,其 中修改過程為:若當前組合為(0,125),那么將當前組合修改為(0,126);若當前組合為 (125,0),那么將當前組合修改為(126,0);若當前組合為(0,130),那么將當前組合修改為 (0,129);若當前組合為(125,255),那么將當前組合修改為(126,255);若當前組合為(130, 0),那么將當前組合修改為(129,0);若當前組合為(255,125),那么將當前組合修改為 (255,126);若當前組合為(130,255),那么將當前組合修改為(129,255);若當前組合為 (255,130),那么將當前組合修改為(255,129); 如果當前組合不為(〇, 125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130, 255)、( 255,130)中的其中一個,則直接執行步驟③_2_10; @_2j0、將下一個遍歷到的組合作為當前組合,然后返回步驟③_2_8繼續執行,直至 f x f x4個組合全部處理完畢,至此在解密域完成隱秘數據提取的過程,得到已提取 隱秘信息的解密域圖像; ③_2_11、將已提取隱秘信息的解密域圖像劃分成f X f個互不重疊的尺寸大小為 3X3的圖像塊; ?_2j2、將已提取隱秘信息的解密域圖像中當前待處理的第m'個圖像塊定義為當前 圖像塊;并按序提取第一標記序列中的每個元素,將當前提取的元素定義為當前第一元素, 其中,m,的初始值為1,1?玄| X吾; ③_2_13、對當前圖像塊中周圍的8個非中心像素點的像素值各自與中心像素點的像素 值求差值后對256求模; ③_2_14、按序查看每個模值,將當前查看的模值定義為當前模值; ?_2j5、如果當前模值為126或129,則當當前第一元素的值為0時,保持當前模值不 變,然后將下一個提取的元素作為當前第一元素,再執行步驟③_2_16;當當前第一元素的 值為1時,對當前模值進行修改,然后將下一個提取的元素作為當前第一元素,再執行步驟 6,其中修改過程為:若當前模值為126,那么將當前模值修改為127;若當前模值為 129,那么將當前模值修改為128; 如果當前模值不為126和129,則直接執行步驟③_2_16; ③_2_16、令!11'=111'+1,將已提取隱秘信息的解密域圖像中下一個待處理的圖像塊作為 當前圖像塊,然后返回步驟③_2_13繼續執行,直至已提取隱秘信息的解密域圖像中的所有 圖像塊處理完畢,至此完成原始圖像無損恢復的過程,得到已提取隱秘信息并已無損恢復 的解密域圖像,其中,m'=m'+l中的"="為賦值符號。2.根據權利要求1所述的一種完全可分離的加密域圖像可逆數據隱藏方法,其特征在 于所述的步驟Φ_2中根據隨意設定的一個文本,生成一個作為randomO函數的輸入參數的 密鑰的具體過程為: ?_2a、隨意設定一個文本,如果文本的長度不能夠被8整除,則在文本的末尾補字符 "〇",使文本的長度能夠被8整除; ?_2b、將文本中的每個字符轉化成ASCII碼,然后以8個字節為一組將所有ASCII碼按 序分成多個碼組,假設共有N個碼組,其中,N>1; ?_2c、將第1個碼組與第2個碼組中對應的ASCII碼兩兩求和后對256求模,得到第1個 新碼組;然后將第1個新碼組與第3個碼組中對應的ASCII碼兩兩求和后對256求模,得到第2 個新碼組;依次類推,將第N-2個新碼組與第N個碼組中對應的ASCII碼兩兩求和后對256求 模,得到第N-1個新碼組,將第N-1個新碼組作為random()函數的輸入參數的密鑰。
【文檔編號】H04N1/32GK105872305SQ201610226637
【公開日】2016年8月17日
【申請日】2016年4月13日
【發明人】徐達文, 陳凱
【申請人】寧波工程學院