CN103605950B - 一种可信二维码中签名的隐藏方法及系统 - Google Patents

一种可信二维码中签名的隐藏方法及系统 Download PDF

Info

Publication number
CN103605950B
CN103605950B CN201310599078.5A CN201310599078A CN103605950B CN 103605950 B CN103605950 B CN 103605950B CN 201310599078 A CN201310599078 A CN 201310599078A CN 103605950 B CN103605950 B CN 103605950B
Authority
CN
China
Prior art keywords
quick response
response code
signature
data
length
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
CN201310599078.5A
Other languages
English (en)
Other versions
CN103605950A (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.)
Shenzhen Fully Homomorphic Encryption Science & Technology Co Ltd
Original Assignee
Guangxi 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 Guangxi University filed Critical Guangxi University
Priority to CN201310599078.5A priority Critical patent/CN103605950B/zh
Publication of CN103605950A publication Critical patent/CN103605950A/zh
Application granted granted Critical
Publication of CN103605950B publication Critical patent/CN103605950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种可信二维码中签名的隐藏方法及系统,该隐藏方法包括签名隐藏步骤:信息m经hash得h(m),Ks和Kp是私钥和公钥;用Ks加密h(m)得签名D;编码m和D得m的数据位流Datam和D的数据位流DataD,数据位流由数据码字和纠错码字构成;Datam排布到数据码字和纠错码字区域,DataD排布在签名隐藏区域;签名识别步骤:扫描到终止符时得m0;扫描终止符后的数据得D;用Kp解密D得h(m);对m0用hash得h(m0),对比h(m)和h(m0)可验证可信性。本发明的有益效果是可信措施不干扰发布的信息,保证了可信二维码的可用性,对设备无特殊要求。

Description

