一种基于(7,4)汉明码的信息嵌入及提取方法技术

技术编号:38509367 阅读:13 留言:0更新日期:2023-08-19 16:54
本发明专利技术公开一种基于(7,4)汉明码的信息嵌入及提取方法,根据二维码码字特征和(7,4)汉明码隐写技术的特点,设计作为隐写载体的二维码码字的重构策略,结合校验矩阵优化,在不改变二维码可修改码字数的前提下,将信息隐藏容量提升到原来的两倍以上,使其满足实际应用需求。此种技术方案能够提升以二维码图像为载体的信息隐藏容量。的信息隐藏容量。的信息隐藏容量。

【技术实现步骤摘要】
一种基于(7,4)汉明码的信息嵌入及提取方法


[0001]本专利技术属于加密通信
,特别涉及一种基于(7,4)汉明码的信息嵌入方法及信息提取方法。

技术介绍

[0002]在互联网开放共享环境下,为保障隐私等敏感信息传递的安全性,通常采用加密手段保护消息内容,但同时也容易暴露秘密通信过程。隐写术可隐藏通信过程本身,用其传递敏感信息,有助于增强敏感信息在公共信道传输的安全性。
[0003]二维码作为一种重要的信息传递载体已被广泛应用,二维码图像容错率强、掩蔽效果好、传递渠道广,是信息隐藏的天然良载体,但受限于可修改码字数,隐藏容量难以满足实际应用需求,有待改进,本案由此产生。

技术实现思路

[0004]本专利技术的目的,在于提供一种基于(7,4)汉明码的信息嵌入及提取方法,能够提升以二维码图像为载体的信息隐藏容量。
[0005]为了达成上述目的,本专利技术的解决方案是:
[0006]一种基于(7,4)汉明码的信息嵌入方法,包括如下步骤:
[0007]步骤A1,根据用于生成二维码的信息MSG和二维码的纠错等级QRLEVEL,计算得到拟生成的二维码的纠错码字数NE;并根据二维码的纠错等级QRLEVEL的一半纠错能力对拟隐藏到二维码图像中的秘密信息SECRET进行RS编码,得到待隐藏信息的码字数SLEN1;
[0008]步骤A2,计算嵌入待隐藏信息所需的载体码字数NCW,NCW=10*NB,NB为根据待隐藏信息的二进制比特数SBLEN计算得到的嵌入秘密信息所需的载体码字分组数,其中表示向上取整运算;
[0009]步骤A3,计算嵌入待隐藏信息所需的标记信息码字数NMCW:NMCW=2*NB+2;
[0010]步骤A4,判断经RS编码后得到的待隐藏信息的码字数SLEN1与嵌入待隐藏信息所需的标记信息码字数NMCW之和是否大于即将生成的二维码的纠错码字数NE的一半,若则不再执行后续操作,并返回嵌入容量不足的报警信息,若则继续执行后续操作;
[0011]步骤A5,将步骤A1中根据二维码的纠错等级QRLEVEL的一半纠错能力对秘密信息SECRET进行RS编码后得到待隐藏信息转为二进制序列SB,将待隐藏信息的二进制比特数记为SBLEN;
[0012]步骤A6,根据MSG、纠错等级QRLEVEL生成即将生成的二维码的最终码字序列,最终码字序列由多个码字块构成,每个码字块包含多个数据码字和对应的纠错码字,用NCWB表
示码字块数,用CWB
i
表示第i个码字块,用CWBLEN
i
表示第i个码字块的码字数;
[0013]步骤A7,计算嵌入待隐藏信息和标记信息所需的载体码字总数NTCW,所需的载体码字总数NTCW=NCW+NMCW;
[0014]步骤A8,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLEN
i
降序进行纵向排列,每个码字块占一行,按列选取前NTCW个码字作为载体码字,直至选取到足够的载体码字;
[0015]步骤A9,将所选取的NTCW个载体码字的后NCW个码字按组划分为NB个载体码字分组,用SUBCW
i
表示第i个载体码字分组;
[0016]步骤A10,对每个载体码字分组进行重构,获得用于嵌入待隐藏信息的最终载体数据;
[0017]步骤A11,按组对待隐藏信息的二进制序列SB划分为NB个分组,用SUBSB
i
表示第i个待隐藏信息分组,同时记录最后一个分组的实际信息比特数,将最后一个分组的实际信息比特数记为NR;
[0018]步骤A12,将第i个待隐藏信息分组数据嵌入到对应的最终二进制载体数据中,获得载秘载体数;
[0019]步骤A13,重复执行步骤A12,每轮迭代以迭代次数作为候选矩阵索引从候选矩阵集中选择相应的候选矩阵作为当前校验矩阵,记录所需修改码字数最少的若干组结果,所述的每一组结果均包括该结果的码字修改量、候选矩阵索引及其对应的载秘码字分组,并从所得的若干组结果中,从码字修改量最少的结果中选择候选矩阵索引最小的结果作为最佳结果,将最佳结果的候选矩阵索引记为Ibest
i
,将最终结果里的载秘码字分组记为FINALSTEGO
i

