一种基于内容保护与优化识别的二维码方案

2019-06-10 01:01蒋鹏程熊礼治韩啸
软件导刊 2019年2期
关键词:二维码

蒋鹏程 熊礼治 韩啸

摘 要:近年来,二维码作为一种存储与传递信息的新技术被应用于很多领域,例如共享单车、安全支付等。在扫描过程中,二维码作为信息媒介与身份认证的工具发挥了重要作用,但因二维码广泛使用带来的安全问题也层出不穷。因此,在保证二维码可用性的基础上,需提高二维码的安全性并对其进行美化,使其图案具有一定防伪能力。结合二维码理论,使用安全哈希算法对其内容进行加密,并采用像素替换法使二维码具有较好的美观性与视觉辨识度。扫描时通过二值化算法,并结合灰度化处理,从而获取二维码信息。实验结果表明,该方案能达到较好的防伪效果,并能保持一般二维码具有的最大内容容量。

关键词:二维码;图像加密;二值化处理;美观二维码;信息隐藏

DOI:10. 11907/rjdk. 181910

中图分类号:TP319文献标识码:A文章编号:1672-7800(2019)002-0119-04

Abstract:In recent years, two-dimensional code, as a new technology for storing and transmitting information, has been applied to many areas, such as sharing bicycles, secure payment and so on. In the process of scanning, two-dimensional code plays a very important role as a tool for information media and identity authentication, but the security problems brought about by the wide use of two-dimensional code keep emerging. Therefore, the purpose of this paper is to improve the security of two-dimensional code,beautify two-dimensional code on the basis of ensuring the availability of two-dimensional code, and also have a certain anti-counterfeiting ability on the pattern. This scheme will combine the two-dimensional code theory to encrypt the content by using the secure hash algorithm, and make the two-dimensional code with a certain beauty and visual identification by the pixel replacement method. The two valued algorithm and gray scale processing of two-dimensional code are used to get information. Experimental data show that it can resist attacks such as forged two-dimensional codes to some extent and can still maintain the maximum content capacity of general two-dimensional codes.

Key Words:QR-code; image encryption; binary processing; beautiful QR-code; information hiding

0 引言

現行的QR 二维码编码是属于开放式标准,其规格是公开的,所以应用比较广泛。QR二维码通过复杂的组合与数据混乱编码算法(如Reed-Solomon error correction里德-所罗门纠错算法等)生成,使用方便,具有很强的实用性。但同样由于QR二维码编码标准的开放性,使得伪造QR二维码难度并不高。而且由于二维码中内容可以包含各种信息,当二维码中信息指向一个危险站点时,用户打开则可能导致隐私泄露,甚至造成经济损失。由此可见,研究如何提高QR二维码的安全性具有重要意义。考虑到现有很多QR二维码在编码时并未进行加密,因此对二维码内容及图像进行加密处理是十分必要的。本文提出一种基于内容保护与优化识别的二维码方案,通过使用SHA加密算法对现有二维码进行改进,并提高二维码的美观性,以增强人眼辨识度。同时采用罗松等[1]提出的用于条码读取的二值化算法,并结合灰度化处理,以保持二维码的可用性。

1 相关技术与算法

1.1 QR二维码

二维码(2-dimensional Bar Code)近年来在互联网和移动设备上应用广泛。二维码是用某种特定几何图形按一定规律在平面上分布的黑白相间、用于记录数据符号信息的图形,由探测图形、定位图形、数据区域与校正图形4大功能模块组成(见图1)。QR二维码编码流程大致分为数据分析、数据编码、编码纠错、数据组织、应用数据掩码、格式填充等几个步骤。

1.2 安全哈希算法

