二维码在我们的生活中是比较常见的,wifi扫一扫,订餐扫一扫,购物扫一扫等等,小编最先接触的是用微信扫描的,现在用的还很多,那么二维码是如何生成的呢?又是如何加密的呢?可靠性强吗?

1 概述

在现代社会,信息显得越来越重要,进入到人们生活的各个领域,因而信息安全、隐藏技术越来越受到人们的重视。条码技术是在条码理论、光电技术、计算机技术和通信技术等基础上发展起来的集编码、印刷、识别、数据采集与处理于一体的综合性技术。由于工业中产生的数据信息量不断增加,一维条码技术已经不能满足社会的需求,人们开始广泛使用二维条码技术。二维条码具有信息容量大、密度高、纠错能力强、译码可靠性高等特点,可以将文字、图形、图像等一切可以数字化的信息进行编码。虽然二维条码本身具有一定的保密性,但这远远不能满足人们对其在各种通讯网络传输时的保密性的要求,所以如何对二维码进行加密,成为了二维码信息安全必须考虑的问题。本文介绍通过对QR二维码进行加密和解码,介绍使用RSA加密算法,加强二维码信息的安全方法。

2 QR二维码简介

QR码是快速识别矩阵码(quick response code)的简称,上世纪90年代推出,我国于2000年底颁布了QR码的国家标准。QR码具有信息容量大、高速全方位识读、支持加密算法、容易制造、使用成本低、误码率低、容错能力强等特点,它由功能图形区和编码区组成,如图1所示。功能图形区又分为空白区、位置探测图形、分隔符、定位图形和校正图形组成,用于符号定位和特征识别的特定图形,不用于数据编码;编码区由格式信息、版本信息以及数据和纠错码字组成,该区域用来保存数据。

3 RSA密码算法基础

RSA算法是目前应用最为广泛的非对称加密算法,或者说公钥密码算法,它不仅可以用来加密,而且可以用来进行数字签名。RSA密码算法自1978年由Ron Rivest、Adi Shamir以及Leonard Adleman提出以来,一直被认为是一种安全性能很高的密码算法。RSA密码算法具体描述如下:

4 RSA加密算法在二维码信息安全上的应用

RSA加密算法应用到二维码上,主要是在二维码编码前对数据进行加密,在验证时对数据进行解密。

4.1 QR码的生成

QR码的生成步骤为:

①将相关数据信息通过RSA加密模块进行加密;

②使用ZXing类库提供的编码功能将加密后的数据进行编码形成QR二维码图形; ③将此图形保存在系统指定的位置。

4.2 QR码验证的实现

QR码的验证步骤为:

①通过CMOS(或CCD)摄像头、手持式扫描设备将QR码图形读取到系统中; ②使用ZXing类库提供的解码功能将QR码中的数据解析出来;

③通过RSA解密模块将数据还原;

④通过人工模式或自动识别模式对QR码的持有者进行身份比对。

5 RSA算法的C语言实现

RSA加密算法的关键是幂的取余运算,限于篇幅,只写出该部分的实现程序。

6 结论

由于使用灵活、方便,被认为是一种“零成本”技术,QR二维码目前得到了广泛使用。本文将QR二维码与密码技术结合起来可以保证二维条码的信息安全,探讨解决二维码使用过程中的防伪问题,并列出了C语言实现RSA算法的部分程序。