一种可信二维码中签名的隐藏方法及系统
技术领域
本发明涉及二维码技术领域,尤其涉及一种可信二维码中签名的隐藏方法及系统。
背景技术
伴随着带有摄像功能的手机使用日益普及,二维码技术得到了越来越广泛的应用。同时,二维码的可信问题也暴露出来,其中主要有三种:其一是二维码版权,攻击者以用户的名义发布二维码;其二是二维码信息可信,扫描者不能确定二维码的信息是否可信;其三是二维码信息完整,用户无法确定扫描二维码所得到的信息是否完整或未被修改。而对于二维码来说,可信技术是二维码的安全可靠保障措施,其主要作用是防止二维码失去可信性。
现有的可信二维码技术有数字水印,公钥密码体制,信息隐藏。
采用数字水印的技术,提出了一种将二维码作为水印嵌入到新的信息二维码中的方案,其思路是先将标识信息生成二维码,作为水印图像,然后通过小波变换,分离出载体二维码图片的中频系数,再通过DCT扩频,将水印信息嵌入到载体二维码图片中。用户通过扫描设备提取载体二维码图片上的水印信息,将水印信息通过特定算法还原成载有标识信息的水印二维码图片,然后提取并验证该水印二维码中的标识信息,依此来实现二维码可信的目的。
利用公钥密码体制技术,提出了一种基于PKI的可信二维码方案,该方案将输入的信息通过发布者的私钥加密,然后将密文生成二维码;译码、解码的时候用户通过扫描其他用户发布的二维码,获取密文信息,然后从CA中心查询发布者的公钥,对密文信息解密,实现了对信息发布者的认证。二维码加密/解密方法包括获得二维码原始信息,将二维码原始信息与实时时钟信息用EK加密密钥进行ECC加密运算,得到一个随时间跳变的加密数据;将得到的加密数据生成二维码图形;解码时,读取二维码,得到随时间跳变的加密数据;对得到的加密数据,使用DK解密密钥进行ECC解密运算,得到解密信息;根据二维码原始数据进行算法加密,生成随时间跳变的二维码,是的用户每次得到的二维码查询都是不同的,减少了验证步骤,保证二维码的安全性和不重复性。
使用信息隐藏的方法,提出了一种具有隐藏码的二维码,该方案是将若干供识别的单元色块按照一定的规律无间隙地排列,将隐藏码设置于所述单元信息块中,单元信息块与隐藏码具有不同的色度,通过切换摄像机具有的高低解析度以及设定的门限值,将隐藏码识别出来。
目前的技术存在如下缺陷:
1、数字水印可信二维码方案对解码设备的要求高,限制了方案的应用范围;
数字水印生成与提取时运算量大,在将数字水印嵌入到二维码图片以及从二维码中提取水印信息的过程中,系统对计算资源的需求大;同时,由于水印信息是嵌在图片DCT域的中低频系数中,所以如果用拍照扫描的方式,则无法实现水印提取,这大大限制了数字水印方案的应用范围。
2、公钥密码体制方案和信息隐藏方案的可信措施都在编码和解码过程中,一定程度上影响用户发布的信息,一旦脱离了专有的扫描设备,则二维码就失去了其可用性。
与数字水印可信二维码方案不同,公钥密码体制方案和信息隐藏的可信措施在二维码的生成过程中,与用户发布的信息发生作用或产生干扰,如公钥密码体制,通过用户的私钥加密,而当扫描时无法获取发布者的公钥,则二维码中的信息不具有可读性;信息隐藏的可信措施则是在二维码图片上通过加入新的色块,这使得一旦扫描设备不可用,则用户的二维码随即失去可用性。
发明内容
为了解决现有技术中的问题,本发明提供了一种可信二维码中签名的隐藏方法。
本发明提供了一种可信二维码中签名的隐藏方法,包括如下步骤:
签名的隐藏步骤:h(m)是用户发布的信息m经过hash函数生成的消息摘要,Ks和Kp是公钥算法生成的有效私钥与公钥;用自己的私钥Ks加密消息摘要h(m),得到签名D;按照二维码编码规则,编码用户发布的信息m和签名D,分别得到信息m的数据位流Datam和签名D的数据位流DataD,数据位流包含数据码字和纠错码字;按照二维码编码规则,分别选择数据位流Datam和DataD的二维码码字排布版本,分别记为Vm和VD;选择一个大版本V的二维码,该二维码的编码容量大于或等于Vm和VD之和,版本V作为隐藏签名的二维码的编码版本;按照二维码编码规则,依次将信息m的数据位流Datam排布到数据码字和纠错码字区域,将签名D的数据位流DataD排布在签名隐藏区域,得到隐藏签名的二维码;
签名的识别步骤:用户扫描具有签名的二维码,按照二维码解码规则,当第一次检测到编码终止符时,则停止解码,得到信息m0;系统对终止符后的数据进行检测,若有数据,则继续解码,得到签名D,否则,解码结束;用发布者Kp解密D得到消息摘要h(m);通过对扫描得到的信息m0采用相同的hash函数,得到消息摘要h(m0),对比h(m)和h(m0)验证签名D的合法性。
作为本发明的进一步改进,用户发布的信息需要经过如下步骤处理:
首先,分析输入数据,确定其内容并且选择合适的模式对序列进行编码;
然后,按照分析的结果对输入数据进行编码,得到数据位流;
然后,对得到的数据位流进行纠错编码;
最后,在二维码矩阵中构造信息的最终码字序列。
作为本发明的进一步改进,按照二维码解码标准进行解码时,首先,通过获取二维码的版本与纠错等级,确定其编码容量;然后,根据字节流中的信息长度,读取所发布的信息,直到信息的编码结束符;最后,检测后续字节流,按照相同的解码规则,读取编码在编码结束符后的填充区中的内容,这样就完成了用户发布的信息和隐藏于该二维码中的签名信息的识别。
作为本发明的进一步改进,在纠错级别为E,在二维码版本集合Sv中,用户编码信息m所需要的最小版本为Vm;编码签名D时,需要的最小版本为VD,隐藏签名的二维码版本为V;(V,E)表示未承载信息的初始二维码,(m,Vm,E)表示编码信息m生成的二维码,隐藏有签名的二维码为(mD,V,E);二维码编码规则中编码结束标识位EndMark;签名D的隐藏过程如下:
步骤1:按照二维码编码规则,将信息m依次拆分为不同的模式段m1,m2,……,mn
步骤2:按照对应的模式编码规则,对各模式段编码,得到码字序列m1’,m2’,……,mn’
步骤3:将步骤2中得到的码字序列合并为数据码字m’,长度为lengthm’;依据纠错等级E,对m’进行纠错编码,得到纠错码字em,长度为lengthe;此时待排布到二维码中的数据位流Datam=m’+em+EndMark,长度为lengthm’+lengthe+lengthEndMark
步骤4:按照二维码编码规则,在版本集合Sv范围内,从版本1开始在二维码上对步骤3中得到的Datam进行排布,当Datam第一次被完整排满,记下此时的版本数,此版本数记为Vm
步骤5:重复步骤1~4,对签名D编码,得到签名D待排布到二维码图中的数据DataD=D’+eD+EndMark,长lengthD’+lengthe’+lengthEndMark,版本为VD
步骤6:按照二维码编码规则,选择版本V的二维码(V,E)作为隐藏签名的二维码,此二维码编码容量为CC,编码完信息m剩余的填充区冗余容量为RC;其中:
CC≧(lengthm’+lengthe+lengthEndMark)+(lengthD’+lengthe’+lengthEndMark);
RC≧(lengthD’+lengthe’+lengthEndMark);
步骤7:按照二维码编码规则,在(V,E)上对信息m的编码数据Datam进行排布;在EndMark+1位开始继续对签名D的编码数据DataD进行排布,直到全部排布为止,得到隐藏签名的二维码(mD,V,E)。
作为本发明的进一步改进,用户扫描隐藏有签名的二维码(mD,V,E),根据二维码的解码标准,验证过程如下:
步骤1:按照二维码解码规则,扫描得到二维码版本V和纠错等级E,对二维码中的数据进行解码,直到EndMark出现,解码暂停,得到信息m;
步骤2:判断EndMark标志后面是否还有数据:若没有,则解码结束;否则从EndMark+1位开始,对后续数据继续解码,得到签名D。
本发明还提供了一种可信二维码中签名的隐藏系统,包括:
签名的隐藏单元:h(m)是用户发布的信息m经过hash函数生成的消息摘要,Ks和Kp是公钥算法生成的有效私钥与公钥;用自己的私钥Ks加密消息摘要h(m),得到签名D;按照二维码编码规则,编码用户发布的信息m和签名D,分别得到信息m的数据位流Datam和签名D的数据位流DataD,数据位流包含数据码字和纠错码字;按照二维码编码规则,分别选择数据位流Datam和DataD的二维码码字排布版本,分别记为Vm和VD;选择一个大版本V的二维码,该二维码的编码容量大于或等于Vm和VD之和,版本V作为隐藏签名的二维码的编码版本;按照二维码编码规则,依次将信息m的数据位流Datam排布到数据码字和纠错码字区域,将签名D的数据位流DataD排布在签名隐藏区域,得到隐藏签名的二维码;
签名的识别单元:用户扫描具有签名的二维码,按照二维码解码规则,当第一次检测到编码终止符时,则停止解码,得到信息m0;系统对终止符后的数据进行检测,若有数据,则继续解码,得到签名D,否则,解码结束;用发布者Kp解密D得到消息摘要h(m);通过对扫描得到的信息m0采用相同的hash函数,得到消息摘要h(m0),对比h(m)和h(m0)可验证签名D的合法性。
作为本发明的进一步改进,用户发布的信息需要经过如下模块处理:
分析模块,用于分析输入数据,确定其内容并且选择合适的模式对序列进行编码;
编码模块,用于按照分析的结果对输入数据进行编码,得到数据位流;
纠错模块,用于对得到的数据位流进行纠错编码;
构造模块,用于在二维码矩阵中构造信息的最终码字序列。
作为本发明的进一步改进,按照二维码解码标准进行解码时,首先,通过获取二维码的版本与纠错等级,确定其编码容量;然后,根据字节流中的信息长度,读取所发布的信息,直到信息的编码结束符;最后,检测后续字节流,按照相同的解码规则,读取编码在编码结束符后的填充区中的内容,这样就完成了用户发布的信息和隐藏于该二维码中的签名信息的识别。
作为本发明的进一步改进,在纠错级别为E,在二维码版本集合Sv中,用户编码信息m所需要的最小版本为Vm;编码签名D时,需要的最小版本为VD,隐藏签名的二维码版本为V;(V,E)表示未承载信息的初始二维码,(m,Vm,E)表示编码信息m生成的二维码,隐藏有签名的二维码为(mD,V,E);二维码编码规则中编码结束标识位EndMark;签名D的隐藏过程执行如下模块:
拆分模块,用于按照二维码编码规则,将信息m依次拆分为不同的模式段m1,m2,……,mn
模式段编码模块,用于按照对应的模式编码规则,对各模式段编码,得到码字序列m1’,m2’,……,mn’
综合处理模块,用于将模式段编码模块中得到的码字序列合并为数据码字m’,长度为lengthm’;依据纠错等级E,对m’进行纠错编码,得到纠错码字em,长度为lengthe;此时待排布到二维码中的数据位流Datam=m’+em+EndMark,长度为lengthm’+lengthe+lengthEndMark
排布模块,用于按照二维码编码规则,在版本集合Sv范围内,从版本1开始在二维码上对步骤3中得到的Datam进行排布,当Datam第一次被完整排满,记下此时的版本数,此版本数记为Vm
编码模块,用于对签名D编码,得到签名D待排布到二维码图中的数据DataD=D’+eD+EndMark,长lengthD’+lengthe’+lengthEndMark,版本为VD;
选择模块,用于按照二维码编码规则,选择版本V的二维码(V,E)作为隐藏签名的二维码,此二维码编码容量为CC,编码完信息m剩余的填充区冗余容量为RC;其中:
CC≧(lengthm’+lengthe+lengthEndMark)+(lengthD’+lengthe’+lengthEndMark);
RC≧(lengthD’+lengthe’+lengthEndMark);
获取模块,用于按照二维码编码规则,在(V,E)上对信息m的编码数据Datam进行排布;在EndMark+1位开始继续对签名D的编码数据DataD进行排布,直到全部排布为止,得到隐藏签名的二维码(mD,V,E)。
作为本发明的进一步改进,用户扫描隐藏有签名的二维码(mD,V,E),根据二维码的解码标准,验证过程执行如下模块:
解码模块,用于按照二维码解码规则,扫描得到二维码版本V和纠错等级E,对二维码中的数据进行解码,直到EndMark出现,解码暂停,得到信息m;
判断模块,用于判断EndMark标志后面是否还有数据:若没有,则解码结束;否则从EndMark+1位开始,对后续数据继续解码,得到签名D。
本发明的有益效果是:本发明的二维码中签名的隐藏及识别方法、系统完全依据二维码编码规则,在编码过程中,可信措施不会干扰用户发布的信息,保证了用户二维码的可用性;对设备无特殊要求,通用的具有摄像、拍照功能的设备即可应用。
附图说明
图1是本发明选用较大版本后二维码上的数据码字、纠错码字以及签名隐藏的排布示例图。
具体实施方式
本发明公开了一种可信二维码中签名的隐藏方法,二维码是可以用来发布网址、微博账号、名片等等信息的有效载体。
在可信二维码中签名的隐藏方法中包括:
签名的隐藏步骤:h(m)是用户发布的信息m经过hash函数生成的消息摘要,Ks和Kp是公钥算法生成的有效私钥与公钥;用自己的私钥Ks加密消息摘要h(m),得到签名D;按照二维码编码规则,编码用户发布的信息m和签名D,分别得到信息m的数据位流Datam和签名D的数据位流DataD,数据位流包含数据码字和纠错码字;按照二维码编码规则,分别选择数据位流Datam和DataD的二维码码字排布版本,分别记为Vm和VD;选择一个大版本V的二维码,该二维码的编码容量大于或等于Vm和VD之和,版本V作为隐藏签名的二维码的编码版本;按照二维码编码规则,依次将信息m的数据位流Datam排布到数据码字和纠错码字区域,将签名D的数据位流DataD排布在签名隐藏区域,得到隐藏签名的二维码;
签名的识别步骤:用户扫描具有签名的二维码,按照二维码解码规则,当第一次检测到编码终止符时,则停止解码,得到信息m0;系统对终止符后的数据进行检测,若有数据,则继续解码,得到签名D,否则,解码结束;用发布者Kp解密D得到消息摘要h(m);通过对扫描得到的信息m0采用相同的hash函数,得到消息摘要h(m0),对比h(m)和h(m0)验证签名D的合法性。
基于数字签名的二维码可信性:
h(m)是用户发布的信息m经过安全的hash函数生成的消息摘要。Ks和Kp是公钥算法生成的有效私钥与公钥。用户在发布信息的时候,用自己的私钥Ks加密消息摘要h(m),得到签名D。用户扫描具有签名的二维码,通过查询发布者Kp,验证签名的合法性,并得到消息摘要h(m)。通过对扫描得到的信息m0采用相同的hash函数,得到消息摘要h(m0),对比h(m)和h(m0),从而确定信息m的完整性。将数字签名应用到二维码中,通过验证签名,达到了二维码中信息的不可否认、内容完整以及可信的目的。
编码容量与填充区冗余容量:
在二维码编码的过程中,对用户发布的信息需要经过数据分析、数据编码、纠错编码三步数据处理,本节以QR码编码规则来做说明。
首先,分析输入数据,确定其内容并且选择合适的模式对序列进行编码。从数字模式、字母数字模式、8位字节模式到汉字模式,每种模式的字符所需的位数依次增加。表1列出了QR码中各模式的位流长度计算公式,表2为表1的变量说明,根据表1中的模式位流计算公式,可以计算出不同的模式段的位流长度。
表1QR码模式位流长度计算公式表
表2QR码模式位流长度计算公式变量说明
然后,按照分析的结果对输入数据进行编码。二维码在编码的过程中,会将输入的信息转化为模式+字符计数指示符+数据的形式。以混合模式为例,假设输入为“广西大学:http://210.36.16.35”,则数据编码过程如下:
输入数据:广西大学:http://210.36.16.35
按照二维码编码规则,将用户输入的数据划分成不同的编码模式段:
汉字模式:广西大学8字节模式::http:字母数字模式://210.36.16.35
按照二维码编码规则,将(1)中的模式段转换为二进制:
广西大学:0011101100010011110101011000101100100101000000010000
:http::001110100110100001110100011101000111000000111010
//210.36.16.35:11110111010000010110110000010101000010001101111011000110010011100000010001100
将各模式段字符计数指示符转化为二进制:
汉字模式:4->000001008字节模式:6->00000110字母数字模式:14->000001001
为各模式段加入相应的模式指示符以及字符计数指示符(汉字模式加上中国汉字指示符,对应GB2312的子集指示符为0001)的二进制数据:
汉字模式段:1101000100000100001110110001001111010101100010110010010100000001000
8字节模式段:010000000110001110100110100001110100011101000111000000111010
字母数字模式:001000000100111110111010000010110110000010101000010001101111011000110010011100000010001100
将(4)中得到的各模式段按照用户输入数据的顺序进行组合,即得到待排列到二维码中的数据码字序列,根据表1中的公式计算输入数据编码后的位流长为:
length=(4+4+8+13*4)+(4+8+8*6)+(4+9+11*(14div2)+6*(14mod2))=218(位)
最后,对得到的数据位流进行纠错编码。纠错能力从低到高分为L、M、Q以及H四个等级,纠错等级确定二维码中纠错码字数,纠错码字的位流长度表示为lengthe
用户发布的信息进行以上三步数据处理后,需要在二维码矩阵中构造信息的最终码字序列。其步骤是:根据版本和纠错等级将数据序列分为n块;依次将得到的每一块的数据码字和纠错码字装配成最终的序列,数据块1的码字1,数据块2的码字1,……,数据块n的码字1,数据块1的码字2,数据块2的码字2,……,数据块n的码字2,……,依次排布,直到数据块n的最后码字;随后,纠错块1的码字1,纠错块2的码字1,纠错块n的码字1,……,纠错块1的码字2,纠错块2的码字2,纠错块n的码字2,……,依次排布,直到纠错块n的最后的码字。表3为版本5-H的二维码码字排布表。
表3版本5-H的码字排布
由上文可知表3二维码码字序列为:D1,D12,D23,D35,D2,D13,D24,D36,……D11,D22,D33,D45,D34,D46,E1,E23,E45,E67,E2,E24,E46,E68,……,E22,E44,E66,E88。然后按照二维码编码规则,将码字序列依次排布到二维码矩阵中。图1为版本2-M的二维码上数据码字与纠错码字的排布示例。
便于后文说明,根据二维码编码标准做如下定义:
定义1编码容量二维码除去版本、格式、定位以及矫正等固有信息后,用来承载用户发布的信息的空间,这个空间可以表示为CC。
数据码字与纠错码字在二维码中的排布结束后,可能会有剩余位。假设在纠错等级为E时,编码信息m需要的最小版本是V0,此时的编码容量为CC0,则当在相同的纠错等级E下,选择一个大于V0的版本V1,其编码容量为CC1,则信息m的编码数据在二维码上排布后得到的填充区剩余位大于或等于CC1-CC0。如图1为选用较大版本后二维码上的数据码字和纠错码字排布示例图,深度灰色区域为剩余位,即本文所说的填充区。便于说明填充区的位数,根据二维码编码标准做如下定义:
定义2填充区冗余容量输入信息的数据码字和纠错码字序列在二维码中排布结束后,将剩下的填充区位数称为填充区冗余容量,字母表示为RC。
此时,填充区冗余容量的大小为RC0,且RC0≧CC1-CC0。假设在纠错等级E时编码某一签名需要的最小编码容量是CCD,则当CCD<RC0时,按照二维码编码规则,在编码完信息m后加上编码结束符,在信息m的结束符后的填充区内对签名继续编码。
填充块中的签名隐藏与验证:
按照二维码解码标准进行解码时,首先,通过获取二维码的版本与纠错等级,确定其编码容量;然后,根据字节流中的信息长度,读取所发布的信息,直到信息的编码结束符;最后,检测后续字节流,按照相同的解码规则,读取编码在编码结束符后的填充区中的内容。这样就完成了用户发布的信息和隐藏于该二维码中的签名信息的识别。
纠错级别为E,在二维码版本集合Sv中,用户编码信息m所需要的最小版本为Vm;编码签名D时,需要的最小版本为VD,隐藏签名的二维码版本为V;(V,E)表示未承载信息的初始二维码,(m,Vm,E)表示编码信息m生成的二维码,隐藏有签名的二维码为(mD,V,E);二维码编码规则中编码结束标识位EndMark。签名D的隐藏过程如下:
步骤1:按照二维码编码规则,将信息m依次拆分为不同的模式段m1,m2,……,mn
步骤2:按照对应的模式编码规则,对各模式段编码,得到码字序列m1’,m2’,……,mn’
步骤3:将步骤2中得到的码字序列合并为数据码字m’,长度为lengthm’;依据纠错等级E,对m’进行纠错编码,得到纠错码字em,长度为lengthe;此时待排布到二维码中的数据位流Datam=m’+em+EndMark,长度为lengthm’+lengthe+lengthEndMark
步骤4:按照二维码编码规则,在版本集合Sv范围内,从版本1开始在二维码上对步骤3中得到的Datam进行排布,当Datam第一次被完整排满,记下此时的版本数,此版本数记为Vm
步骤5:重复步骤1~4,对签名D编码,得到签名D待排布到二维码图中的数据DataD=D’+eD+EndMark,长lengthD’+lengthe’+lengthEndMark,版本为VD
步骤6:按照二维码编码规则,选择版本V的二维码(V,E)作为隐藏签名的二维码,此二维码编码容量为CC,编码完信息m剩余的填充区冗余容量为RC。其中
CC≧(lengthm’+lengthe+lengthEndMark)+(lengthD’+lengthe’+lengthEndMark);
RC≧(lengthD’+lengthe’+lengthEndMark)。
步骤7:按照二维码编码规则,在(V,E)上对信息m的编码数据Datam进行排布;在EndMark+1位开始继续对签名D的编码数据DataD进行排布,直到全部排布为止,得到隐藏签名的二维码(mD,V,E)。
用户扫描隐藏有签名的二维码(mD,V,E),根据二维码的解码标准,验证过程如下。
步骤1:按照二维码解码规则,扫描得到二维码版本V和纠错等级E,对二维码中的数据进行解码,直到EndMark出现,解码暂停,得到信息m。
步骤2:判断EndMark标志后面是否还有数据:若没有,则解码结束;否则从EndMark+1位开始,对后续数据继续解码,得到签名D。
本发明还公开了一种可信二维码中签名的隐藏系统,包括:
签名的隐藏单元:h(m)是用户发布的信息m经过hash函数生成的消息摘要,Ks和Kp是公钥算法生成的有效私钥与公钥;用自己的私钥Ks加密消息摘要h(m),得到签名D;按照二维码编码规则,编码用户发布的信息m和签名D,分别得到信息m的数据位流Datam和签名D的数据位流DataD,数据位流包含数据码字和纠错码字;按照二维码编码规则,分别选择数据位流Datam和DataD的二维码码字排布版本,分别记为Vm和VD;选择一个大版本V的二维码,该二维码的编码容量大于或等于Vm和VD之和,版本V作为隐藏签名的二维码的编码版本;按照二维码编码规则,依次将信息m的数据位流Datam排布到数据码字和纠错码字区域,将签名D的数据位流DataD排布在签名隐藏区域,得到隐藏签名的二维码;
签名的识别单元:用户扫描具有签名的二维码,按照二维码解码规则,当第一次检测到编码终止符时,则停止解码,得到信息m0;系统对终止符后的数据进行检测,若有数据,则继续解码,得到签名D,否则,解码结束;用发布者Kp解密D得到消息摘要h(m);通过对扫描得到的信息m0采用相同的hash函数,得到消息摘要h(m0),对比h(m)和h(m0)可验证签名D的合法性。
用户发布的信息需要经过如下模块处理:
分析模块,用于分析输入数据,确定其内容并且选择合适的模式对序列进行编码;
编码模块,用于按照分析的结果对输入数据进行编码,得到数据位流;
纠错模块,用于对得到的数据位流进行纠错编码;
构造模块,用于在二维码矩阵中构造信息的最终码字序列。
按照二维码解码标准进行解码时,首先,通过获取二维码的版本与纠错等级,确定其编码容量;然后,根据字节流中的信息长度,读取所发布的信息,直到信息的编码结束符;最后,检测后续字节流,按照相同的解码规则,读取编码在编码结束符后的填充区中的内容,这样就完成了用户发布的信息和隐藏于该二维码中的签名信息的识别。
在纠错级别为E,在二维码版本集合Sv中,用户编码信息m所需要的最小版本为Vm;编码签名D时,需要的最小版本为VD,隐藏签名的二维码版本为V;(V,E)表示未承载信息的初始二维码,(m,Vm,E)表示编码信息m生成的二维码,隐藏有签名的二维码为(mD,V,E);二维码编码规则中编码结束标识位EndMark;签名D的隐藏过程执行如下模块:
拆分模块,用于按照二维码编码规则,将信息m依次拆分为不同的模式段m1,m2,……,mn
模式段编码模块,用于按照对应的模式编码规则,对各模式段编码,得到码字序列m1’,m2’,……,mn’
综合处理模块,用于将模式段编码模块中得到的码字序列合并为数据码字m’,长度为lengthm’;依据纠错等级E,对m’进行纠错编码,得到纠错码字em,长度为lengthe;此时待排布到二维码中的数据位流Datam=m’+em+EndMark,长度为lengthm’+lengthe+lengthEndMark
排布模块,用于按照二维码编码规则,在版本集合Sv范围内,从版本1开始在二维码上对步骤3中得到的Datam进行排布,当Datam第一次被完整排满,记下此时的版本数,此版本数记为Vm
编码模块,用于对签名D编码,得到签名D待排布到二维码图中的数据DataD=D’+eD+EndMark,长lengthD’+lengthe’+lengthEndMark,版本为VD;
选择模块,用于按照二维码编码规则,选择版本V的二维码(V,E)作为隐藏签名的二维码,此二维码编码容量为CC,编码完信息m剩余的填充区冗余容量为RC;其中:
CC≧(lengthm’+lengthe+lengthEndMark)+(lengthD’+lengthe’+lengthEndMark);
RC≧(lengthD’+lengthe’+lengthEndMark);
获取模块,用于按照二维码编码规则,在(V,E)上对信息m的编码数据Datam进行排布;在EndMark+1位开始继续对签名D的编码数据DataD进行排布,直到全部排布为止,得到隐藏签名的二维码(mD,V,E)。
用户扫描隐藏有签名的二维码(mD,V,E),根据二维码的解码标准,验证过程执行如下模块:
解码模块,用于按照二维码解码规则,扫描得到二维码版本V和纠错等级E,对二维码中的数据进行解码,直到EndMark出现,解码暂停,得到信息m;
判断模块,用于判断EndMark标志后面是否还有数据:若没有,则解码结束;否则从EndMark+1位开始,对后续数据继续解码,得到签名D。
本发明的二维码中签名的隐藏及识别方法、系统选择一个比编码用户发布的信息的最小版本更大版本的二维码作为载体,该大版本二维码可以排布用户信息的码字序列、对应签名的码字序列以及编码结束标识符。因为通用的二维码扫描工具识别到编码结束标识符时,解码结束,从而实现了将签名隐藏在二维码中。
在用户扫描二维码时,当识别到编码结束标识符后,会进行判断,若无后续数据,则解码结束,否则继续解码,从而得到发布者的签名,然后依据签名确定二维码的可信性。
使二维码可信措施与用户发布的信息相互独立存在,确保即使可信措施失效,二维码也是可用的。
完全依照二维码的编码规则,所以对用户的设备无要求,只要具有摄像、拍照功能的设备均可应用。
本发明的二维码中签名的隐藏及识别方法、系统完全依据二维码编码规则,在编码过程中,可信措施不会干扰用户发布的信息,保证了用户二维码的可用性;对设备无特殊要求,通用的具有摄像、拍照功能的设备即可应用。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种可信二维码中签名的隐藏方法,其特征在于,包括如下步骤:
签名的隐藏步骤:h(m)是用户发布的信息m经过hash函数生成的消息摘要,Ks和Kp是公钥算法生成的有效私钥与公钥;用自己的私钥Ks加密消息摘要h(m),得到签名D;按照二维码编码规则,编码用户发布的信息m和签名D,分别得到信息m的数据位流Datam和签名D的数据位流DataD,数据位流包含数据码字和纠错码字;按照二维码编码规则,分别选择数据位流Datam和DataD的二维码码字排布版本,分别记为Vm和VD;选择一个版本V的二维码,该二维码的编码容量大于或等于Vm和VD之和,版本V作为隐藏签名的二维码的编码版本;按照二维码编码规则,依次将信息m的数据位流Datam排布到数据码字和纠错码字区域,将签名D的数据位流DataD排布在签名隐藏区域,得到隐藏签名的二维码;
签名的识别步骤:用户扫描具有签名的二维码,按照二维码解码规则,当第一次检测到编码终止符时,则停止解码,得到信息m0;系统对终止符后的数据进行检测,若有数据,则继续解码,得到签名D,否则,解码结束;用Kp解密D得到消息摘要h(m);通过对扫描得到的信息m0采用相同的hash函数,得到消息摘要h(m0),对比h(m)和h(m0)验证签名D的合法性。
2.根据权利要求1所述的隐藏方法,其特征在于:用户发布的信息需要经过如下步骤处理:
首先,分析输入数据,确定其内容并且选择合适的模式对序列进行编码;
然后,按照分析的结果对输入数据进行编码,得到数据位流;
然后,对得到的数据位流进行纠错编码;
最后,在二维码矩阵中构造信息的最终码字序列。
3.根据权利要求1所述的隐藏方法,其特征在于:按照二维码解码标准进行解码时,首先,通过获取二维码的版本与纠错等级,确定其编码容量;然后,根据字节流中的信息长度,读取所发布的信息,直到信息的编码结束符;最后,检测后续字节流,按照相同的解码规则,读取编码在编码结束符后的填充区中的内容,这样就完成了用户发布的信息和隐藏于该二维码中的签名信息的识别。
4.根据权利要求1所述的隐藏方法,其特征在于,在纠错级别为E,在二维码版本集合Sv中,用户编码信息m所需要的最小版本为Vm;编码签名D时,需要的最小版本为VD,隐藏签名的二维码版本为V;(V,E)表示未承载信息的初始二维码,(m,Vm,E)表示编码信息m生成的二维码,隐藏有签名的二维码为(mD,V,E);二维码编码规则中编码结束标识位EndMark;签名D的隐藏过程如下:
步骤1:按照二维码编码规则,将信息m依次拆分为不同的模式段m1,m2,……,mn
步骤2:按照对应的模式编码规则,对各模式段编码,得到码字序列m1’,m2’,……,mn’
步骤3:将步骤2中得到的码字序列合并为数据码字m’,长度为lengthm’;依据纠错等级E,对m’进行纠错编码,得到纠错码字em,长度为lengthe;此时待排布到二维码中的数据位流Datam=m’+em+EndMark,长度为lengthm’+lengthe+lengthEndMark
步骤4:按照二维码编码规则,在版本集合Sv范围内,从版本1开始在二维码上对步骤3中得到的Datam进行排布,当Datam第一次被完整排满,记下此时的版本数,此版本数记为Vm
步骤5:重复步骤1~4,对签名D编码,得到签名D待排布到二维码图中的数据DataD=D’+eD+EndMark,长lengthD’+lengthe’+lengthEndMark,版本为VD;lengthD’、lengthe’、lengthEndMark分别为D’、eD、EndMark的长度;
步骤6:按照二维码编码规则,选择版本V的二维码(V,E)作为隐藏签名的二维码,此二维码编码容量为CC,编码完信息m剩余的填充区冗余容量为RC;其中:
CC≧(lengthm’+lengthe+lengthEndMark)+(lengthD’+lengthe’+lengthEndMark);
RC≧(lengthD’+lengthe’+lengthEndMark);
步骤7:按照二维码编码规则,在(V,E)上对信息m的编码数据Datam进行排布;在EndMark+1位开始继续对签名D的编码数据DataD进行排布,直到全部排布为止,得到隐藏签名的二维码(mD,V,E)。
5.根据权利要求4所述的隐藏方法,其特征在于,用户扫描隐藏有签名的二维码(mD,V,E),根据二维码的解码标准,验证过程如下:
步骤1:按照二维码解码规则,扫描得到二维码版本V和纠错等级E,对二维码中的数据进行解码,直到EndMark出现,解码暂停,得到信息m;
步骤2:判断EndMark标志后面是否还有数据:若没有,则解码结束;否则从EndMark+1位开始,对后续数据继续解码,得到签名D。
6.一种可信二维码中签名的隐藏系统,其特征在于,包括:
签名的隐藏单元:h(m)是用户发布的信息m经过hash函数生成的消息摘要,Ks和Kp是公钥算法生成的有效私钥与公钥;用自己的私钥Ks加密消息摘要h(m),得到签名D;按照二维码编码规则,编码用户发布的信息m和签名D,分别得到信息m的数据位流Datam和签名D的数据位流DataD,数据位流包含数据码字和纠错码字;按照二维码编码规则,分别选择数据位流Datam和DataD的二维码码字排布版本,分别记为Vm和VD;选择一个版本V的二维码,该二维码的编码容量大于或等于Vm和VD之和,版本V作为隐藏签名的二维码的编码版本;按照二维码编码规则,依次将信息m的数据位流Datam排布到数据码字和纠错码字区域,将签名D的数据位流DataD排布在签名隐藏区域,得到隐藏签名的二维码;
签名的识别单元:用户扫描具有签名的二维码,按照二维码解码规则,当第一次检测到编码终止符时,则停止解码,得到信息m0;系统对终止符后的数据进行检测,若有数据,则继续解码,得到签名D,否则,解码结束;用Kp解密D得到消息摘要h(m);通过对扫描得到的信息m0采用相同的hash函数,得到消息摘要h(m0),对比h(m)和h(m0)可验证签名D的合法性。
7.根据权利要求6所述的隐藏系统,其特征在于,用户发布的信息需要经过如下模块处理:
分析模块,用于分析输入数据,确定其内容并且选择合适的模式对序列进行编码;
编码模块,用于按照分析的结果对输入数据进行编码,得到数据位流;
纠错模块,用于对得到的数据位流进行纠错编码;
构造模块,用于在二维码矩阵中构造信息的最终码字序列。
8.根据权利要求6所述的隐藏系统,其特征在于,按照二维码解码标准进行解码时,首先,通过获取二维码的版本与纠错等级,确定其编码容量;然后,根据字节流中的信息长度,读取所发布的信息,直到信息的编码结束符;最后,检测后续字节流,按照相同的解码规则,读取编码在编码结束符后的填充区中的内容,这样就完成了用户发布的信息和隐藏于该二维码中的签名信息的识别。
9.根据权利要求6所述的隐藏系统,其特征在于,在纠错级别为E,在二维码版本集合Sv中,用户编码信息m所需要的最小版本为Vm;编码签名D时,需要的最小版本为VD,隐藏签名的二维码版本为V;(V,E)表示未承载信息的初始二维码,(m,Vm,E)表示编码信息m生成的二维码,隐藏有签名的二维码为(mD,V,E);二维码编码规则中编码结束标识位EndMark;签名D的隐藏过程执行如下模块:
拆分模块,用于按照二维码编码规则,将信息m依次拆分为不同的模式段m1,m2,……,mn
模式段编码模块,用于按照对应的模式编码规则,对各模式段编码,得到码字序列m1’,m2’,……,mn’
综合处理模块,用于将模式段编码模块中得到的码字序列合并为数据码字m’,长度为lengthm’;依据纠错等级E,对m’进行纠错编码,得到纠错码字em,长度为lengthe;此时待排布到二维码中的数据位流Datam=m’+em+EndMark,长度为lengthm’+lengthe+lengthEndMark
排布模块,用于按照二维码编码规则,在版本集合Sv范围内,从版本1开始在二维码上对步骤3中得到的Datam进行排布,当Datam第一次被完整排满,记下此时的版本数,此版本数记为Vm
编码模块,用于对签名D编码,得到签名D待排布到二维码图中的数据DataD=D’+eD+EndMark,长lengthD’+lengthe’+lengthEndMark,版本为VD;lengthD’、lengthe’、lengthEndMark分别为D’、eD、EndMark的长度;
选择模块,用于按照二维码编码规则,选择版本V的二维码(V,E)作为隐藏签名的二维码,此二维码编码容量为CC,编码完信息m剩余的填充区冗余容量为RC;其中:
CC≧(lengthm’+lengthe+lengthEndMark)+(lengthD’+lengthe’+lengthEndMark);
RC≧(lengthD’+lengthe’+lengthEndMark);
获取模块,用于按照二维码编码规则,在(V,E)上对信息m的编码数据Datam进行排布;在EndMark+1位开始继续对签名D的编码数据DataD进行排布,直到全部排布为止,得到隐藏签名的二维码(mD,V,E)。
10.根据权利要求9所述的隐藏系统,其特征在于,用户扫描隐藏有签名的二维码(mD,V,E),根据二维码的解码标准,验证过程执行如下模块:
解码模块,用于按照二维码解码规则,扫描得到二维码版本V和纠错等级E,对二维码中的数据进行解码,直到EndMark出现,解码暂停,得到信息m;
判断模块,用于判断EndMark标志后面是否还有数据:若没有,则解码结束;否则从EndMark+1位开始,对后续数据继续解码,得到签名D。
CN201310599078.5A 2013-11-25 2013-11-25 一种可信二维码中签名的隐藏方法及系统 Active CN103605950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310599078.5A CN103605950B (zh) 2013-11-25 2013-11-25 一种可信二维码中签名的隐藏方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310599078.5A CN103605950B (zh) 2013-11-25 2013-11-25 一种可信二维码中签名的隐藏方法及系统

