[0039] 为了便于本领域普通技术人员理解和实施本发明,下面结合附图实例对本发明做进一步详细描述,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定
本发明。
[0040] 在本发明的一个较佳实施例中,提供了一种基于迷你数独矩阵的3维参考矩阵信息隐藏方法,其具体步骤如下:
[0041] 步骤1:构建3D Cubic参考矩阵,如图1为3D Cubic参考矩阵的示意图。该3D Cubic参考矩阵M=[m(i,j,k)]i,j,k∈(0~255)需同时满足以下特征:
[0042] 1)Cubic参考矩阵为256×256×256大小的空间矩阵;
[0043] 2)Cubic矩阵中包含128×128×128个2×2×2的立方体;
[0044] 3)每个2×2×2的立方体称为内部隐藏层m,其包含8个1×1×1的子立方体,用0到7这8个十进制数字对这8个子立方体进行随机编码,每个数字在同一个内部隐藏层中仅出
现一次;
[0045] 4)每8个2×2×2的立方体称为外部隐藏层Tm,用0到7这8个十进制数字对这8个立方体进行固定编码,每个数字在同一个外部隐藏层中仅使用一次;
[0046] 所谓随机编码是指不同内部隐藏层m内同一位置的子立方体编码值允许不同。所谓固定编码是指不同外部隐藏层Tm内同一位置的立方体编码值需要保证相同。
[0047] 步骤2:将用于秘密信息藏入的原始图像Cover完全分割为不重叠的像素组,每组像素值中含有三个连续像素Pi,Pi+1,Pi+2,并将像素组的值作为空间坐标(Pi,Pi+1,Pi+2)。原始图像分割时,按照从上到下逐行进行分割,每行从左到右依次按照三个像素为一组进行分
割。
[0048] 如图2,本实施例中以原始图像中9个连续的像素(1,3,2,1,2,2,3,7,2)为例,对其以三个像素为单位切割成相互不重叠的像素组,并令其代表空间坐标,则可得3组空间坐标分别为(1,3,2)、(1,2,2)和(3,7,2)。
[0049] 步骤3:将待藏入的秘密信息流ST,从头开始以连续的六位为单位,分割成若干子0
秘密信息流Sr={Si,Si+1,…,Si+5},并取前三位和后三位分别计算得到其十进制值:So=2
1 2 2 1 0
×Si+2×Si+1+2×Si+2和St=2×Si+3+2×Si+4+2×Si+5。
[0050] 在本实施例中,假设ST=(101010101010010001),此时能够获得三组Sr,并计算得到三组So和St,分别为So=5和St=2、So=5和St=2以及So=2和和St=1。
[0051] 步骤4:针对一组像素组的空间坐标(Pi,Pi+1,Pi+2),在Cubic矩阵中定位对应的内部隐藏层元素值m(Pi,Pi+1,Pi+2)和外部隐藏层元素值Tm(Pi,Pi+1,Pi+2),其中m(Pi,Pi+1,Pi+2)为Cubic参考矩阵中空间坐标(Pi,Pi+1,Pi+2)处的子立方体上的编码值,Tm(Pi,Pi+1,Pi+2)为Cubic参考矩阵中空间坐标(Pi,Pi+1,Pi+2)处的子立方体所属的2×2×2立方体的编码值。
[0052] 由于嵌入方法一致,本实施例中仅以像素值为(1,3,2)和子秘密信息为(101010)进行举例。如图4,由于像素组为(1,3,2),所以定位到对应的内部层元素值为m(1,3,2)=1和外部层元素为Tm(1,3,2)=6。
[0053] 步骤5:根据差值表D、秘密信息值以及像素值特征,即可分轴进行定址修改,在矩阵的外部隐藏层Tm中藏入秘密数据,并确定空间搜寻区域。在外部隐藏层中嵌入三位的秘
0 1 2
密信息的核心理念是在空间方向都上嵌入1位秘密信息,使得满足的Tm=2×Si+2×Si+1+2
×Si+2=So,秘密信息嵌入的过程为:
[0054] 步骤5.1:在进行定址修改之前,需预先计算出3D Cubic参考矩阵的差值表。
[0055] 如图3,差值表产生的依据是在外部隐藏层中对于任意像素P,其在特定轴进行定址修改后像素变化的差值;若其需藏入的秘密信息S=0,则将该像素值P修改为与其最近的
像素P′,且P′满足条件mod(P′,4)=0;若其需藏入的秘密信息S=1,则将该像素值P修改为与其最近的像素P′,且P′满足条件mod(P′,4)=2;由于W有0、1、2和3这四种情况,秘密信息S有0和1两种情况,则一共有八种情况。通过计算,以第一行代表秘密信息S=0,W依次为0、1、
2和3的情况,同理第二行代表秘密信息S=1的情况,即可获得差值表。
[0056] 对于3维的参考矩阵而言,差值表D为2×4的表格,第一行的四个表格值依次为0、‑1、‑2、1,第二行的四个表格值依次为‑2、1、0、‑1,第一行的四个表格值分别代表S=0且W=
0、S=0且W=1、S=0且W=3、S=0且W=3时的取值,第二行的四个表格值分别代表S=1且W
=0、S=1且W=1、S=1且W=3、S=1且W=3时的取值。
[0057] 具体的差值表D如下:
[0058] W=0 W=1 W=2 W=3
S=0 0 ‑1 ‑2 1
S=1 ‑2 1 0 ‑1
[0059] 其中,S代表该位的秘密信息,W=mod(P,4),P代表像素值。
[0060] 在本实施例中,如中间的箭头所示,W=1属于0类型,此时其需藏入秘密信息S=1,则由差值表可知D=1;如左侧的箭头所示,W=0属于0类型,此时需藏入秘密信息S=1,则由差值表可知D=‑2。
[0061] 步骤5.2:由于在像素组中每个像素都藏入一位秘密信息,且藏入方式一致,所以这里以Pk代表像素组(Pi,Pi+1,Pi+2)中的任一像素,以S代表需藏入像素Pk的一位秘密信息。
根据差值表、秘密信息的值、及W的值,用定址修改的方法通过等式(1)可以计算出在外部隐
藏层中藏入秘密信息后的坐标位置(P′i,P′i+1,P′i+2)。
[0062] P′k=Pk+D(S+1,W+1) (1)
[0063] 式中:k∈(i,i+1,i+2),D(S+1,W+1)表示差值表D中第S+1行第W+1列的表格值。
[0064] 如图4,在像素值为(1,3,2)和子秘密信息为(101010)的实施例中,经过等式(1)可以求得藏入秘密信息(101)后的像素值变为(2,4,2)。
[0065] 步骤5.3:根据差值表、W值、像素组中每个像素的值以及对应藏入的秘密信息的值,通过等式(2)即可计算出对应方向上像素Pk的搜寻区域为G(Pk)=[P′k,P′k+1],当三个空间方向(Pi,Pi+1,Pi+2)上的搜寻区域都确定后,就得到了三维空间上对应的搜寻区域A=RM(P′i:P′i+1,P′i+1:P′i+1+1,P′i+2:P′i+2+1),表示在三个空间方向上的搜寻坐标区间分别是(P′i:P′i+1),(P′i+1:P′i+1+1),(P′i+2:P′i+2+1)。
[0066] 其中G(Pk)的取值形式为:
[0067]
[0068] 具体而言,G(Pk)也可表达为:
[0069]
[0070] 在本实施例中,以在像素值为(1,3,2)和子秘密信息为(101010)为例,根据等式(2)确定空间上对应的搜索区域A=RM(2:3,4:5,2:3)。
[0071] 步骤6:确定搜寻区域后,在对应的空间搜索区域内进行定值修改,在该区域的矩阵内部隐藏层m中再藏入秘密信息,寻找出符合Tm(P″i,P″i+1,P″i+2)=So和m(P″i,P″i+1,P″i+2)=St条件的坐标(P″i,P″i+1,P″i+2)。在外部隐藏层中嵌入三位的秘密信息的核心理念是
2 1 0
在空间搜寻区域内搜寻对应元素,使得满足的m=2×Si+3+2×Si+4+2×Si+5=St,秘密信息
嵌入的过程为:
[0072] 根据待藏入的秘密信息流Sr以及前一步确定的搜寻区域,在搜索区域A=RM(P′i:P′i+1,P′i+1:P′i+1+1,P′i+2:P′i+2+1)内寻找出满足Tm(P″i,P″i+1,P″i+2)=So和m(P″i,P″i+1,P″i+2)=St条件的坐标(P″i,P″i+1,P″i+2),再将像素组(Pi,Pi+1,Pi+2)修改为(P″i,P″i+1,P″i+2)。
[0073] 在像素值为(1,3,2)和子秘密信息为(101010)的实施例中,后三位秘密信息为2 1 0
(010),则St=2×0+2×1+2×0=2,由于已经确定A=RM(2∶3,4∶5,2∶3),则如图4在对应
的空间搜索区域内寻找m=2的值,由此获得像素(3,4,2),通过反复的操作即可获得如图5
的隐秘图像Stego。
[0074] 步骤7:针对秘密信息流ST中的每一段子秘密信息流Sr,重复S5和S6,直到将所有秘密信息流嵌入原始图像Cover中不同的像素组中,得到嵌入秘密信息的隐秘图像Stego。
[0075] 隐秘图像中的像素值相对于原始图像Cover经过了改动,例如Cover中像素值为(1,3,2)对应位置在Stego中的像素值为(3,4,2)。发送端得到Stego后,可将其发送至接收端,接收端重新根据Stego中的像素组,可提取出隐秘图像Stego中嵌入的秘密信息,得到嵌
入的秘密信息。下面对该提取过程进行展开描述。
[0076] 步骤8:接收端收到发送端发送的隐秘图像Stego后,将隐秘图像Stego完全分割为不重叠的像素组,每组像素值中含有三个连续像素P′i,P′i+1,P′i+2,以像素组作为空间坐标,在Cubic矩阵中获取对应的内部隐藏层元素值m(P′i,P′i+1,P′i+2)和外部隐藏层元素值Tm(P′i,P′i+1,P′i+2),将Tm和m分别转化为三位二进制秘密信息,并按Tm(P′i,P′i+1,P′i+2)倒序和m(P′i,P′i+1,P′i+2)正序的方式结合,得到像素组(P′i,P′i+1,P′i+2)中隐藏的六位秘密信息流Sr;分别提取出各像素组中隐藏的六位秘密信息流Sr后,最终拼接得到藏入的秘密信息流
ST。
[0077] 需注意的是,原始图像Cover和隐秘图像Stego的像素组分割方式完全相同。而接收端拼接秘密信息流ST时,需严格按照发送端嵌入子秘密信息流St过程中的像素组选择顺
序,按序将各秘密信息流Sr进行拼接。一般而言,原始图像Cover和隐秘图像Stego均按照从
上到下逐行进行分割,每行从左到右依次按照三个像素为一组进行分割。后续拼接时,只需
按照这个顺序将子秘密信息流Sr进行拼接即可。
[0078] 在本实施例中,以前述实例中的像素组(3,4,2)为例,将像素组(3,4,2)对应到3维Cubic矩阵当中可以获得Tm=5和m=2,将其分别转换为三位二进制数,即可得(101010)。对
整个隐秘图像的各子图像块进行上述处理后,即可得到嵌入的秘密信息。
[0079] 为了体现本发明的具体技术效果,下面给出上述方法在实际案例中的具体应用结果。
[0080] 如表1所示,已知8张图像的大小均为512×512,每个像素嵌入2位秘密数据,则该方案的嵌入容量为512×512×2=524288。此外,在完全实现嵌入的情况下,方案仍然实现
了高图像质量,平均PSNR=46.37,SSIM=0.9923。不仅如此,隐秘图像的质量相对稳定,没有较大的波动。
[0081] 表1为本实施例的实验结果
[0082]Image EC(bits) PSNR(dB) BER SSIM EF(%)
Lena 524,288 46.38 0 0.9918 25
Peppers 524,288 46.37 0 0.9906 25
Airplane 524,288 46.37 0 0.9883 25
Baboon 524,288 46.36 0 0.9958 25
Boat 524,288 46.37 0 0.9938 25
Elaine 524,288 46.38 0 0.9919 25
Goldhill 524,288 46.36 0 0.9936 25
Sailboat 524,288 46.37 0 0.9929 25
Average 524.288 46.37 0 0.9923 25
[0083] 如表2所示,由于传统算法在搜索步骤中使用了大量循环,因此该算法耗时较长的问题。随着维度的拓展,嵌入效率会直线下降。与传统算法相比,本发明提出的算法减少了
搜索过程中循环的使用,可以大大提高时间效率。如表6所示,随着维度的拓展,时间效率没有明显变化,基本上处于稳定的状态。所以,可以得出结论,本发明提出的算法将2D模型推
导为N‑D模型,并且仍然可以保证实时性。
[0084] 表2为本实施例算法和传统嵌入方法的嵌入时间比较结果
[0085] Trad‑2D Trad‑3D Real‑2D Real‑3D Real‑4DLena 2.80s 4.48s 1.09s 1.07s 1.11s
Peppers 2.81s 4.51s 1.11s 1.12s 1.13s
Airplane 2.83s 4.52s 1.10s 1.10s 1.12s
Baboon 2.82s 4.49s 1.11s 1.09s 1.11s
Boat 2.75s 4.47s 1.10s 1.11s 1.12s
Elaine 2.94s 4.54s 1.13s 1.12s 1.14s
Goldhill 2.86s 4.54s 1.08s 1.09s 1.11s
Sailboat 2.83s 4.49s 1.11s 1.13s 1.13s
[0086] 表3比较了在相同嵌入容量的前提下不同参考矩阵的PSNR。其中,Xie等人所提出的方案的平均PSNR最低,为41.87dB。而本发明的平均PSNR为46.37dB,比Xie等人的方案的
图像质量高了近4dB。除此之外,与其他两种方案相比,本发明的图像质量也有显著优势。
[0087] 表3为本实施例和基于不同参考矩阵的其他算法比较结果
[0088]
[0089] 为了进一步说明本方案的优点,这里将本发明与其他基于Sudoku参考矩阵的方案[4,5,6]进行了比较。如表3所示,Chang等人提出的方案的嵌入容量是393,216位,平均PSNR
是44.83dB。和Chang等人的提出的方案相比,本发明提出的方案无论是嵌入容量还是图片
质量,都有一定的优势。与其他两种方案相比,尽管[5,6]的图像质量优于本方案,但其嵌入能力却远远低于本发明。
[0090] 表4为本实施例和基于数独参考矩阵的其他算法比较结果
[0091] 为了进一步反映该方案的性能,本发明还将该方案与He等人提出的方案进
[0092]
[0093] 行了比较。如表5所示,尽管该方案在嵌入容量和图像质量方面没有明显优势,但在时间效率方面,本文却具有明显的优势。从理论上讲,该方案的参考矩阵是3D模型,比2D
模型复杂,但是该方案的平均时间效率仅为1.07s,可以实现实时嵌入。此外,由于此方案中采用的矩阵由随机key产生,比He等人的矩阵更复杂,因此在保密性方面也具有显着优势。
[0094] 表5为本实施例和基于迷你数独参考矩阵的其他算法比较结果
[0095]
[0096] 上述用于对比的技术方案具体参见如下参考文献:
[0097] [1]Q.Jin,Z.Li,C.C.Chang,A.Wang,and L.Liu,“Minimizing turtleshell matrix based stego image distortion using particle swarm optimization,”
Netw.Secur.,vol.19,no.1,pp.154‑162,Jan.2017.
[0098] [2]Y.Liu,C.C.Chang,and T.S.Nguyen,“High capacity turtle shellbased data hiding,”IET Image Process.,vol.10,no.2,pp.130‑137,Feb.2016.
[0099] [3]X.Z.Xie,Y.Liu,and C.C.Chang,“Extended squared magic matrix for embedding secret information with large payload,”Multimed.Tools Appl.,vol.78,
no.14,pp.19045‑19059,Feb.2019.
[0100] [4]C.C.Chang,Y.C.Chou,and T.D.Kieu“, An information hiding scheme using Sudoku,”in Proceed.3th Intl Conf.Innov.Comput.Inf.Control(ICICIC),
Dalian,China,Jun.2008,pp.17‑22.
[0101] [5]W.Hong,T.S.Chen,and C.W.Shiu,“A Minimal Euclidean Distance Searching Technique for Sudoku Steganography,”Proceedings of the
International Symposium on Information Science and Engineering(ISISE2008),
vol.1,pp.515‑518,December 2008.
[0102] [6]Chi‑Nan Lin,Chin‑Chen Chang,Wei‑Bin Lee,and Jason Lin“, A Novel Secure Data Hiding Scheme Using a Secret Reference Matrix,”2009Fifth
International Conference on Intelligent Information Hiding and Multimedia
Signal Processing,Kyoto,2009,pp.369‑373.
[0103] [7]M.He,Y.Liu,C.Chang and M.He,"A Mini‑sudoku matrix‑based data embedding scheme with high payload,"in IEEE Access,vol.7,pp.141414‑141425,
2019.
[0104] 当然,以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各
种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明
的保护范围内。