[0020]步骤A14,重复执行步骤A10

步骤A13,直至将所有待隐藏信息嵌入载体码字中;
[0021]步骤A15,使用protobuf对所有码字分组的最佳校验矩阵的索引值Ibest
i
进行序列化处理,将NB个Ibest的序列化结果记为SA,将SA中包含的码字数记为SALEN;
[0022]步骤A16,构造标记信息SF,SF包含SALEN+2个码字,分为3部分,第1部分长度为1个码字,用于存储NB的值,第2部分的长度为1个码字,用于存储NR的值,第3部分的长度为SALEN个码字,用于存储序列化后的最佳矩阵索引值SA,其中,SALEN≤2*NB;
[0023]步骤A17,生成载秘码字,将预留的用于隐藏标记信息的码字数据直接替换为标记信息,即将载体码字的前SALEN+2个码字替换为SF,之后将载体码字的后NCW个码字依次替换为FINALSTEGO
i
所表示的码字数据,i=1,2,...,NCW,完成替换操作后得到的即为载秘码字数据;
[0024]步骤A18,将载秘码字块的顺序调整为与原始载体码字的顺序相同,之后依照二维码标准,根据载秘码字生成二维码图像并反回给用户。
[0025]一种基于(7,4)汉明码的信息提取方法,包括如下步骤:
[0026]步骤B1,对于接收到的含秘二维码图像,首先依照二维码标准对二维码图像进行解析,获得二维码的纠错等级QRLEVEL'和码字序列,所述码字序列由多个码字块构成,用NCWB'表示码字块数,用CWB
i
'表示第i个码字块,用CWBLEN
i
'表示第i个码字块的码字数;
[0027]步骤B2,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLEN
i
'降序进行纵向排列,每个码字块占一行,沿纵向读取第一列的第一个码字的值,获
得秘密信息分组数NB',沿纵向读取第一列的第二个码字的值,获得最后一个秘密信息分组中的秘密信息比特数NR';
[0028]步骤B3,根据获得的秘密信息分组数NB',计算载秘码字总数NTCW':NTCW'=NCW'+NMCW',其中,NCW'=10*NB',NMCW'=2*NB'+2;
[0029]步骤B4,对步骤B2排序得到的码字块,按列选取前NTCW'个码字,直至选取到NTCW'个码字;
[0030]步骤B5,从步骤B4所选取的NTCW'个码字的第3个码字开始进行protobuf反序列化处理,即先读1个字节,如果该字节的高位第1个比特为1,则继续读;如果为0,则停止,移除每个字节的第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于(7,4)汉明码的信息嵌入方法,其特征在于包括如下步骤:步骤A1,根据用于生成二维码的信息MSG和二维码的纠错等级QRLEVEL,计算得到拟生成的二维码的纠错码字数NE;并根据二维码的纠错等级QRLEVEL的一半纠错能力对拟隐藏到二维码图像中的秘密信息SECRET进行RS编码,得到待隐藏信息的码字数SLEN1;步骤A2,计算嵌入待隐藏信息所需的载体码字数NCW,NCW=10*NB,NB为根据待隐藏信息的二进制比特数SBLEN计算得到的嵌入秘密信息所需的载体码字分组数,其中表示向上取整运算;步骤A3,计算嵌入待隐藏信息所需的标记信息码字数NMCW:NMCW=2*NB+2;步骤A4,判断经RS编码后得到的待隐藏信息的码字数SLEN1与嵌入待隐藏信息所需的标记信息码字数NMCW之和是否大于即将生成的二维码的纠错码字数NE的一半,若则不再执行后续操作,并返回嵌入容量不足的报警信息,若则继续执行后续操作;步骤A5,将步骤A1中根据二维码的纠错等级QRLEVEL的一半纠错能力对秘密信息SECRET进行RS编码后得到待隐藏信息转为二进制序列SB,将待隐藏信息的二进制比特数记为SBLEN;步骤A6,根据MSG、纠错等级QRLEVEL生成即将生成的二维码的最终码字序列,最终码字序列由多个码字块构成,每个码字块包含多个数据码字和对应的纠错码字,用NCWB表示码字块数,用CWB
i
表示第i个码字块,用CWBLEN
i
表示第i个码字块的码字数;步骤A7,计算嵌入待隐藏信息和标记信息所需的载体码字总数NTCW,所需的载体码字总数NTCW=NCW+NMCW;步骤A8,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLEN
i
降序进行纵向排列,每个码字块占一行,按列选取前NTCW个码字作为载体码字,直至选取到足够的载体码字;步骤A9,将所选取的NTCW个载体码字的后NCW个码字按组划分为NB个载体码字分组,用SUBCW
i
表示第i个载体码字分组;步骤A10,对每个载体码字分组进行重构,获得用于嵌入待隐藏信息的最终载体数据;步骤A11,按组对待隐藏信息的二进制序列SB划分为NB个分组,用SUBSB
i
表示第i个待隐藏信息分组,同时记录最后一个分组的实际信息比特数,将最后一个分组的实际信息比特数记为NR;步骤A12,将第i个待隐藏信息分组数据嵌入到对应的最终二进制载体数据中,获得载秘载体数;步骤A13,重复执行步骤A12,每轮迭代以迭代次数作为候选矩阵索引从候选矩阵集中选择相应的候选矩阵作为当前校验矩阵,记录所需修改码字数最少的若干组结果,所述的每一组结果均包括该结果的码字修改量、候选矩阵索引及其对应的载秘码字分组,并从所得的若干组结果中,从码字修改量最少的结果中选择候选矩阵索引最小的结果作为最佳结
果,将最佳结果的候选矩阵索引记为Ibest
i
,将最终结果里的载秘码字分组记为FINALSTEGO
i
;步骤A14,重复执行步骤A10

