QR二维码水印加密及解密算法研究

时间:2022-10-13 08:14:45

QR二维码水印加密及解密算法研究

摘 要:目前QR二维码采用隐形印刷等材料防伪加密比较复杂,只能在证件上使用,现有的数字水印加密技术在用于二维码加密时,没有很好的结合QR二维码自身的编码规则,负载的加密信息较少。根据QR二维码的信息存放位置特点和QR二维码图像特征,将水印位置和链码相结合,设计了一种新的二维码水印加密和其解密算法。另外可以结合人体的多重生物特征对QR二维码进行加密,水印位置有限时采用模拟退火算法解决各项特征之间的位置竞争问题。理论和实验表明,该算法具有速度快,准确率高,加密不影响二维码基本信息的识别,加密后的二维码图片能够被主流的QR码识别工具识别。

关键词:QR码;模拟退火算法;链码;水印

1 二维码水印加密背景及目前加密解密现状

1.1 QR二维码的应用背景

随着中国3G技术的普及,以及手机本身性能的提高,二维码作为一种全新的信息存储、传递和识别技术迅速地融入到了社会生活当中,其保密和安全问题也越来越有研究价值,2012年铁道部出现了用户隐私资料信息被二维码泄密的问题,病毒也开始通过二维码传播。目前国内针对二维码数字加密的技术的论述并不多,在当前期刊网上有关二维码讨论的258篇论文也主要集中于二维码自身的编码解码规则,只有16篇是讨论二维码数字手段加密的。其中加密采取的主要手段是通过复杂昂贵的隐形印刷技术。而讨论数字加密的只是对一般图像都通用的结合水印加密,未能很好的结合QR二维码自身的编码规则,所能负载的加密信息量也极少[3]。

1.2 国内外二维码加密研究现状

目前,国内外关于二维码信息隐藏技术的文献不是很多,研究对象主要是四一七条码(Portable Data File417,PDF417码)和QR码。在国内,针对PDF417码的研究较多且以空域水印为主,在国外,以研究QR码居多,以频域水印为主。牛夏牧[7]等利用变形技术对PDF417码中的各组成单元宽度加以适量的变动,采用误差累积的方式实现隐藏信息的嵌入和提取。陈峥等[3]针对PDF417码,提出了基于边界移位的隐藏信息嵌入算法。赵博等[4]提出一种基于结构微调法的水印算法,对PDF417码的组成条空进行适量的微调,将信息隐藏进二维码中。晁玉海等[5]提出一种对隐藏信息进行扩频和映射处理,根据PDF417码自身结构特点,通过微调条码中的条和空将信息隐藏的方法。Ming Sun等[6]提出两种基于离散小波变换(Discrete Wavelet Transform,DWT)变换的QR码数字水印,分别可以嵌入随机序列和图片。Jau-Ji Shen等[7]针对PDF417码提出一种称作关联水印的盲水印算法,该算法可以提高水印的嵌入容量并可将PDF417码用于数据认证。

⑴二维码图和传统防伪制作技术(主要是印刷)相结合,避免码图被直接影印、拍照,比如采用隐形印刷等等;

⑵掌握二维码编码技术,对二维码码图本身做特殊处理(如加密、复合、变形等),这种方法的目的有二,一是可以让别人的识读软件无法识别码图,二是可以在这些码图中编入特别信息,以作防伪校验之用。

简而言之,一个采用特殊印刷技术,一个采用特殊编码,从而提高技术门槛也就提高了造假的成本与难度。本文研究算法基于第二种方式,对二维码码图进行特殊处理,达到嵌入 信息进行防伪校验目的。

2 适用于QR的数字水印算法

2.1 水印的嵌入算法

2.1.1 水印嵌入位置及表示方案

链码和QR二维码水印信息的位置选择和像素值改变方案,根据链码、改进的LSB算法和二维码的基本理论,本文结合处如下表示方案。QR码图像是由N*N个深色或者浅色的模块图形组成,实验中是黑色和白色模块。考虑水印需要的隐蔽性,我们选取黑色的正方形作为水印嵌入单元。假设QR码的一个模块图形的大小为M*M,其中M为模块的长度(高度),单位是像素。条码矩阵的大小为N*N。每个正方形基元占用的像素点为M/N。

如图2.1所示:跟四链码的结合方式为将正方形基元平分成四等份,每一块的大小为M/2N,选择其中的一块,按统一水印规则改变整个选中块的像素值,嵌入水印信息,按照链码方向的规则给四个方向的小矩阵编码为0,1,2,3,四幅图中的红色区域分别对应着0,1,2,3。这样每个黑色QR码的正方形基元便可以承载一位四进制的数。当图像格式为RGB三色图时,结合第一章所介绍的改进的LSB编码规则,每一块像素值按规则改变后又可表示为00,01,10,11的四进制,跟位置的编码规则相结合,每个正方形模块就可以表示一位十六进制的数,也就是4bit的信息。

2.1.2 水.印嵌入流程

如图2.2 水印算法的整体嵌入步骤:

第一步:根据基本信息编码出未加密的二维码举证,自左向右,自上而下,统计N*N黑色和白色模块的QR二维码可用来嵌入水印的黑色模块的个数,记为C,并记录下各个可用的黑色模块在二维码的二维矩阵中的位置。

第二步:依据伪指纹特征随机密钥生成技术,随机生成三个指纹特征数据记为T1、T2、T3,并将T1、T2、T3转码成和水印嵌入方式所采用的编码进制(八进制、十六进制等)相同的编码进制,统计出T1,T2,T3所需要的占用编码位数记为n1,n2,n3。

第三步:如果n1+n2+n3>c,则说明水印嵌入位置不足以嵌入所有的指纹特征数据,当嵌入位置不足时采用基于模拟退火算法竞争机制,解决各个特征信息之间采样数竞争问题,模拟退火的优势能保证了嵌入位置的随机性,和各个特征信息的均衡性。

第四步:依照模拟退火算法竞争机制产生的二维指纹矩阵加密位置对应表,对QR二维码图形进行加密。

2.2 水印的提取算法

如图2.3:首先,从加密的二维码图片中解码出二维码的基本信息。

将加密后的二维码图片记为map1和未水印加密的二维图片记为map2,导入解码程序中。

第二步:将相应的两幅图像做减法代数运算,提取图像中目标区域,给定阈值大小为水印差值的一半,将低于阈值的像素点看作相同像素点,差值取绝对值选取为了实现精确定位,因为两幅图像编码格式一致,除了不通目标区域以外,其他区域完全相同,包括图像大小等。

第三部:使用数学形态学方法,实现断线的连接,主要目的是保持目标区域边缘连续,为孤立点的去除做准备。第三步:使用改进中值滤波去除图像中孤立异常点,如果除了目标区域以外,其他区域完全相同,那么基本不需要去处异常点,在做加入噪声干扰实验时去除边缘毛边是一个需要除了的问题。

第四步:采用曲线全向跟踪技术,寻找目标区域的边缘轮廓,探查到所有目标区域边缘。

第五步:将图像按照二维码自身的编码规则分成N*N块,根据上图中提取去的各个嵌入水印的矩形区域的位置,并将区域大小经过阈值判断,去掉干扰点,定位出各个区域对应得编码值,返回二维矩阵各个嵌入水印值位置对应得值。和加密时候保存的加密二维矩阵值进行对比,进行水印验证。

3 实验

含有水印的QR码的识别和提取实验

算法稳定性实验,流程如下:

(1)产生一段随机长度和随机内容的文本T1。

(2)将文本T1编码为QR码图形Q1。

(3)计算Q1的水印容量大小。

(4)通过通过随机指纹发生器和模拟退火竞争机制产生水印信息W。

(5)向Q1中嵌入水印信息W得到含有水印的QR码图形Q2。

(6)识读Q2得到T2,并与原始编码内容T1对比,记录对比结果。

(7)从含有水印的QR码图形Q2中提取水印信息WR。

(8)比较W和WR,记录对比结果。

(9)重复1000次步骤(1)~(8)的试验,并计算QR码的识别正确率和水印嵌入和提取的正确率。

随机文本T包含英文字母、数字和常用标点符号。重复试验的次数为100次,最后记录实验结果并计算正确率。实验最终得到的数据是QR码的识别正确率为97%,嵌入和提取水印的正确率为95%。该实验表明,水印算法非常稳定,嵌入的水印不会影响到QR码的正确识别,并且水印信息的嵌入和提取不受水印内容和QR码载体图像的影响。

4 结论

提出了一种适用于QR码的鲁棒性和嵌入信息量都适中的水印算法,该算法用链码的方向编码和改进的LSB算法嵌入水印信息,保证水印信息不会改变QR码的图形结构,并确保嵌入的水印信息不会影响到QR码的正确识别。与现有的利用误差特性进行信息隐藏的算法相比,该算法极大程度增强了数字水印的隐蔽性,提高了水印信息的嵌入量。同时算法不会受到QR码的容量限制,并且适合电子保存和打印等多种形式,具有提取水印速度快,抗干扰能力强等优势。并且提出了由多种生物特征提取出的信息组成水印信息的方式,将二维码与用户绑定,实现了人码一体的认证功能。

[参考文献]

[l]何叶.基于二维条码的数字水印技术研究.长沙理工大学硕士学位论文.(2009).

[2]赵博.二维条码研究.西安电子科技大学硕士学位论文.(2007).

[3]纪兴中.基于二维条码技术的数字水印系统研究.浙江工业大学硕士学位论文.(2007).

[4]陈哲,张永林.数字水印技术在二维条码证件防伪中的应用.计算机工程与科学.28(4).42-44.(2006).

[5].二维条码技术应用及标准化状况介绍.中国标准化.5.26-42.(2006).

[6]纪震,张基宏,蒋一峰.小波域的扩频数字图像水印算法.电子域信息学报.23(8).509-813.(2001).

[7]牛牧夏,黄文军.基于二维条码的信息隐藏技术.中山大学学报(自然科学版).43(增刊).21-25.(2004).

上一篇:白脉软膏联合连续超声波治疗脑卒中后肌张力增... 下一篇:抗SmD1抗体和抗双链DNA抗体联合检测对系统性红...