Publications (2)

Publication Number Publication Date
CN103605950A CN103605950A (zh) 2014-02-26
CN103605950B true CN103605950B (zh) 2016-06-29

Family

ID=50124170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310599078.5A Active CN103605950B (zh) 2013-11-25 2013-11-25 一种可信二维码中签名的隐藏方法及系统

Country Status (1)

Country Link
CN (1) CN103605950B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113416B (zh) * 2014-06-26 2017-08-25 北京天诚安信科技股份有限公司 基于电子签名的二维码验证方法及系统
CN105809015A (zh) * 2014-12-30 2016-07-27 航天信息股份有限公司 电子票信息隐藏和验证方法、装置及系统
CN106156822A (zh) * 2015-04-14 2016-11-23 北大方正集团有限公司 Qr码编码方法及装置
CN106529633B (zh) * 2015-09-10 2019-11-15 阿里巴巴集团控股有限公司 二维码的生成方法、解码方法以及装置
CN105718816B (zh) * 2016-01-25 2019-01-18 四川虹慧云商科技有限公司 二维码支撑系统提高数据安全性的方法
CN106570548B (zh) * 2016-10-21 2019-02-26 金维度信息科技(北京)有限公司 一种基于多层次信息加密的混合二维码
CN106845593A (zh) * 2017-01-16 2017-06-13 武汉大学 一种矩形固定点阵信息编解码方法
CN108197685A (zh) * 2017-12-26 2018-06-22 福建工程学院 一种视觉码的防伪方法及终端
CN108270792A (zh) * 2018-01-30 2018-07-10 江苏意源科技有限公司 一种基于二维码的内外网物理隔离高安全性数据交换方法
JP2019148930A (ja) * 2018-02-26 2019-09-05 株式会社オプトエレクトロニクス 二次元コード、二次元コード出力システム、二次元コード出力方法、二次元コード読取システム、二次元コード読取方法及びプログラム
CN108960387B (zh) * 2018-07-12 2021-10-12 南京林业大学 一种防伪造二维码及其生成和识别方法
CN109815951A (zh) * 2019-01-16 2019-05-28 王诗会 图像内部嵌入机读信息的方法及系统
CN109886380B (zh) * 2019-01-16 2021-08-31 王诗会 图像信息融合方法及系统
CN110991591A (zh) * 2020-03-03 2020-04-10 支付宝(杭州)信息技术有限公司 二维码的编解码方法、装置、编码设备和解码设备
CN111612476B (zh) * 2020-05-09 2023-04-07 艾斯芸防伪科技(福建)有限公司 二次校验防伪方法、装置、设备及存储介质
CN113239368B (zh) * 2021-04-02 2023-02-28 暨南大学 一种基于电子签名的qr码加密解密方法
CN113312535B (zh) * 2021-05-28 2023-02-24 中铁十一局集团第五工程有限公司 一种工程测量智慧管理控制云平台
CN114254719B (zh) * 2021-12-17 2022-11-22 广州市宝绅科技应用有限公司 一种防伪二维码的生成方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779263A (zh) * 2012-06-19 2012-11-14 袁开国 基于pki和数字签名的可信二维码方案

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5023949B2 (ja) * 2007-10-10 2012-09-12 株式会社デンソーウェーブ 二次元コードおよびその読取装置
JP5120156B2 (ja) * 2008-03-27 2013-01-16 株式会社デンソーウェーブ 二次元コード

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779263A (zh) * 2012-06-19 2012-11-14 袁开国 基于pki和数字签名的可信二维码方案

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AES加密的二维条码在包装防伪中的应用;孙小兰;《印刷质量与标准化》;20120415(第4期);第8-11页 *

Also Published As

Publication number Publication date
CN103605950A (zh) 2014-02-26

Similar Documents

Publication Publication Date Title
CN103605950B (zh) 一种可信二维码中签名的隐藏方法及系统
US11010855B2 (en) Method and apparatus for protecting digital photos from alteration
Zhang Commutative reversible data hiding and encryption
CN105303075B (zh) 基于pdf格式的自适应文本水印方法
US20200250786A1 (en) System and method for encoding and authenticating a digital image
Wang et al. 2D barcodes for visual cryptography
CN104036531B (zh) 一种基于矢量量化以及二叉查找树的信息隐藏方法
CN101409813A (zh) 防止和识别图像篡改的图像编码方法
CN102307301A (zh) 一种基于关键帧的影音指纹生成方法
CN114357521A (zh) 数据保护方法和系统
CN102800041A (zh) 一种数字矢量地图完整性保护方法
CN101442671B (zh) 一种数字信息嵌入和提取的方法及装置
Gao et al. High-performance reversible data hiding in encrypted images with adaptive Huffman code
CN102088611A (zh) 基于h.264标准运动矢量的脆弱性水印嵌入和提取方法
Omerasevic et al. An implementation of secure key exchange by using QR codes
KR20150062712A (ko) 데이터 패킷 전송의 인증 및 검증 방법, 및 상기 방법을 수행하는 장치들
CN103731654A (zh) 一种使用2d/3d视频的信息嵌入系统和信息提取系统
CN114626968A (zh) 水印嵌入方法、水印提取方法和装置
Singla et al. A Hash Based Approach for secure image stegnograpgy using canny edge detection method
Fang et al. Securing interactive sessions using mobile device through visual channel and visual inspection
Zhou et al. A QR data hiding method based on redundant region and BCH
Alla et al. Secure transmission of authenticated messages using new encoding scheme and steganography
Zhang et al. Self-embedding watermarking algorithm under high tampering rates
CN114254339B (zh) 电子文件的泄漏追踪方法、装置、芯片、终端
Wu Tamper-localization watermarking with systematic error correcting code

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180628

Address after: 518049 Guangdong Shenzhen Futian District Che Kung Temple Industrial Zone Che Kung Temple workshop 301 buildings 1-6 tier three floors 368D (office only)

Patentee after: Shenzhen Fully Homomorphic Encryption Science & Technology Co., Ltd.

Address before: 530007 100 university road, Nanning, the Guangxi Zhuang Autonomous Region

Patentee before: Guangxi University

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 518000 b1201, block B, innovation Plaza, No. 2007, Pingshan Avenue, Pingshan street, Pingshan District, Shenzhen, Guangdong

Patentee after: SHENZHEN FHE TECHNOLOGIES Co.,Ltd.

Address before: 518049 Guangdong Shenzhen Futian District Che Kung Temple Industrial Zone Che Kung Temple workshop 301 buildings 1-6 tier three floors 368D (office only)

Patentee before: SHENZHEN FHE TECHNOLOGIES Co.,Ltd.