安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard,DSS)中定义的数字签名算法(Digital Signature Algorithm,DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。该算法经专家多年来的研究与改进已日益完善,其思想是接收一段明文,然后以一种不可逆的方式将其转换成一段密文(通常更小),也可以简单理解为取一串输入码(称为预映射或信息),将其转化为长度较短、位数固定的输出序列,即散列值(也称为信息摘要或信息认证代码)的过程[2]。散列函数值可看作针对明文的一种“指纹”或“摘要”,所以对散列值的数字签名即可视为对该明文的数字签名。将这种“指纹”放入二维码以实现信息隐藏与防伪的技术[3],即通过编号信息与经加密后信息组合的方式进行传输,收到信息后按照发送方的方式通过编号进行加密,再将两次密文进行比对,从而判断信息是否正确或者被人篡改。

1.3 局部自适应二值化算法

图像二值化是将图像上像素点的灰度值设置为0或255,也即使整个图像呈现出明显的只有黑与白的视觉效果[4]。局部二值化是指对于不同区域、不同阈值、不同光照区域,保留对应纹理图像的过程[5]。局部自适应阈值计算法根据像素邻域块内的像素值分布,确定该像素位置上的二值化阈值[6],该方式适用于处理亮度变化大、光照不平衡的图片。

1.4 图像灰度化处理

在RGB模型中,如果R=G=B,则彩色表示一种灰度颜色,其中R=G=B的值称为灰度值。因此,灰度图像每个像素只需一个字节存放灰度值(又称为强度值、亮度值),灰度范围为0~255。一般采用分量法、最大值法、平均值法、加权平均法4种方法对彩色图像进行灰度化处理,从而将其转变为不同灰度值的黑白图片。

2 设计思想

2.1 总体設计思想

将明文内容生成对应的密钥信息,再将两部分分别加密形成部分密文内容,两部分与编号信息混合后形成整个密文内容[7],最后通过对二维码颜色进行扩展嵌入彩色logo,并保证数据容量充足[8],从而制作出彩色的加密二维码。二维码在生成时需尽量将标志性图像空出,通过二维码纠错机制保证二维码的可读性[9]。二维码生成流程如图2所示。

读取二维码时,首先通过对整体背景的二值化处理找到二维码所在位置[10],便于后续读码,再对该位置图像进行灰度化处理,去除logo对扫码的干扰,从而读取二维码中的信息。读取二维码后对其进行信息编号与各部分密文的分离,由编号信息定位到密钥值,由密钥值加密后的密文比对结果确定信息是否修改或二维码是否安全,再对原始信息进行解密与读取。二维码识别流程如图3所示。

2.2 增强二维码真伪辨识度

对QR二维码生成过程中的编码与填充流程进行改良,将原有QR二维码填充为1是黑色,0是白色,而在该方案中,可以选取合适的彩色背景图案,将图片缩放至与二维码版本契合的大小。提取每一logo像素Ti的RGB值,根据原有二维码填入像素Pi的值,并由公式(1)得到新的填充像素Qi的颜色,在原有填充方式基础上,利用QR二维码纠错编码的容错特性,对白色区域进行适当扩充,最终得到便于人眼识别的彩色二维码。

2.3 扫码二值化处理

上文已介绍了二值化与局部自适应二值化算法,通常而言,局部二值化算法相比于全局阈值方法[11],计算量有一定程度增加,而局部自适应二值化更是由于对每一个像素都需要计算一个阈值,其计算量在所有局部二值化算法中也是较大的。由于本文需要得到较好的二值化效果,所以可以考虑适当增加二值化计算量[12]。在此前提下,罗松等[1]提出一种基于积分图(Integral Image)的局部自适应二值化算法,能显著减少自适应二值化算法计算量,且对于不同亮度与光照的图片能得到较好的二值化效果,同时参考王序哲[13]对于6种二值化算法性能的比较,考虑到典型性,选择Bernsen算法进行数据处理。本文基于局部自适应二值化算法,根据像素领域块均值与相对均值的百分比进行阈值计算,并利用积分图加速计算。本方法只需对图片进行一次扫描,然后对图像灰度变化剧烈的区域进行分块,再使用张洁玉[14]提出的对灰度变化剧烈区域进行二值化的方法,便可在相应时间内轻松计算出每个像素对应的阈值,从而大大减少了自适应二值化算法计算量,同时提高了二值化效果。在扫码时,经过全局二值化处理后,光照不均匀的QR码图像会出现白色或全黑色的误差区域,而且在局部二值化处理过程中会出现伪边界,计算时间较长。因此,在计算时可以借鉴陈鑫元等[15]提出的结合形态学实现的自适应阈值图像二值化算法改进本方案。计算时根据QR二维码图像大小进行分块处理,估算每个块的灰度值后,使用联合插值算法产生背景灰度图像,然后采用Ostu算法对校正图像进行二值化。该算法能对不均匀光照QR二维码图像进行有效校正,从而获得效果良好的二值图像[16]。

2.4 扫码灰度化处理

随机选取一张已生成的二维码图像,在灰度化处理前通过使用马倩等[17]提出的边缘检测算法处理图像,并参考江进[18]提出的方案将边缘检测与灰度化处理相结合,之后参考张铭钧[19]提出的方案对图像进行不同程度的灰度化权值调整,测试得到最佳效果的灰度化参数。在灰度化处理时,可以使用基于灰度期望值的图像二值化算法[20]加强处理效果,防止背景中存在对扫码影响较大的区域,通过该方式可以对这些区域实现类似于分离灰度化的效果。在logo不变的情况下,同一参数几乎可以满足所有图像的扫码需求。

3 方案实现

3.1 二维码可嵌入数据容量测试

经过大量数据测试结果表明(测试数据见图4),该方案生成的二维码可嵌入数据最大值为1 273个字符(2 546个字节)。在不同嵌入容量下,二维码位密集程度与图片大小无关,只与数据长度有关,但二维码扫描效果与美观度及图片大小有关,在图片大小接近二维码大小时将无法生成二维码。因此,在实际应用中,应选取尺寸略大的图片(图片大小为二维码大小两倍以上时不影响扫描效果与美观度)。

3.2 彩色二维码

彩色二维码效果如图5所示。

本二维码背景图像使用大嘴猴logo作为背景,实际使用中可以将该logo换成任意方形图片。该方式既保证了信息安全,又因其中包含logo且使用了加密技术,使伪造二维码变得较为困难。

3.3 图像局部二值化处理

局部二值化处理效果如图6所示。

通过二值化处理能过滤掉二维码周围的干扰性彩色环境,从而找到二维码正确位置。

3.4 二维码灰度化处理

对图5的灰度化处理结果如图7所示。

由图7可见,取50%灰度化的结果能最大程度上增强二维码扫描效果。通过灰度化产生的可扫描黑白二维码参数数据可应用于所有具有相同大小与背景,以及任意内容的彩色二维码上,使其变得易于扫描。该方式既保证了较高的二维码辨识度,也能避免对所有二维码进行单独处理产生的时间与资源开销。

4 结语

通过本文提出方法制作出的二维码不仅安全、防伪效果较好,而且不影响二维码内容的正常读取,能保持较好的美观度。在后续工作中,可以尝试在二维码中加入水印信息,以达到更好的防伪效果,并且经过特定加密方式处理后的水印还可以提取编号、公司名称等信息,因而具有更高的安全性。

参考文献:

[1] 罗松, 王俊峰, 唐鹏,等. 面向条码识读的自适应二值化改进算法[J]. 计算机工程与设计, 2013, 34(4):1324-1330.

[2] 李世明. 关于Hash算法SHA-1的研究与分析[D]. 重庆:西南大学, 2013.

[3] 肖迪,白科,郑洪英. 面向云计算安全应用的密文图像可逆信息隐藏算法[J]. 计算机应用研究, 2015, 32(12):3702-3705.

[4] 江明,刘辉,黄欢. 图像二值化技术的研究[J]. 软件导刊,2009(4):175-177.

[5] 屈卫锋,徐越,牛磊磊,等. 光照不均QR二维码图像的高效处理方法研究[J]. 软件,2015(6):47-52.

[6] 郭佳,刘晓玉,吴冰,等. 一种光照不均匀图像的二值化方法[J]. 计算机应用与软件,2014(3):183-186.

[7] ZHANG Y Q, ZHANG D H, JIANG P. A method of improving the security of QR code[J]. Information Technology, 2012.

[8] GALIYAWALA H J,PANDYA K H. To increase data capacity of QR code using multiplexing with color coding: an example of embedding speech signal in QR code[C]. India Conference (INDICON), 2014 Annual IEEE,2014: 1-6.

[9] LI L,LI L,ZHANG S, et al. Novel schemes for bike-share service authentication using aesthetic QR code and color visual cryptoraphy[C]. International Conference on Cloud Computing and Security. Springer, Cham, 2017: 837-842.

[10] 靳佳澍. 一種针对彩色二维码图像的二值化方法[J]. 科技与企业, 2016(4):83-84.

[11] 孟立娜,韩其睿. 一种全局和局部相结合的二值化方法研究[J]. 计算机技术与发展,2012(11):116-119.

[12] 王鹏. 一种局部二值化方法及其应用[D]. 长春:吉林大学,2017.

[13] 王序哲. 局部自适应二值化方法研究[J]. 软件导刊,2011,10(11):13-14.

[14] 张洁玉. 基于图像分块的局部阈值二值化方法[J]. 计算机应用, 2017, 37(3):827-831.

[15] 陈鑫元,李筠,杨海马,等. 自适应阈值图像二值化及形态学处理的FPGA实现[J]. 电子测量技术, 2016, 39(7):67-71.

[16] ZHANG J R, WANG L J. Improved binaryzation algorithm of modified QR code image[J].  Modern Electronics Technique, 2014, 280:25-33.

[17] 马倩. 基于Prewitt和Canny算法的边缘检测改进算法[J].  软件导刊, 2014(6):41-43.

[18] 江进.  基于灰度化及边缘检测算法的车牌识别技术研究[J]. 现代计算机:专业版, 2014(1):38-41.

[19] 张铭钧,李煊,王玉甲.  基于灰度化权值调整的水下彩色图像分割[J].  哈尔滨工程大学学报, 2015(5):707-713.

[20] 卢迪,黄鑫,柳长源,等. 基于区域对比度增强的二值化算法[J]. 电子与信息学报,2017,39(1):240-244.

(责任编辑:黄 健)

猜你喜欢
二维码
二维码通行券自助发行系统在新兴市场的应用
二维码迷宫
二维码
小康二维码
从条形码到二维码
从条形码到二维码
会赚钱的收款二维码
让严肃的二维码呆萌起来
二维码让政务公开更直接
为二维码识别的献礼之作——评测平治二维码门禁读卡器