CN113160028B - 基于彩色字符画的信息隐藏及恢复方法、设备及存储介质 - Google Patents

基于彩色字符画的信息隐藏及恢复方法、设备及存储介质 Download PDF

Info

Publication number
CN113160028B
CN113160028B CN202110206141.9A CN202110206141A CN113160028B CN 113160028 B CN113160028 B CN 113160028B CN 202110206141 A CN202110206141 A CN 202110206141A CN 113160028 B CN113160028 B CN 113160028B
Authority
CN
China
Prior art keywords
image
sequence
character
coordinate
embedded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110206141.9A
Other languages
English (en)
Other versions
CN113160028A (zh
Inventor
邵利平
程单单
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shaanxi Normal University
Original Assignee
Shaanxi Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shaanxi Normal University filed Critical Shaanxi Normal University
Priority to CN202110206141.9A priority Critical patent/CN113160028B/zh
Publication of CN113160028A publication Critical patent/CN113160028A/zh
Application granted granted Critical
Publication of CN113160028B publication Critical patent/CN113160028B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking

Abstract

本发明属于信息安全和信息隐藏的交叉领域,公开了一种基于彩色字符画的信息隐藏及恢复方法、设备及存储介质,在隐藏时,将彩色图像三通道图像转换为二值掩体图,由预设字号的字符0和字符1产生编码字符图像;通过多通道插值对秘密信息认证和备份以产生分存值序列;通过隐字符位置编码生成字符放置位置并结合二值掩体产生彩色含密字符画。在提取时,通过多通道插值和隐字符位置编码恢复策略恢复二值秘密比特串,并对提取的二值秘密比特进行认证。该方法利用字符图像来表达秘密信息,隐藏了字符编码空间且通过多通道插值消除了错误恢复值的影响,不涉及任何参数额外嵌入,不存在任何修改痕迹,对密钥具有完全的依赖性,具有良好的抗攻击能力。

Description

基于彩色字符画的信息隐藏及恢复方法、设备及存储介质
技术领域
本发明属于信息安全和信息隐藏的交叉领域,涉及一种基于彩色字符画的信息隐藏及恢复方法、设备及存储介质。
背景技术
传统信息隐藏通常采用修改式嵌密,如关注于图像嵌密的数字图像密写,例如:Swain G,2016(Swain G.Adaptive pixel value differencing steganography usingboth vertical and horizontal edges[J].Multimedia Tools and Applications,2016,75(21):13541-13556.)和张洋,2018(张洋,邵利平,任平安.免基向量EMD(n,m)模型及其在图像密写上的应用[J].计算机辅助设计与图形学报,2018,30(8):1490-1504.);借助部分影子图像对秘密信息重构的数字图像分存,例如Kanso A,2017(Kanso A,Ghebleh M.Anefficient(t,n)–threshold secret image sharing scheme[J].Multimedia Tools andApplications,2017,76(15):16369-16388.)和Liu Y,2019(Liu Y,Yang C,Wu C,etal.Threshold changeable secret image sharing scheme based on interpolationpolynomial[J].Multimedia Tools and Applications,2019,78(13):18653-18667.);对图像进行版权标识认证的数字图像水印,例如Su Q,2018(Su Q,Chen B.Robust colorimage watermarking technique in the spatial domain[J].Soft Computing,2018,1(22):91-106.)和Adeli A,2018(Adeli A,Broumandnia A.Image steganalysis usingimproved particle swarm optimization based feature selection[J].AppliedIntelligence,2018,6(48):1609-1622.)等,这些方法不可避免地会留下修改痕迹并且随着隐写分析技术的提升,这些修改痕迹不被发现的可能性也越来越小,从而导致对载体的修改更少和更小的隐藏空间。而越来越小的隐藏空间,不仅限制了隐藏容量,也使得修改式嵌密变得越来越不可行。为解决该问题,人们提出了无载体信息隐藏。
目前关于无载体信息隐藏主要有2类典型的方法,搜索式无载体信息隐藏,例如,周志立,2016(周志立,曹燚,孙星明.基于图像Bag-of-Words模型的无载体信息隐藏[J].应用科学学报,2016,34(05):527-536.)建立了多级倒排索引,在大规模数据库中搜索出符合条件的图像并进行秘密信息传递。Zhang X,2018(Zhang X,Peng F,Long M.RobustCoverless Image Steganography Based on DCT and LDA Topic Classification[J].IEEE Transactions on Multimedia,2018,20(12):3223-3238.)根据倒排索引选择特征序列等于秘密信息段的图像作为载体图像实现图像隐写。Zou L,2019(Zou L,Sun J,GaoM,et al.A novel coverless information hiding method based on the averagepixel value of the sub-images[J].Multimedia Tools and Applications,2019,78(7):7965-7980.)通过哈希函数将载体图像特征映射为比特串或中文词汇用于传递秘密信息。Chen X,2019(Chen X,Chen S.Text coverless information hiding based oncompound and selection of words[J].Soft Computing,2019,23(15):6323-6330.)将秘密信息分成多个关键字,使用两个相邻关键字合成的复合词作为秘密信息,然后利用二进制数作为定位标签来检索测试数据库中包含位置标签和相应关键字的载体文本。吴金阔,2019(吴金阔,郭振波.基于汉明码的无载体文本信息隐藏算法[J].青岛大学学报:自然科学版,2019(2):1006-1037.)利用搜索法发送隐藏处理过的信息码所对应监督码的载体文本实现了无载体信息隐藏。这类方法涉及大量载体密集传输且单载体嵌密容量极低的问题,即使借助倒排索引,也会存在存储和维护代价高昂的问题。
另有学者提出生成式无载体信息隐藏,相对于搜索式无载体信息隐藏,生成式无载体信息隐藏不仅不存在嵌密容量限制,而且可以生成包含秘密信息的自然界中不存在的图像,使得攻击者找不到追溯的根源。生成式无载体信息隐藏主要包含有纹理构造式无载体信息隐藏和纹理合成式无载体信息隐藏。
其中基于纹理构造式信息隐藏方法通过人工生成的方法,产生复杂漂亮的纹理掩盖秘密信息,例如,Qian Z,2018(Qian Z,Pan L,Li S,et al.Steganography byConstructing Marbling Texture:4th International Conference,ICCCS 2018,Haikou,China,June 8–10,2018,Revised Selected Papers,Part IV[M].2018.)和潘琳,2016(潘琳,钱振兴,张新鹏.基于构造纹理图像的数字隐写[J].应用科学学报,2016,34(05):625-632.)主要是通过marbling形变生成纹理来对秘密信息进行掩盖,但这类方法生成的含密图像虽然具有良好的视觉效果但难以生成真实质地的图像,因此很难有效地进行秘密信息掩盖。另外,基于纹理合成的无载体信息隐藏方法将秘密信息直接编码为纹理小块,通过纹理小块拼接的方式来重新生成与给定样本相似的纹理图像,相对于纹理构造式信息隐藏,纹理合成式方法可产生与自然纹理相似的纹理图像,例如,Wu K,2015(Wu K,Chung-MingW.Steganography Using Reversible Texture Synthesis[J].IEEE Transactions onImage Processing,2015,24(1):130-139.)通过镜像操作使得编码样本小块和非编码样本小块存在明显的区别特征,从而导致样本图像泄露;杜耀刚,2019(杜耀刚,王泽豪,赵耿,等.一种安全的无载体纹理合成信息隐藏方案[J].计算机应用与软件,2019,36(06):287-291.)采用缝合线算法将相邻小块进行拼接并添加干扰块。纹理合成式方法尽管可产生与自然纹理相似的纹理图像,但容易产生重复模式和产生缝合痕迹,从而无法对秘密信息进行有效掩盖。
相对于上述信息隐藏方法,基于马赛克的拼图伪装方法,通常是借助一些代表秘密信息的构图单元来产生具有丰富含义的有意义公开图像,用于对秘密信息的掩盖。例如,Zhai S,2015(Zhai S,Fan L,Chin-Chen C A Q M.A meaningful scheme for sharingsecret images using mosaic images[J].International Journal of NetworkSecurity,2015:643-649.)采用马赛克拼图的方法将密图划分为四份并分散于预先选择的四张掩体图中。Lee Y,2014(Lee Y,Tsai W.A new secure image transmissiontechnique via secret-fragment-visible mosaic images by nearly reversiblecolor transformations[J].TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEOTECHNOLOGY,2014(4):695-703.)在图像块匹配时,将密图小块和掩体小块按均值和标准差排序建立映射,由密图小块重构掩体图像。为提高图像视觉质量,Hou D,2016(Hou D,ZhangW,Yu N.Image camouflage by reversible image transformation[J].Journal ofVisual Communication and Image Representation,2016,40:225-236.)在Zhai S,2015的基础上引入了均值聚类算法来对密图小块和掩体小块进行分类来进行匹配。刘小凯,2018(刘小凯,恒姚,川秦.基于图像块分类阈值优化的改进可逆图像伪装_刘小凯[J].应用科学学报,2018,36(2):237-246.)引入优化分类阈值算法改进Zhai S,2015,使得生成伪装图像和目标图像的均方差最小。但Zhai S,2015、Lee Y,2014、Hou D,2016和刘小凯,2018都采用修改式嵌密来嵌入重构秘密信息图像的相关参数,因此不可避免地存在固有的修改痕迹。
为避免传统基于马赛克拼图的信息隐藏需借助修改式嵌入的方式嵌入额外参数,难以抵抗密写分析且鲁棒性较低的问题,同时提高抗攻击能力。王洋,2020(王洋,邵利平,陆海.结合块旋转和马赛克拼图的生成式伪装方法[J].中国图象图形学报,2020,25(01):43-59.)将选定的多个样本图像进行圆形化表示作为基本的构图单元来表示秘密信息,并通过放置的转角来对放置的秘密信息进行认证。该方法不仅能生成有意义的图像,还具有较强的抗攻击能力,但是该方法生成的马赛克图像视觉质量较低,容易暴露秘密信息。邵利平,2019(邵利平,王洋,程单单.一种结合误差扩散的字符画生成式伪装及恢复方法[P].2019.中国,中华人民共和国知识产权局,发明专利,20191072471.8.)也具有相同的问题。赵运营,2019(赵运营,邵利平,王洋,等.改进块旋转和马赛克拼图的生成式伪装方法[J].应用科学学报,2019,37(05):673-690.)进一步提出通过编码图像的旋转角度来表达秘密信息,在放置过程中,不会产生任何偏差,避免了王洋,2020通过编码图像直接表达秘密信息所带来的视觉质量差和嵌密位置泄露等问题,但所提方法的编码单元和秘密信息呈现简单的对应关系,导致编码的秘密信息存在暴露的风险,不能对编码的秘密信息进行有效地隐藏。
发明内容
本发明的目的在于克服上述现有技术中,现有方法在信息隐藏时存在修改痕迹,导致容易暴露秘密信息,安全性不高的缺点,提供一种基于彩色字符画的信息隐藏及恢复方法、设备及存储介质。
为达到上述目的,本发明采用以下技术方案予以实现:
本发明第一方面,一种基于彩色字符画的信息隐藏方法,包括以下步骤:
S1:获取大小为m0×n0的彩色图像;
S2:根据预设字号的字符0和字符1,生成8幅大小均为l1×l1的字符图像;
S3:获取彩色图像的红色通道图像
Figure BDA0002950728850000031
ri,j∈{0,1,…,2t-1},绿色通道图像/>
Figure BDA0002950728850000032
gi,j∈{0,1,…,2t-1}和蓝色通道图像/>
Figure BDA0002950728850000033
bi,j∈{0,1,…,2t-1};并分别转换为红色通道二值图像/>
Figure BDA0002950728850000034
r′i,j∈{0,1},绿色通道二值图像
Figure BDA0002950728850000035
g′i,j∈{0,1}和蓝色通道二值图像/>
Figure BDA0002950728850000036
b′i,j∈{0,1};其中,t为大于0的整数,i∈{0,1,2,…,m0-1},j∈{0,1,2,…,n0-1};
S4:获取长度l的2值比特序列S=(si)l,si∈{0,1}为秘密信息,将2值比特序列S中每2比特为一组进行10进制转化,得到10进制序列A=(ai)l/2,根据预设的转换密钥,将10进制序列A=(ai)l/2插值备份为分存值序列βρ=(βi ρ)l/2,ρ∈{r,g,b},即分存值序列βrgb
S5:根据预设的嵌入密钥随机生成长度为L的随机坐标序列
Figure BDA0002950728850000037
ρ∈{r,g,b}以及嵌密坐标位置序列Z′ρ=((x′i ρ,y′i ρ))l/2,l/2≤L,ρ∈{r,g,b},即随机坐标序列Zr,Zg,Zb和嵌密坐标位置序列Z′r,Z′g,Z′b,其中,m2,n2均为大于0的整数,m2=m0·h,n2=n0·h,h为矩阵膨胀参数,h>0,L为大于0的整数;
S6:根据红色通道二值图像R′、绿色通道二值图像G′、蓝色通道二值图像B′、嵌密坐标位置序列Z′ρ以及随机坐标序列Zρ,从8幅字符图像中选取目标字符图像,通过隐字符位置方式编码分存值序列βρ并进行掩盖,得到大小为m2×n2的嵌密掩体图像
Figure BDA0002950728850000038
将嵌密掩体图像Mρ进行三通道结合,得到彩色嵌密字符画图像Mrgb,其中ρ∈{r,g,b}。
本发明基于彩色字符画的信息隐藏方法进一步的改进在于:
所述S3的具体方法为:
获取彩色图像的红色通道图像
Figure BDA0002950728850000039
ri,j∈{0,1,…,2t-1},绿色通道图像
Figure BDA00029507288500000310
gi,j∈{0,1,…,2t-1}和蓝色通道图像/>
Figure BDA00029507288500000311
bi,j∈{0,1,…,2t-1};
将红色通道图像R,绿色通道图像G和蓝色通道图像B分别作为t阶灰度图像
Figure BDA00029507288500000312
ui,j∈{0,1,…,2t-1}进行如下转换,得到红色通道二值图像/>
Figure BDA00029507288500000313
r′i,j∈{0,1},绿色通道二值图像/>
Figure BDA00029507288500000314
g′i,j∈{0,1}和蓝色通道二值图像/>
Figure BDA00029507288500000315
b′i,j∈{0,1}:
S301:对于t阶灰度图像U中的每个元素ui,j,按式(2)将ui,j映射为u′i,j
Figure BDA00029507288500000316
S302:按式(3)计算误差Δi,j,将Δi,j按式(4)分布到ui,j周围未按式(2)处理的8领域像素上:
Δi,j=ui,j-u′i,j·(2t-1) (3)
ux,y=Range(ux,yi,j/NC,0,2t-1) (4)
其中,(x,y)∈{(i-1,j-1),(i-1,j),(i-1,j+1),(i,j-1),(i,j+1),(i+1,j-1),(i+1,j),(i+1,j+1)},NC是ui,j周围8领域未按式(3)处理的有效像素的个数,Range(ux,yi,j/NC,0,2t-1)函数用于将ux,yi,j/NC调整到0到2t-1范围之内,当ux,yi,j/NC<0时,将ux,yi,j/NC作为0,当ux,yi,j/NC>2t-1时,将ux,yi,j/NC作为2t-1;
S303:反复执行S301至第S302,至t阶灰度图像U中的所有元素ui,j都处理完毕,将
Figure BDA0002950728850000041
作为处理好的2值图像;
所述S4中,转换密钥包括第一转换密钥k0和第二转换密钥k1,所述将10进制序列A=(ai)l/2插值备份为分存值序列
Figure BDA0002950728850000042
ρ∈{r,g,b},即分存值序列βrgb的具体方法为:
S401:根据第一转换密钥k0生成随机数序列C=(ci)l/2
S402:对10进制序列A中的每个元素ai,根据式(5)生成两个系数r0,r1
Figure BDA0002950728850000043
/>
其中,r1为r0的认证变量;
S403:将第二转换密钥k1作为随机数种子,将连续生成的三个两两不等的随机数作为参与值o0,o1,o2∈{1,2,3},,将参与值o0,o1,o2分别作为o,和r0,r1一起代入式(6),将分别得到的
Figure BDA0002950728850000044
对应的整数记为/>
Figure BDA0002950728850000045
Figure BDA0002950728850000046
其中,
Figure BDA0002950728850000047
是GF(22)有限域上的本原多项式整数,/>
Figure BDA0002950728850000048
是参与者值,r0,r1∈{0,1,2,3}是多项式系数,表示为秘密信息和认证信息,/>
Figure BDA0002950728850000049
为GF(22)有限域上o,r0,r1的多项式整数;
S404:反复执行S402和S403,至10进制序列A中的所有元素处理完毕,得到分存值序列
Figure BDA00029507288500000410
ρ∈{r,g,b},即分存值序列βrgb
所述S5中嵌入密钥包括第一嵌入密钥k2和第二嵌入密钥k3;所述随机生成长度为L的随机坐标序列
Figure BDA00029507288500000411
ρ∈{r,g,b},即随机坐标序列Zr,Zg,Zb的具体方法为:
S501:初始化空白图像
Figure BDA00029507288500000412
根据第一嵌入密钥k2生成随机数/>
Figure BDA00029507288500000413
初始化最大迭代次数δ,δ>0,初始化随机坐标序列Zρ=φ,当前迭代次数变量ITρ=0,其中,ρ∈{r,g,b};
S502:以
Figure BDA00029507288500000414
为初始随机数种子,连续生成随机坐标(xi,yi)∈m2×n2,将空白图像Mρ上以(xi,yi)为左上角坐标起点,且大小为h×h的小块记为/>
Figure BDA00029507288500000418
其中,ρ∈{r,g,b};
S503:当
Figure BDA00029507288500000415
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1全为1时,将/>
Figure BDA00029507288500000416
上的所有元素ti,j置为0,将(xi,yi)加入到随机坐标序列Zρ中,更新ITρ=0;否则,将(xi,yi)抛弃,更新ITρ=ITρ+1;
S504:反复执行S502到S503直至ITρ=δ,若L<l/2,失败退出;否则,得到随机坐标序列
Figure BDA00029507288500000417
ρ∈{r,g,b},其中L是Zρ中随机坐标的数量;
所述S5中生成嵌密坐标位置序列Z′ρ=((x′iρ,y′iρ))l/2,l/2≤L,即嵌密坐标位置序列Z′r,Z′g,Z′b的具体方法为:
根据第二嵌入密钥k3生成随机数
Figure BDA0002950728850000051
ρ∈{r,g,b},通过/>
Figure BDA0002950728850000052
分别从随机坐标序列Zρ中选择l/2个坐标位置作为嵌密坐标位置,将其标记为嵌密坐标位置序列Z′ρ=((x′i ρ,y′i ρ))l/2,l/2≤L,可得到嵌密坐标位置序列Z′r,Z′g,Z′b
所述S2的具体方法为:
S201:获取预设字号的字符0和字符1;
S202:记能同时容纳单个字符0和字符1的最小外包矩形的高度为m1,宽度为n1,按式(1)确定能同时容纳单个字符0和字符1的正方形图像的边长l1
l1=m1+n1/2 (1)
S203:将字符0依次放置在l1×l1正方形图像内部的最上侧、最下侧、最左侧和最右侧的居中位置,得到4幅分辨率为l1×l1的字符图像
Figure BDA0002950728850000053
将字符1依次放置在l1×l1正方形图像内部的最上侧、最下侧、最左侧和最右侧的居中位置,得到4幅分辨率为l1×l1的字符图像/>
Figure BDA0002950728850000054
所述S5中的矩阵膨胀参数h=l1+d,d为块扩展参数,d≥n1/2;
所述S6的具体方法为:
S601:将
Figure BDA0002950728850000055
和/>
Figure BDA0002950728850000056
分别作为式(7)中的二值半色调图像/>
Figure BDA0002950728850000057
ρ′i,j∈{0,1},按式(7)转换为嵌密掩体图像
Figure BDA0002950728850000058
Figure BDA0002950728850000059
其中,函数Emb()用于将二值半色调图像
Figure BDA00029507288500000510
ρ′i,j∈{0,1}转换为嵌密掩体图像Mρ,ρ∈{r,g,b},其中Emb()的具体嵌入过程是:
S6011:对于分存值序列
Figure BDA00029507288500000511
中的每个元素/>
Figure BDA00029507288500000512
从嵌密坐标位置序列Z′ρ中获取第i个坐标/>
Figure BDA00029507288500000513
按式(8)从/>
Figure BDA00029507288500000514
ρ∈{r,g,b}中获取像素值ρ′x′,y′,其中,U′r=R′,U′g=G′,U′b=B′:
Figure BDA00029507288500000515
S6012:按式(9)从8幅字符图像
Figure BDA00029507288500000516
中选取一幅字符图像作为目标字符图像D,将目标字符图像D放置在Mρ中以/>
Figure BDA00029507288500000517
为左上角起点,且大小为h×h的小块上:
Figure BDA00029507288500000518
S6013:反复执行S6011至S6012,至分存值序列
Figure BDA00029507288500000519
中的所有元素/>
Figure BDA00029507288500000520
处理完毕;
S6014:当
Figure BDA00029507288500000521
时,按式(8)从U′ρ中获取像素值ρ′x′,y′,随机产生随机数rq∈{0,1,2,3},按式(10)从字符图像/>
Figure BDA00029507288500000522
中选取一幅字符图像作为目标字符图像D,将目标字符图像D放置在/>
Figure BDA00029507288500000523
ρ∈{r,g,b}中以(xi,yi)为左上角起点大小为h×h的小块上:
Figure BDA00029507288500000524
S6015:反复执行S6014,直至所有(xi,yi)∈Zρ
Figure BDA00029507288500000525
中的坐标处理完毕,从而可得到最终的嵌密掩体图像/>
Figure BDA0002950728850000061
ρ∈{r,g,b},即嵌密掩体图像
Figure BDA0002950728850000062
Figure BDA0002950728850000063
S6016:嵌密掩体图像
Figure BDA0002950728850000064
进行三通道合并,作为彩色嵌密字符画图像Mrgb,即将嵌密掩体图像
Figure BDA0002950728850000065
分别作为Mrgb的红色通道、绿色通道和蓝色通道。/>
本发明第二方面,一种基于彩色字符画的信息恢复方法,包括以下步骤:
T1:获取彩色嵌密字符画图像Mrgb,根据预设字号的字符0和字符1,生成8幅大小均为l1×l1的字符图像;
T2:将彩色嵌密字符画图像Mrgb进行三通道分离,得到嵌密掩体图像
Figure BDA0002950728850000066
ρ∈{r,g,b},即嵌密掩体图像/>
Figure BDA0002950728850000067
T3:根据预设的嵌入密钥随机生成长度为L的随机坐标序列
Figure BDA0002950728850000068
ρ∈{r,g,b}以及嵌密坐标位置序列Z′ρ=((x′i ρ,y′i ρ))l/2,l/2≤L,ρ∈{r,g,b},即随机坐标序列Zr,Zg,Zb和嵌密坐标位置序列Z′r,Z′g,Z′b,其中,m2,n2均为大于0的整数,m2=m0·h,n2=n0·h,h为矩阵膨胀参数,h>0,l为作为秘密信息的2值比特序列的长度;L为大于0的整数;
T4:根据嵌密坐标位置序列Z′ρ从嵌密掩体图像Mρ中提取分存值序列
Figure BDA0002950728850000069
ρ∈{r,g,b},即分存值序列βrgb
T5:根据预设的转换密钥,由
Figure BDA00029507288500000610
ρ∈{r,g,b}提取出10进制序列A=(ai)l/2和认证值序列W=(wi)l/2,然后将10进制序列A=(ai)l/2每个元素为一组进行2进制转化,得到作为秘密信息的2值比特序列S=(si)l,si∈{0,1}。
本发明基于彩色字符画的信息恢复方法进一步的改进在于:
所述T3中,嵌入密钥包括第一嵌入密钥k2和第二嵌入密钥k3;所述随机生成长度为L的随机坐标序列
Figure BDA00029507288500000611
ρ∈{r,g,b}的具体方法为:
T301:初始化空白图像
Figure BDA00029507288500000612
根据第一嵌入密钥k2生成随机数/>
Figure BDA00029507288500000613
初始化最大迭代次数δ,δ>0,初始化Zρ=φ,当前迭代次数变量ITρ=0,其中,ρ∈{r,g,b};
T302:以
Figure BDA00029507288500000614
为随机数种子,连续生成随机坐标(xi,yi)∈m2×n2,将空白图像M上以(xi,yi)为左上角坐标起点,且大小为h×h的小块记为/>
Figure BDA00029507288500000615
其中,ρ∈{r,g,b};
T303:当
Figure BDA00029507288500000616
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1全为1时,将/>
Figure BDA00029507288500000617
上的所有元素ti,j置为0,将(xi,yi)加入到随机坐标序列Zρ中,更新ITρ=0;否则,将(xi,yi)抛弃,更新ITρ=ITρ+1;
T304:反复执行T302至T303直至ITρ=δ,若L<l/2,失败退出;否则,得到随机坐标序列
Figure BDA00029507288500000618
ρ∈{r,g,b},其中L是Zρ中随机坐标的数量;
所述T3中生成嵌密坐标位置序列Z′ρ=((x′i ρ,y′i ρ))l/2,l/2≤L的具体方法为:
根据第二嵌入密钥k3生成随机数
Figure BDA00029507288500000619
ρ∈{r,g,b},通过/>
Figure BDA00029507288500000620
分别从随机坐标序列Zρ中选择l/2个坐标位置作为嵌密坐标位置,将其标记为嵌密坐标位置序列Z′ρ=((x′i ρ,y′iρ))l/2,l/2≤L。
所述T1中根据预设字号的字符0和字符1,生成8幅大小均为l1×l1的字符图像的具体方法为:
T101:获取预设字号的字符0和字符1;
T102:记能同时容纳单个字符0和字符1的最小外包矩形的高度为m1,宽度为n1,按式(1)确定能同时容纳单个字符0和字符1的正方形图像的边长l1
l1=m1+n1/2 (1)
T103:将字符0依次放置在l1×l1正方形图像内部的最上侧、最下侧、最左侧和最右侧的居中位置,得到4幅分辨率为l1×l1的字符图像
Figure BDA0002950728850000071
将字符1依次放置在l1×l1正方形图像内部的最上侧、最下侧、最左侧和最右侧的居中位置,得到4幅分辨率为l1×l1的字符图像/>
Figure BDA0002950728850000072
所述T4的具体方法为:
T401:对嵌密坐标位置序列Z′ρ中的每个坐标
Figure BDA0002950728850000073
在嵌密掩体图像Mρ中以
Figure BDA0002950728850000074
为左上角起点,截取大小为l1×l1的小块,得到目标字符图像D′;
T402:根据式(11)从8幅字符图像
Figure BDA0002950728850000075
中选取字符图像
Figure BDA0002950728850000076
从目标字符图像D′中提取出/>
Figure BDA0002950728850000077
所代表的分存值/>
Figure BDA0002950728850000078
Figure BDA0002950728850000079
T403:重复执行T401和T402,至嵌密坐标位置序列Z′ρ中的所有坐标
Figure BDA00029507288500000710
均处理完毕,得到分存值序列/>
Figure BDA00029507288500000711
ρ∈{r,g,b},即分存值序列βrgb
所述T5中转换密钥包括第一转换密钥k0和第二转换密钥k1;所述T5的具体方法为:
T501:根据第一转换密钥k0生成随机数序列C=(ci)l/2
T502:将第二转换密钥k1作为随机数种子,将连续生成的两两不等的三个随机数作为参与值o0,o1,o2∈{1,2,3},从分存值序列βρ中读取出分存值
Figure BDA00029507288500000712
和/>
Figure BDA00029507288500000713
将/>
Figure BDA00029507288500000714
分别作为/>
Figure BDA00029507288500000715
根据式(12)得到r0和r1,记/>
Figure BDA00029507288500000716
恢复出的r0,r1为/>
Figure BDA00029507288500000717
恢复出的r0,r1为/>
Figure BDA00029507288500000718
恢复出的r0,r1为/>
Figure BDA00029507288500000719
Figure BDA00029507288500000720
其中,m,n∈{1,2,3},m≠n,
Figure BDA00029507288500000721
是GF(22)有限域上o的多项式整数,将连续生成的两两不等的三个参与值o0,o1,o2∈{1,2,3}作为/>
Figure BDA00029507288500000722
是从分存值序列βρ中读取出的第i个位置的分存值整数/>
Figure BDA00029507288500000723
和/>
Figure BDA00029507288500000724
并分别作为/>
Figure BDA00029507288500000725
是GF(22)有限域上r0,r1的多项式整数,r0,r1∈{1,2,3}是多项式系数,r0为秘密信息,r1为r0的认证变量,将r0作为待获取的10进制序列A=(ai)l/2中的元素,/>
Figure BDA00029507288500000726
是GF(22)上的本原多项式整数,/>
Figure BDA00029507288500000727
Figure BDA00029507288500000728
是/>
Figure BDA00029507288500000729
在模/>
Figure BDA00029507288500000730
下的逆元,使得/>
Figure BDA00029507288500000731
T503:将三组
Figure BDA00029507288500000732
和/>
Figure BDA00029507288500000733
分别作为r0,r1和ci一起代入式(13)进行检验,当至少两组检验通过时,从/>
Figure BDA00029507288500000734
和/>
Figure BDA00029507288500000735
中随机选择一组,根据式(14)得到(ai,wi);否则,从/>
Figure BDA00029507288500000736
Figure BDA00029507288500000737
和/>
Figure BDA00029507288500000738
中随机选择一组,根据式(15)得到(ai,wi):
Figure BDA0002950728850000081
ai=r0,wi=1 (14)
ai=r0,wi=0 (15)
其中,wi=1表示可靠,wi=0表式不可靠;
T504:重复执行T502至T503,直至
Figure BDA0002950728850000082
ρ∈{r,g,b}中的所有元素
Figure BDA0002950728850000083
处理完毕,得到10进制序列A=(ai)l/2和认证值序列W=(wi)l/2,将10进制序列A=(ai)l/2中每个元素进转换为2进制比特,得到作为秘密信息的2值比特序列S=(si)l,si∈{0,1}。
本发明第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述基于彩色字符画的信息隐藏方法的步骤,和/或实现上述基于彩色字符画的信息恢复方法的步骤。
本发明第四方面,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述基于彩色字符画的信息隐藏方法的步骤,和/或实现上述基于彩色字符画的信息恢复方法的步骤。
与现有技术相比,本发明具有以下有益效果:
本发明基于彩色字符画的信息隐藏方法,第一,通过引入了隐字符位置编码策略,由密钥随机生成字符图像放置位置,字符放置位置相互间不对齐且互不重叠,除此以外每个放置的字符位置都预留了扩展空间,使得每种字符都具备完备编码的全部可能性,从而不泄露编码空间并提高了抗编码分析能力。并且本发明是通过放置在多个不同颜色通道的放置字符提取的编码信息的随机组合来共同表达秘密信息,通过多个放置位置的字符编码组合,进一步隐藏了字符的编码空间。有效解决了现有信息隐藏方法都不可避免地涉及隐藏信息的修改式嵌入,容易留下修改痕迹,从而隐藏的信息容易遭受破坏的问题。第二,直接产生与掩体图像最为接近的2值掩体图像,始终选取和掩体对应位置像素最为接近的字符图像,而不涉及对因为嵌密对实际放置字符的任何修改,从而尽可能地保留掩体特征,而不会留下任何修改导致的痕迹,且所生成的彩色字符画具有较好的视觉质量。有效解决了现有信息隐藏方法通过修改载体的特征来表达秘密信息,在表达秘密信息的同时,会导致载体的某些特征发生改变,从而影响载体图像的视觉质量的问题。第三,始终和密钥紧密绑定,保证对密钥的完全依赖性和对密钥的敏感性,使得只有正确的密钥才能获取不同通道放置字符的组合关系,然后才能从中获取对应的编码信息,进一步恢复秘密信息,提高安全性。
进一步的,将秘密信息和对应的认证信息用于构造GF(22)有限域Lagrange插值多项式,进行(3,2)门限分存,进而将得到的分存信息分别借助彩色字符图像RGB通道放置的字符进行表达。
本发明基于彩色字符画的信息恢复方法,可以通过RGB通道放置字符的两两组合来提取秘密信息,并可对秘密信息可靠性进行标记,从而提供一定的攻击容忍能力,即使传输的彩色字符图像遭受一定程度的攻击,导致部分提取字符对应的编码信息发生改变,嵌入的秘密信息依然可准确提取,因此提高了隐藏秘密信息的抗攻击能力。
附图说明
图1为本发明实施例:基于彩色字符画的信息隐藏方法流程图;
图2为本发明实施例:基于彩色字符画的信息恢复方法流程图;
图3为本发明实施例:掩体图像,为106×106分辨率的彩色图像lena按灰度图像进行显示;
图4是秘密信息,包含20个中文字符的古诗《江雪》,将其扫描为二值比特序列;
图5为本发明实施例l1×l1字符图像示意图:将字符0放置在l1×l1正方形图像内部最上侧居中位置所生成的字符图像;
图6为本发明实施例l1×l1字符图像示意图:将字符0放置在l1×l1正方形图像内部最下侧居中位置所生成的字符图像;
图7为本发明实施例l1×l1字符图像示意图:将字符0放置在l1×l1正方形图像内部最左侧居中位置所生成的字符图像;
图8为本发明实施例l1×l1字符图像示意图:将字符0放置在l1×l1正方形图像内部最右侧居中位置所生成的字符图像;
图9为本发明实施例l1×l1字符图像示意图:将字符1放置在l1×l1正方形图像内部最上侧居中位置所生成的字符图像;
图10为本发明实施例l1×l1字符图像示意图:将字符1放置在l1×l1正方形图像内部最下侧居中位置所生成的字符图像;
图11为本发明实施例l1×l1字符图像示意图:将字符1放置在l1×l1正方形图像内部最左侧居中位置所生成的字符图像;
图12为本发明实施例l1×l1字符图像示意图:将字符1放置在l1×l1正方形图像内部最右侧居中位置所生成的字符图像;
图13为本发明实施例:以古诗为秘密信息的嵌密载体1的R通道;
图14为本发明实施例:图13局部放大图;
图15为本发明实施例:以古诗为秘密信息的嵌密载体1的G通道;
图16为本发明实施例:图15局部放大图;
图17为本发明实施例:以古诗为秘密信息的嵌密载体1的B通道;
图18为本发明实施例:图17局部放大图;
图19为本发明实施例:以古诗为秘密信息的嵌密载体1,按灰度图像进行显示;
图20为本发明实施例:图19局部放大图;
图21为本发明实施例:由图19按正确密钥恢复出的秘密信息,相对于图4的误码率EBR为0%;
图22为本发明实施例:对图19进行椒盐噪声攻击,噪声强度为20%,按灰度图像进行显示;
图23为本发明实施例:对图19进行椒盐噪声攻击,噪声强度为10%,按灰度图像进行显示;
图24为本发明实施例:由图22恢复出的秘密信息,相对于图4的误码率EBR为0%;
图25为本发明实施例:由图23恢复出的秘密信息,相对于图4的误码率EBR为0%;
图26为本发明实施例:对图19进行剪切攻击,剪切占比为25%,按灰度图像进行显示;
图27为本发明实施例:对图19进行剪切攻击,剪切占比为10%,按灰度图像进行显示;
图28为本发明实施例:由图26恢复出的秘密信息,相对于图4的误码率EBR为16.875%;
图29为本发明实施例:由图27恢复出的秘密信息,相对于图4的误码率EBR为5.93%;
图30为本发明实施例:对图19对应的R通道进行随机字符图像替换攻击,替换占比为20%,按灰度图像进行显示;
图31为本发明实施例:对图19对应的G通道进行随机字符图像替换攻击,替换占比为20%,按灰度图像进行显示;
图32为本发明实施例:对图19对应的B通道进行随机字符图像替换攻击,替换占比为20%,按灰度图像进行显示;
图33为本发明实施例:由图30恢复出的秘密信息,相对于图4的误码率EBR为4.68%;
图34为本发明实施例:由图31恢复出的秘密信息,相对于图4的误码率EBR为3.43%;
图35为本发明实施例:由图32恢复出的秘密信息,相对于图4的误码率EBR为6.87%;
图36为本发明实施例:对图19对应的R通道、G通道和B通道分别进行随机字符图像替换攻击的示意图,替换占比为20%,按灰度图像进行显示;
图37为本发明实施例:由图36恢复出的秘密信息,相对于图4的误码率EBR为12.50%。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面结合附图对本发明做进一步详细描述:
参见图1,本发明一实施例中,提供一种基于彩色字符画的信息隐藏方法,具体包括以下步骤。
S1:输入大小为m0×n0的彩色图像。
例如:若取m0=n0=2,则输入大小为2×2彩色图像。
S2:使用指定字号的字符“0”和“1”生成8幅大小为l1×l1的字符图像
Figure BDA0002950728850000101
其具体方法是:
S201:输入指定字号的字符0和字符1。
S202:记能同时容纳单个字符0和字符1的最小外包矩形的高度为m1,宽度为n1,按式(1)确定容纳单个字符0和1的正方形图像的边长。
l1=m1+n1/2 (1)
S203:分别将指定字号的0字符和1字符依次分别放置在l1×l1正方形内部的最上侧、最下侧、最左侧和最右侧的居中位置,可得到8幅分辨率为l1×l1的字符图像
Figure BDA0002950728850000102
其中,/>
Figure BDA0002950728850000103
对应为将0字符依次放置在正方形内部最上侧、最下侧、最左侧和最右侧居中位置的0字符图像,/>
Figure BDA0002950728850000104
对应的是将1字符放置在正方形内部最上侧、最下侧、最左侧和最右侧居中位置的1字符图像。
例如:输入小五号字对应的字符0和1,假定容纳单个字符0和1的最小外包矩形的高度m1=6,宽度n1=4,则按式(1)可确定l1=m1+n1/2=6+2=8,因此取边长l1=8,将指定字号的字符0和1依次分别放置在8×8正方形图像的最上侧、最下侧、最左侧和最右侧的居中位置,将对应的正方形图像输出,可产生8幅分辨率为8×8的字符图像
Figure BDA0002950728850000105
其中,/>
Figure BDA0002950728850000106
对应为将0字符放置在最小外包正方形的最上侧、最下侧、最左侧和最右侧的居中位置的正方形图像,/>
Figure BDA0002950728850000107
对应的则是将1字符放置在最小外包正方形的最上侧、最下侧、最左侧和最右侧的居中位置的正方形图像。
S3:获取彩色图像对应的红色、绿色和蓝色通道图像:
Figure BDA0002950728850000108
ri,j∈{0,1,…,2t-1}、/>
Figure BDA0002950728850000109
gi,j∈{0,1,…,2t-1}和/>
Figure BDA00029507288500001010
bi,j∈{0,1,…,2t-1},其中t为大于0的整数。
例如:彩色图像对应的红色、绿色和蓝色通道图像
Figure BDA0002950728850000111
和/>
Figure BDA0002950728850000112
其中,取t=8,所以2t-1=255,因此r0,0=12,r0,1=136,r1,0=255,r1,1=20∈{0,1,…,255}、g0,0=28,g0,1=90,g1,0=85,g1,1=88∈{0,1,…,255}和b0,0=56,b0,1=200,b1,0=16,b1,1=5∈{0,1,…,255}。
Figure BDA0002950728850000113
和/>
Figure BDA0002950728850000114
分别转换为二值图像/>
Figure BDA0002950728850000115
r′i,j∈{0,1}、/>
Figure BDA0002950728850000116
g′i,j∈{0,1}和/>
Figure BDA0002950728850000117
b′i,j∈{0,1},其具体方法是:
将红色通道图像R,绿色通道图像G和蓝色通道图像B分别作为t阶灰度图像
Figure BDA0002950728850000118
ui,j∈{0,1,…,2t-1}进行如下转换,转换为二值图像/>
Figure BDA0002950728850000119
u′i,j∈{0,1},得到红色通道二值图像/>
Figure BDA00029507288500001110
r′i,j∈{0,1},绿色通道二值图像/>
Figure BDA00029507288500001111
g′i,j∈{0,1}和蓝色通道二值图像/>
Figure BDA00029507288500001112
b′i,j∈{0,1}。其中,将U转换为二值图像
Figure BDA00029507288500001113
u′i,j∈{0,1}的具体过程为:
S301:对于U中的每个元素ui,j,按式(2)将ui,j映射为u′i,j
Figure BDA00029507288500001114
例如:若t=8时,按式(3)知:[0,2t-1 -1]=[0,127],[2t-1,2t-1]=[128,255],由
Figure BDA00029507288500001115
和将R作为U知:/>
Figure BDA00029507288500001116
因此u0,0=12∈[0,2t-1 -1],按式(2)可得到u′0,0=0。
S302:按式(3)计算误差Δi,j,将Δi,j按式(4)分布到ui,j周围未按式(2)处理的8领域像素上:
Δi,j=ui,j-u′i,j·(2t-1) (3)
ux,y=Range(ux,yi,j/NC,0,2t-1) (4)
其中,(x,y)∈{(i-1,j-1),(i-1,j),(i-1,j+1),(i,j-1),(i,j+1),(i+1,j-1),(i+1,j),(i+1,j+1)},NC是ui,j周围8领域未按式(3)处理的有效像素的个数,Range(ux,yi,j/NC,0,2t-1)函数用于将ux,yi,j/NC调整到0到2t-1范围之内,即当ux,yi,j/NC<0时,将ux,yi,j/NC作为0,当ux,yi,j/NC>2t-1时,将ux,yi,j/NC作为2t-1。
例如:取t=8,u0,0=12,u′0,0=0,则按式(4)可得到:Δ0,0=12-0·(256-1)=12。当u0,0=12时,以像素u0,0为中心像素的8邻域未处理像素在
Figure BDA00029507288500001117
上仅有u0,1=136,u1,0=255,u1,1=20,因此NC=3,则按式(5)有:u0,1=Range(136+12/3,0,255)=140,u1,0=Range(255+12/3,0,255)=255,u1,1=Range(20+12/3,0,255)=24。
S303:反复执行S301至S302,直至U中所有元素ui,j都处理完毕,则将U′输出作为处理好的2值图像。
例如:以
Figure BDA00029507288500001118
为例,当u0,0处理完后可得到u′0,0=0,还需转S301依次处理u0,1,u1,0,u1,1,若u0,0,u0,1,u1,0,u1,1都处理完毕,则可得到u′0,0=0,u′0,1=1,u′1,0=1,u′1,1=0∈{0,1},从而可得到/>
Figure BDA00029507288500001119
同理可得/>
Figure BDA00029507288500001120
和/>
Figure BDA00029507288500001121
S4:记秘密信息为长度l的2值比特序列S=(si)l,si∈{0,1},将S=(si)l中每2比特为一组转化为10进制序列A=(ai)l/2,然后将A=(ai)l/2插值备份为分存值序列
Figure BDA0002950728850000121
ρ∈{r,g,b},即分存值序列βrgb。其具体方法是:
例如:若输入长度为l=2的2值比特序列S=(1,0),将S=(1,0)中每2比特为一组转化为10进制的序列A=(2)1,然后将A=(2)1插值备份为
Figure BDA0002950728850000122
ρ∈{r,g,b},可由下列步骤确定βr=(3)1g=(1)1r=(0)1
S401:由第一转换密钥k0生成随机数序列C=(ci)l/2
例如:选取用户密钥的第一转换密钥k0=4,用于S401中生成随机数序列C=(9)1
S402:对A中的每个元素ai,使用式(5)生成两个系数r0,r1,其中r1为r0的认证变量:
Figure BDA0002950728850000123
例如:对A=(2)1中的元素a0=2,使用式(5)可得出r0=a0=2,
Figure BDA0002950728850000124
S403:由第二转换密钥k1作为随机数种子,将连续生成的三个两两不等的随机数作为参与值o0,o1,o2∈{1,2,3},然后将o0,o1,o2分别作为o,和r0,r1一起代入式(6),将得到的
Figure BDA0002950728850000125
对应的整数分别记为/>
Figure BDA0002950728850000126
Figure BDA0002950728850000127
其中,
Figure BDA0002950728850000128
是GF(22)有限域上的本原多项式整数,例如:/>
Figure BDA0002950728850000129
Figure BDA00029507288500001210
是参与者值,r0,r1∈{0,1,2,3}是多项式系数,表示为秘密信息和认证信息,/>
Figure BDA00029507288500001211
为GF(22)有限域上o,r0,r1的多项式整数,对于/>
Figure BDA00029507288500001212
则分别对应为GF(22)域的多项式整数1,x,x+1;
例如:假设S403由第二转换密钥k1=3作为随机数种子,连续生成的三个两两不等的随机数作为参与值o0=2,o1=1,o2=3,然后将o0,o1,o2分别作为o,和r0,r1一起代入式(6),
Figure BDA00029507288500001213
其中/>
Figure BDA00029507288500001214
都是多项式整数,即整数化存储的2值多项式,因此/>
Figure BDA00029507288500001215
同理按式(6)可得
Figure BDA00029507288500001216
将得到的/>
Figure BDA00029507288500001217
对应的整数分别记为/>
Figure BDA00029507288500001218
S404:反复执行S402和S403,直至A=(ai)l/2中的所有元素处理完毕,可得到序列
Figure BDA00029507288500001219
ρ∈{r,g,b}。
例如:反复执行S402和S403,直至A=(2)1中的所有元素处理完毕,可得到序列βr=(3)1g=(1)1r=(0)1
S5:产生长度为L的随机坐标序列
Figure BDA00029507288500001220
ρ∈{r,g,b},并生成嵌密坐标位置序列Z′ρ=((x′i ρ,y′i ρ))l/2,l/2≤L,ρ∈{r,g,b},即随机坐标序列Zr,Zg,Zb和嵌密坐标位置序列Z′r,Z′g,Z′b,其中,m2,n2均为大于0的整数,m2=m0·h,n2=n0·h,h为矩阵膨胀参数,h>0,这里可以取h=l1+d,d为块扩展参数,且d≥n1/2,L是大于0的整数。
产生长度为L的随机坐标序列
Figure BDA00029507288500001221
ρ∈{r,g,b}的具体方法是:
例如:若取l1=8,d=2,m0=n0=2,h=l1+d=10,则按m2=m0·h,n2=n0·h有:m2=m0·h=20,n2=n0·h=20,产生长度为L=2的随机坐标序列Zr=((0,0),(11,10))2,Zg=((10,5),(1,10))2和Zb=((3,4),(10,18))2
S501:初始化空白图像
Figure BDA0002950728850000131
由第一嵌入密钥k2生成随机数/>
Figure BDA0002950728850000132
ρ∈{r,g,b},初始化最大迭代次数δ,δ>0,初始化Zρ=φ,当前迭代次数变量ITρ=0,其中,ρ∈{r,g,b}。
例如:取m2=m0·h=20,n2=n0·h=20,则初始化空白图像
Figure BDA0002950728850000133
由第一嵌入密钥k2=43产生随机数
Figure BDA0002950728850000134
ρ∈{r,g,b},即/>
Figure BDA0002950728850000135
初始化最大迭代次数δ=100,初始化Zρ=φ,ρ∈{r,g,b},即Zr=φ,Zg=φ,Zb=φ,当前迭代次数变量ITr=0,ITg=0,ITb=0,其中φ为空集。
S502:以
Figure BDA0002950728850000136
为初始随机数种子,连续生成随机坐标(xi,yi)∈m2×n2,将Mρ上以(xi,yi)为左上角坐标起点的大小为h×h的小块记为/>
Figure BDA0002950728850000137
其中ρ∈{r,g,b}。
例如:这里假设由
Figure BDA0002950728850000138
生成随机坐标(3,4)∈m2×n2,令h=10,将Mr上以(3,4)为左上角坐标起点的大小为10×10的小块记为/>
Figure BDA0002950728850000139
对于/>
Figure BDA00029507288500001310
和/>
Figure BDA00029507288500001311
对应的,将产生的10×10的小块记为/>
Figure BDA00029507288500001312
和/>
Figure BDA00029507288500001313
S503:若
Figure BDA00029507288500001314
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1全为1,则将/>
Figure BDA00029507288500001315
上的所有元素ti,j置为0,然后将(xi,yi)加入到Zρ中,更新ITρ=0;若/>
Figure BDA00029507288500001316
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1不全为1,则将(xi,yi)抛弃,更新ITρ=ITρ+1。
例如:若
Figure BDA00029507288500001317
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1全为1,则将/>
Figure BDA00029507288500001318
上的所有元素ti,j置为0,然后将(3,4)加入到Zr中,更新ITr=0;若/>
Figure BDA00029507288500001319
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1不全为1,则将(3,4)抛弃,更新ITr=ITr+1,若ITr=0,则通过ITr=ITr+1可将ITr置为1。
S504:反复执行S502到S503直至ITρ=δ,若L<l/2,失败退出;否则,得到随机坐标序列
Figure BDA00029507288500001320
ρ∈{r,g,b},其中L是Zρ中随机坐标的数量。
例如:反复执行S502到S503,直至ITr=δ=100,此时若Zr=((0,0),(11,10))2,则L=2>l/2,其中l=2,对于
Figure BDA00029507288500001321
按同样的方法可生成Zg=((10,5),(1,10))2,满足Zg中随机坐标的数量为L=2,满足L=2>l/2;Zb=((3,4),(10,18))2满足Zb中随机坐标的数量为L=2,满足L=2>l/2。
其中,生成嵌密坐标位置序列Z′ρ=((x′i ρ,y′i ρ))l/2,l/2≤L的具体方法是:
由第二嵌入密钥k3生成随机数
Figure BDA00029507288500001322
ρ∈{r,g,b},由/>
Figure BDA00029507288500001323
分别从随机坐标序列Zρ中选择l/2个坐标位置作为嵌密坐标位置,将其标记为序列Z′ρ=((x′iρ,y′i ρ))l/2,l/2≤L,可得到嵌密坐标位置序列Z′r,Z′g,Z′b
例如:取l=2,假定由第二嵌入密钥k3=10生成随机数
Figure BDA00029507288500001324
ρ∈{r,g,b},即/>
Figure BDA00029507288500001325
由/>
Figure BDA00029507288500001326
从随机坐标序列Zr=((0,0),(11,10))2中选择1个坐标位置作为嵌密坐标位置,将其标记为序列Z′r,这里假设选取的是(0,0),即Z′r=((0,0))1;由/>
Figure BDA00029507288500001330
从随机坐标序列Zg=((10,5),(1,10))2中选择1个坐标位置作为嵌密坐标位置,这里假设选取的是(10,5),将其标记为序列Z′g,即Z′g=((10,5))1,由/>
Figure BDA00029507288500001327
从随机坐标序列Zb=((3,4),(10,18))4中选择1个坐标位置作为嵌密坐标位置,这里假设选取的是(3,4),将其标记为序列Z′b,即Z′b=((3,4))1,即Z′r=((0,0))1,Z′g=((10,5))1,Z′b=((3,4))1,满足l/2≤L。
S6:结合
Figure BDA00029507288500001328
和嵌密坐标位置序列Z′ρ=((x′i ρ,y′iρ))l/2,l/2≤L以及Zρ从字符图像/>
Figure BDA00029507288500001329
选取合适的字符图像,通过隐字符位置编码分存值序列/>
Figure BDA0002950728850000141
ρ∈{r,g,b}并进行掩盖,其中,隐字符位置就是生成的小块放置位置在三通道上是随机不对齐的,并且通过三通道从而将字符位置代表的编码信息隐藏起来了,掩盖是指将代表秘密信息的分存值序列βρ通过字符图像来表达,产生掩盖秘密信息的含密字符画,从而产生红色、绿色和蓝色通道图像
Figure BDA0002950728850000142
ρ∈{r,g,b},将/>
Figure BDA0002950728850000143
ρ∈{r,g,b}作为大小为m2×n2彩色嵌密字符画图像Mrgb。其具体方法是:
例如:若取l=2,m0=n0=2,h=l1+d=10,m2=m0·h=20,n2=n0·h=20结合
Figure BDA0002950728850000144
Figure BDA0002950728850000145
和/>
Figure BDA0002950728850000146
和嵌密坐标位置序列Z′r=((0,0))1,Z′g=((10,5))1,Z′b=((3,4))1以及Zr=((0,0),(11,10))2,Zg=((10,5),(1,10))2和Zb=((3,4),(10,18))2从字符图像/>
Figure BDA0002950728850000147
选取合适的字符图像,通过隐字符位置编码βr=(3)1g=(1)1r=(0)1并进行掩盖,从而产生红色、绿色和蓝色通道图像
Figure BDA0002950728850000148
Figure BDA0002950728850000149
三通道结合作为大小为20×20彩色嵌密字符画图像Mrgb
S601:将
Figure BDA00029507288500001410
和/>
Figure BDA00029507288500001411
分别作为式(7)中的二值半色调图像/>
Figure BDA00029507288500001412
ρ′i,j∈{0,1},按式(7)转换为嵌密掩体图像
Figure BDA00029507288500001413
Figure BDA00029507288500001414
式(7)中,函数Emb()用于将二值半色调图像
Figure BDA00029507288500001415
ρ′i,j∈{0,1}转换为嵌密掩体图像Mρ,ρ∈{r,g,b},即分别对应为/>
Figure BDA00029507288500001416
其中,U′ρ∈{R′,G′,B′},βρ是分存值序列,Zρ是随机坐标序列,Z′ρ是嵌密坐标序列,
Figure BDA00029507288500001417
是8幅字符图像,式(7)中Emb()的具体嵌入过程是:
S6011:对于分存值序列
Figure BDA00029507288500001418
中的每个元素/>
Figure BDA00029507288500001419
从Z′ρ中获取第i个坐标
Figure BDA00029507288500001420
按式(8)从/>
Figure BDA00029507288500001421
ρ∈{r,g,b}中获取像素值ρ′x′,y′,其中U′r=R′,U′g=G′,U′b=B′:
Figure BDA00029507288500001422
/>
例如:令l=2,h=10,对于分存值序列βr=(3)1中的元素
Figure BDA00029507288500001423
若从Z′r=((0,0))1中获取第1个坐标(0,0),则按式(8)得/>
Figure BDA00029507288500001424
Figure BDA00029507288500001425
中获取像素值r′x′,y′=0;对于分存值序列βg=(1)1中的元素/>
Figure BDA00029507288500001426
若从Z′g=((10,5))中获取第1个坐标(10,5),则按式(8)得
Figure BDA00029507288500001427
从/>
Figure BDA00029507288500001428
中获取像素值g′x′,y′=0;对于分存值序列βb=(0)1中的元素/>
Figure BDA00029507288500001429
若从Z′b=((3,4))中获取第1个坐标(3,4),则按式(8)得
Figure BDA00029507288500001430
从/>
Figure BDA00029507288500001431
中获取像素值b′x′,y′=0。
S6012:按式(9)从字符图像
Figure BDA00029507288500001432
中选取一幅作为字符图像D,然后将D放置在Mρ中以/>
Figure BDA00029507288500001433
为左上角起点大小为h×h的小块上:
Figure BDA00029507288500001434
例如:取
Figure BDA0002950728850000151
(x′,y′)=(0,0),h=10,/>
Figure BDA0002950728850000152
r′x′,y′=0,则按式(9)有
Figure BDA0002950728850000153
因此选取/>
Figure BDA0002950728850000154
作为D将其放置在Mr中以/>
Figure BDA0002950728850000155
为起点,大小为h×h=10×10的图像块上;取/>
Figure BDA0002950728850000156
(x′,y′)=(10,5),h=10,/>
Figure BDA0002950728850000157
g′x′,y′=0,则按式(9)有
Figure BDA0002950728850000158
因此选取/>
Figure BDA0002950728850000159
作为D将其放置在Mg中以/>
Figure BDA00029507288500001510
为起点,大小为h×h=10×10的图像块上;取/>
Figure BDA00029507288500001511
(x′,y′)=(0,0),h=10,/>
Figure BDA00029507288500001512
b′x′,y′=0,则按式(9)有
Figure BDA00029507288500001513
因此选取/>
Figure BDA00029507288500001514
作为D将其放置在Mb中以/>
Figure BDA00029507288500001515
为起点,大小为h×h=10×10的图像块上。
S6013:反复执行S6011到S6012直至
Figure BDA00029507288500001516
中的所有元素/>
Figure BDA00029507288500001517
处理完毕。
例如:反复执行S6011到S6012直至βr=(3)1g=(1)1b=(0)1中的所有元素
Figure BDA00029507288500001518
处理完毕。
S6014:若
Figure BDA00029507288500001519
按式(8)从U′ρ中获取像素值ρ′x′,y′,随机产生随机数rq∈{0,1,2,3},按式(10)从字符图像/>
Figure BDA00029507288500001520
中选取字符图像D,将D放置在Mρ中以(xi,yi)为左上角起点大小为h×h的小块上;
Figure BDA00029507288500001521
例如:取(xi,yi)=(11,10)∈Zr,
Figure BDA00029507288500001522
h=10则按式(8)得
Figure BDA00029507288500001523
Figure BDA00029507288500001524
从/>
Figure BDA00029507288500001525
中获取像素值r′x′,y′=0,随机产生随机数rq=3,则按式(10)有/>
Figure BDA00029507288500001526
因此选取/>
Figure BDA00029507288500001527
作为D将其放置在Mr中以(xi,yi)=(11,10)为起点,大小为h×h=10×10的图像块上,则可得到Mr;取(xi,yi)=(1,10)∈Zg,/>
Figure BDA00029507288500001528
h=10则按式(8)得/>
Figure BDA00029507288500001529
Figure BDA00029507288500001530
中获取像素值g′x′,y′=0,随机产生随机数rq=1,则按式(10)有/>
Figure BDA00029507288500001531
因此选取/>
Figure BDA00029507288500001532
作为D将其放置在Mg中以(xi,yi)=(1,10)为起点,大小为h×h=10×10的图像块上,则可得到Mg;取(xi,yi)=(10,18)∈Zb,/>
Figure BDA00029507288500001533
h=10则按式(8)得
Figure BDA00029507288500001534
Figure BDA00029507288500001535
从/>
Figure BDA00029507288500001536
中获取像素值b′x′,y′=0,随机产生随机数rq=2,则按式(10)有/>
Figure BDA00029507288500001537
因此选取/>
Figure BDA00029507288500001538
作为D将其放置在Mb中以(xi,yi)=(10,18)为起点,大小为h×h=10×10的图像块上,则可得到Mb
S6015:反复执行S6014直至所有(xi,yi)∈Zρ,
Figure BDA00029507288500001539
中的坐标处理完毕从而可得到最终的嵌密掩体图像/>
Figure BDA00029507288500001540
ρ∈{r,g,b},即嵌密掩体图像
Figure BDA00029507288500001541
Figure BDA00029507288500001542
例如:反复执行S6014直至所有Zr=((0,0),(11,10))2,Zg=((10,5),(1,10))2和Zb=((3,4),(10,18))2中的坐标处理完毕则将Mr,Mg和Mb输出作为对应通道掩体图像。
S6016:嵌密掩体图像
Figure BDA00029507288500001543
进行三通道合并,作为彩色嵌密字符画图像Mrgb,即将嵌密掩体图像
Figure BDA00029507288500001544
分别作为Mrgb的红色通道、绿色通道和蓝色通道。
例如:将Mr,Mg和Mb进行三通道合并,输出Mrgb
参见图2,本发明一实施例中,提供一种基于彩色字符画的信息恢复方法,具体包括以下步骤。
T1:输入彩色嵌密字符画图像Mrgb,使用指定字号字符“0”和“1”生成8幅大小为l1×l1的字符图像
Figure BDA0002950728850000161
产生字符图像的具体方法是:
T101:输入指定字号的字符0和1。
T102:记能同时容纳单个字符0和1的最小外包矩形的高度为m1,宽度为n1,按式(1)确定容纳单个字符0和1的正方形图像的边长;
l1=m1+n1/2 (1)
T103:分别将指定字号的0和1字符依次分别放置在l1×l1正方形内部的最上侧、最下侧、最左侧和最右侧的居中位置,可得到8幅分辨率为l1×l1的字符图像
Figure BDA0002950728850000162
其中/>
Figure BDA0002950728850000163
对应为将0字符依次放置在正方形内部最上侧、最下侧、最左侧和最右侧居中位置的0字符图像,/>
Figure BDA0002950728850000164
对应的是将1字符放置在正方形内部最上侧、最下侧、最左侧和最右侧居中位置的1字符图像。
例如:输入小五号字对应的字符0和1,假定容纳单个字符0和1的最小外包矩形的高度m1=6,宽度n1=4,则按式(1)可确定l1=m1+n1/2=6+2=8,因此取边长l1=8,将指定字号的字符0和1依次分别放置在8×8正方形图像的最上侧、最下侧、最左侧和最右侧的居中位置,将对应的正方形图像输出,可产生8幅分辨率为8×8的字符图像
Figure BDA0002950728850000165
其中,/>
Figure BDA0002950728850000166
对应为将0字符放置在最小外包正方形的最上侧、最下侧、最左侧和最右侧的居中位置的正方形图像,/>
Figure BDA0002950728850000167
对应的则是将1字符放置在最小外包正方形的最上侧、最下侧、最左侧和最右侧的居中位置的正方形图像。
T2:将彩色嵌密字符画图像Mrgb进行三通道分离,得到嵌密掩体图像
Figure BDA0002950728850000168
ρ∈{r,g,b},即嵌密掩体图像/>
Figure BDA0002950728850000169
例如:假设Mrgb的大小为20×20,即m2=n2=20,将Mrgb进行三通道分离,得到
Figure BDA00029507288500001610
和/>
Figure BDA00029507288500001611
即Mr,Mg和Mb
T3:产生长度为L的随机坐标序列
Figure BDA00029507288500001612
ρ∈{r,g,b},并生成嵌密坐标位置序列Z′ρ=((x′iρ,y′i ρ))l/2,l/2≤L,ρ∈{r,g,b},即随机坐标序列Zr,Zg,Zb和嵌密坐标位置序列Z′r,Z′g,Z′b,其中l为秘密信息的2值比特序列的长度,L是大于0的整数。
例如:产生长度为L=2的随机坐标序列Zr=((0,0),(11,10))2,Zg=((10,5),(1,10))2和Zb=((3,4),(10,18))2,并生成嵌密坐标位置序列Z′r=((0,0))1,Z′g=((10,5))1,Z′b=((3,4))1,满足L是大于0的整数。
其中,生成长度为L的随机坐标序列
Figure BDA00029507288500001613
ρ∈{r,g,b}的具体方法是:
T301:初始化空白图像
Figure BDA00029507288500001614
由第一嵌入密钥k2生成随机数/>
Figure BDA00029507288500001615
初始化最大迭代次数δ,δ>0,初始化Zρ=φ,当前迭代次数变量ITρ=0,其中,ρ∈{r,g,b}。
例如:取m2=n2=20,初始化空白图像
Figure BDA00029507288500001616
由第一嵌入密钥k2=43产生随机数/>
Figure BDA0002950728850000171
ρ∈{r,g,b},即/>
Figure BDA0002950728850000172
初始化最大迭代次数δ=100,初始化Zρ=φ,ρ∈{r,g,b},即Zr=φ,Zg=φ,Zb=φ,当前迭代次数变量ITr=0,ITg=0,ITb=0;
T302:输入块扩展参数h,h>0,以
Figure BDA0002950728850000173
为随机数种子,连续生成随机坐标(xi,yi)∈m2×n2,将Mρ上以(xi,yi)为左上角坐标起点的大小为h×h的小块记为/>
Figure BDA0002950728850000174
其中ρ∈{r,g,b}。
例如:这里假设由
Figure BDA0002950728850000175
生成随机坐标(3,4)∈m2×n2,令h=10,将M上以(3,4)为左上角坐标起点的大小为10×10的小块记为/>
Figure BDA0002950728850000176
对于/>
Figure BDA0002950728850000177
和/>
Figure BDA0002950728850000178
也一样,记分别产生的10×10的小块为/>
Figure BDA0002950728850000179
和/>
Figure BDA00029507288500001710
T303:若
Figure BDA00029507288500001711
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1全为1,则将/>
Figure BDA00029507288500001712
上的所有元素ti,j置为0,然后将(xi,yi)加入到Zρ中,更新ITρ=0;若/>
Figure BDA00029507288500001713
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1不全为1,则将(xi,yi)抛弃,更新ITρ=ITρ+1。
例如:若
Figure BDA00029507288500001714
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1全为1,则将/>
Figure BDA00029507288500001715
上的所有元素ti,j置为0,然后将(3,4)加入到Zr中,更新IT=0;若/>
Figure BDA00029507288500001716
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1不全为1,则将(3,4)抛弃,更新ITρ=ITρ+1,若ITρ=0,则ITρ=ITρ+1=2;
T304:反复执行T302至T303直至ITρ=δ,若L<l/2,失败退出;若L<l/2,失败退出;否则,得到随机坐标序列
Figure BDA00029507288500001717
ρ∈{r,g,b},其中L是Zρ中随机坐标的数量;
例如:反复执行T302至T303,直至ITρ=δ=100,可得到Zr=((0,0),(11,10))2,满足Zr中随机坐标的数量为L=2,满足L=2>l/2,其中l=2,对于
Figure BDA00029507288500001718
按同样的方法可生成Zg=((10,5),(1,10))2,满足Zg中随机坐标的数量为L=2,满足L=2>l/2;Zb=((3,4),(10,18))2满足Zb中随机坐标的数量为L=2,满足L=2>l/2。
其中,生成嵌密坐标位置序列Z′ρ=((x′i ρ,y′i ρ))l/2,l/2≤L,ρ∈{r,g,b}的具体方法是:
由第二嵌入密钥k3生成随机数
Figure BDA00029507288500001719
ρ∈{r,g,b},由/>
Figure BDA00029507288500001720
ρ∈{r,g,b}分别从随机坐标序列Zρ中选择l/2个坐标位置作为嵌密坐标位置,将其标记为序列Z′ρ,ρ∈{r,g,b}。
例如:假设l=2,假定由第二嵌入密钥k3=10生成随机数
Figure BDA00029507288500001721
ρ∈{r,g,b},即
Figure BDA00029507288500001722
由/>
Figure BDA00029507288500001723
分别从随机坐标序列Zr=((0,0),(11,10))2中选择1个坐标位置作为嵌密坐标位置,将其标记为序列Z′r,假设Z′r=((0,0))1,由/>
Figure BDA00029507288500001724
分别从随机坐标序列Zg=((10,5),(1,10))2中选择1个坐标位置作为嵌密坐标位置,将其标记为序列Z′g,假设Z′g=((10,5))1,由/>
Figure BDA00029507288500001725
分别从随机坐标序列Zb=((3,4),(10,18))2中选择1个坐标位置作为嵌密坐标位置,将其标记为序列Z′b,假设Z′b=((3,4))1,此时可得到:Z′r=((0,0))1,Z′g=((10,5))1,Z′b=((3,4))1,满足l/2≤L。
T4:结合Z′ρ,ρ∈{r,g,b}从嵌密掩体图像Mρ,ρ∈{r,g,b}中提取出分存值序列
Figure BDA00029507288500001726
ρ∈{r,g,b},即分存值序列βrgb
例如:结合Z′r=((0,0))1,Z′g=((10,5))1,Z′b=((3,4))1从Mr,Mg,Mb中提取出分存值序列βr=(3)1g=(1)1r=(0)1
其具体方法是:
T401:对随机坐标序列Z′ρ中的每个坐标
Figure BDA00029507288500001727
在嵌密掩体图像Mρ中以
Figure BDA00029507288500001728
为左上角起点,截取大小为l1×l1的小块作为目标字符图像D′。
例如:若取l1=8,对随机坐标序列Z′r=((0,0))1中的坐标,在Mr中以(0,0)为左上角起点,截取大小为8×8的小块作为D′;对随机坐标序列Z′g=((10,5))1中的坐标,在Mg中以(10,5)为左上角起点,截取大小为8×8的小块作为D′;对随机坐标序列Z′b=((3,4))1中的坐标,在Mb中以(3,4)为左上角起点,截取大小为8×8的小块作为D′。
T402:按式(11)从8幅字符图像
Figure BDA0002950728850000181
中选取最接近的字符图像/>
Figure BDA0002950728850000182
然后提取出/>
Figure BDA0002950728850000183
所代表的分存值/>
Figure BDA0002950728850000184
Figure BDA0002950728850000185
例如:对随机坐标序列Z′r=((0,0))1中的坐标,在Mr中以(0,0)为左上角起点,截取大小为8×8的小块作为D′,假设按式(11)可得到图像块
Figure BDA0002950728850000186
即/>
Figure BDA0002950728850000187
对随机坐标序列Z′g=((10,5))1中的坐标,在Mg中以(10,5)为左上角起点,截取大小为8×8的小块作为D′,假设按式(11)可得到图像块/>
Figure BDA0002950728850000188
即/>
Figure BDA0002950728850000189
对随机坐标序列Z′b=((3,4))1中的坐标,在Mb中以(3,4)为左上角起点,截取大小为8×8的小块作为D′,假设按式(11)可得到图像块/>
Figure BDA00029507288500001810
即/>
Figure BDA00029507288500001811
T403:反复执行T401和T402直至Z′ρ中的所有坐标
Figure BDA00029507288500001812
处理完毕,可得到
Figure BDA00029507288500001813
ρ∈{r,g,b},即分存值序列βrgb
例如:反复执行T401和T402直至Z′r=((0,0))1,Z′g=((10,5))1,Z′b=((3,4))1中的所有坐标处理完毕,可得到βr=(3)1g=(1)1r=(0)1
T5:根据预设的转换密钥,由
Figure BDA00029507288500001814
ρ∈{r,g,b}提取出10进制序列A=(ai)l/2和认证值序列W=(wi)l/2,然后将10进制序列A=(ai)l/2每个元素为一组进行2进制转化,得到作为秘密信息的2值比特序列S=(si)l,si∈{0,1}。
例如:根据预设的转换密钥,由βr=(3)1g=(1)1r=(0)1提取出10进制序列A=(2)1和认证值序列W=(1)1,然后将10进制序列A=(ai)l/2每个元素为一组进行2进制转化,得到作为秘密信息的2值比特序列S=(si)l,si∈{0,1}。
其具体方法是:
T501:由第一转换密钥k0生成随机数序列C=(ci)l/2
例如:取l=2,假设第一转换密钥k0=4生成随机数序列C=(9)1
T502:由第二转换密钥k1作为随机数种子,将连续生成的两两不等的三个随机数作为参与值o0,o1,o2∈{1,2,3};从
Figure BDA00029507288500001815
ρ∈{r,g,b}中提取出分存值/>
Figure BDA00029507288500001816
Figure BDA00029507288500001817
依次作为/>
Figure BDA00029507288500001818
按式(12)得到r0和r1,记/>
Figure BDA00029507288500001819
恢复出的r0,r1为/>
Figure BDA00029507288500001820
恢复出的r0,r1为/>
Figure BDA00029507288500001821
恢复出的r0,r1为/>
Figure BDA00029507288500001822
即对应为r0和r1的3个版本;
Figure BDA00029507288500001823
其中,m,n∈{0,1,2},m≠n,
Figure BDA00029507288500001824
是GF(22)有限域上o的多项式整数,将连续生成的两两不等的三个参与值o0,o1,o2∈{1,2,3}作为/>
Figure BDA0002950728850000191
是从分存值序列βρ中读取出的第i个位置的分存值整数/>
Figure BDA0002950728850000192
和/>
Figure BDA0002950728850000193
并分别作为/>
Figure BDA0002950728850000194
是GF(22)有限域上r0,r1的多项式整数,r0,r1∈{1,2,3}是多项式系数,r0为秘密信息,r1为r0的认证变量,将r0作为待获取的10进制序列A=(ai)l/2中的元,/>
Figure BDA0002950728850000195
是GF(22)上的本原多项式整数,/>
Figure BDA0002950728850000196
Figure BDA0002950728850000197
是/>
Figure BDA0002950728850000198
在模/>
Figure BDA0002950728850000199
下的逆元,使得/>
Figure BDA00029507288500001910
例如:假设密钥k1=3作为随机数种子,生成的两两不等的三个随机数作为参与值o0=2,o1=1,o2=3,从
Figure BDA00029507288500001911
中提取出分存值/>
Figure BDA00029507288500001912
将/>
Figure BDA00029507288500001913
依次作为
Figure BDA00029507288500001914
将/>
Figure BDA00029507288500001915
和/>
Figure BDA00029507288500001916
代入式(12)中可得/>
Figure BDA00029507288500001917
且/>
Figure BDA00029507288500001918
将/>
Figure BDA00029507288500001919
Figure BDA00029507288500001920
代入式(12)中可得/>
Figure BDA00029507288500001921
Figure BDA00029507288500001922
Figure BDA00029507288500001923
将/>
Figure BDA00029507288500001924
和/>
Figure BDA00029507288500001925
代入式(12)中可得
Figure BDA00029507288500001926
且/>
Figure BDA00029507288500001927
T503:将
Figure BDA00029507288500001928
和/>
Figure BDA00029507288500001929
分别作为r0,r1,然后和ci代入式(13)进行检验,若存在多组检验通过,则从中随机选择一组按式(14)计算(ai,wi);若所有组都检验不通过,则从中随机选择一组按式(15)计算(ai,wi):
Figure BDA00029507288500001930
ai=r0,wi=1 (14)
ai=r0,wi=0 (15)
其中,wi=1表示恢复信息可靠,wi=0表式恢复信息不可靠。
例如:将
Figure BDA00029507288500001931
和ci=9代入式(13)进行检验,可得
Figure BDA00029507288500001932
成立,将/>
Figure BDA00029507288500001933
和ci=9代入式(13)进行检验,可得
Figure BDA00029507288500001934
成立,将/>
Figure BDA00029507288500001935
和ci=9代入式(13)进行检验,可得
Figure BDA00029507288500001936
成立,即多组检验通过,则从中随机选择一组/>
Figure BDA00029507288500001937
按式(14)计算(ai,wi)=(2,1)。
T504:反复执行T502至T503直至
Figure BDA00029507288500001938
ρ∈{r,g,b}中的所有元素/>
Figure BDA00029507288500001939
处理完毕,将10进制序列A=(ai)l/2和认证值序列W=(wi)l/2输出,将10进制序列A=(ai)l/2中每个元素为一组进行2进制转化,得到作为秘密信息的2值比特序列S=(si)l,si∈{0,1}。
例如:反复执行T501至T503直至βr=(3)1g=(1)1r=(0)1中的所有元素
Figure BDA00029507288500001940
处理完毕,将10进制序列A=(ai)l/2=(2)1和认证值序列W=(wi)l/2=(1)1输出,将10进制序列A=(2)1中每个元素为一组进行2进制转化为作为秘密信息的2值比特序列S=(1,0)。
参见图3,为106×106分辨率的彩色图像lena;参见图4,是秘密信息,包含20个中文字符的古诗《江雪》,将其扫描为二值比特序列。
参见图5,用于示意字符0放置在l1×l1大小的正方形图像内部最上侧居中位置所生成的字符图像;参见图6,用于示意字符0放置在l1×l1大小的正方形图像内部最下侧居中位置所生成的字符图像;参见图7,用于示意字符0放置在l1×l1大小的正方形图像内部最左侧居中位置所生成的字符图像;参见图8,用于示意将字符0放置在l1×l1大小的正方形图像内部最右侧居中位置所生成的字符图像;参见图9,用于示意将字符1放置在l1×l1大小的正方形图像内部最上侧居中位置所生成的字符图像;参见图10,用于示意将字符1放置在l1×l1大小的正方形图像内部最下侧的居中位置所生成的字符图像;参见图11,用于示意将字符1放置在l1×l1大小的正方形图像内部最左侧居中位置所生成的字符图像;参见图12,用于示意将字符1放置在l1×l1大小的正方形图像内部最右侧居中位置所生成的字符图像;其中,虚线框用于示意放置的字符在最终生成的字符图像中的相对位置。
参见图13,以古诗为秘密信息的嵌密载体1的R通道;参见图14,为图13的局部放大图;参见图15,以古诗为秘密信息的嵌密载体1的G通道;参见图16,为图15的局部放大图;参见图17,以古诗为秘密信息的嵌密载体1的B通道;参见图18,为图17的局部放大图;参见图19,以古诗为秘密信息的嵌密载体1,按灰度图像进行显示;参见图20,为图19的局部放大图;参见图21,由图19按正确密钥恢复出的秘密信息,相对于图4的误码率EBR为0%。
参见图22,对图19进行椒盐噪声攻击,噪声强度为20%,按灰度图像进行显示;参见图23,对图19进行椒盐噪声攻击,取噪声强度为10%,按灰度图像进行显示;参见图24,由图22恢复出的秘密信息,相对于图4的误码率EBR为0%;参见图25,由图23恢复出的秘密信息,相对于图4的误码率EBR为0%。
参见图26,对图19进行剪切攻击,剪切占比为25%,按灰度图像进行显示;参见图27,对图19进行剪切攻击,剪切占比为10%,按灰度图像进行显示;参见图28,由图26恢复出的秘密信息;相对于图4的误码率EBR为16.875%;参见图29,由图27恢复出的秘密信息,相对于图4的误码率EBR为5.93%。
参见图30,对图19对应的R通道进行随机字符图像替换攻击,替换占比为20%,按灰度图像进行显示;参见图31,对图19对应的G通道进行随机字符图像替换攻击,替换占比为20%,按灰度图像进行显示;参见图32,对图19对应的B通道进行随机字符图像替换攻击的示意图,替换占比为20%,按灰度图像进行显示;参见图33,由图30恢复出的秘密信息,相对于图4的误码率EBR为4.68%;参见图34,由图31恢复出的秘密信息,相对于图4的误码率EBR为3.43%;参见图35,由图32恢复出的秘密信息,相对于图4的误码率EBR为6.87%。
参见图36,对图19对应的R通道、G通道和B通道分别进行随机字符图像替换攻击,替换占比为20%,按灰度图像进行显示;参见图37,由图36恢复出的秘密信息,相对于图4的误码率EBR为12.50%。
本发明基于彩色字符画的信息隐藏及恢复方法,相较于现有的信息隐藏及恢复方法,至少具有以下优点。
第一,传统信息隐藏方法都不可避免地涉及隐藏信息的修改式嵌入,容易留下修改痕迹,从而隐藏的信息容易遭受破坏。本发明与之不同,引入隐字符位置编码策略,由密钥随机生成字符图像放置位置,字符放置位置相互间不对齐且互不重叠,除此以外每个放置的字符位置都预留了扩展空间,使得每种字符都具备完备编码可能性,从而不泄露编码空间并提高了抗编码分析能力。并且本发明是通过放置在多个不同颜色通道的放置字符提取的编码信息的随机组合来共同表达秘密信息,通过多个放置位置的字符编码组合,进一步隐藏了字符的编码空间。
第二,传统信息隐藏方法的主要目的是通过修改载体的特征来表达秘密信息,在表达秘密信息的同时,会导致载体的某些特征发生改变,从而影响载体图像的视觉质量。本发明则与之不同,直接产生与掩体图像最为接近的2值掩体图像,所提方法始终选取和掩体对应位置像素最为接近的字符图像,而不涉及对因为嵌密对实际放置字符的任何修改,从而尽可能地保留掩体特征,而不会留下任何修改导致的痕迹,且所生成的彩色字符画具有较好的视觉质量。
第三,本发明将秘密信息和对应的认证信息用于构造GF(22)有限域Lagrange插值多项式,进行(3,2)门限分存,进而将得到的分存信息分别借助彩色字符图像RGB通道放置的字符进行表达。在提取时通过RGB通道放置字符的两两组合来提取秘密信息,并可对秘密信息可靠性进行标记,从而提供一定的攻击容忍能力,即使传输的彩色字符图像遭受一定程度的攻击,导致部分提取字符对应的编码信息发生改变,嵌入的秘密信息依然可准确提取,因此提高了隐藏秘密信息的抗攻击能力。
第四,在嵌密和提取秘密信息过程中,本发明所提方法始终和密钥紧密绑定,用于保证对密钥的完全依赖性和对密钥的敏感性,使得只有正确的密钥才能获取不同通道放置字符的组合关系,然后才能从中获取对应的编码信息,进一步恢复秘密信息,并对恢复的秘密信息可靠性进行认证。
综上,本发明基于彩色字符画的信息隐藏及恢复方法,首先将彩色图像三通道图像转换为二值掩体图,由给定字号的0和1字符产生编码字符图像;其次通过多通道插值对秘密信息认证和备份以产生分存值序列;最后通过隐字符位置编码生成字符放置位置并结合二值掩体产生彩色含密字符画。在提取时,通过多通道插值和隐字符位置编码恢复策略恢复二值秘密比特串并对提取的二值秘密比特进行认证。同现有方法相比,所提方法利用字符图像来表达秘密信息,隐藏了字符编码空间且通过多通道插值消除了错误恢复值的影响。所提方法不涉及任何参数额外嵌入,不存在任何修改痕迹,在提取时对密钥具有完全的依赖性和良好的抗攻击能力,具有较高的安全性。
本发明再一个实施例中,提供了一种计算机设备,该计算机设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor、DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行计算机存储介质内一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于实现上述基于彩色字符画的信息隐藏方法的步骤,和/或实现上述基于彩色字符画的信息恢复方法的步骤。
本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关基于彩色字符画的信息隐藏方法的步骤,和/或基于彩色字符画的信息恢复方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

Claims (8)

1.一种基于彩色字符画的信息隐藏方法,其特征在于,包括以下步骤:
S1:获取大小为m0×n0的彩色图像;
S2:根据预设字号的字符0和字符1,生成8幅大小均为l1×l1的字符图像;
S3:获取彩色图像的红色通道图像
Figure FDA0003961985910000011
绿色通道图像
Figure FDA0003961985910000012
和蓝色通道图像
Figure FDA0003961985910000013
并分别转换为红色通道二值图像
Figure FDA0003961985910000014
绿色通道二值图像
Figure FDA0003961985910000015
和蓝色通道二值图像
Figure FDA0003961985910000016
其中,t为大于0的整数,i∈{0,1,2,…,m0-1},j∈{0,1,2,…,n0-1};
S4:获取长度l的2值比特序列S=(si)l,si∈{0,1}为秘密信息,将2值比特序列S中每2比特为一组进行10进制转化,得到10进制序列A=(ai)l/2,根据预设的转换密钥,将10进制序列A=(ai)l/2插值备份为分存值序列
Figure FDA0003961985910000017
即分存值序列βrgb
S5:根据预设的嵌入密钥随机生成长度为L的随机坐标序列
Figure FDA0003961985910000018
以及嵌密坐标位置序列
Figure FDA0003961985910000019
即随机坐标序列Zr,Zg,Zb和嵌密坐标位置序列Z′r,Z′g,Z′b,其中,m2,n2均为大于0的整数,m2=m0·h,n2=n0·h,h为矩阵膨胀参数,h>0,L为大于0的整数;
所述随机生成长度为L的随机坐标序列
Figure FDA00039619859100000110
即随机坐标序列Zr,Zg,Zb的具体方法为:
S501:初始化空白图像
Figure FDA00039619859100000111
根据第一嵌入密钥k2生成随机数
Figure FDA00039619859100000112
初始化最大迭代次数δ,δ>0,初始化随机坐标序列Zρ=φ,当前迭代次数变量ITρ=0,其中,ρ∈{r,g,b};
S502:以
Figure FDA00039619859100000113
为初始随机数种子,连续生成随机坐标(xi,yi)∈m2×n2,将空白图像Mρ上以(xi,yi)为左上角坐标起点,且大小为h×h的小块记为
Figure FDA00039619859100000114
其中,ρ∈{r,g,b};
S503:当
Figure FDA00039619859100000115
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1全为1时,将
Figure FDA00039619859100000116
上的所有元素ti,j置为0,将(xi,yi)加入到随机坐标序列Zρ中,更新ITρ=0;否则,将(xi,yi)抛弃,更新ITρ=ITρ+1;
S504:反复执行S502到S503直至ITρ=δ,若L<l/2,失败退出;否则,得到随机坐标序列
Figure FDA00039619859100000117
其中L是Zρ中随机坐标的数量;
所述S5中嵌入密钥包括第一嵌入密钥k2和第二嵌入密钥k3
所述S5中生成嵌密坐标位置序列
Figure FDA00039619859100000118
即嵌密坐标位置序列Z′r,Z′g,Z′b的具体方法为:
根据第二嵌入密钥k3生成随机数
Figure FDA00039619859100000119
通过
Figure FDA00039619859100000120
分别从随机坐标序列Zρ中选择l/2个坐标位置作为嵌密坐标位置,将其标记为嵌密坐标位置序列
Figure FDA00039619859100000121
可得到嵌密坐标位置序列Z′r,Z′g,Z′b
S6:根据红色通道二值图像R′、绿色通道二值图像G′、蓝色通道二值图像B′、嵌密坐标位置序列Z′ρ以及随机坐标序列Zρ,从8幅字符图像中选取目标字符图像,通过隐字符位置方式编码分存值序列βρ并进行掩盖,得到大小为m2×n2的嵌密掩体图像
Figure FDA0003961985910000021
将嵌密掩体图像Mρ进行三通道结合,得到彩色嵌密字符画图像Mrgb,其中ρ∈{r,g,b}。
2.根据权利要求1所述的基于彩色字符画的信息隐藏方法,其特征在于,所述S3的具体方法为:
获取彩色图像的红色通道图像
Figure FDA0003961985910000022
绿色通道图像
Figure FDA0003961985910000023
和蓝色通道图像
Figure FDA0003961985910000024
将红色通道图像R,绿色通道图像G和蓝色通道图像B分别作为t阶灰度图像
Figure FDA0003961985910000025
进行如下转换,得到红色通道二值图像
Figure FDA0003961985910000026
绿色通道二值图像
Figure FDA0003961985910000027
和蓝色通道二值图像
Figure FDA0003961985910000028
S301:对于t阶灰度图像U中的每个元素ui,j,按式(2)将ui,j映射为ui,j
Figure FDA0003961985910000029
S302:按式(3)计算误差Δi,j,将Δi,j按式(4)分布到ui,j周围未按式(2)处理的8领域像素上:
Δi,j=ui,j-ui,j·(2t-1) (3)
ux,y=Range(ux,yi,j/NC,0,2t-1) (4)
其中,(x,y)∈{(i-1,j-1),(i-1,j),(i-1,j+1),(i,j-1),(i,j+1),(i+1,j-1),(i+1,j),(i+1,j+1)},NC是ui,j周围8领域未按式(3)处理的有效像素的个数,Range(ux,yi,j/NC,0,2t-1)函数用于将ux,yi,j/NC调整到0到2t-1范围之内,当ux,yi,j/NC<0时,将ux,yi,j/NC作为0,当ux,yi,j/NC>2t-1时,将ux,yi,j/NC作为2t-1;
S303:反复执行S301至第S302,至t阶灰度图像U中的所有元素ui,j都处理完毕,将
Figure FDA00039619859100000210
作为处理好的2值图像;
所述S4中,转换密钥包括第一转换密钥k0和第二转换密钥k1,所述将10进制序列A=(ai)l/2插值备份为分存值序列
Figure FDA00039619859100000211
即分存值序列βrgb的具体方法为:
S401:根据第一转换密钥k0生成随机数序列C=(ci)l/2
S402:对10进制序列A中的每个元素ai,根据式(5)生成两个系数r0,r1
Figure FDA00039619859100000212
其中,r1为r0的认证变量;
S403:将第二转换密钥k1作为随机数种子,将连续生成的三个两两不等的随机数作为参与值o0,o1,o2∈{1,2,3},将参与值o0,o1,o2分别作为o,和r0,r1一起代入式(6),将分别得到的
Figure FDA0003961985910000031
对应的整数记为
Figure FDA0003961985910000032
Figure FDA0003961985910000033
其中,
Figure FDA0003961985910000034
是GF(22)有限域上的本原多项式整数,
Figure FDA0003961985910000035
是参与者值,r0,r1∈{0,1,2,3}是多项式系数,表示为秘密信息和认证信息,
Figure FDA0003961985910000036
为GF(22)有限域上o,r0,r1的多项式整数;
S404:反复执行S402和S403,至10进制序列A中的所有元素处理完毕,得到分存值序列
Figure FDA0003961985910000037
即分存值序列βrgb
3.根据权利要求1所述的基于彩色字符画的信息隐藏方法,其特征在于,所述S2的具体方法为:
S201:获取预设字号的字符0和字符1;
S202:记能同时容纳单个字符0和字符1的最小外包矩形的高度为m1,宽度为n1,按式(1)确定能同时容纳单个字符0和字符1的正方形图像的边长l1
l1=m1+n1/2 (1)
S203:将字符0依次放置在l1×l1正方形图像内部的最上侧、最下侧、最左侧和最右侧的居中位置,得到4幅分辨率为l1×l1的字符图像
Figure FDA0003961985910000038
将字符1依次放置在l1×l1正方形图像内部的最上侧、最下侧、最左侧和最右侧的居中位置,得到4幅分辨率为l1×l1的字符图像
Figure FDA0003961985910000039
所述S5中的矩阵膨胀参数h=l1+d,d为块扩展参数,d≥n1/2;
所述S6的具体方法为:
S601:将
Figure FDA00039619859100000310
Figure FDA00039619859100000311
分别作为式(7)中的二值半色调图像
Figure FDA00039619859100000312
按式(7)转换为嵌密掩体图像
Figure FDA00039619859100000313
Figure FDA00039619859100000314
其中,函数Emb()用于将二值半色调图像
Figure FDA00039619859100000315
转换为嵌密掩体图像Mρ,ρ∈{r,g,b},其中Emb()的具体嵌入过程是:
S6011:对于分存值序列
Figure FDA00039619859100000316
中的每个元素
Figure FDA00039619859100000317
从嵌密坐标位置序列Z′ρ中获取第i个坐标
Figure FDA00039619859100000318
按式(8)从
Figure FDA00039619859100000319
中获取像素值ρ′x′,y′,其中,U′r=R′,U′g=G′,U′b=B′:
Figure FDA00039619859100000320
S6012:按式(9)从8幅字符图像
Figure FDA00039619859100000321
中选取一幅字符图像作为目标字符图像D,将目标字符图像D放置在Mρ中以
Figure FDA00039619859100000322
为左上角起点,且大小为h×h的小块上:
Figure FDA00039619859100000323
S6013:反复执行S6011至S6012,至分存值序列
Figure FDA00039619859100000324
中的所有元素
Figure FDA00039619859100000325
处理完毕;
S6014:当
Figure FDA00039619859100000326
时,按式(8)从U′ρ中获取像素值ρ′x′,y′,随机产生随机数rq∈{0,1,2,3},按式(10)从字符图像
Figure FDA0003961985910000041
中选取一幅字符图像作为目标字符图像D,将目标字符图像D放置在
Figure FDA0003961985910000042
中以(xi,yi)为左上角起点大小为h×h的小块上:
Figure FDA0003961985910000043
S6015:反复执行S6014,直至所有(xi,yi)∈Zρ
Figure FDA0003961985910000044
中的坐标处理完毕,从而可得到最终的嵌密掩体图像
Figure FDA0003961985910000045
即嵌密掩体图像
Figure FDA0003961985910000046
Figure FDA0003961985910000047
S6016:嵌密掩体图像
Figure FDA0003961985910000048
进行三通道合并,作为彩色嵌密字符画图像Mrgb,即将嵌密掩体图像
Figure FDA0003961985910000049
分别作为Mrgb的红色通道、绿色通道和蓝色通道。
4.一种基于彩色字符画的信息恢复方法,其特征在于,包括以下步骤:
T1:获取彩色嵌密字符画图像Mrgb,根据预设字号的字符0和字符1,生成8幅大小均为l1×l1的字符图像;
T2:将彩色嵌密字符画图像Mrgb进行三通道分离,得到嵌密掩体图像
Figure FDA00039619859100000410
即嵌密掩体图像
Figure FDA00039619859100000411
T3:根据预设的嵌入密钥随机生成长度为L的随机坐标序列
Figure FDA00039619859100000412
以及嵌密坐标位置序列
Figure FDA00039619859100000413
即随机坐标序列Zr,Zg,Zb和嵌密坐标位置序列Z′r,Z′g,Z′b,其中,m2,n2均为大于0的整数,m2=m0·h,n2=n0·h,h为矩阵膨胀参数,h>0,l为作为秘密信息的2值比特序列的长度;L为大于0的整数;
所述随机生成长度为L的随机坐标序列
Figure FDA00039619859100000414
的具体方法为:
T301:初始化空白图像
Figure FDA00039619859100000415
根据第一嵌入密钥k2生成随机数
Figure FDA00039619859100000416
初始化最大迭代次数δ,δ>0,初始化Zρ=φ,当前迭代次数变量ITρ=0,其中,ρ∈{r,g,b};
T302:以
Figure FDA00039619859100000417
为随机数种子,连续生成随机坐标(xi,yi)∈m2×n2,将空白图像M上以(xi,yi)为左上角坐标起点,且大小为h×h的小块记为
Figure FDA00039619859100000418
其中,ρ∈{r,g,b};
T303:当
Figure FDA00039619859100000419
上的元素t0,0,t0,h-1,th-1,0,th-1,h-1全为1时,将
Figure FDA00039619859100000420
上的所有元素ti,j置为0,将(xi,yi)加入到随机坐标序列Zρ中,更新ITρ=0;否则,将(xi,yi)抛弃,更新ITρ=ITρ+1;
T304:反复执行T302至T303直至ITρ=δ,若L<l/2,失败退出;否则,得到随机坐标序列
Figure FDA00039619859100000421
其中L是Zρ中随机坐标的数量;
所述T3中,嵌入密钥包括第一嵌入密钥k2和第二嵌入密钥k3
所述T3中生成嵌密坐标位置序列
Figure FDA00039619859100000422
的具体方法为:
根据第二嵌入密钥k3生成随机数
Figure FDA00039619859100000423
通过
Figure FDA00039619859100000424
分别从随机坐标序列Zρ中选择l/2个坐标位置作为嵌密坐标位置,将其标记为嵌密坐标位置序列
Figure FDA0003961985910000051
T4:根据嵌密坐标位置序列Z′ρ从嵌密掩体图像Mρ中提取分存值序列
Figure FDA0003961985910000052
即分存值序列βrgb
T5:根据预设的转换密钥,由
Figure FDA0003961985910000053
提取出10进制序列A=(ai)l/2和认证值序列W=(wi)l/2,然后将10进制序列A=(ai)l/2每个元素为一组进行2进制转化,得到作为秘密信息的2值比特序列S=(si)l,si∈{0,1}。
5.根据权利要求4所述的基于彩色字符画的信息恢复方法,其特征在于,所述T1中根据预设字号的字符0和字符1,生成8幅大小均为l1×l1的字符图像的具体方法为:
T101:获取预设字号的字符0和字符1;
T102:记能同时容纳单个字符0和字符1的最小外包矩形的高度为m1,宽度为n1,按式(1)确定能同时容纳单个字符0和字符1的正方形图像的边长l1
l1=m1+n1/2 (1)
T103:将字符0依次放置在l1×l1正方形图像内部的最上侧、最下侧、最左侧和最右侧的居中位置,得到4幅分辨率为l1×l1的字符图像
Figure FDA0003961985910000054
将字符1依次放置在l1×l1正方形图像内部的最上侧、最下侧、最左侧和最右侧的居中位置,得到4幅分辨率为l1×l1的字符图像
Figure FDA0003961985910000055
所述T4的具体方法为:
T401:对嵌密坐标位置序列Z′ρ中的每个坐标
Figure FDA0003961985910000056
在嵌密掩体图像Mρ中以
Figure FDA0003961985910000057
为左上角起点,截取大小为l1×l1的小块,得到目标字符图像D′;
T402:根据式(11)从8幅字符图像
Figure FDA0003961985910000058
中选取字符图像
Figure FDA0003961985910000059
从目标字符图像D′中提取出
Figure FDA00039619859100000510
所代表的分存值
Figure FDA00039619859100000511
Figure FDA00039619859100000512
T403:重复执行T401和T402,至嵌密坐标位置序列Z′ρ中的所有坐标
Figure FDA00039619859100000513
均处理完毕,得到分存值序列
Figure FDA00039619859100000514
即分存值序列βrgb
6.根据权利要求4所述的基于彩色字符画的信息恢复方法,其特征在于,所述T5中转换密钥包括第一转换密钥k0和第二转换密钥k1;所述T5的具体方法为:
T501:根据第一转换密钥k0生成随机数序列C=(ci)l/2
T502:将第二转换密钥k1作为随机数种子,将连续生成的两两不等的三个随机数作为参与值o0,o1,o2∈{1,2,3},从分存值序列βρ中读取出分存值βi ri g
Figure FDA00039619859100000515
Figure FDA00039619859100000516
分别作为
Figure FDA00039619859100000517
根据式(12)得到r0和r1,记
Figure FDA00039619859100000518
恢复出的r0、r1
Figure FDA00039619859100000519
r1 0
Figure FDA00039619859100000520
恢复出的r0、r1
Figure FDA00039619859100000521
r1 1
Figure FDA00039619859100000522
恢复出的r0、r1
Figure FDA00039619859100000523
r1 2
Figure FDA00039619859100000524
其中,m,n∈{0,1,2},m≠n,
Figure FDA0003961985910000061
是GF(22)有限域上o的多项式整数,将连续生成的两两不等的三个参与值o0,o1,o2∈{1,2,3}作为
Figure FDA0003961985910000062
Figure FDA0003961985910000063
是从分存值序列βρ中读取出的第i个位置的分存值整数βi ri g
Figure FDA0003961985910000064
并分别作为
Figure FDA0003961985910000065
Figure FDA0003961985910000066
是GF(22)有限域上r0,r1的多项式整数,r0,r1∈{1,2,3}是多项式系数,r0为秘密信息,r1为r0的认证变量,将r0作为待获取的10进制序列A=(ai)l/2中的元素,
Figure FDA0003961985910000067
是GF(22)上的本原多项式整数,
Figure FDA0003961985910000068
Figure FDA0003961985910000069
Figure FDA00039619859100000610
在模
Figure FDA00039619859100000611
下的逆元,使得
Figure FDA00039619859100000612
T503:将三组
Figure FDA00039619859100000613
r1 0
Figure FDA00039619859100000614
Figure FDA00039619859100000615
分别作为r0,r1和ci一起代入式(13)进行检验,当至少两组检验通过时,从
Figure FDA00039619859100000616
r1 0
Figure FDA00039619859100000617
Figure FDA00039619859100000618
中随机选择一组,根据式(14)得到(ai,wi);否则,从
Figure FDA00039619859100000619
r1 0
Figure FDA00039619859100000620
Figure FDA00039619859100000621
中随机选择一组,根据式(15)得到(ai,wi):
Figure FDA00039619859100000622
ai=r0,wi=1 (14)
ai=r0,wi=0 (15)
其中,wi=1表示可靠,wi=0表式不可靠;
T504:重复执行T502至T503,直至
Figure FDA00039619859100000623
中的所有元素βi ri g,
Figure FDA00039619859100000624
处理完毕,得到10进制序列A=(ai)l/2和认证值序列W=(wi)l/2,将10进制序列A=(ai)l/2中每个元素进转换为2进制比特,得到作为秘密信息的2值比特序列S=(si)l,si∈{0,1}。
7.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至3任一项所述基于彩色字符画的信息隐藏方法的步骤,和/或实现权利要求4至6任一项所述基于彩色字符画的信息恢复方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至3任一项所述基于彩色字符画的信息隐藏方法的步骤,和/或实现权利要求4至6任一项所述基于彩色字符画的信息恢复方法的步骤。
CN202110206141.9A 2021-02-24 2021-02-24 基于彩色字符画的信息隐藏及恢复方法、设备及存储介质 Active CN113160028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110206141.9A CN113160028B (zh) 2021-02-24 2021-02-24 基于彩色字符画的信息隐藏及恢复方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110206141.9A CN113160028B (zh) 2021-02-24 2021-02-24 基于彩色字符画的信息隐藏及恢复方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113160028A CN113160028A (zh) 2021-07-23
CN113160028B true CN113160028B (zh) 2023-03-24

Family

ID=76883310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110206141.9A Active CN113160028B (zh) 2021-02-24 2021-02-24 基于彩色字符画的信息隐藏及恢复方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113160028B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114723960B (zh) * 2022-04-02 2023-04-28 湖南三湘银行股份有限公司 一种增强银行账号安全的附加验证方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010046104A2 (en) * 2008-10-23 2010-04-29 University Of Ulster An encryption method
CN110417551A (zh) * 2019-08-02 2019-11-05 陕西师范大学 一种结合误差扩散的字符画生成式伪装及恢复方法
CN110475039A (zh) * 2019-08-02 2019-11-19 陕西师范大学 线条艺术画隐藏和恢复的方法、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914687A (zh) * 2014-03-14 2014-07-09 常州大学 一种基于多通道和多阈值的矩形目标识别方法
CN110475038B (zh) * 2019-08-02 2021-07-27 陕西师范大学 一种结合最小闭包编码的字符画生成式隐藏及恢复方法
CN110766594B (zh) * 2019-09-29 2023-07-11 清华大学深圳国际研究生院 信息隐藏方法及装置、检测方法、装置及防伪溯源方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010046104A2 (en) * 2008-10-23 2010-04-29 University Of Ulster An encryption method
CN110417551A (zh) * 2019-08-02 2019-11-05 陕西师范大学 一种结合误差扩散的字符画生成式伪装及恢复方法
CN110475039A (zh) * 2019-08-02 2019-11-19 陕西师范大学 线条艺术画隐藏和恢复的方法、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
奇偶量化DCT系数实现文本信息隐藏;陈涛等;《计算机工程与应用》;20110321(第09期);全文 *

Also Published As

Publication number Publication date
CN113160028A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
Lee et al. A novel data hiding scheme based on modulus function
TWI507909B (zh) 資料隱寫編碼系統及資料隱寫解碼系統
TWI514840B (zh) 半色調資料隱寫編碼系統及半色調資料隱寫解碼系統
Zhou et al. Steganography Using Reversible Texture Synthesis Based on Seeded Region Growing and LSB.
US10853917B2 (en) Color image authentication method based on palette compression technique
CN109815653A (zh) 一种基于深度学习的pdf文本水印提取及比对方法
Qin et al. A novel steganography for spatial color images based on pixel vector cost
CN115131188A (zh) 一种基于生成对抗网络的鲁棒图像水印方法
CN107578362A (zh) 基于纹理合成在图像中嵌入秘密信息的方法
Liu et al. Digital cardan grille: A modern approach for information hiding
Lyu et al. High-capacity reversible data hiding in encrypted 3D mesh models based on multi-MSB prediction
CN110475038B (zh) 一种结合最小闭包编码的字符画生成式隐藏及恢复方法
CN113160028B (zh) 基于彩色字符画的信息隐藏及恢复方法、设备及存储介质
CN110677552B (zh) 一种基于完备分组基的无载体信息隐藏方法
CN109388959B (zh) 结合差异聚类和最小误差纹理合成的生成式信息隐藏方法
Liao et al. GIFMarking: The robust watermarking for animated GIF based deep learning
Qian et al. Constructive steganography using texture synthesis
Wang et al. A novel (n, n) secret image sharing scheme based on Sudoku
CN112184841A (zh) 块替换生成式信息隐藏及恢复方法、设备及介质
Wang An efficient multiple-bit reversible data hiding scheme without shifting
CN112395628B (zh) 迷宫生成式信息隐藏及恢复方法、设备及可读存储介质
CN110417551B (zh) 一种结合误差扩散的字符画生成式伪装及恢复方法
RU2530339C1 (ru) Способ встраивания информации в изображение, сжатое фрактальным методом, на основе сформированной библиотеки доменов
Chavan et al. Data embedding technique using secret fragment visible mosaic image for covered communication
Yang et al. A new sharing digital image scheme with clearer shadow images

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant