文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)04-0117-03
隨著現(xiàn)代社會(huì)的發(fā)展,,在日常生活及工業(yè)生產(chǎn)中需要傳輸?shù)臄?shù)據(jù)信息量越來(lái)越大,常用的一維條碼技術(shù)已經(jīng)不能滿足人們要求,,二維條碼技術(shù)得到了快速發(fā)展,,獲得了社會(huì)的普遍認(rèn)同。智能手機(jī)作為便攜設(shè)備應(yīng)用廣泛,,尤其它具有內(nèi)置攝像頭可以直接獲取圖像數(shù)據(jù),,使得二維條碼的識(shí)別變得更加快捷高效。
QR碼是目前應(yīng)用較為廣泛的一種矩陣式二維碼,,考慮到工業(yè)物料管理系統(tǒng)對(duì)加密性的特殊要求,,本文采用RC4算法對(duì)QR碼進(jìn)行加密處理,并在android系統(tǒng)下設(shè)計(jì)實(shí)現(xiàn),。
1 加密QR碼生成
RC4加密算法是Ron Rivest在1987年設(shè)計(jì)的密鑰長(zhǎng)度可變的流加密算法簇[1],。 該算法的速度可以達(dá)到DES加密的10倍左右,且具有很高級(jí)別的非線性,,適合手機(jī)硬件系統(tǒng)的要求,;RC4算法屬于流加密,,被廣泛應(yīng)用于SSL/TLS等網(wǎng)絡(luò)安全協(xié)議[2-3]。隨著手機(jī)互聯(lián)網(wǎng)的發(fā)展,使用RC4算法便于手機(jī)二維碼識(shí)別系統(tǒng)后續(xù)網(wǎng)絡(luò)化發(fā)展,。
1.1 RC4算法
RC4算法包括密鑰調(diào)度算法(KSA)和偽隨機(jī)子密碼生成算法(PRGA)兩大部分,。具體步驟如下:
(1)密鑰調(diào)度算法(KSA)。定義一個(gè)長(zhǎng)度為256 B的S盒,,同時(shí)建立一個(gè)臨時(shí)矢量K,。如果密鑰Key的長(zhǎng)度≥256 B,則將Key賦給K,多余字節(jié)丟棄;否則,計(jì)算Key的長(zhǎng)度len,將Key的值賦給K的前l(fā)en個(gè)元素,并循環(huán)重復(fù)用Key的值賦給K剩下的元素,直到K的所有元素都被置換賦值,。
(2)偽隨機(jī)子密碼生成算法(PRGA),。將S盒中的每個(gè)字節(jié)與另一個(gè)字節(jié)置換,直到最后S[255]置換完成,,操作繼續(xù)重復(fù),。加密時(shí),將子序列密鑰與要加密的明文進(jìn)行“異或”得到密文,。解密時(shí)過程相同,。
1.2 RC4算法的混沌改進(jìn)
1.2.1 RC4算法混沌改進(jìn)
為了提高流密碼的遍歷性與隨機(jī)性,在RC4算法的密鑰生成與偽隨機(jī)子密碼生成過程中采用混沌算法進(jìn)行改進(jìn),。Logistic一維映射是一種比較簡(jiǎn)單的數(shù)學(xué)形式混沌映射,,但是具有非常好的混沌性質(zhì),適合手機(jī)對(duì)算法處理速度快的要求,。
Logistic映射數(shù)學(xué)表達(dá)式為:
2 加密QR碼識(shí)別
QR碼識(shí)別系統(tǒng)在Android手機(jī)系統(tǒng)下實(shí)現(xiàn),。
2.1 Android系統(tǒng)簡(jiǎn)介
Android是基于Linux開放性內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)[5],。Android應(yīng)用程序使用Java做為開發(fā)語(yǔ)言,。本系統(tǒng)的開發(fā)環(huán)境為eclipse-SDK-3.5.2+android-sdk_r10+ADT-0.9.7。
2.2 QR碼識(shí)別系統(tǒng)的主要模塊
系統(tǒng)主要分為圖像采集,、圖像處理,、QR碼的譯碼及數(shù)據(jù)解密4個(gè)模塊。
圖像采集:點(diǎn)擊按鈕啟動(dòng)程序同時(shí)啟動(dòng)手機(jī)的攝像頭,,開始實(shí)時(shí)捕捉QR碼圖像,,如果檢測(cè)到QR碼,就將這一幀的圖像捕捉并進(jìn)行圖像處理,。
圖像處理:(1)灰度化,,手機(jī)獲取的彩色圖像變?yōu)楹诎讏D像,減少信息量,,加快處理速度,;(2)中值濾波,使用適當(dāng)?shù)木匦未翱谥兄禐V波處理掉光學(xué)采集系統(tǒng)中產(chǎn)生的椒鹽噪聲,;(3)二值化,,采用直方圖雙峰方式進(jìn)行圖像分割,將整個(gè)圖像呈現(xiàn)出明顯的、只有黑白的視覺效果,。
QR碼譯碼:按照國(guó)家GB/ T 18284 2000標(biāo)準(zhǔn)[6]進(jìn)行解碼,。
數(shù)據(jù)解密:按照混沌改進(jìn)RC4算法的步驟對(duì)數(shù)據(jù)碼字進(jìn)行解密。
2.3 多線程處理
在圖像預(yù)處理及QR解碼過程中,往往需要處理大量的數(shù)據(jù)的情況,。為了提高識(shí)別速度,,解碼編程時(shí)采用多線程處理。
Android系統(tǒng)支持多線程應(yīng)用,,支持利用handler接收子線程的數(shù)據(jù),。多線程處理實(shí)現(xiàn)方法:為每個(gè)處理步驟開啟一個(gè)線程,并在實(shí)現(xiàn)其run方法同時(shí)需要?jiǎng)?chuàng)建一個(gè)message,,并定義好其屬性,;在完成操作后將數(shù)據(jù)發(fā)送給handler,通過handler發(fā)送message來(lái)達(dá)到多線程的調(diào)度,,避免多線程操作時(shí)遇到資源沖突而發(fā)生異常,。
3 系統(tǒng)性能分析
由于采用了混沌改進(jìn)的RC4算法對(duì)物料數(shù)據(jù)的QR碼進(jìn)行了加密,在識(shí)別程序設(shè)計(jì)中采用多線程處理等編程技巧,,從而使該物料數(shù)據(jù)QR碼生成及識(shí)別系統(tǒng)的加密效果和識(shí)別速度達(dá)到較高要求,。
頻率測(cè)試和游程測(cè)試出的P-Value值都大于NIST(美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)委員會(huì))規(guī)定的0.01,即符合理想隨機(jī)序列標(biāo)準(zhǔn),。
3.2 系統(tǒng)識(shí)別速度
QR碼識(shí)別系統(tǒng)在摩托羅拉開發(fā)的里程碑,、里程碑2、ME525及HTC開發(fā)的G7手機(jī)上進(jìn)行測(cè)試,,測(cè)試手機(jī)的像素一般為500萬(wàn),,測(cè)試圖片的大小為200×200。在73張圖片中有4張污損圖片不能譯碼,其余測(cè)試結(jié)果良好,。
圖3是本系統(tǒng)在ME525手機(jī)上運(yùn)行時(shí),,對(duì)圖1(b)所示加密QR碼進(jìn)行解碼的操作,其中圖3(a)為打開應(yīng)用時(shí)的顯示界面,,由此輸入密碼,。圖3(b)為解碼后結(jié)果,其中第一行為沒有進(jìn)行解密的譯碼結(jié)果,,圖中顯示為一行亂碼,,不能得到QR碼中的準(zhǔn)確信息;第二行解密譯碼結(jié)果可以清楚看到廠家物料信息,。圖3(b)最下面顯示一次識(shí)別的識(shí)別時(shí)間,,識(shí)別時(shí)間是從打開攝像頭捕獲圖像后開始計(jì)算,正常情況下本系統(tǒng)識(shí)別二維碼圖像的時(shí)間為1 400 ms~4 700 ms。
另外,,識(shí)別速度還與光線,、對(duì)焦時(shí)間有關(guān),。測(cè)試時(shí)光線不充足或過于充足都會(huì)影響識(shí)別時(shí)間。若圖片距離手機(jī)過近則影響對(duì)焦時(shí)間,,從而導(dǎo)致識(shí)別速度過慢,。
Android手機(jī)系統(tǒng)功能豐富,攜帶方便,,受周邊環(huán)境影響較小,。使用智能手機(jī)識(shí)別二維碼已經(jīng)成為條碼識(shí)別的一個(gè)趨勢(shì),而且可擴(kuò)展性強(qiáng),,可顯著提高工業(yè)管理生產(chǎn)效率,。經(jīng)過測(cè)試及分析,本系統(tǒng)符合QR碼加密性能,、識(shí)別的時(shí)間和準(zhǔn)確度要求,。
參考文獻(xiàn)
[1] 宋維平.流密碼與RC4算法[J].吉林師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2005(5):71-72.
[2] PETER K, MANUEL L, MARTIN M. QR code security[C]. MoMM2010-8th International Conference on Advances in Mobile Computing and Multimedia, 2010.
[3] HONGGEUN K, JUNGKYU H,SEONGJE C. An efficient implementation of RC4 cipher for encrypting multimedia files on mobile devices[C]. Proceedings of the ACM Symposium on Applied Computing, 2007.
[4] 金海榮. 混沌序列密碼分析及其應(yīng)用研究[D],哈爾濱:黑龍江大學(xué), 2009.
[5] 谷歌公司. Android開發(fā)手冊(cè)[EB/OL](2010-09-23).http://developer.android.com.
[6] 國(guó)家質(zhì)量技術(shù)監(jiān)督局.中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn)——快速響應(yīng)矩陣碼[S].北京:標(biāo)準(zhǔn)出版社,2001.
[7] ANDREW R, JUAN S, JAMES N. A statistical test suite for random and pseudorandom number generators for cryptographic applications[S].NIST Special Publication, 2001.