數(shù)據(jù)加密QR碼在工業(yè)物料管理系統(tǒng)中的應(yīng)用

針對工業(yè)物料管理系統(tǒng)對于保密安全的要求,我們?yōu)樾枰蓸拥奈锪显O(shè)計(jì)了一種數(shù)據(jù)加密的QR碼,這種加密的QR碼可以在Android手機(jī)系統(tǒng)下實(shí)現(xiàn)識別。

一、加密QR碼生成

RC4加密算法是Ron Rivest在1987年設(shè)計(jì)的密鑰長度可變的流加密算法。該算法的速度可以達(dá)到DES加密的10倍左右,且具有很高級別的非線性,適合手機(jī)硬件系統(tǒng)的要求;RC4算法屬于流加密,被廣泛應(yīng)用予SSL/TLS等網(wǎng)絡(luò)安全協(xié)議。隨著手機(jī)互聯(lián)網(wǎng)的發(fā)展,使用RC4加密算法便于手機(jī)二維碼識別系統(tǒng)后續(xù)網(wǎng)絡(luò)化發(fā)展。

1、RC4加密算法

RC4加密算法包括密鑰調(diào)度算法(KSA)和偽隨機(jī)子密碼生成算法(PRGA)兩大部分。具體步驟如下:

(1)密鑰溯度算法( KSA)D定義一個長度為256B的S盒,同時建立一個臨時矢量置k。如果密鑰Key的長度≥256 B,則將Key賦給量,多余字節(jié)丟棄;否則,計(jì)算Key的長度len,將Key的值賦給k的前l(fā)en個元素,并循環(huán)重復(fù)用Key的值賦給k剩下的元素,直到k的所有元素部被置換賦值。

(2)偽隨機(jī)子密碼生成算法(PRGA)。將S盒中的每個字節(jié)與另一個字節(jié)置換,直到最后S[255]置換完成,操作繼續(xù)重復(fù)。加密時,將子序列密鑰與安加密的明文進(jìn)行“異或”得到密文。解密時過程相同。

2、RC4加密算法的混沌改進(jìn)

(1)RC4加密算法混沌改進(jìn)

為了提高流密碼的遍歷性與隨機(jī)性,在RC4加密算法的密鑰生成與偽隨機(jī)予密碼生成過程中采用混沌算法進(jìn)行改進(jìn)。Logistic一維映射是一種比較簡單的數(shù)學(xué)形式混沌映射,但是具有非常好的混沌性質(zhì),適合手機(jī)對算法處理速度快的要求。

Logistic映射數(shù)學(xué)表達(dá)式為:

 

其中當(dāng)u∈[3.571 448,4],X ∈[0,1]時達(dá)到混沌狀態(tài),通過運(yùn)算得到的xn+1值也都在[0,1]范圍內(nèi)。在本系統(tǒng)中,將RC4算法引入Logistic映射,可以提高偽隨機(jī)碼的隨機(jī)性,及RC4的加密性。改進(jìn)方法步驟如下:

(1)設(shè)定初始的x0值與u值。利用式(1)得到一個混沌值:

 

(2)在RSA生成密鑰的過程中,加入得判的混沌值進(jìn)行迭代運(yùn)算,生成隨機(jī)密鑰序列。過程如下:

 

(3)在PRGA過程字節(jié)進(jìn)行置換的步驟中,加入混沌映射,循環(huán)執(zhí)行,直到字節(jié)都設(shè)置換完成為止,過程如下:

 

(4)將步驟(2)、(3)生成的序列進(jìn)行“異或”運(yùn)算,完成RsA算法加密步驟。

(2)參數(shù)的選棒

Lyapunov指數(shù)是混沌狀態(tài)的主要性能指標(biāo)。對于Logistic一維映射Xn+1=F(xi)。Lyapunov指數(shù)A的計(jì)算公式為:

 

當(dāng)A=O時,系統(tǒng)達(dá)到混池狀態(tài),產(chǎn)生的序列為隨機(jī)序列,所以u的取值范圍為(3.570,3.582)、(3.584,3.605)、(3.607,3.626)、(3.635,3.655)、(3.657,3.672)、(3.674.3.701)、(3.703,3.738)、(3.744,3.828)、(3.850,3.854)、(3.857,3.905)、(3.907,3.960)、(3.962.4.000)。經(jīng)過多次實(shí)驗(yàn)得出:當(dāng)初始值Xo=0.432 345、參數(shù)u=3.761 847時,加密得到的效果最佳。

3、改進(jìn)后RC4算法與OR碼的結(jié)合

由于本系統(tǒng)針對工業(yè)中的物料管理系統(tǒng)設(shè)計(jì).為了客觀公正地反映物料數(shù)據(jù),最大程度地減少人為干預(yù),采用RC4算法對已有的QR碼舷拯內(nèi)容進(jìn)行加密,具體步驟如下:

(1)運(yùn)行程序后,首先輸入密鑰;

(2)攝像頭捕捉QR碼圖像后生成一張位圖,交予QR譯碼程序;

(3)QR澤碼程序按照國家標(biāo)準(zhǔn)解碼,進(jìn)行到糾錯步驟后,提取數(shù)據(jù)碼字;

(4)按照RC4算法解密步驟進(jìn)行解密,井輸出結(jié)果。

例如.需要加密的文本為:廠家;某煤礦;全水分:9.4gro;低位熱值:5914 cal/kg;加密后的文本為:叁娘?枉欒蠛暖t冢諷仞$?)??#俞俘飯做@-?v醫(yī)、砸冬。利用Java編寫QR碼生成系統(tǒng),加密前后生成的QR碼圖片如圖1(a)、(b)所示。

 

二、加密QR碼識別

QR碼識別系統(tǒng)在Android手機(jī)系統(tǒng)下實(shí)現(xiàn)。

1、Android系統(tǒng)簡介

Android是基于Limrx開放性內(nèi)棱的操作系統(tǒng),是Google公司在2007年t1月5日公布的手機(jī)操作系統(tǒng)。Android應(yīng)用程序使用Java做為開發(fā)語言。本系統(tǒng)的開發(fā)環(huán)境為eclipse -SDK -3-5.2 +android -sdk_rl0 +ADT -0.9.7。

2、QR碼識別系統(tǒng)的主要模塊

系統(tǒng)主要分為圖像采集、圖像處理、QR碼的譯碼及數(shù)據(jù)解密4個模塊。

圖像采集:點(diǎn)擊按鈕啟動程睜同時啟動手機(jī)的攝像頭,開始實(shí)時捕捉QR碼圖像,如果檢測到QR碼,就將這一幀的圖像捕捉并進(jìn)行圖像處理。

圖像處理:(1)灰度化,手機(jī)獲取的彩色圖像變?yōu)楹诎讏D像,減少信息景,加快處理速度;(2)中值濾波,使用適當(dāng)?shù)木匦未翱谥兄禐V波處理掉光學(xué)采集系統(tǒng)中產(chǎn)生的椒鹽噪聲;(3)二值化,采用直方圖雙峰方式進(jìn)行圖像分削,將整個圖像呈現(xiàn)出明顯的、只有黑白的視覺效果。

QR碼譯碼:按照國家GB/T 18284 2000標(biāo)準(zhǔn)進(jìn)行解碼。

數(shù)據(jù)解密:按照混沌改進(jìn)RC4算法的步驟對數(shù)據(jù)碼字進(jìn)行解密。

3、多線程處理

在圖像預(yù)處理及QR編碼過程中,往往需要處理大量的數(shù)據(jù)的情況。為了提高識別速度,解碼編碼時采用多線程處理。

Android系統(tǒng)支持多紱程應(yīng)用。支持利用handler接收子線程的數(shù)據(jù)。多線程處理實(shí)現(xiàn)方法:為每個處理步驟開啟一個線程,并在實(shí)現(xiàn)其run方法同時需要創(chuàng)建一個message,并定義好其屬性;在完成操作后將敷搬發(fā)送給handler。通過hluullcr發(fā)送messa8e來達(dá)到多線程的調(diào)度,避免多線程操作時遇到資源沖突而發(fā)生異常。

