劉 迪,周丹晨
(中國工程物理研究院 機械制造研究所,四川 綿陽621900)
二維條碼技術是一項集編碼、印刷、識別、數(shù)據(jù)采集和處理于一體的自動識別技術,廣泛應用于金融、貿易、物流、通信、制造及政府管理等領域。但要將二維條碼應用于商業(yè)秘密、政府機密、以至軍事機密等數(shù)據(jù)安全性要求較高的場合,就需要對二維條碼進行加密。因此研究二維條碼加密已成為拓展二維條碼應用的重要內容。
二維條碼的加密,首先要保證加密強度,使其不能被輕易破解;其次要保證加密后二維條碼的識別速度和可靠性基本不受影響。因為二維條碼作為數(shù)據(jù)采集和輸入技術,其目的就是為了提高自動化效率。在二維條碼的加密技術研究領域,目前主要有3種方式:(1)在原始信息編碼前,對原始信息進行加密形成密文,再將密文生成二維條碼。如付利莉運用DES加密算法對PDF417碼進行加密[1],張文愛等利用混沌改進后的RC4算法對QR碼進行加密[2]。但DES加密算法的安全性略顯不足,不能用于信息安全性要求較高的場合,而改進后的RC4算法解密速度較慢,降低了QR碼的識別速度。(2)先將原始信息生成二維條碼,再對二維條碼圖像進行加密處理。如張定會等分別采用DES加密算法和Logistic混沌對QR碼二值圖像進行加密處理[3-4]。但兩種方法得到的圖像都打亂了QR碼原有結構,有可能對條碼的識別帶來影響。(3)將前兩種加密方式相結合以期望進一步提高加密強度。如方媛等首先利用基于DES和RSA的混合加密算法對二維條碼的原始信息進行加密,再將生成的加密二維條碼圖像用離散分數(shù)傅里葉變換雙隨機相位編碼技術進行二次加密,得到最終的加密條碼[5]。這種加密方案雖然提高了加密的強度,但過于復雜,同樣打亂了條碼的固有結構,其實用性需進一步研究。
本文以典型二維條碼 Data Matrix碼(簡稱 DM碼)為研究對象,采用新一代加密標準AES算法作為DM碼的加密算法,開發(fā)加密DM碼生成系統(tǒng),以期望得到具有較高的加密強度和識別速度的加密DM碼。
對二維條碼加密,既要保證加密強度,也要具有較快的加密和解密速度,因此加密算法的選取是關鍵。本文通過對3種常用的加密算法:3DES算法、AES算法和RSA算法的特點進行對比,以二維條碼加密的要求為依據(jù),從而選取一種適于二維條碼加密的加密算法。
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算法是一種使用最為廣泛的公鑰加密算法,其安全性取決于整數(shù)因子分解的困難性,故而要保證信息安全,密碼專家建議RSA算法的公鑰長度至少需取1 024 bit[8]。3種加密算法特點的對比如表1所示。
表1 3種加密算法特點對比
通過對3種加密算法的對比,發(fā)現(xiàn)AES算法最符合二維條碼加密的要求,無論其在加密強度和速度方面,都具有優(yōu)勢。目前為止,還沒有文獻表明能夠成功破譯AES,因此AES算法是安全的。AES的設計融合了各方面的各種特色,從而能夠抵抗已有的各種攻擊。如使用有限域中的逆運算構造的S盒,則可使其線性逼近和差分分布表中的各項趨近于均勻分布,為抵御差分和線性攻擊提供了安全性。線性變換MixColumns使得差分和線性攻擊找到包含較少活動S盒成為不可能事件。所以對AES不存在快于窮盡搜索的已知攻擊[8]。
本文采用密鑰長度為128 bit的AES加密算法,期望將加密強度高、加密解密速度快等優(yōu)勢在基于加密的DM碼上得以體現(xiàn)。
對于具有AES加密的DM碼的生成系統(tǒng),采用了前文所述的第一種加密方式,即先將待編碼的原始信息進行AES加密處理,并生成密文,再對密文進行編碼生成加密的DM碼。以.net為開發(fā)平臺,運用C#語言為工具,設計開發(fā)了加密DM碼生成系統(tǒng)。系統(tǒng)的具體流程如圖1所示。
由于.net平臺自身具有AES加密的接口,在用代碼實現(xiàn)DM碼加密生成系統(tǒng)時,可以直接調用AesCryptoServiceProvider和ICryptoTransform對象,實現(xiàn)DM碼的AES加密。具體的C#代碼示例如下:
圖1 加密DM碼生成流程圖
以原始數(shù)據(jù)“12345”為例,利用未加密的DM生成系統(tǒng)生成的DM碼如圖2所示,而利用加密DM碼生成系統(tǒng)獲得的加密DM如圖3所示。用普通條碼掃描槍對圖3所示DM碼進行識別,只能得到密文達到了加密的目的。
圖2 未加密DM碼
圖3 加密DM碼
對于加密DM碼的識別驗證,本實驗采用Honeywell Xenon 1900系列條碼掃描槍,此系列條碼掃描槍對常見二維條碼都具有良好的識別率和可靠性。該掃描槍的數(shù)據(jù)傳輸接口有USB接口和com接口,本實驗采用后者。將掃描槍的數(shù)據(jù)傳輸端口與計算機的com接口連接,利用C#代碼獲取計算機的com接口為通信端口,從而將條碼掃描槍所得數(shù)據(jù)傳入計算機內存,以便對其進行AES解密,完成對加密DM碼的識別解密。AES算法的解密過程為其加密的逆過程,所以只需保證密碼一致,就可正確解密。
實驗過程為,首先將加密DM碼打印出來,采用與AES解密軟件聯(lián)接的掃描槍對打印出來的加密DM碼進行識別驗證。實驗環(huán)境:
(1)溫度:室溫 15℃~25℃;
(2)照度:大于 300lx。
通過對一組(40個)加密DM碼進行識別,發(fā)現(xiàn)只有一個條碼由于打印質量不佳而不能識別,其余條碼都能夠準確識別并成功解密,并且識別速度與未加密的DM碼沒有明顯差異,因此本文采用的加密方式對條碼的識別速度影響不大。
本文將AES算法應用于對DM碼進行加密,經(jīng)過AES加密的條碼原始數(shù)據(jù)要按照DM碼的編碼規(guī)則生成比特流,所以還需要對其進行加密強度分析。由于DM碼有其自身的編碼規(guī)則,生成比特流的數(shù)據(jù)量有一定的規(guī)律,所以按其比特流規(guī)律選取 128 bit、256 bit、384 bit、512 bit、640 bit、768 bit、896 bit、1 024 這 8 種類型,每種比特流類型隨機選取10串比特流作為分析對象,根據(jù)NIST標準進行隨機性測試,NIST的密碼學隨機性測試標準適于檢測由硬件或軟件系統(tǒng)生成的密碼學隨機和偽隨機比特序列[9]。
頻率測試的目的是為了檢測1和0分別在比特流中所占的百分比是否接近,如果接近,則表明比特流的隨機性高。頻率測試要求比特流大于100 bit,本實驗選取的數(shù)據(jù)符合要求。測試步驟如下:
(1)將比特流中的0替換為-1并求和;
其中,Xi=2εi-1,εi為比特流中第 i位的 值,Sn為 n 個 xi之和。
(2)計算測試統(tǒng)計值Sobs;
其中,n為比特流的長度。
(3)計算頻率測試的 P-value;
式(4)為誤差函數(shù),其中的π為圓周率值。
本文將數(shù)據(jù)量大小不一的80串比特流,運用Matlab按上述步驟進行處理,得到頻率測試P-value的值如圖4所示。
游程測試的目的是為了檢測比特流中1和0的變換長度是否達到期望的隨機性。游程測試以頻率測試通過作為先決條件。測試步驟如下。
(1)計算1在比特流中所占比重
圖4 頻率測試結果
式中的π為1在比特流中所占比重,εj為比特流中第j位的值,n為比特流長度。
(2)判斷游程測試是否繼續(xù):
其中的 π 為式(5)計算所得。 如果滿足|π-1/2|≥τ,則游程測試可不做;否則,繼續(xù)進行下面的步驟。
(3)計算序列的游程數(shù):
其中,如果 εk=εk+1,則 r(k)=0,否則 r(k)=1。
(4)計算游程測試的P-value
式中,π為圓周率值,n為比特流長度。
用Matlab以上述步驟對80串比特流進行處理,獲得游程測試的P-value值如圖5所示。
圖5 游程測試結果
由圖4和圖5可以看出,頻率測試和游程測試所得的P-value值都大于0.01,表明檢測的比特流不僅在0,1總數(shù)占比上隨機,而且其分布也隨機。這充分說明將AES算法用于DM碼加密的優(yōu)越性和合理性。
本文通過將AES算法應用于DM碼加密,在.net平臺上開發(fā)加密DM碼生成系統(tǒng),然后對生成的加密DM碼用條碼掃描槍進行識別驗證,再對加密后DM碼比特流進行隨機性測試。結果表明,該方法取得了良好的加密效果,達到了提高DM碼攜帶數(shù)據(jù)安全性的目的,而且對條碼的識別速度沒有明顯影響。
[1]付利莉.DES算法在二維條碼數(shù)據(jù)加密中的應用[J].石油化工高等學校學報,2005,18(2):80-82.
[2]張文愛,呂韜.物料數(shù)據(jù)加密QR碼識別系統(tǒng)的實現(xiàn)[J].電子技術應用,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].電子技術,2009(1):42-43.
[6]龍夏,肖連軍,檀明.基于 3DES加密的ATM亂序密碼鍵盤的設計[J].電腦知識與技術,2010,35(6):69-71.
[7]張聞宇.高級加密標準AES中若干問題的研究[D].西安:西安電子科技大學,2003.
[8]STINSON D R.密碼學原理與實踐[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.