APP下载

Data Matrix码的AES加密与解密研究

2013-08-13周丹晨

电子技术应用 2013年11期
关键词:游程加密算法条码

刘 迪,周丹晨

(中国工程物理研究院 机械制造研究所,四川 绵阳621900)

二维条码技术是一项集编码、印刷、识别、数据采集和处理于一体的自动识别技术,广泛应用于金融、贸易、物流、通信、制造及政府管理等领域。但要将二维条码应用于商业秘密、政府机密、以至军事机密等数据安全性要求较高的场合,就需要对二维条码进行加密。因此研究二维条码加密已成为拓展二维条码应用的重要内容。

二维条码的加密,首先要保证加密强度,使其不能被轻易破解;其次要保证加密后二维条码的识别速度和可靠性基本不受影响。因为二维条码作为数据采集和输入技术,其目的就是为了提高自动化效率。在二维条码的加密技术研究领域,目前主要有3种方式:(1)在原始信息编码前,对原始信息进行加密形成密文,再将密文生成二维条码。如付利莉运用DES加密算法对PDF417码进行加密[1],张文爱等利用混沌改进后的RC4算法对QR码进行加密[2]。但DES加密算法的安全性略显不足,不能用于信息安全性要求较高的场合,而改进后的RC4算法解密速度较慢,降低了QR码的识别速度。(2)先将原始信息生成二维条码,再对二维条码图像进行加密处理。如张定会等分别采用DES加密算法和Logistic混沌对QR码二值图像进行加密处理[3-4]。但两种方法得到的图像都打乱了QR码原有结构,有可能对条码的识别带来影响。(3)将前两种加密方式相结合以期望进一步提高加密强度。如方媛等首先利用基于DES和RSA的混合加密算法对二维条码的原始信息进行加密,再将生成的加密二维条码图像用离散分数傅里叶变换双随机相位编码技术进行二次加密,得到最终的加密条码[5]。这种加密方案虽然提高了加密的强度,但过于复杂,同样打乱了条码的固有结构,其实用性需进一步研究。

本文以典型二维条码 Data Matrix码(简称 DM码)为研究对象,采用新一代加密标准AES算法作为DM码的加密算法,开发加密DM码生成系统,以期望得到具有较高的加密强度和识别速度的加密DM码。

1 加密算法选取

对二维条码加密,既要保证加密强度,也要具有较快的加密和解密速度,因此加密算法的选取是关键。本文通过对3种常用的加密算法:3DES算法、AES算法和RSA算法的特点进行对比,以二维条码加密的要求为依据,从而选取一种适于二维条码加密的加密算法。

3DES算法是DES向AES过渡的加密算法,由美国标准FIPS-3于1999年定义,其明文分组长度仍为64 bit,但密钥长度为168 bit[6],相当于DES密钥的3倍。AES算法是为取代DES而征集产生的,并于2001年由FIPS-197公布,具有128 bit的分组长度,并提供 3种可选的密钥长度,即 128 bit、192 bit、256 bit[7];RSA算法是一种使用最为广泛的公钥加密算法,其安全性取决于整数因子分解的困难性,故而要保证信息安全,密码专家建议RSA算法的公钥长度至少需取1 024 bit[8]。3种加密算法特点的对比如表1所示。

表1 3种加密算法特点对比

通过对3种加密算法的对比,发现AES算法最符合二维条码加密的要求,无论其在加密强度和速度方面,都具有优势。目前为止,还没有文献表明能够成功破译AES,因此AES算法是安全的。AES的设计融合了各方面的各种特色,从而能够抵抗已有的各种攻击。如使用有限域中的逆运算构造的S盒,则可使其线性逼近和差分分布表中的各项趋近于均匀分布,为抵御差分和线性攻击提供了安全性。线性变换MixColumns使得差分和线性攻击找到包含较少活动S盒成为不可能事件。所以对AES不存在快于穷尽搜索的已知攻击[8]。

本文采用密钥长度为128 bit的AES加密算法,期望将加密强度高、加密解密速度快等优势在基于加密的DM码上得以体现。

2 DM码的加密生成系统实现

对于具有AES加密的DM码的生成系统,采用了前文所述的第一种加密方式,即先将待编码的原始信息进行AES加密处理,并生成密文,再对密文进行编码生成加密的DM码。以.net为开发平台,运用C#语言为工具,设计开发了加密DM码生成系统。系统的具体流程如图1所示。

由于.net平台自身具有AES加密的接口,在用代码实现DM码加密生成系统时,可以直接调用AesCryptoServiceProvider和ICryptoTransform对象,实现DM码的AES加密。具体的C#代码示例如下:

图1 加密DM码生成流程图

以原始数据“12345”为例,利用未加密的DM生成系统生成的DM码如图2所示,而利用加密DM码生成系统获得的加密DM如图3所示。用普通条码扫描枪对图3所示DM码进行识别,只能得到密文达到了加密的目的。

图2 未加密DM码

图3 加密DM码

3 加密DM码的识别验证