三、數(shù)據(jù)加密QR碼在工業(yè)物料管理系統(tǒng)中的應(yīng)用

由于采用了混沌改進(jìn)的RC4算法對物料數(shù)據(jù)的QR碼進(jìn)行了加密,在識別程序設(shè)計(jì)中采用多線程處理等編程技巧,從而使該物科數(shù)據(jù)QR碼生成及識別系統(tǒng)的加密效果和識別速度達(dá)到較高要求。

1、改進(jìn)RC4算法的加密性能分析

本文采用頻率測試和游程測試對加密算法的隨機(jī)性進(jìn)行分析。頻率測試公式為:

 

在Matlab上輸入公式進(jìn)行測試,編寫改進(jìn)的RC4算法,產(chǎn)生一個隨機(jī)序列,將得到的隨機(jī)序列中的0值轉(zhuǎn)換為-1。相加得到sn??偣踩〕?30多個隨機(jī)序列。每個隨機(jī)序列長度不同,將它與已經(jīng)設(shè)置好的參敦一起代入式(3)得出的P-Value值大千0.01。如圖2(a)所示。

游程測試公式為:

 

Vn(obs)為隨機(jī)序列中所有0、1值的和,n為加密隨機(jī)序列長度,將所有參數(shù)代人式(4)得出的p- Value值都大予0.01,如圖2(b)所示。

 

頻率測試和游程測試出的P-Value值都大予NIST(美國國家標(biāo)準(zhǔn)與技術(shù)委員會)規(guī)定的0.01。都符合理想隨機(jī)序列標(biāo)準(zhǔn)。

2、系統(tǒng)識別速度

QR碼識別系統(tǒng)在摩托羅拉開發(fā)的里程碑、里程碑2、ME525及HTC開發(fā)的G7手機(jī)上進(jìn)行涮試,測試手機(jī)的像素一般為500萬,測試圖片的大小為200x2000在73張圖片中有4張污損圖片不能譯碼,其余測試結(jié)果良好。

圖3是本系統(tǒng)在ME525手機(jī)上運(yùn)行時,對圖1(b)所示加密QR瑪進(jìn)行解碼的操作,其中圖3(a)為打開直用時的顯示界呵,由此輸入密碼。圈3(b)為解碼后結(jié)果,其中第一行為沒有進(jìn)行解密的譯碼結(jié)果.圖中顯示為一行亂碼,不能得到QR碼中的準(zhǔn)確信息;第二行娜密譯碼結(jié)果可以清楚看到廠家物料信息。圖3(b>最下面顯示一次識別的識別時問,識別時間是從打開攝像頭捕獲圖像后開始計(jì)算。正常情況下本系統(tǒng)識別二維碼圖像的時間為1400ms一4700ms。

 

另外,識別速度還與光線、對焦時間有關(guān)。測試時光線不充足或過于充足邪會影響識別時間。若圖片距離手機(jī)過近則影響對焦時問,從呵導(dǎo)致識別速度過慢。

Android手機(jī)系統(tǒng)功能豐富,攜帶方便,受周邊環(huán)境影響較小。使用智能手機(jī)識別二維碼已經(jīng)成為條碼識別的一個趨勢,而且可擴(kuò)展性強(qiáng)。可顯著挺商工業(yè)管理生產(chǎn)效率經(jīng)過測試及分析,本系統(tǒng)符合QR碼加密性能、識別的時間和準(zhǔn)確度要求。

小知識之QR碼QR碼是二維條碼的一種,QR來自英文 “Quick Response” 的縮寫,即快速反應(yīng)的意思,源自發(fā)明者希望 QR 碼可讓其內(nèi)容快速被解碼。QR碼比普通條碼可儲存更多資料,亦無需像普通條碼般在掃描時需直線對準(zhǔn)掃描器。