《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > Data Matrix碼的AES加密與解密研究
Data Matrix碼的AES加密與解密研究
來(lái)源:電子技術(shù)應(yīng)用2013年第11期
劉 迪, 周丹晨
中國(guó)工程物理研究院 機(jī)械制造研究所, 四川 綿陽(yáng)621900
摘要: 將AES加密算法應(yīng)用于Data Matrix碼的加密,并在.net平臺(tái)上運(yùn)用C#語(yǔ)言開(kāi)發(fā)加密Data Matrix生成系統(tǒng)。通過(guò)運(yùn)用條碼掃描槍對(duì)加密Data Matrix碼進(jìn)行識(shí)別,并利用AES解密程序?qū)ζ渌鶖y數(shù)據(jù)解密驗(yàn)證,最后對(duì)該系統(tǒng)生成的80串比特流進(jìn)行密碼學(xué)隨機(jī)性測(cè)試。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)生成的加密條碼在一定程度上提高了Data Matrix碼的安全性,能夠滿足識(shí)別速度和可靠性的要求。
關(guān)鍵詞: 軟件 datamatrix AES 加密 隨機(jī)性
中圖分類號(hào): TP391.4
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)11-0125-04
Research of AES encryption and decryption of data matrix barcode
Liu Di, Zhou Danchen
Institute of Mechanical Manufacture Technology, China Academy of Engineering Physics, Mianyang 621900, China
Abstract: The AES algorithm was applied in the encryption of the Data Matrix barcode, and a Data Matrix encryption generator system was developed in C# under the .net platform. The encrypted Data Matrix barcode was recognized by a barcode scanner, then the data in the barcode were decrypted and verified by an AES decryption program,finally, 80 series of bit stream generated by the system were tested for cryptographic randomness. The experimental result shows that the encrypted barcodes generated by the system improve the security of Data Matrix barcode in a certain extent and can meet the demand for the recognition speed and reliability.
Key words : Data Matrix; AES; encryption; randomness

    二維條碼技術(shù)是一項(xiàng)集編碼、印刷、識(shí)別、數(shù)據(jù)采集和處理于一體的自動(dòng)識(shí)別技術(shù),廣泛應(yīng)用于金融、貿(mào)易、物流、通信、制造及政府管理等領(lǐng)域。但要將二維條碼應(yīng)用于商業(yè)秘密、政府機(jī)密、以至軍事機(jī)密等數(shù)據(jù)安全性要求較高的場(chǎng)合,就需要對(duì)二維條碼進(jìn)行加密。因此研究二維條碼加密已成為拓展二維條碼應(yīng)用的重要內(nèi)容。

    二維條碼的加密,首先要保證加密強(qiáng)度,使其不能被輕易破解;其次要保證加密后二維條碼的識(shí)別速度和可靠性基本不受影響。因?yàn)槎S條碼作為數(shù)據(jù)采集和輸入技術(shù),其目的就是為了提高自動(dòng)化效率。在二維條碼的加密技術(shù)研究領(lǐng)域,目前主要有3種方式:(1)在原始信息編碼前,對(duì)原始信息進(jìn)行加密形成密文,再將密文生成二維條碼。如付利莉運(yùn)用DES加密算法對(duì)PDF417碼進(jìn)行加密[1],張文愛(ài)等利用混沌改進(jìn)后的RC4算法對(duì)QR碼進(jìn)行加密[2]。但DES加密算法的安全性略顯不足,不能用于信息安全性要求較高的場(chǎng)合,而改進(jìn)后的RC4算法解密速度較慢,降低了QR碼的識(shí)別速度。(2)先將原始信息生成二維條碼,再對(duì)二維條碼圖像進(jìn)行加密處理。如張定會(huì)等分別采用DES加密算法和Logistic混沌對(duì)QR碼二值圖像進(jìn)行加密處理[3-4]。但兩種方法得到的圖像都打亂了QR碼原有結(jié)構(gòu),有可能對(duì)條碼的識(shí)別帶來(lái)影響。(3)將前兩種加密方式相結(jié)合以期望進(jìn)一步提高加密強(qiáng)度。如方媛等首先利用基于DES和RSA的混合加密算法對(duì)二維條碼的原始信息進(jìn)行加密,再將生成的加密二維條碼圖像用離散分?jǐn)?shù)傅里葉變換雙隨機(jī)相位編碼技術(shù)進(jìn)行二次加密,得到最終的加密條碼[5]。這種加密方案雖然提高了加密的強(qiáng)度,但過(guò)于復(fù)雜,同樣打亂了條碼的固有結(jié)構(gòu),其實(shí)用性需進(jìn)一步研究。
    本文以典型二維條碼Data Matrix碼(簡(jiǎn)稱DM碼)為研究對(duì)象,采用新一代加密標(biāo)準(zhǔn)AES算法作為DM碼的加密算法,開(kāi)發(fā)加密DM碼生成系統(tǒng),以期望得到具有較高的加密強(qiáng)度和識(shí)別速度的加密DM碼。
