一种基于STC编码的二维码隐写方法技术

技术编号:39276495 阅读:18 留言:0更新日期:2023-11-07 10:53
本发明专利技术公开一种基于STC编码的二维码隐写方法,包括将秘密信息嵌入二维码和在二维码中提取秘密信息两部分内容。本发明专利技术根据二维码码字特征和STC编码的特点,设计作为隐写载体的二维码码字的重构策略和针对重构后码字载体的嵌入失真代价函数,通过STC编码选择失真代价最小的嵌入路径,将秘密信息嵌入到二维码的可修改码字中,在不改变二维码可修改码字数的前提下,通过减少嵌入修改量以保证嵌入信息的隐蔽性,同时相对直接使用STC编码,可将信息隐藏容量提升到原来的1倍以上。藏容量提升到原来的1倍以上。藏容量提升到原来的1倍以上。

【技术实现步骤摘要】
一种基于STC编码的二维码隐写方法


[0001]本专利技术属于信息安全
,特别涉及一种基于STC编码的二维码隐写方法。

技术介绍

[0002]由于二维码的生成与读取采用统一的ISO标准,任何人都能够轻易地扫码获取二维码中信息。当在公共信道中传输载有隐私信息的二维码时,会存在隐私泄露的风险。
[0003]利用二维码的纠错特性,在一定程度上牺牲二维码的纠错效率,以二维码中可修改的码字作为载体,可实现在保证二维码有效情况下,把秘密信息嵌入到二维码的内容码字,具有较好的隐蔽效果,是解决上述问题的一种有效方法,但此类方法受限于作为载体的可修改码字数,隐藏容量较低,有待改进,本案由此产生。

技术实现思路

[0004]本专利技术的目的,在于提供一种基于STC编码的二维码隐写方法,能够提升以二维码的内容码字为载体的基于STC编码的隐写技术的信息隐藏容量。
[0005]为了达成上述目的,本专利技术的解决方案是:
[0006]一种基于STC编码的二维码隐写方法,包括将秘密信息嵌入二维码和在二维码中提取秘密信息;
[0007]所述将秘密信息嵌入二维码包括如下步骤:
[0008]步骤A1,以二维码纠错等级EccLevel的一半纠错能力为标准,计算出秘密信息码字所需的纠错码字数NESM,对秘密信息SeMessage进行RS编码,得到具有纠错能力的秘密信息码字序列RSSM={RSM1,RSM2,...,RSM
NumSM
},其中NumSM为含纠错码字的秘密信息的码字总数;
[0009]步骤A2,判断嵌入秘密信息所需的载体码字总数NG是否大于二维码的纠错码字总数NumEccode的一半,若则结束流程,并返回“秘密信息过长”提示信息;若则转步骤A3;
[0010]步骤A3,根据二维码的原始文本信息Message、纠错等级EccLevel生成二维码的数据码和纠错码交织的码字块FinalCW,选取NG个码字构成载体码字NCW,NCW={CW1,CW2,...,CW
NG
},将所述载体码字NCW转化成NGMe组,用NCW
i
表示第i个载体码字组,对每个载体码字分组NCW
i
进行载体码字重构,获得用于嵌入秘密信息的最终载体数据;
[0011]步骤A4,通过STC编码,寻找将第i组秘密信息数据SMBit
i
嵌入到对应的第i组载体数据Cover
i
中,失真代价最小的载密数据Stego
i
,直至将所有秘密信息嵌入到载体码字中;其中,SMBit
i
表示将秘密信息SeMessage转换为二进制数据SMBit,其中的第i组秘密信息数据;
[0012]步骤A5,用最终的载密码字数据生成载密的二维码;
[0013]所述在二维码中提取秘密信息包括如下步骤:
[0014]步骤B1,对含密的二维码图像进行识别,提取二维码的纠错等级EccLevel

和包含数据码字和纠错码字的码字序列CWS

,并计算得到秘密信息总码字数NDSM


[0015]步骤B2,从码字序列CWS

中选取NG

个码字构成含密码字NCW

,NCW

={CW1′
,CW2′
,...,CW
NG

};
[0016]步骤B3,将载密码字NCW

进行分组,转化成NGMe

组,对每个载密码字分组进行码字重构,获得用于嵌入秘密信息的最终载体数据;
[0017]步骤B4,依据STC译码的计算公式分别从每个含密码字分组中,提取出秘密信息SMBit
i

,SMBit
i

