Data Matrix码的AES加密与解密研究
- 格式:doc
- 大小:8.10 KB
- 文档页数:2
aes加密原理AES(AdvancedEncryptionStandard)是一种对称加密算法,由美国国家标准技术研究所(NIST)发布。
AES加密算法是2001年美国国家标准技术研究所(NIST)颁布的一种数据加密标准,取代了DES(Data Encryption Standard)加密标准。
AES被广泛地应用在电子数据传输安全领域,特别是在银行、金融领域中得到了广泛的应用。
AES加密算法是一种分组密码,采用对称加密方式,即加密和解密使用相同的密钥。
AES加密算法可以使用128位(16字节)、192位(24字节)或256位(32字节)密钥。
它采用128位(16字节)分组来处理输入的明文数据,并将其分成4 * 4的字节矩阵。
AES加密算法基于一种叫做“置换-混淆”的基本原理,它在处理加密数据时,先将明文置换(变换),然后进行混淆(也就是扩散),最后再进行置换(变换)。
AES加密算法的安全性有很多方面的体现,它采用128位(16字节)、192位(24字节)或256位(32字节)密钥,有效提高了安全性。
AES加密算法是一种块加密方案,将明文以比较小的块进行处理,采用“替换置换”工作模式,使用S-box对明文进行替换,利用置换矩阵对明文进行筛选,大大增加了破解难度。
此外,AES使用相同的密钥对数据进行加解密,其算法设计上、系统实现都非常简单,它传输的安全性、安全可控性也更强。
AES加密安全性可靠,在电子数据传输安全领域有着广泛的应用,也被广泛应用于金融领域,但同时也存在一些安全隐患。
主要表现在,AES加密算法安全性受到各种攻击的影响,包括侦测攻击、中间人攻击和量子计算机攻击等。
侦测攻击是指在加密通信时,窃取到的信息及控制信息,从而进行攻击的一种技术;中间人攻击是指发起攻击的第三方拦截消息,窃取双方之间的明文,从而实现访问的一种攻击;量子计算机攻击是指利用量子计算机技术,破坏AES加密算法的安全性,实施访问的一种攻击方式。
AES算法加解密原理及安全性分析刘帅卿一、AES算法简介AES算法是高级加密标准算法的简称,其英文名称为Advanced Encryption Standard。
该加密标准的出现是因为随着对称密码的发展,以前使用的DES(Data Encryption Standard数据加密标准)算法由于密钥长度较小(56位),已经不适应当今数据加密安全性的要求,因此后来由Joan Daeman和Vincent Rijmen提交的Rijndael算法被提议为AES的最终算法。
AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。
与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。
通过分组密码返回的加密数据的位数与输入数据相同。
迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。
加之算法本身复杂的加密过程使得该算法成为数据加密领域的主流。
二、AES算法的基本概念1、有限域(GF)由于AES算法中的所有运算都是在有限域当中进行的,所以在理解和实现该算法之前先得打好有限域这一基石才行。
通常的数学运算都是在实数域中进行,而AES算法则是在有限域中进行,我们可以将有限域看成是有确定边界范围的正整数集合,在该集合当中,任意两个元素之间的运算结果都仍然落在该集合当中,也即满足运算封闭性。
那么如何才能保证这样的“有限性”(也即封闭性)呢?GF(2w)被称之为伽罗华域,是有限域的典型代表。
随着w(=4,8,16,…)的取值不同所形成的有限域范围也不同。
AES算法中引入了GF域当中对数学运算的基本定义:将两数的加减法定义为两者的异或运算;将两数的乘法定义为多项式间的相乘并求余运算,其中被用于求余运算的除数被称为不可约多项式(或者称为求余多项式),它是固定的一个多项式:m(x) =8431x x x x ++++(数值为十六进制的11B ,这里是假定w=8时的情形)。
AES 基本原理AES (Advanced Encryption Standard ,高级加密标准)密码算法是美国国家标准与技术研究所(NIST )在2001年正式推出的旨在取代DES (Data Encryption Standard ,数据加密标准)一种分组密码算法,明文长度为128比特,密钥长度可以在128、192、256比特中选择,其理论安全性比较高。
1. AES 数学基础在AES 中包含256个元素的有限域可以表示为8(2)GF ,选择这个有限域的原因在于该域中的每个元素都可以用一个字节来表示。
在S 盒和列混合变换中,AES 将内部数据的每个字节均表示为域8(2)GF 中的一个元素,并利用此有限域中的算术运算来对数据进行处理。
(1)8(2)GF 域内的加法与减法AES 的密钥加法层使用了模2加法运算,扩展域中的加法和减法操作都十分简单,就是通过标准多项式加法和减法来实现的,即仅需将与x 幂次相同项的系数在底层域GF(2)中进行模2运算就可以了。
此运算的数学定义如下:假设()A x ,()B x 是8(2)GF 域内的两个多项式,那么计算两个元素之和(或差)的方法为:70()() mod 2i i i i i i C x A x B x c x c a b ==±=≡+∑(),(2)8(2)GF 域内的乘法8(2)GF 域内的乘法是AES 列混合变换的核心操作。
乘法运算的数学定义如下:假设多项式()A x ,()B x 8(2)GF ∈,且存在多项式80 2i i i i P x p x p GF =≡∈∑(), ()是一个不可约多项式,则两个元素()A x 和()B x 的乘法运算可以表示为()()() mod ()C x A x B x P x ≡∙因此,每一个在域8(2)GF 中的乘法运算都需要一个度为8,且系数来自域(2)GF 中的不可约多项式()P x 。
在AES 中,规定使用的不可约多项式为:843()1P x x x x x =++++(3)8(2)GF 域内的逆运算8(2)GF 域内的逆运算是AES 中字节代换变换的核心操作,而字节代换变换包含了AES 的S 盒。
AES加密算法及其应用研究AES(Advanced Encryption Standard),即高级加密标准,是一种对称加密算法,用于对电子数据进行加密和解密。
它是由比利时密碼學家Joan Daemen和Vincent Rijmen设计的,该算法于2001年取代了旧的DES(Data Encryption Standard)算法,成为目前应用最广泛的加密算法之一AES算法的特点在于其高度安全和高效性。
它采用了一个128位的分组加密块和128、192或256位的密钥长度。
与DES相比,AES提供了更高的安全性,因为它的密钥长度更长,破解难度更大。
同时,AES算法的加密和解密效率也更高,密钥的生成速度更快,因此更适合用于大规模数据的加密和解密。
AES算法的应用非常广泛,主要体现在以下几个方面。
首先,AES加密算法被广泛用于网络通信中的数据加密。
例如,在互联网传输中,为了保证数据的机密性和完整性,常常需要对数据进行加密,再发送给接收方进行解密。
AES算法提供了一种安全可靠的加密方案,能够有效保护数据的机密性,防止数据被非法窃取或篡改。
其次,AES加密算法还被广泛应用于存储介质的数据加密。
随着大规模数据存储设备的普及,如硬盘、SSD等,数据的安全性成为了一个重要问题。
通过使用AES算法对存储介质中的数据进行加密,可以有效防止数据泄露和被非法访问,保护用户的隐私和敏感信息。
此外,AES算法还广泛应用于金融交易和电子商务领域。
由于这些领域涉及大量的敏感信息和财务数据,因此使用AES算法对数据进行加密是必要的,以确保数据的安全性和完整性。
例如,电子支付系统常常采用AES算法对用户的支付信息进行加密,确保信息在传输过程中不被篡改或盗取。
同时,在电子商务领域,AES算法也扮演着重要的角色,保护用户的个人信息和交易记录。
最后,AES算法还被应用于密码学研究和密码分析领域。
由于AES算法的高度安全性,它被广泛用于密码学研究中的算法设计和分析。
目录1.引言 (1)2.AES加密解密原理 (2)3.AES加密解密算法的组成部分 (6)3.1密钥部分 (6)3.1.1 AES的S盒 (6)3.1.2 AES的逆S盒 (7)3.1.3 轮常量 (8)3.1.4密钥移位函数 (8)3.1.5密钥字代换函数 (8)3.1.6密钥扩展算法 (9)3.2加密的部分 (10)3.2.1轮密钥加变换AddRoundKey(与密钥扩展的异或运算) (10)3.2.2字节代换SubBytes(即S盒变换) (11)3.2.3行移位变换ShiftRows (13)3.2.4列混淆变换MixColumns (14)3.3解密的部分 (15)3.3.1逆行移位变换InvShiftRows (15)3.3.2逆向字节代换(即逆S盒变换) (16)3.3.3轮密钥加变换 (17)3.3.4逆列混淆变换 (17)4.AES加密解密算法的改进 (18)5.结束语 (19)1.引言对称密码算法主要用于保证数据的机密性,通信双方在加密/解密过程中使用它们共享的单一密钥。
对称密码算法的使用相当广泛,密码学界已经对它们进行了深入的研究[1]。
最常用的对称密码算法是数据加密标准(DES) 算法,它是由IBM在美国国家安全局(NSA) 授意之下研制的一种使用56 位密钥的分组密码算法[2]。
该算法从1977 年公布成为美国政府的商用加密标准后,使用了30 多年。
随着社会的发展,科学技术日新月异,密码分析水平、芯片处理能力和计算技术也不断地进步,二十世纪七十年代到现在应用广泛的DES数据加密标准算法因为其密钥长度较小(仅有56位),已经越来越难适应当今社会的加密技术和安全要求,其实现速度、代码大小和跨平台性也不足以适应新的各种应用要求。
1997年,RSA安全赞助了一系列的竞赛,奖励第一个成功破解以DES加密的信息的队伍1万美元,洛克·韦尔谢什(Rocke Verser),马特·柯廷(Matt Curtin)和贾斯廷·多尔斯基(Justin Dolske)领导的DESCHALL计划获胜,该计划使用了数千台连接到互联网的计算机的闲置计算能力[3]。
AES算法的加密与解密过程
AES算法的加密过程包括以下四个步骤:
1.字节替代:将明文按字节代入S盒中的某一行,得到对应的字节替换后的
值。
2.行移位:将上一步骤得到的4个字节的矩阵进行行移位操作,第一行保持
不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节。
3.列混淆:对移位后的矩阵进行列混淆操作,将每一列的每个字节进行代入
运算,得到新的字节值。
4.轮密钥加:将第三步得到的矩阵与密钥进行异或运算,得到最终的密文。
解密过程与加密过程类似,分别是逆向替代、逆向移位、逆向混淆和逆向轮密钥加。
每个步骤都使用了不同的算法和操作,但整体上构成了对称加密算法。
AES算法加解密原理及安全性分析刘帅卿一、AES算法简介AES算法是高级加密标准算法的简称,其英文名称为Advanced Encryption Standard。
该加密标准的出现是因为随着对称密码的发展,以前使用的DES(Data Encryption Standard数据加密标准)算法由于密钥长度较小(56位),已经不适应当今数据加密安全性的要求,因此后来由Joan Daeman和Vincent Rijmen提交的Rijndael算法被提议为AES的最终算法。
AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。
与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。
通过分组密码返回的加密数据的位数与输入数据相同。
迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。
加之算法本身复杂的加密过程使得该算法成为数据加密领域的主流。
二、AES算法的基本概念1、有限域(GF)由于AES算法中的所有运算都是在有限域当中进行的,所以在理解和实现该算法之前先得打好有限域这一基石才行。
通常的数学运算都是在实数域中进行,而AES算法则是在有限域中进行,我们可以将有限域看成是有确定边界范围的正整数集合,在该集合当中,任意两个元素之间的运算结果都仍然落在该集合当中,也即满足运算封闭性。
那么如何才能保证这样的“有限性”(也即封闭性)呢?GF(2w)被称之为伽罗华域,是有限域的典型代表。
随着w(=4,8,16,…)的取值不同所形成的有限域范围也不同。
AES算法中引入了GF域当中对数学运算的基本定义:将两数的加减法定义为两者的异或运算;将两数的乘法定义为多项式间的相乘并求余运算,其中被用于求余运算的除数被称为不可约多项式(或者称为求余多项式),它是固定的一个多项式:m(x) =8431x x x x ++++(数值为十六进制的11B ,这里是假定w=8时的情形)。
AES加密算法实践AES(Advanced Encryption Standard)是一种常用的对称加密算法,广泛应用于各种信息安全领域。
本文将介绍AES加密算法的原理,以及如何在实践中使用AES进行数据加密和解密。
一、AES加密算法简介1.1 原理概述AES加密算法是基于Rijndael算法设计的,它采用128位的分组长度和128、192或256位的密钥长度,通过多轮的替代、置换和混合运算实现对数据的加密。
AES算法具有高度的安全性和良好的性能,成为了现代加密领域的事实标准。
1.2 加密和解密过程AES加密算法涉及两个关键过程:加密和解密。
加密过程将明文进行分组并经过多轮的操作得到加密后的密文;解密过程则是将密文逆转操作得到原始的明文。
二、AES加密算法实践步骤为了演示AES加密算法的实践应用,我们将以Python编程语言为例,介绍使用AES算法进行数据加密和解密的步骤。
2.1 安装所需库首先,确保计算机上已经安装了Python编程环境。
然后,通过pip安装pycryptodome库,它提供了AES算法的实现。
2.2 密钥生成在使用AES进行加密和解密之前,需要生成一个密钥。
密钥的长度可以是128、192或256位,根据实际需求确定。
2.3 数据分组将待加密的数据按照128位进行分组。
如果数据长度不足128位,需要进行填充。
2.4 加密过程使用生成的密钥对数据进行加密。
AES算法采用多轮的替代、置换和混合运算来实现加密过程。
2.5 解密过程使用相同的密钥对加密后的数据进行解密。
解密过程是加密过程的逆向操作,通过逆转多轮的替代、置换和混合运算来还原原始数据。
三、AES加密算法应用场景AES加密算法在信息安全领域有广泛的应用,下面将介绍一些常见的应用场景。
3.1 数据传输安全在网络通信和数据传输过程中,使用AES加密算法可以保证数据的机密性,防止敏感信息被窃取或篡改。
3.2 存储数据加密对于需要长期存储的敏感数据,可以使用AES加密算法对其进行加密,从而确保在数据泄露的情况下,被获取的数据无法被解读。
Python中如何使用AES算法进行加密和解密一、引言随着互联网的快速发展,财务交易、个人资料和敏感数据被传输在网络上的频率越来越高。
因此,保护数据的安全性和私密性成为了一项至关重要的任务。
加密技术是一种重要的手段,可以解决这个问题。
其中最受欢迎和应用广泛的加密算法是AES。
本文主要介绍Python中如何使用AES算法进行加密和解密的方法。
二、AES算法简介AES算法是高级加密标准(Advanced Encryption Standard)的缩写。
它是目前广泛使用的对称加密算法之一,是一种分组密码,加密和解密使用相同的秘钥(Key)进行。
AES算法的加密和解密都是基于密钥和明文的操作。
AES算法对明文进行加密时需要三个参数:明文、密钥和向量(IV),其中向量是用于增加随机性和异质性以增强密码体制的安全性的。
加密后,得到的密文只有通过使用相同的密钥和向量才能被解密。
因此,必须确保密钥和向量的安全性。
AES算法的强度与密钥长度有关,通常使用128、192或256位密钥。
三、Python中使用AES算法加密和解密的方法Python中使用AES算法加密和解密需要使用Crypto库,它是Python中专门提供密码学操作的库。
在使用之前,需要先安装Crypto 库:```pythonpip install pycrypto```在Crypto库中,有很多算法可以使用。
在这里,我们使用AES算法。
首先,需要导入Crypto库中的AES模块,如下所示:```pythonfrom Crypto.Cipher import AES```接下来,定义用于加密和解密的key和iv:```pythonkey = '0123456789abcdef'iv = 'fedcba9876543210'```key和iv都是以字符串形式定义的,长度分别为16个字符(128位)和16个字符(128位)。
数据加密与解密算法数据在今天的信息社会中扮演着至关重要的角色,可以是个人隐私,商业机密,甚至国家安全。
为了保护这些重要信息的安全性,数据加密与解密算法应运而生。
本文将探讨数据加密和解密算法的基本原理,以及一些常用的加密算法。
一、数据加密算法数据加密是将原始数据转换为加密数据的过程,以保护数据的机密性和完整性。
下面介绍几种常见的数据加密算法。
1. 对称加密算法对称加密算法使用相同的密钥对数据进行加密和解密。
加密和解密的过程都是可逆的,只要密钥相同,就可以还原原始数据。
DES(Data Encryption Standard)和AES(Advanced Encryption Standard)是对称加密算法的代表。
2. 非对称加密算法非对称加密算法使用一对密钥,分别是公钥和私钥。
公钥用于加密数据,私钥用于解密数据。
非对称加密算法具有更高的安全性,但加密解密的过程较慢。
RSA(Rivest-Shamir-Adleman)和ECC(Elliptic Curve Cryptography)是非对称加密算法的代表。
3. 哈希算法哈希算法通过将原始数据转换为固定长度的哈希值,以保护数据的完整性。
哈希算法是一种单向函数,即无法从哈希值还原原始数据。
常用的哈希算法有MD5(Message Digest Algorithm 5)和SHA (Secure Hash Algorithm)系列。
二、数据解密算法数据解密是将加密数据还原为原始数据的过程。
解密算法需要使用相同的密钥或密钥对进行解密操作。
下面介绍几种常见的数据解密算法。
1. 对称解密算法对称解密算法使用与加密过程相同的密钥进行解密操作。
由于密钥是相同的,解密操作可以无损地还原原始数据。
DES和AES是对称解密算法的代表。
2. 非对称解密算法非对称解密算法使用与加密过程不同的密钥进行解密操作。
解密的过程需要使用私钥进行,确保只有密钥持有者能够解密数据。
RSA和ECC是非对称解密算法的代表。
Data Matrix码的AES加密与解密研究
摘要:将AES加密算法应用于Data Matrix码的加密,并在.net平台上运用C#语言开发加密Data Matrix生成系统。
通过运用条码扫描枪对加密Data Matrix码进行识别,并利用AES解密程序对其所携数据解密验证,最后对该系统生成的80串比特流进行密码学随机性测试。
实验结果表明,该系统生成的加密条码在一定程度上提高了Data Matrix码的安全性,能够满足识别速度和可靠性的要求。
关键词: Data Matrix; AES; 加密; 随机性二维条码技术是一项集编码、印刷、识别、数据采集和处理于一体的自动识别技术,广泛应用于金融、贸易、物流、通信、制造及政府管理等领域。
但要将二维条码应用于商业秘密、政府机密、以至军事机密等数据安全性要求较高的场合,就需要对二维条码进行加密。
因此研究二维条码加密已成为拓展二维条码应用的重要内容。
二维条码的加密,首先要保证加密强度,使其不能被轻易破解;其次要保证加密后二维条码的识别速度和可靠性基本不受影响。
因为二维条码作为数据采集和输入技术,其目的就是为了提高自动化效率。
在二维条码的加密技术研究领域,目前主要有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所示。
通过对3种加密算法的对比,发现AES算法最符合二维条码加密的要求,无论其在加密强度和速度方面,都具有优势。
目前为止,还没有文献表明能够成功破译AES,因此AES算法是安全的。
AES的设计融合了各方面的各种特色,从而能够抵抗已有的各种攻击。
如使用有限域中的逆运算构造的S盒,则可使其线性逼近和差分分布表中的各项趋近于均匀分布,为抵御差分和线性攻击提供了安全性。
线性变换MixColumns使得差分和线性攻击找到包含较少活动S盒成为不可能事件。
所以对AES不存在快于穷尽搜索的已知攻击[8]。
本文采用密钥长度为128 bit的AES加密算法,期望将加密强度高、加密解密速度快等优势在基于加密的DM码上得以体现。
2 DM码的加密生成系统实现对于具有AES加密的DM码的生成系统,采
用了前文所述的第一种加密方式,即先将待编码的原始信息进行AES加密处理,并生成密文,再对密文进行编码生成加密的DM码。
以.net为开发平台, 运用C#语言为工具,设计开发了加密DM码生成系统。
系统的具体流程。
由于.net平台自身具有AES加密的接口,在用代码实现DM码加密生成系统时,可以直接调用AesCryptoServiceProvider和ICryptoTransform对象,实现DM码的AES加密。
具体的C#代码示例如下: Private string AesEncrypt(string plainText, string strKey) { AesCryptoServiceProvider provider=new AesCryptoServiceProvider(); provider.Key=Encoding.Unicode.GetBytes(strKey); provider.IV=m_keyVec;ICryptoTransform aesEncrtpt = provider.CreateEncryptor();byte[] inputText = Encoding.Unicode.GetBytes(plainText); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms,aes Encrtpt, CryptoStreamMode.Write); ……}
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.3 测试结果分析
由图4和图5可以看出,频率测试和游程测试所得的P-value值都大于0.01,表明检测的比特流不仅在0,1总数占比上随机,而且其分布也随机。
这充分说明将AES算法用于DM 码加密的优越性和合理性。
本文通过将AES算法应用于DM码加密,在.net平台上开发加密DM码生成系统,然后对生成的加密DM码用条码扫描枪进行识别验证,再对加密后DM 码比特流进行随机性测试。
结果表明,该方法取得了良好的加密效果,达到了提高DM码携带数据安全性的目的,而且对条码的识别速度没有明显影响。