CN116595948A - 一种基于(7,4)汉明码的信息嵌入及提取方法 - Google Patents
一种基于(7,4)汉明码的信息嵌入及提取方法 Download PDFInfo
- Publication number
- CN116595948A CN116595948A CN202310566002.6A CN202310566002A CN116595948A CN 116595948 A CN116595948 A CN 116595948A CN 202310566002 A CN202310566002 A CN 202310566002A CN 116595948 A CN116595948 A CN 116595948A
- Authority
- CN
- China
- Prior art keywords
- information
- codeword
- carrier
- data
- code word
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 239000011159 matrix material Substances 0.000 claims abstract description 87
- 238000012937 correction Methods 0.000 claims description 34
- 239000013598 vector Substances 0.000 claims description 23
- VEUMANXWQDHAJV-UHFFFAOYSA-N 2-[2-[(2-hydroxyphenyl)methylideneamino]ethyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCN=CC1=CC=CC=C1O VEUMANXWQDHAJV-UHFFFAOYSA-N 0.000 claims description 18
- 238000000605 extraction Methods 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 239000003607 modifier Substances 0.000 claims description 6
- 208000032921 susceptibility to 1 systemic lupus erythematosus with nephritis Diseases 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006854 communication Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开一种基于(7,4)汉明码的信息嵌入及提取方法,根据二维码码字特征和(7,4)汉明码隐写技术的特点,设计作为隐写载体的二维码码字的重构策略,结合校验矩阵优化,在不改变二维码可修改码字数的前提下,将信息隐藏容量提升到原来的两倍以上,使其满足实际应用需求。此种技术方案能够提升以二维码图像为载体的信息隐藏容量。
Description
技术领域
本发明属于加密通信技术领域,特别涉及一种基于(7,4)汉明码的信息嵌入方法及信息提取方法。
背景技术
在互联网开放共享环境下,为保障隐私等敏感信息传递的安全性,通常采用加密手段保护消息内容,但同时也容易暴露秘密通信过程。隐写术可隐藏通信过程本身,用其传递敏感信息,有助于增强敏感信息在公共信道传输的安全性。
二维码作为一种重要的信息传递载体已被广泛应用,二维码图像容错率强、掩蔽效果好、传递渠道广,是信息隐藏的天然良载体,但受限于可修改码字数,隐藏容量难以满足实际应用需求,有待改进,本案由此产生。
发明内容
本发明的目的,在于提供一种基于(7,4)汉明码的信息嵌入及提取方法,能够提升以二维码图像为载体的信息隐藏容量。
为了达成上述目的,本发明的解决方案是:
一种基于(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表示码字块数,用CWBi表示第i个码字块,用CWBLENi表示第i个码字块的码字数;
步骤A7,计算嵌入待隐藏信息和标记信息所需的载体码字总数NTCW,所需的载体码字总数NTCW=NCW+NMCW;
步骤A8,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLENi降序进行纵向排列,每个码字块占一行,按列选取前NTCW个码字作为载体码字,直至选取到足够的载体码字;
步骤A9,将所选取的NTCW个载体码字的后NCW个码字按组划分为NB个载体码字分组,用SUBCWi表示第i个载体码字分组;
步骤A10,对每个载体码字分组进行重构,获得用于嵌入待隐藏信息的最终载体数据;
步骤A11,按组对待隐藏信息的二进制序列SB划分为NB个分组,用SUBSBi表示第i个待隐藏信息分组,同时记录最后一个分组的实际信息比特数,将最后一个分组的实际信息比特数记为NR;
步骤A12,将第i个待隐藏信息分组数据嵌入到对应的最终二进制载体数据中,获得载秘载体数;
步骤A13,重复执行步骤A12,每轮迭代以迭代次数作为候选矩阵索引从候选矩阵集中选择相应的候选矩阵作为当前校验矩阵,记录所需修改码字数最少的若干组结果,所述的每一组结果均包括该结果的码字修改量、候选矩阵索引及其对应的载秘码字分组,并从所得的若干组结果中,从码字修改量最少的结果中选择候选矩阵索引最小的结果作为最佳结果,将最佳结果的候选矩阵索引记为Ibesti,将最终结果里的载秘码字分组记为FINALSTEGOi;
步骤A14,重复执行步骤A10-步骤A13,直至将所有待隐藏信息嵌入载体码字中;
步骤A15,使用protobuf对所有码字分组的最佳校验矩阵的索引值Ibesti进行序列化处理,将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个码字依次替换为FINALSTEGOi所表示的码字数据,i=1,2,...,NCW,完成替换操作后得到的即为载秘码字数据;
步骤A18,将载秘码字块的顺序调整为与原始载体码字的顺序相同,之后依照二维码标准,根据载秘码字生成二维码图像并反回给用户。
一种基于(7,4)汉明码的信息提取方法,包括如下步骤:
步骤B1,对于接收到的含秘二维码图像,首先依照二维码标准对二维码图像进行解析,获得二维码的纠错等级QRLEVEL'和码字序列,所述码字序列由多个码字块构成,用NCWB'表示码字块数,用CWBi'表示第i个码字块,用CWBLENi'表示第i个码字块的码字数;
步骤B2,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLENi'降序进行纵向排列,每个码字块占一行,沿纵向读取第一列的第一个码字的值,获得秘密信息分组数NB',沿纵向读取第一列的第二个码字的值,获得最后一个秘密信息分组中的秘密信息比特数NR';
步骤B3,根据获得的秘密信息分组数NB',计算载秘码字总数NTCW':NTCW'=NCW'+NMCW',其中,NCW'=10*NB',NMCW'=2*NB'+2;
步骤B4,对步骤B2排序得到的码字块,按列选取前NTCW'个码字,直至选取到NTCW'个码字;
步骤B5,从步骤B4所选取的NTCW'个码字的第3个码字开始进行protobuf反序列化处理,即先读1个字节,如果该字节的高位第1个比特为1,则继续读;如果为0,则停止,移除每个字节的第1个比特,逆置剩余的比特分组,重新组合后得到原始的数据,获得NB'个最佳矩阵的索引值,用Ibesti'表示第i个最佳矩阵的索引值,若无法正确提取出NB'个索引值,则返回标记信息提取失败的报警信息;
步骤B6,将所选取的NTCW'个码字的后NCW'个码字按每10个码字为一组划分为NB'个码字分组,用SUBCWi'表示第i个码字分组;
步骤B7,对每个载体码字分组进行重构,获得用于嵌入待隐藏信息的最终载体数据;
步骤B8,将从码字矩阵中选取的数据按选取顺序排列成一个列向量,记为COVERi',i表示所得到的数据是对第i个码字分组SUBCWi'重构后得到的二进制含秘载体数据;
步骤B9,对校验矩阵H进行列变换,得到候选矩阵集合;
步骤B10,提取隐藏在第i个含秘载体数据分组中的秘密信息;
步骤B11,重复执行步骤B10,直至将所有的秘密信息提取出来,将SMSGi按序排列i=1,2,...,NB',并转化为码字序列,获得秘密信息码字并将其记为FINALSMSG;
步骤B12,根据二维码的纠错等级QRLEVEL'的一半纠错能力对秘密信息码字数据FINALSMSG进行RS译码,若能成功译码,则秘密信息提取成功,返回译码结果,否则返回秘密信息提取失败的报警信息。
采用上述方案后,本发明根据二维码码字特征和(7,4)汉明码隐写技术的特点,设计作为隐写载体的二维码码字的重构策略,结合校验矩阵优化,在不改变二维码可修改码字数的前提下,将信息隐藏容量提升到原来的两倍以上,使其满足实际应用需求。
附图说明
图1是本发明信息嵌入的流程图;
图2是本发明信息提取的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
如图1所示,本发明提供一种基于(7,4)汉明码的信息嵌入方法,包括如下步骤:
步骤A1,依据二维码编码标准,根据用于生成二维码的信息MSG和二维码的纠错等级QRLEVEL,计算得到拟生成的二维码的纠错码字数NE;并根据二维码的纠错等级QRLEVEL的一半纠错能力对拟隐藏到二维码图像中的秘密信息SECRET进行RS编码,得到待隐藏信息的码字数SLEN1;
我们知道,二维码有4个纠错等级,对应的纠错能力由低到高依次为可纠正7%、15%、25%、30%左右的码字错误,本实施例中所述根据二维码的纠错等级QRLEVEL的一半纠错能力对秘密信息进行RS编码,即将作为载体的二维码可纠正的错误码字比例的一半,作为待隐藏信息可纠正的码字错误比例,对秘密信息进行RS编码,例如二维码的纠错能力为可纠正30%的码字错误,则以使待隐藏信息可纠正15%左右的码字错误为目标,对秘密信息进行RS编码。
步骤A2,计算嵌入待隐藏信息所需的载体码字数NCW,NCW=10*NB,NB为根据待隐藏信息的二进制比特数(记为SBLEN)计算得到的嵌入秘密信息所需的载体码字分组数,其中/>表示向上取整运算,每个载体码字分组包含10个码字,每个载体码字分组可嵌入33比特待隐藏信息;
步骤A3,计算嵌入待隐藏信息所需的标记信息码字数NMCW:NMCW=2*NB+2;
步骤A4,判断经RS编码后得到的待隐藏信息的码字数SLEN1与嵌入待隐藏信息所需的标记信息码字数NMCW之和是否大于即将生成的二维码的纠错码字数NE的一半,若则不再执行后续操作,并返回嵌入容量不足的报警信息,若则继续执行后续操作;
步骤A5,将步骤A1中根据二维码的纠错等级QRLEVEL的一半纠错能力对秘密信息SECRET进行RS编码后得到待隐藏信息转为二进制序列SB,将待隐藏信息的二进制比特数记为SBLEN;
步骤A6,依照二维码标准,根据MSG、纠错等级QRLEVEL生成即将生成的二维码的最终码字序列,最终码字序列由多个码字块构成,每个码字块包含多个数据码字和对应的纠错码字,用NCWB表示码字块数,用CWBi表示第i个码字块,用CWBLENi表示第i个码字块的码字数;
步骤A7,计算嵌入待隐藏信息和标记信息所需的载体码字总数NTCW,所需的载体码字总数NTCW=NCW+NMCW;
步骤A8,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLENi降序进行纵向排列,每个码字块占一行,按列选取前NTCW个码字作为载体码字,即先从排好序的码字块的第一列自上而下选择载体码字,再从排好序的码字块的第二列自上而下选择载体码字,直至选取到足够的载体码字;
步骤A9,将所选取的NTCW个载体码字的后NCW个码字按每10个码字为一组划分为NB个载体码字分组,用SUBCWi表示第i个载体码字分组;
步骤A10,对每个载体码字分组进行重构,获得用于嵌入待隐藏信息的最终载体数据,具体操作如下:
①对每个载体码字分组中的10个码字进行纵向排列,得到对应的一个包含10个码字数据的码字列向量;
②再将码字列向量中的码字数据转为二进制序列,得到对应的一个大小为10×8的码字矩阵;
③按照倒N字形结构的顺序依次从码字矩阵中选择比特数据构造最终的二进制载体数据,即先自上而下选取码字矩阵的1列元素,再自下而上选取码字矩阵的下一列元素,重复上述操作直至8列元素均被选取完;
④将从码字矩阵中选取的数据按选取顺序排列成一个包含80个二进制数据的列向量,记为COVERi,i表示所得到的数据是对码字分组SUBCWi重构后得到的最终的二进制载体数据。
步骤A11,按每33比特数据为一组对待隐藏信息的二进制序列SB划分为NB个分组,用SUBSBi表示第i个待隐藏信息分组,同时记录最后一个分组的实际信息比特数,将最后一个分组的实际信息比特数记为NR;
步骤A12,将第i个待隐藏信息分组数据嵌入到对应的最终二进制载体数据中,获得载秘载体数据,具体操作如下:
①对校验矩阵H进行列变换,每1种列变化对应1个候选矩阵,得到由H的5040种不重复的列变换构成的候选矩阵集合,即候选矩阵集合包含5040个候选矩阵,并对所有可能的矩阵进行编号,以候选矩阵在候选矩阵集中的序号作为候选矩阵在候选矩阵集合中的索引。其中候选矩阵共有5040个是因为校验矩阵H的大小为3行7列,它的所有可能列变换数为7的阶乘,也就是5040种,校验矩阵H的具体形式如下:
②对COVERi的前77比特数据按每7比特为一组进行分块,i表示当前正在嵌入的是第i个待隐藏信息分组的数据,用表示COVERi的第j个7比特数据块;
③对SUBSBi按每3比特数数据为一组进行分块,i表示当前的待隐藏信息是第i个待隐藏信息分组的数据,用表示SUBSBi的第j个3比特数据块;
④根据候选校验矩阵Hk计算在载体数据中嵌入待隐藏信息/>需对进行修改的位置/>具体计算方法如下:
其中,mod(a,b)表示将a对b取余运算,表示异或运算,*表示矩阵与向量的乘积,为包含7比特数据的列向量,/>为包含3比特数据的列向量。
⑤若对/>的第/>个元素取反得到的结果就是载秘数据/>若则直接令/> 表示在第i个载体载体码字分组的第j个分块中嵌入第i个待隐藏信息分组的的第j个分块数据得到的载秘数据;
⑥重复上述步骤②-⑤,直至遍历完SUBSBi的所有分块,得到载秘数据STEGOi;
⑦计算在第i个载体码字分组SUBCWi中嵌入待隐藏信息SUBSBi,需对载体码字SUBCWi修改的码字数,具体操作如下:
a.用追加的方式将COVERi的末尾3比特数据添加到STEGOi尾部;
b.根据步骤A10的载体码字分组进行重构方法的逆过程,对STEGOi进行处理得到由10个载秘码字构成的载秘码字分组SCWi;
c.根据载体码字分组SUBCWi和载秘码字分组SCWi计算出嵌入待隐藏信息分组SUBSBi需对载体码字进行修改的码字数DCWi;
步骤A13,重复执行步骤A125040次,每轮迭代以迭代次数作为候选矩阵索引从候选矩阵集中选择相应的候选矩阵作为当前校验矩阵,记录所需修改码字数最少的20组结果,所述的每一组结果均包括该结果的码字修改量、候选矩阵索引及其对应的载秘码字分组,并从所得的20组结果中,从码字修改量最少的结果中选择候选矩阵索引最小的结果作为最佳结果,将最佳结果的候选矩阵索引记为Ibesti,将最终结果里的载秘码字分组记为FINALSTEGOi;
步骤A14,重复执行步骤A10-步骤A13,直至将所有待隐藏信息嵌入载体码字中;
步骤A15,使用protobuf对所有码字分组的最佳校验矩阵的索引值Ibesti进行序列化处理,具体操作为使用每个字节的第1位来标识是否需要继续向后读,每个字节低7位用于实际的编码,将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个码字依次替换为FINALSTEGOi所表示的码字数据,i=1,2,...,NCW,完成替换操作后得到的即为载秘码字数据;
步骤A18,使用步骤A8的逆操作将载秘码字块的顺序调整为与原始载体码字的顺序相同,之后依照二维码标准,根据载秘码字生成二维码图像并反回给用户。
如图2所示,本发明还提供一种基于(7,4)汉明码的信息提取方法,包括如下步骤:
步骤B1,对于接收到的含秘二维码图像,首先依照二维码标准对二维码图像进行解析,获得二维码的纠错等级QRLEVEL'和码字序列,所述码字序列由多个码字块构成,用NCWB'表示码字块数,用CWBi'表示第i个码字块,用CWBLENi'表示第i个码字块的码字数;
步骤B2,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLENi'降序进行纵向排列,每个码字块占一行,沿纵向读取第一列的第一个码字的值,获得秘密信息分组数NB',沿纵向读取第一列的第二个码字的值,获得最后一个秘密信息分组中的秘密信息比特数NR';
步骤B3,根据获得的秘密信息分组数NB',计算载秘码字总数NTCW':NTCW'=NCW'+NMCW',其中,NCW'=10*NB',NMCW'=2*NB'+2;
步骤B4,对步骤B2排序得到的码字块,按列选取前NTCW'个码字,即先从排好序的码字块的第一列自上而下选择载体码字,再从排好序的码字块的第二列自上而下选择载体码字,直至选取到NTCW'个码字;
步骤B5,从步骤B4所选取的NTCW'个码字的第3个码字开始进行protobuf反序列化处理,即先读1个字节,如果该字节的高位第1个比特为1,则继续读;如果为0,则停止,移除每个字节的第1个比特,逆置剩余的比特分组,重新组合后得到原始的数据,获得NB'个最佳矩阵的索引值,用Ibesti'表示第i个最佳矩阵的索引值,若无法正确提取出NB'个不大于5040的索引值,则返回标记信息提取失败的报警信息;
步骤B6,将所选取的NTCW'个码字的后NCW'个码字按每10个码字为一组划分为NB'个码字分组,用SUBCWi'表示第i个码字分组;
步骤B7,对每个载体码字分组进行重构,获得用于嵌入待隐藏信息的最终载体数据,具体操作如下:
①对每个载体码字分组中的10个码字进行纵向排列,得到对应的一个包含10个码字数据的码字列向量;
②再将码字列向量中的码字数据转为二进制序列,得到对应的一个大小为10×8的码字矩阵;
③按照倒N字形结构的顺序依次从码字矩阵中选择比特数据构造最终的二进制载体数据,即先自上而下选取码字矩阵的1列元素,再自下而上选取码字矩阵的下一列元素,重复上述操作直至8列元素均被选取完;
步骤B8,将从码字矩阵中选取的数据按选取顺序排列成一个包含80个二进制数据的列向量,记为COVERi',i表示所得到的数据是对第i个码字分组SUBCWi'重构后得到的二进制含秘载体数据;
步骤B9,使用与信息嵌入过程相同的方法对校验矩阵H进行列变换,得到1个包含5040个候选矩阵的候选矩阵集合,及以候选矩阵在候选矩阵集合中的序号表示的候选矩阵的索引,所得候选矩阵集及候选矩阵索引与嵌入过程生成的完全相同;
步骤B10,提取隐藏在第i个含秘载体数据分组中的秘密信息,具体操作如下:
①根据最佳矩阵索引值Ibesti'从候选矩阵集中获得最佳校验矩阵Hi;
②对COVERi'的前77比特数据按每7比特为一组进行分块,i表示当前正在嵌入的是第i个含秘载体数据分组的数据,用表示COVERi'的第j个7比特数据块;
③根据最佳校验矩阵Hi计算在隐藏在含秘载体数据中的秘密信息具体计算方法如下:
其中,mod(a,b)表示将a对b取余运算,*表示矩阵与向量的乘积运算,为包含7比特数据的列向量,/>为包含3比特数据的列向量。
④重复步骤②-③,直至遍历完COVERi'的所有分块,得到秘密信息SMSGi;
步骤B11,重复执行步骤B10,直至将所有的秘密信息提取出来,其中当i=NB'时,秘密信息只取SMSGi的前NR'比特数据,将SMSGi按序排列i=1,2,...,NB',并以每8比特为1个码字转化为码字序列,获得秘密信息码字并将其记为FINALSMSG;
步骤B12,根据二维码的纠错等级QRLEVEL'的一半纠错能力对秘密信息码字数据FINALSMSG进行RS译码,若能成功译码,则秘密信息提取成功,返回译码结果,否则返回秘密信息提取失败的报警信息。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (8)
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表示码字块数,用CWBi表示第i个码字块,用CWBLENi表示第i个码字块的码字数;
步骤A7,计算嵌入待隐藏信息和标记信息所需的载体码字总数NTCW,所需的载体码字总数NTCW=NCW+NMCW;
步骤A8,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLENi降序进行纵向排列,每个码字块占一行,按列选取前NTCW个码字作为载体码字,直至选取到足够的载体码字;
步骤A9,将所选取的NTCW个载体码字的后NCW个码字按组划分为NB个载体码字分组,用SUBCWi表示第i个载体码字分组;
步骤A10,对每个载体码字分组进行重构,获得用于嵌入待隐藏信息的最终载体数据;
步骤A11,按组对待隐藏信息的二进制序列SB划分为NB个分组,用SUBSBi表示第i个待隐藏信息分组,同时记录最后一个分组的实际信息比特数,将最后一个分组的实际信息比特数记为NR;
步骤A12,将第i个待隐藏信息分组数据嵌入到对应的最终二进制载体数据中,获得载秘载体数;
步骤A13,重复执行步骤A12,每轮迭代以迭代次数作为候选矩阵索引从候选矩阵集中选择相应的候选矩阵作为当前校验矩阵,记录所需修改码字数最少的若干组结果,所述的每一组结果均包括该结果的码字修改量、候选矩阵索引及其对应的载秘码字分组,并从所得的若干组结果中,从码字修改量最少的结果中选择候选矩阵索引最小的结果作为最佳结果,将最佳结果的候选矩阵索引记为Ibesti,将最终结果里的载秘码字分组记为FINALSTEGOi;
步骤A14,重复执行步骤A10-步骤A13,直至将所有待隐藏信息嵌入载体码字中;
步骤A15,使用protobuf对所有码字分组的最佳校验矩阵的索引值Ibesti进行序列化处理,将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个码字依次替换为FINALSTEGOi所表示的码字数据,i=1,2,...,NCW,完成替换操作后得到的即为载秘码字数据;
步骤A18,将载秘码字块的顺序调整为与原始载体码字的顺序相同,之后依照二维码标准,根据载秘码字生成二维码图像并反回给用户。
2.如权利要求1所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤A8的具体内容是,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLENi降序进行纵向排列,每个码字块占一行,按列选取前NTCW个码字作为载体码字,即先从排好序的码字块的第一列自上而下选择载体码字,再从排好序的码字块的第二列自上而下选择载体码字,直至选取到足够的载体码字。
3.如权利要求1所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤A10的具体过程是:
①对每个载体码字分组中的各个码字进行纵向排列,得到对应的码字列向量;
②再将码字列向量中的码字数据转为二进制序列,得到对应的码字矩阵;
③按照倒N字形结构的顺序依次从码字矩阵中选择比特数据构造最终的二进制载体数据;
④将从码字矩阵中选取的数据按选取顺序排列成一个列向量,记为COVERi,i表示所得到的数据是对码字分组SUBCWi重构后得到的最终的二进制载体数据。
4.如权利要求1所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤A12的具体过程是:
①对校验矩阵H进行列变换,每1种列变化对应1个候选矩阵,得到候选矩阵集合,并对所有可能的矩阵进行编号,以候选矩阵在候选矩阵集中的序号作为候选矩阵在候选矩阵集合中的索引;
②对COVERi的前第一设定数值个比特数据按组进行分块,i表示当前正在嵌入的是第i个待隐藏信息分组的数据,用表示COVERi的第j个第一设定数值比特数据块;
③对SUBSBi按每第二设定数值个比特数数据为一组进行分块,i表示当前的待隐藏信息是第i个待隐藏信息分组的数据,用表示SUBSBi的第j个第二设定数值比特数据块;
④根据候选校验矩阵Hk计算在载体数据中嵌入待隐藏信息/>需对进行修改的位置/>
⑤若对/>的第/>个元素取反得到的结果就是载秘数据/>若则直接令/> 表示在第i个载体载体码字分组的第j个分块中嵌入第i个待隐藏信息分组的的第j个分块数据得到的载秘数据;
⑥重复上述步骤②-⑤,直至遍历完SUBSBi的所有分块,得到载秘数据STEGOi;
⑦计算在第i个载体码字分组SUBCWi中嵌入待隐藏信息SUBSBi,需对载体码字SUBCWi修改的码字数,具体操作如下:
a.用追加的方式将COVERi的末尾第二设定数值个比特数据添加到STEGOi尾部;
b.对STEGOi进行处理得到由载秘码字构成的载秘码字分组SCWi;
c.根据载体码字分组SUBCWi和载秘码字分组SCWi计算出嵌入待隐藏信息分组SUBSBi需对载体码字进行修改的码字数DCWi。
5.如权利要求1所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤A15中,使用protobuf对所有码字分组的最佳校验矩阵的索引值Ibesti进行序列化处理,具体操作为使用每个字节的第1位来标识是否需要继续向后读,每个字节低7位用于实际的编码,将NB个Ibest的序列化结果记为SA,将SA中包含的码字数记为SALEN。
6.一种基于(7,4)汉明码的信息提取方法,其特征在于包括如下步骤:
步骤B1,对于接收到的含秘二维码图像,首先依照二维码标准对二维码图像进行解析,获得二维码的纠错等级QRLEVEL'和码字序列,所述码字序列由多个码字块构成,用NCWB'表示码字块数,用CWBi'表示第i个码字块,用CWBLENi'表示第i个码字块的码字数;
步骤B2,以每个码字块包含的码字数为依据,对码字块按其包含的码字数CWBLENi'降序进行纵向排列,每个码字块占一行,沿纵向读取第一列的第一个码字的值,获得秘密信息分组数NB',沿纵向读取第一列的第二个码字的值,获得最后一个秘密信息分组中的秘密信息比特数NR';
步骤B3,根据获得的秘密信息分组数NB',计算载秘码字总数NTCW':NTCW'=NCW'+NMCW',其中,NCW'=10*NB',NMCW'=2*NB'+2;
步骤B4,对步骤B2排序得到的码字块,按列选取前NTCW'个码字,直至选取到NTCW'个码字;
步骤B5,从步骤B4所选取的NTCW'个码字的第3个码字开始进行protobuf反序列化处理,即先读1个字节,如果该字节的高位第1个比特为1,则继续读;如果为0,则停止,移除每个字节的第1个比特,逆置剩余的比特分组,重新组合后得到原始的数据,获得NB'个最佳矩阵的索引值,用Ibesti'表示第i个最佳矩阵的索引值,若无法正确提取出NB'个索引值,则返回标记信息提取失败的报警信息;
步骤B6,将所选取的NTCW'个码字的后NCW'个码字按每10个码字为一组划分为NB'个码字分组,用SUBCWi'表示第i个码字分组;
步骤B7,对每个载体码字分组进行重构,获得用于嵌入待隐藏信息的最终载体数据;
步骤B8,将从码字矩阵中选取的数据按选取顺序排列成一个列向量,记为COVERi',i表示所得到的数据是对第i个码字分组SUBCWi'重构后得到的二进制含秘载体数据;
步骤B9,对校验矩阵H进行列变换,得到候选矩阵集合;
步骤B10,提取隐藏在第i个含秘载体数据分组中的秘密信息;
步骤B11,重复执行步骤B10,直至将所有的秘密信息提取出来,将SMSGi按序排列i=1,2,...,NB',并转化为码字序列,获得秘密信息码字并将其记为FINALSMSG;
步骤B12,根据二维码的纠错等级QRLEVEL'的一半纠错能力对秘密信息码字数据FINALSMSG进行RS译码,若能成功译码,则秘密信息提取成功,返回译码结果,否则返回秘密信息提取失败的报警信息。
7.如权利要求6所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤B7的具体过程是:
①对每个载体码字分组中的10个码字进行纵向排列,得到对应的一个包含10个码字数据的码字列向量;
②再将码字列向量中的码字数据转为二进制序列,得到对应的一个大小为10×8的码字矩阵;
③按照倒N字形结构的顺序依次从码字矩阵中选择比特数据构造最终的二进制载体数据,即先自上而下选取码字矩阵的1列元素,再自下而上选取码字矩阵的下一列元素,重复上述操作直至8列元素均被选取完。
8.如权利要求6所述的基于(7,4)汉明码的信息嵌入方法,其特征在于:所述步骤B10的具体过程是:
①根据最佳矩阵索引值Ibesti'从候选矩阵集中获得最佳校验矩阵Hi;
②对COVERi'的前77比特数据按每7比特为一组进行分块,i表示当前正在嵌入的是第i个含秘载体数据分组的数据,用表示COVERi'的第j个7比特数据块;
③根据最佳校验矩阵Hi计算在隐藏在含秘载体数据中的秘密信息/>
④重复步骤②-③,直至遍历完COVERi'的所有分块,得到秘密信息SMSGi。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310566002.6A CN116595948A (zh) | 2023-05-19 | 2023-05-19 | 一种基于(7,4)汉明码的信息嵌入及提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310566002.6A CN116595948A (zh) | 2023-05-19 | 2023-05-19 | 一种基于(7,4)汉明码的信息嵌入及提取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116595948A true CN116595948A (zh) | 2023-08-15 |
Family
ID=87598714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310566002.6A Pending CN116595948A (zh) | 2023-05-19 | 2023-05-19 | 一种基于(7,4)汉明码的信息嵌入及提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116595948A (zh) |
-
2023
- 2023-05-19 CN CN202310566002.6A patent/CN116595948A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Song et al. | Codes with run-length and GC-content constraints for DNA-based data storage | |
KR102269463B1 (ko) | 정보의 코딩 및 디코딩 방법 | |
CN110768785B (zh) | 一种编、解码方法、相关装置及计算机设备 | |
US20120023362A1 (en) | System and method for exact regeneration of a failed node in a distributed storage system | |
CN107798219A (zh) | 将数据进行生物存储并还原的方法 | |
CN109979540A (zh) | 一种dna信息存储编码方法 | |
CN110533572A (zh) | 一种水印嵌入方法、系统及相关装置 | |
CN112016061A (zh) | 一种基于鲁棒水印技术的Excel文档数据保护方法 | |
CN113345521A (zh) | 一种采用大片段dna存储的编码与恢复方法 | |
CN113222159B (zh) | 一种量子态的确定方法及装置 | |
Zhang | Efficient data hiding with plus-minus one or two | |
CN116595948A (zh) | 一种基于(7,4)汉明码的信息嵌入及提取方法 | |
US5954836A (en) | Method and apparatus for pipelined encoding | |
CN116089984B (zh) | 一种用于行政文件的防泄密管理方法及系统 | |
CN110097159B (zh) | 一种基于汉明码的qr码安全认证方法及系统 | |
CN107733441A (zh) | 编码方法及装置、译码方法及装置 | |
CN113222160A (zh) | 一种量子态的转换方法及装置 | |
CN115600627A (zh) | 一种彩色二维码生成方法 | |
CN116187435A (zh) | 基于大小喷泉码及mrc算法利用dna进行信息存储方法及系统 | |
CN113160028B (zh) | 基于彩色字符画的信息隐藏及恢复方法、设备及存储介质 | |
CN115297218A (zh) | 基于哈夫曼编码规则和位置图压缩的可逆数据隐藏方法 | |
CN113687976A (zh) | 面向dna信息存储的编码和解码方法与装置 | |
JPH02246440A (ja) | 符号伝送方法 | |
CN110995288A (zh) | 一种rm码的分析方法和装置 | |
CN105871508B (zh) | 一种网络编解码方法及系统 |
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 |