《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > Data Matrix碼的AES加密與解密研究
Data Matrix碼的AES加密與解密研究
來源:電子技術(shù)應(yīng)用2013年第11期
劉 迪, 周丹晨
中國工程物理研究院 機(jī)械制造研究所, 四川 綿陽621900
摘要: 將AES加密算法應(yīng)用于Data Matrix碼的加密,并在.net平臺上運用C#語言開發(fā)加密Data Matrix生成系統(tǒng)。通過運用條碼掃描槍對加密Data Matrix碼進(jìn)行識別,并利用AES解密程序?qū)ζ渌鶖y數(shù)據(jù)解密驗證,最后對該系統(tǒng)生成的80串比特流進(jìn)行密碼學(xué)隨機(jī)性測試。實驗結(jié)果表明,該系統(tǒng)生成的加密條碼在一定程度上提高了Data Matrix碼的安全性,能夠滿足識別速度和可靠性的要求。
關(guān)鍵詞: 軟件 datamatrix AES 加密 隨機(jī)性
中圖分類號: TP391.4
文獻(xiàn)標(biāo)識碼: A
文章編號: 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ù)是一項集編碼、印刷、識別、數(shù)據(jù)采集和處理于一體的自動識別技術(shù),廣泛應(yīng)用于金融、貿(mào)易、物流、通信、制造及政府管理等領(lǐng)域。但要將二維條碼應(yīng)用于商業(yè)秘密、政府機(jī)密、以至軍事機(jī)密等數(shù)據(jù)安全性要求較高的場合,就需要對二維條碼進(jìn)行加密。因此研究二維條碼加密已成為拓展二維條碼應(yīng)用的重要內(nèi)容。

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


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

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

4.3 測試結(jié)果分析

 


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