为了避免QR码所包含的信息被无关机构、组织和个人随意识读,在其传输和存储前,有必要对其进行加密处理。那么我们今天就借鉴信息加密原理和数字图像加密的特点,给大家介绍一个QR码二值图像文件加密方法。

如何利用DES加密算法对QR码进行加密与解密

一、QR码二值图像加密原理

在充分研究DES对称加密算法工作原理和QR码的结构特征的基础上,将二者有机地结合起来,运用DES加密算法,对QR码进行加密,以保证其在传输和存储过程中的安全性。

二、DES加密算法

DES加密算法数据加密标准DES(DataEncryptionStandard)是一种分组加密算法,以64比特位为基本单位,对数据进行加密。64比特的明文经DES加密后,得到64比特的密文;反之密文经DES解密后,得到64比特的明文。

DES同时也是一种对称加密算法,加密和解密采用相同的算法,加密密钥和解密密钥完全相同,只是加密和解密所使用的子密钥的顺序相反。

DES加密算法是公开的,因此其安全性完全依赖于密钥。利用DES加密信息时,应避免使用弱密钥和半弱密钥。DES加密或解密的数据的每个分组(64比特)进行同样的操作,首先进行一次线性变换的初始置换,接着在密钥的控制下,进行16轮迭代的非线性变换,最后进行一次线性变换的逆置换。因此,当要加密的数据量特别大时,应采用加密速度更快的加密算法。

QR码编码以矩阵形式组织二进制数据(0和1),数据量一般不会太大,因此,在满足加密信息安全要求的前提下,采用DES加密QR码是一种不错的选择。

三、QR码二值图像加密

由于QR码二值图像四周区域为白色,为了不给破译者有机可乘,对QR码的四周白色区域不进行加密,只对QR码中间有规律排列的黑白相间区域进行加密。对QR码二值图像进行DES加密的主要步骤:

(1)任意选取一个合适的加密密钥用于QR码二值图像加密,避免选取弱密钥和半弱密钥;

(2)读取需要加密的QR码二值图像数据;

(3)以64比特位为单位,运用DES加密算法对QR码二值图像中间黑白相间区域数据进行加密;

(4)将原始QR码四周白色区域未加密的数据与加密后的QR码中间黑白相间区域数据组合起来,并写成二值数字图像格式,将其存储为图像文件,即为加密后的QR二值图像。

某244×244大小的原始QR码二值图像如图1所示;经DES加密后的QR码二值图像如图2所示。

如何利用DES加密算法对QR码进行加密与解密比较图1和图2可以看出,DES加密使QR码原来进行有规律排列的黑白相间区域变成毫无规律排列的杂乱无章的黑白相间区域,加密后的QR码二值图像破坏了QR码平面(或二维)编码结构,因此无法从加密的QR码二值图像中识读任何信息。这样,通过DES加密措施就对原始的QR码所包含的信息进行了保护,以保证其传输过程和存储的安全性。

四、QR码二值图像的解密

对加密的QR码二值图像进行DES解密的主要步骤如下:

(1)选取与加密密钥完全一样的解密密钥,用于解密加密后的QR码二值图像;

(2)读取加密后的QR码二值图像数据;

(3)以64比特位为单位运用DES加密算法,对加密后的QR码中间黑白相间区域数据进行解密;

(4)将加密QR码的未加密的四周白色区域数据与解密后的黑白相间区域数据组合起来,并写成二值数字图像格式,将其存储为图像文件,即为解密后的QR码二值图像。

对图2所示的加密QR码进行解密,正确解密的QR码如图3所示,与图1所示的原始QR码完全一样。如果不能正确解密加密的QR码,就无法识读原始QR码所包含的信息。

如何利用DES加密算法对QR码进行加密与解密

五、QR码二值图像DES加密与解密性能分析

下面主要从加密效果、解密效果和安全性三方面,对QR码二值图像的DES加密与解密性能进行分析。

1、QR码二值图像的DES加密效果

对QR码进行DES加密,对QR码的四周白色区域不进行加密,只对QR码中间黑白相间的区域进行加密。图2为图1所示原始QR码对应的加密图像,图1所示原始QR码的中间有规律排列的黑白相间区域被加密成如图2所示的中间杂乱无章的黑白相间的区域,破坏了QR码的平面(二维)编码结构,可见DES加密QR码效果理想。因此通过图2所示的加密QR码,无法识读图1所示的原始QR码所包含的任何信息。只有正确解密图2所示的加密QR码,才能正确识读原始QR码所包含的全部信息。

2、加密QR码二值图像的DES解密效果

取与加密图1所示原始QR码的加密密钥完全一样的解密密钥,解密图2所示的加密QR码,得到如图3所示的正确解密的QR码,与图1所示的原始QR码完全一样,可见DES解密加密的QR码效果理想。

只要加密密钥不是弱密钥或半弱密钥,解密密钥与加密密钥相比,即使只有微小的差别,也不能保证正确解密。尽管DES的加密或解密密钥为64位,但首先要通过一个置换将其由64位变为56位,再由这56位密钥通过循环移位和置换分别产生16个48位的子密钥。因此加密或解密密钥实际上只有56位。假设56位解密密钥与56位加密密钥只有微小的差别,即56位中只有某一位不同,也不能正确解密,错误解密的QR码如图4所示。根据图4所示的错误解密QR码无法识读原始QR码所包含的信息。

3、DES加密的QR码二值图像的安全性

运用DES加密算法对QR码进行加密,可以通过DES加密算法分析进行破译,也可以直接对加密QR码进行破译。DES的初始加密密钥或解密密钥为64位,首先需要经过一个置换将其变成56位,再由这56位通过循环移位和置换分别产生16个子密钥。因此,64位的密钥对16个子密钥真正产生影响的只有其中的56位,DES的密钥空间为256。DES分析又可分为三种情况:

(1)通过蛮力攻破译密文,大约需要尝试255≈3.60×1016次,即平均需要搜索密钥空间256的一半;

(2)利用差分密码分析法破译密文,大约需要尝试247≈1.41×1014次;

(3)利用线性密码分析法破译密文,大约需要尝试243≈8.80×1012次。

如果直接通过加密的QR码进行破译,并且假设不考虑QR码的编码方法等有利于破译的因素,假设QR码中间黑白相间区域大小为N×N,则正确破译加密的QR码大约需要尝试2N*N次。

综上所述,在不知道加密密钥或解密密钥的前提下,不论采用何种破译方法,即使利用QR码编码特点等有利于破译的一些因素,在很短的时间内,利用一般常规的设备破译较大尺寸的加密QR码是比较困难的。因此,利用DES加密算法加密尺寸稍大的QR码,只要加密的QR码传输或存储的时间不长,是能够保证其安全的。

DES加密算法加密或解密时是对明文或密文比特流进行加密或解密运算,因此,很适合用于QR码二值图像的加密。如果QR码二值图像不特别大,即需要加密的数据量不特别大,用DES加密或解密迅速,只需要很短的时间。用DES加密QR码,根据上节分析,只要避免使用弱密钥或半弱密钥加密QR码,一般情况下,安全性是有保证的。如果对加密的QR码安全性要求很高,或要求加密的QR码存储较长的时间,可采用3DES加密或采用DES与其他加密算法相结合的混合加密算法。

小知识之QR 码

QR 码是二维条码的一种,QR来自英文 “Quick Response” 的缩写,即快速反应的意思,源自发明者希望 QR 码可让其内容快速被解码。QR码比普通条码可储存更多资料,亦无需像普通条码般在扫描时需直线对准扫描器。