对于加密DM码的识别验证,本实验采用Honeywell Xenon 1900系列条码扫描枪,此系列条码扫描枪对常见二维条码都具有良好的识别率和可靠性。该扫描枪的数据传输接口有USB接口和com接口,本实验采用后者。将扫描枪的数据传输端口与计算机的com接口连接,利用C#代码获取计算机的com接口为通信端口,从而将条码扫描枪所得数据传入计算机内存,以便对其进行AES解密,完成对加密DM码的识别解密。AES算法的解密过程为其加密的逆过程,所以只需保证密码一致,就可正确解密。

实验过程为,首先将加密DM码打印出来,采用与AES解密软件联接的扫描枪对打印出来的加密DM码进行识别验证。实验环境:

(1)温度:室温 15℃~25℃;

(2)照度:大于 300lx。

通过对一组(40个)加密DM码进行识别,发现只有一个条码由于打印质量不佳而不能识别,其余条码都能够准确识别并成功解密,并且识别速度与未加密的DM码没有明显差异,因此本文采用的加密方式对条码的识别速度影响不大。

4 加密强度分析

本文将AES算法应用于对DM码进行加密,经过AES加密的条码原始数据要按照DM码的编码规则生成比特流,所以还需要对其进行加密强度分析。由于DM码有其自身的编码规则,生成比特流的数据量有一定的规律,所以按其比特流规律选取 128 bit、256 bit、384 bit、512 bit、640 bit、768 bit、896 bit、1 024 这 8 种类型,每种比特流类型随机选取10串比特流作为分析对象,根据NIST标准进行随机性测试,NIST的密码学随机性测试标准适于检测由硬件或软件系统生成的密码学随机和伪随机比特序列[9]。

4.1 频率测试

频率测试的目的是为了检测1和0分别在比特流中所占的百分比是否接近,如果接近,则表明比特流的随机性高。频率测试要求比特流大于100 bit,本实验选取的数据符合要求。测试步骤如下:

(1)将比特流中的0替换为-1并求和;

其中,Xi=2εi-1,εi为比特流中第 i位的 值,Sn为 n 个 xi之和。

(2)计算测试统计值Sobs;

其中,n为比特流的长度。

(3)计算频率测试的 P-value;

式(4)为误差函数,其中的π为圆周率值。

本文将数据量大小不一的80串比特流,运用Matlab按上述步骤进行处理,得到频率测试P-value的值如图4所示。

4.2 游程测试

游程测试的目的是为了检测比特流中1和0的变换长度是否达到期望的随机性。游程测试以频率测试通过作为先决条件。测试步骤如下。

(1)计算1在比特流中所占比重

图4 频率测试结果

式中的π为1在比特流中所占比重,εj为比特流中第j位的值,n为比特流长度。

(2)判断游程测试是否继续:

其中的 π 为式(5)计算所得。 如果满足|π-1/2|≥τ,则游程测试可不做;否则,继续进行下面的步骤。

(3)计算序列的游程数:

其中,如果 εk=εk+1,则 r(k)=0,否则 r(k)=1。

(4)计算游程测试的P-value

式中,π为圆周率值,n为比特流长度。

用Matlab以上述步骤对80串比特流进行处理,获得游程测试的P-value值如图5所示。

图5 游程测试结果

4.3 测试结果分析

由图4和图5可以看出,频率测试和游程测试所得的P-value值都大于0.01,表明检测的比特流不仅在0,1总数占比上随机,而且其分布也随机。这充分说明将AES算法用于DM码加密的优越性和合理性。

本文通过将AES算法应用于DM码加密,在.net平台上开发加密DM码生成系统,然后对生成的加密DM码用条码扫描枪进行识别验证,再对加密后DM码比特流进行随机性测试。结果表明,该方法取得了良好的加密效果,达到了提高DM码携带数据安全性的目的,而且对条码的识别速度没有明显影响。

[1]付利莉.DES算法在二维条码数据加密中的应用[J].石油化工高等学校学报,2005,18(2):80-82.

[2]张文爱,吕韬.物料数据加密QR码识别系统的实现[J].电子技术应用,2012,38(4):117-119.

[3]张定会,单俊涛,江平.QR码 DES加密与解密[J].数据通信,2011(3):40-42.

[4]张定会,郭静波,江平,等.QR码二值图像混沌加密与解密[J].移动通信,2011(3-4):131-134.

[5]方媛,傅华明.二维条码加密算法的研究[J].电子技术,2009(1):42-43.

[6]龙夏,肖连军,檀明.基于 3DES加密的ATM乱序密码键盘的设计[J].电脑知识与技术,2010,35(6):69-71.

[7]张闻宇.高级加密标准AES中若干问题的研究[D].西安:西安电子科技大学,2003.

[8]STINSON D R.密码学原理与实践[M].冯登国,等译.北京:电子工业出版社,2009.

[9]RUKHIN A,SOTO J,NECHVA J,et al.A statistical test suite for random and pseudorandom number generators for Cryptographic Applications[S].NIST Special Publication,2010.

猜你喜欢

游程加密算法条码
热线互动
中国羽毛球组合郑思维/黄雅琼连续得失分规律研究
浅析影响商品条码质量的主要因素
日杂商品条码质量现状研究
改进型相对游程长度编码方法
GF(3)上两类广义自缩序列的伪随机性*
HES:一种更小公钥的同态加密算法
RPT方法在多元游程检验中的应用
基于小波变换和混沌映射的图像加密算法
ISSN条码的制作和印前输出要点