步骤A13,直至将所有待隐藏信息嵌入载体码字中;步骤A15,使用protobuf对所有码字分组的最佳校验矩阵的索引值Ibest
i
进行序列化处理,将NB个Ibest的序列化结果记为SA,将SA中包含的码字数记为SALEN;步骤A16,构造标记信息SF,SF包含SALEN+2个码字,分为3部分,第1部分长度为1个码字,用于存储NB的值,第2部分的长度为1个码字,用于存储NR的值,第3部分的长度为SALEN个码字,用于存储序列化后的最佳矩阵索引值SA,其中,SALEN≤2*NB;步骤A17,生成载秘码字,将预留的用于隐藏标记信息的码字数据直接替换为标记信息,即将载体码字的前SALEN+2个码字替换为SF,之后将载体码字的后NCW个码字依次替换为FINALSTEGO
i
所表示的码字数据,i=1,2,...,NCW,完成替换操作后得到的即为载秘码字数据;步骤A18,将载秘码字块的顺序调整为与原始载体码字的顺序相同,之后依照二维码标准,根据载秘码字生成二维码图像并反回给用户。2.如权利要求1所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤A8的具体内容是,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLEN
i
降序进行纵向排列,每个码字块占一行,按列选取前NTCW个码字作为载体码字,即先从排好序的码字块的第一列自上而下选择载体码字,再从排好序的码字块的第二列自上而下选择载体码字,直至选取到足够的载体码字。3.如权利要求1所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤A10的具体过程是:

对每个载体码字分组中的各个码字进行纵向排列,得到对应的码字列向量;

再将码字列向量中的码字数据转为二进制序列,得到对应的码字矩阵;

按照倒N字形结构的顺序依次从码字矩阵中选择比特数据构造最终的二进制载体数据;

将从码字矩阵中选取的数据按选取顺序排列成一个列向量,记为COVER
i
,i表示所得到的数据是对码字分组SUBCW
i
重构后得到的最终的二进制载体数据。4.如权利要求1所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤A12的具体过程是:

对校验矩阵H进行列变换,每1种列变化对应1个候选矩阵,得到候选矩阵集合,并对所有可能的矩阵进行编号,以候选矩阵在候选矩阵集中的序号作为候选矩阵在候选矩阵集合中的索引;

对COVER
i
的前第一设定数值个比特数据按组进行分块,i表示当前正在嵌入的是第i个待隐藏信息分组的数据,用表示COVER
i
的第j个第一设定数值比特数据块;

对SUBSB
i
按每第二设定数值个比特数数据为一组进行分块,i表示当前的待隐藏信息是第i个待隐藏信息分组的数据,用表示SUBSB<...

【专利技术属性】
技术研发人员:陈明志翁才杰饶庆裕张瑞姚宏玮郑绍华许春耀潘仰清钟必胜
申请(专利权)人:北卡科技有限公司
类型:发明
国别省市:

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

1