1 加密算法選取
    對(duì)二維條碼加密,既要保證加密強(qiáng)度,也要具有較快的加密和解密速度,因此加密算法的選取是關(guān)鍵。本文通過(guò)對(duì)3種常用的加密算法:3DES算法、AES算法和RSA算法的特點(diǎn)進(jìn)行對(duì)比,以二維條碼加密的要求為依據(jù),從而選取一種適于二維條碼加密的加密算法。
    3DES算法是DES向AES過(guò)渡的加密算法,由美國(guó)標(biāo)準(zhǔn)FIPS-3于1999年定義,其明文分組長(zhǎng)度仍為64 bit,但密鑰長(zhǎng)度為168 bit[6],相當(dāng)于DES密鑰的3倍。AES算法是為取代DES而征集產(chǎn)生的,并于2001年由FIPS-197公布,具有128 bit的分組長(zhǎng)度,并提供3種可選的密鑰長(zhǎng)度,即128 bit、192 bit、256 bit[7];RSA算法是一種使用最為廣泛的公鑰加密算法,其安全性取決于整數(shù)因子分解的困難性,故而要保證信息安全,密碼專家建議RSA算法的公鑰長(zhǎng)度至少需取1 024 bit[8]。3種加密算法特點(diǎn)的對(duì)比如表1所示。


    通過(guò)對(duì)3種加密算法的對(duì)比,發(fā)現(xiàn)AES算法最符合二維條碼加密的要求,無(wú)論其在加密強(qiáng)度和速度方面,都具有優(yōu)勢(shì)。目前為止,還沒(méi)有文獻(xiàn)表明能夠成功破譯AES,因此AES算法是安全的。AES的設(shè)計(jì)融合了各方面的各種特色,從而能夠抵抗已有的各種攻擊。如使用有限域中的逆運(yùn)算構(gòu)造的S盒,則可使其線性逼近和差分分布表中的各項(xiàng)趨近于均勻分布,為抵御差分和線性攻擊提供了安全性。線性變換MixColumns使得差分和線性攻擊找到包含較少活動(dòng)S盒成為不可能事件。所以對(duì)AES不存在快于窮盡搜索的已知攻擊[8]。
    本文采用密鑰長(zhǎng)度為128 bit的AES加密算法,期望將加密強(qiáng)度高、加密解密速度快等優(yōu)勢(shì)在基于加密的DM碼上得以體現(xiàn)。
2 DM碼的加密生成系統(tǒng)實(shí)現(xiàn)
 對(duì)于具有AES加密的DM碼的生成系統(tǒng),采用了前文所述的第一種加密方式,即先將待編碼的原始信息進(jìn)行AES加密處理,并生成密文,再對(duì)密文進(jìn)行編碼生成加密的DM碼。以.net為開(kāi)發(fā)平臺(tái), 運(yùn)用C#語(yǔ)言為工具,設(shè)計(jì)開(kāi)發(fā)了加密DM碼生成系統(tǒng)。系統(tǒng)的具體流程如圖1所示。

    由于.net平臺(tái)自身具有AES加密的接口,在用代碼實(shí)現(xiàn)DM碼加密生成系統(tǒng)時(shí),可以直接調(diào)用AesCryptoServiceProvider和ICryptoTransform對(duì)象,實(shí)現(xiàn)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碼的識(shí)別驗(yàn)證
      對(duì)于加密DM碼的識(shí)別驗(yàn)證,本實(shí)驗(yàn)采用Honeywell Xenon 1900系列條碼掃描槍,此系列條碼掃描槍對(duì)常見(jiàn)二維條碼都具有良好的識(shí)別率和可靠性。該掃描槍的數(shù)據(jù)傳輸接口有USB接口和com接口,本實(shí)驗(yàn)采用后者。將掃描槍的數(shù)據(jù)傳輸端口與計(jì)算機(jī)的com接口連接,利用C#代碼獲取計(jì)算機(jī)的com接口為通信端口,從而將條碼掃描槍所得數(shù)據(jù)傳入計(jì)算機(jī)內(nèi)存,以便對(duì)其進(jìn)行AES解密,完成對(duì)加密DM碼的識(shí)別解密。AES算法的解密過(guò)程為其加密的逆過(guò)程,所以只需保證密碼一致,就可正確解密。
     實(shí)驗(yàn)過(guò)程為,首先將加密DM碼打印出來(lái),采用與AES解密軟件聯(lián)接的掃描槍對(duì)打印出來(lái)的加密DM碼進(jìn)行識(shí)別驗(yàn)證。實(shí)驗(yàn)環(huán)境:
    (1)溫度:室溫15 ℃~25 ℃;
    (2)照度:大于300lx。
     通過(guò)對(duì)一組(40個(gè))加密DM碼進(jìn)行識(shí)別,發(fā)現(xiàn)只有一個(gè)條碼由于打印質(zhì)量不佳而不能識(shí)別,其余條碼都能夠準(zhǔn)確識(shí)別并成功解密,并且識(shí)別速度與未加密的DM碼沒(méi)有明顯差異,因此本文采用的加密方式對(duì)條碼的識(shí)別速度影響不大。