表示第i组含密码字组中提取到的秘密信息:
[0018]步骤B5,将二进制的秘密信息转换为码字数据SeMessage,对秘密信息码字数据SeMessage进行RS译码,得到最终的秘密信息码字SeMessage。
[0019]上述步骤A1中,原始文本信息Message的最后一位信息为秘密信息总码字数NDSM和混淆参数Offset的和,其中Offset为固定数字,是公共密钥;NumSM=NDSM+NESM。
[0020]上述步骤A2中,嵌入秘密信息所需的载体码字总数NG根据如下方式计算,将秘密信息转换为二进制数据SMBit,秘密信息码字的总二进制比特数记为NumSMBit,其中NumSMbit=NumSM*8,将秘密信息按照每组32比特进行分组,分组数为其中表示向上取整运算,每组记为SMBit
i
,i∈NGMe;根据秘密信息分组情况,计算出嵌入秘密信息所需的载体码字总数其中,w为STC编码的基础矩阵中的列数。
[0021]上述步骤A3中,从码字块FinalCW中选取NG个码字构成载体码字NCW的方法是:
[0022]首先进行如下设定:
[0023]FinalCW={Block1,Block2...,Block
i
,...,Block
NumBlock
},i∈[1,NumBlock][0024][0025]BEL={BEL1,BEL2,...,BEL
NumBlock
}
[0026]其中,NumBlock表示总码字块数,Block
i
表示第i个码字块,表示第i个码字块中第BDL
i
‑1+1个数据码字,表示第i个码字块中第BEL
i
‑1+1个纠错码字,BDL
i
表示第i个码字块中数据码字数,BEL
i
表示第i个码字块中纠错码字数;
[0027]先从最终码字序列FinalCW的每一个块中第一列自上而下选1个码字作为载体码字,即再从最终码字序列FinalCW的每一块中第二列自上而下继续选1个码字作为载体码字,重复该步骤,直至选取到NG个码字构成载体码字NCW,NCW={CW1,CW2,...,CW
NG
}。
[0028]上述步骤A3中,对每个载体码字分组NCW
i
进行载体码字重构,获得用于嵌入秘密信息的最终载体数据,包括如下步骤:
[0029]步骤A31,对每个载体码字分组中的所有码字进行纵向排列,得到对应的码字列向
量;
[0030]步骤A32,将码字列向量中每一行的码字数据转为二进制序列,得到对应的0

1比特矩阵;
[0031]步骤A33,按照先自上而下、后从左到右的顺序,依次从码字矩阵中选择1比特数据,每设定值个比特为一组,直至所以元素均被选取完,构造出最终的载体数据,记为Cover
i
,表示第i组载体码字重构后的最终载体数据。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于STC编码的二维码隐写方法,其特征在于:包括将秘密信息嵌入二维码和在二维码中提取秘密信息;所述将秘密信息嵌入二维码包括如下步骤:步骤A1,以二维码纠错等级EccLevel的一半纠错能力为标准,计算出秘密信息码字所需的纠错码字数NESM,对秘密信息SeMessage进行RS编码,得到具有纠错能力的秘密信息码字序列RSSM={RSM1,RSM2,...,RSM
NumSM
},其中NumSM为含纠错码字的秘密信息的码字总数;步骤A2,判断嵌入秘密信息所需的载体码字总数NG是否大于二维码的纠错码字总数NumEccode的一半,若则结束流程,并返回“秘密信息过长”提示信息;若则转步骤A3;步骤A3,根据二维码的原始文本信息Message、纠错等级EccLevel生成二维码的数据码和纠错码交织的码字块FinalCW,选取NG个码字构成载体码字NCW,NCW={CW1,CW2,...,CW
NG
},将所述载体码字NCW转化成NGMe组,用NCW
i
表示第i个载体码字组,对每个载体码字分组NCW
i
进行载体码字重构,获得用于嵌入秘密信息的最终载体数据;步骤A4,通过STC编码,寻找将第i组秘密信息数据SMBit
i
嵌入到对应的第i组载体数据Cover
i
中,失真代价最小的载密数据Stego
i
,直至将所有秘密信息嵌入到载体码字中;其中,SMBit
i
表示将秘密信息SeMessage转换为二进制数据SMBit,其中的第i组秘密信息数据;步骤A5,用最终的载密码字数据生成载密的二维码;所述在二维码中提取秘密信息包括如下步骤:步骤B1,对含密的二维码图像进行识别,提取二维码的纠错等级EccLevel

和包含数据码字和纠错码字的码字序列CWS

,并计算得到秘密信息总码字数NDSM

;步骤B2,从码字序列CWS

中选取NG

个码字构成含密码字NCW

,NCW

={CW1′
,CW2′
,...,CW
NG

};步骤B3,将载密码字NCW

进行分组,转化成NGMe

组,对每个载密码字分组进行码字重构,获得用于嵌入秘密信息的最终载体数据;步骤B4,依据STC译码的计算公式分别从每个含密码字分组中,提取出秘密信息SMBit
i

,SMBit
i

表示第i组含密码字组中提取到的秘密信息:步骤B5,将二进制的秘密信息转换为码字数据SeMessage,对秘密信息码字数据SeMessage进行RS译码,得到最终的秘密信息码字SeMessage。2.如权利要求1所述的基于STC编码的二维码隐写方法,其特征在于:所述步骤A1中,原始文本信息Message的最后一位信息为秘密信息总码字数NDSM和混淆参数Offset的和,其中Offset为固定数字,是公共密钥;NumSM=NDSM+NESM。3.如权利要求1所述的基于STC编码的二维码隐写方法,其特征在于:所述步骤A2中,嵌入秘密信息所需的载体码字总数NG根据如下方式计算,将秘密信息转换为二进制数据SMBit,秘密信息码字的总二进制比特数记为NumSMBit,其中NumSMbit=NumSM*8,将秘密信
息按照每组32比特进行分组,分组数为其中表示向上取整运算,每组记为SMBit
i
,i∈NGMe;根据秘密信息分组情况,计算出嵌入秘密信息所需的载体码字总数其中,w为STC编码的基础矩阵中的列数。4.如权利要求1所述的基于STC编码的二维码隐写方法,其特征在于:所述步骤A3中,从码字块FinalCW中选取NG个码字构成载体码字NCW的方法是:首先进行如下设定:FinalCW={Block1,Block2...,Block
i
,...,Block
NumBlock
},i∈[1,NumBlock]BEL={BEL...

【专利技术属性】
技术研发人员:陈明志姚宏玮王焕松翁才杰许春耀程淏郑绍华翁齐昌
申请(专利权)人:北卡科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1