4 加密強(qiáng)度分析
 本文將AES算法應(yīng)用于對(duì)DM碼進(jìn)行加密,經(jīng)過(guò)AES加密的條碼原始數(shù)據(jù)要按照DM碼的編碼規(guī)則生成比特流,所以還需要對(duì)其進(jìn)行加密強(qiáng)度分析。由于DM碼有其自身的編碼規(guī)則,生成比特流的數(shù)據(jù)量有一定的規(guī)律,所以按其比特流規(guī)律選取128 bit、256 bit、 384 bit、512 bit、640 bit、768 bit、896 bit、1 024這8種類型,每種比特流類型隨機(jī)選取10串比特流作為分析對(duì)象,根據(jù)NIST標(biāo)準(zhǔn)進(jìn)行隨機(jī)性測(cè)試,NIST的密碼學(xué)隨機(jī)性測(cè)試標(biāo)準(zhǔn)適于檢測(cè)由硬件或軟件系統(tǒng)生成的密碼學(xué)隨機(jī)和偽隨機(jī)比特序列[9]。

4.3 測(cè)試結(jié)果分析

 


    由圖4和圖5可以看出,頻率測(cè)試和游程測(cè)試所得的P-value值都大于0.01,表明檢測(cè)的比特流不僅在0,1總數(shù)占比上隨機(jī),而且其分布也隨機(jī)。這充分說(shuō)明將AES算法用于DM碼加密的優(yōu)越性和合理性。
    本文通過(guò)將AES算法應(yīng)用于DM碼加密,在.net平臺(tái)上開(kāi)發(fā)加密DM碼生成系統(tǒng),然后對(duì)生成的加密DM碼用條碼掃描槍進(jìn)行識(shí)別驗(yàn)證,再對(duì)加密后DM碼比特流進(jìn)行隨機(jī)性測(cè)試。結(jié)果表明,該方法取得了良好的加密效果,達(dá)到了提高DM碼攜帶數(shù)據(jù)安全性的目的,而且對(duì)條碼的識(shí)別速度沒(méi)有明顯影響。
參考文獻(xiàn)
[1] 付利莉. DES算法在二維條碼數(shù)據(jù)加密中的應(yīng)用[J].石油化工高等學(xué)校學(xué)報(bào),2005,18(2):80-82.
[2] 張文愛(ài),呂韜.物料數(shù)據(jù)加密QR碼識(shí)別系統(tǒng)的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(4):117-119.
[3] 張定會(huì),單俊濤,江平.QR碼DES加密與解密[J].數(shù)據(jù)通信,2011(3):40-42.
[4] 張定會(huì),郭靜波,江平,等.QR碼二值圖像混沌加密與解密[J].移動(dòng)通信,2011(3-4):131-134.
[5] 方媛,傅華明.二維條碼加密算法的研究[J].電子技術(shù),2009(1):42-43.
[6] 龍夏,肖連軍,檀明.基于3DES加密的ATM亂序密碼鍵盤的設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2010,35(6):69-71.
[7] 張聞?dòng)?高級(jí)加密標(biāo)準(zhǔn)AES中若干問(wèn)題的研究[D].西安:西安電子科技大學(xué),2003.
[8] STINSON D R.密碼學(xué)原理與實(shí)踐[M]. 馮登國(guó),等譯.北京:電子工業(yè)出版社,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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。