基于手勢信息的便攜式無線加密傳輸系統(tǒng)
一 選題背景
和平和發(fā)展是當(dāng)今世界的主旋律,但是局部戰(zhàn)爭、恐怖主義、暴力犯罪等不和諧的音符依然存在,而在實(shí)際作戰(zhàn)、反恐行動、秘密偵查等這些場合中,信息交互的安全性要求較一般場合要高得多。不僅要求產(chǎn)生信息的方式具有隱蔽性,不易被他人發(fā)現(xiàn);而且要求傳遞信息的方式具有保密性,不易被他人破解。
因此,本文設(shè)計并實(shí)現(xiàn)了一個基于手勢信息的便攜式無線加密傳輸系統(tǒng)。系統(tǒng)以Spartan-3E開發(fā)板為平臺,本系統(tǒng)充分利用了FPGA的計算速度和硬件資源,可以在作戰(zhàn)、反恐、偵察等涉及信息安全的多個領(lǐng)域得到應(yīng)用。
二 系統(tǒng)方案
本系統(tǒng)由兩平臺組成,實(shí)現(xiàn)了手勢信息的無線加密半雙工傳輸。
使用時,A使用平臺1,B使用平臺2,按照如下步驟執(zhí)行:
A首先通過鍵盤來設(shè)定密碼,并設(shè)置平臺1為加密狀態(tài)。然后通過手勢輸入設(shè)備將手勢信息輸入平臺1,按動發(fā)送開關(guān),平臺1便會自動采集A的手勢信息,將其轉(zhuǎn)換為數(shù)字信號作為明文,經(jīng)Twofish算法對其進(jìn)行加密,之后將密文無線傳給B。
B在接收之前,先設(shè)置平臺1為加密狀態(tài),再通過鍵盤核定密鑰。如果密鑰與A一致,平臺2便可以接受到A系統(tǒng)傳出的密文,并自動對其解密,得到明文,即可以得到A所傳遞的手勢信息,不同的手勢信息可以代表A、B之前約定的不同實(shí)際含義。如果密鑰與A不一致,平臺2解密后得到的明文便是錯誤的,不能得到A所傳遞的手勢信息。
反之,B可以通過相同的方法將自己的手勢信息傳遞給A。在使用中,A只需要修改平臺1的密鑰即可使平臺2的密鑰核對失敗。
系統(tǒng)工作時,還可以使用PC機(jī),作為總監(jiān)聽站,來獲取傳輸信息,監(jiān)控系統(tǒng)兩平臺運(yùn)行情況。
這樣,利用該系統(tǒng)便可以實(shí)現(xiàn)A、B間手勢信息的無線加密傳輸,完成信息交互,使用示意圖見圖2.1。
圖2.1 系統(tǒng)功能示意圖
三 軟件系統(tǒng)設(shè)計
3.1 軟件系統(tǒng)流程
系統(tǒng)軟件流程圖見圖3.1。
圖3.1 軟件子模塊實(shí)現(xiàn)流程圖[!--empirenews.page--]
圖3.1說明了各個子模塊的邏輯關(guān)系和使用時的數(shù)據(jù)流,其中Twofish加解密算法是系統(tǒng)核心,占用FPGA內(nèi)部接近40%的邏輯資源,其它部分占30%左右。
3.2 Twofish算法
Twofish算法是由美國的Bruce Schneier等創(chuàng)建的優(yōu)秀算法,是AES的候選算法之一。Twofish算法是典型的分組加密算法,加密時它將明文按一定的位長分組,明文和密鑰的全部經(jīng)過加密運(yùn)算得到密文。解密時密文和密鑰經(jīng)過解密運(yùn)算,還原成明文。Twofish的算法采用的明密文分組長度為128bit, 支持128bit、192bit、256bit的密鑰長度。
四 硬件系統(tǒng)實(shí)現(xiàn)
硬件系統(tǒng)主要包括Spartan-3E嵌入式平臺,自制電源模塊和手勢信息采集模塊,輔以無線傳輸,液晶顯示,鍵盤等子模塊,硬件系統(tǒng)框圖如圖4.1所示。
4.1 核心FPGA
硬件系統(tǒng)核心為Spartan-3E系列的50萬門FPGA,型號為XC3S500E-4FG320C,有1萬多個邏輯單元和232個用戶I/O,對其進(jìn)行編程,可實(shí)現(xiàn)系統(tǒng)功能。
4.2 功能模塊
功能模塊主要包括電源模塊、手勢信息采集模塊和其它輔助模塊。
4.2.1 電源模塊
電源模塊的主要作用是使系統(tǒng)具有便攜性。
系統(tǒng)選用+8V鋰電池供電,經(jīng)各電平轉(zhuǎn)換芯片為各模塊供電。系統(tǒng)選取LM2596T-5.0開關(guān)電源調(diào)節(jié)芯片,將+8V電源輸入轉(zhuǎn)換為+5V電源輸出,為Spartan-3E開發(fā)板、數(shù)據(jù)輸入模塊、液晶顯示模塊供電。而無線模塊工作時對電源穩(wěn)定性要求較高,故選取7805穩(wěn)壓芯片將+8V電源輸入轉(zhuǎn)換為+5V電源輸出,為其供電。
4.2.2 手勢信息采集模塊
手勢信息采集系統(tǒng)的功能是將手勢信息轉(zhuǎn)換為FPGA可處理的數(shù)字信息,包括數(shù)據(jù)輸入、模數(shù)轉(zhuǎn)換和電平轉(zhuǎn)換三部分。
數(shù)據(jù)輸入部分采用彎曲傳感器(Flex Sensor)來“感知”手勢信息。彎曲傳感器是利用其阻值變化來反映自身彎曲程度的傳感器件。
彎曲傳感器固定在一副手套的8個手指上,分別為左右手的食指、中指、無名指和小拇指。根據(jù)實(shí)驗(yàn)測得的數(shù)據(jù),手指平直時傳感器阻值約為10K,彎曲時傳感器阻值大于15K,故選取10K的電阻,與其串聯(lián),構(gòu)成分壓電路,分壓電路端電壓為5V。將傳感器的阻值變化轉(zhuǎn)換為電壓變化,供A/D轉(zhuǎn)換。此外,外設(shè)一開關(guān),用來作為FPGA控制采樣信號的產(chǎn)生。
模數(shù)轉(zhuǎn)換電路選用ADC0809,供電為+5V,選取基準(zhǔn)電壓Vref+為+5V,Vref-為0V。
ADC0809的高電平為+5V,而FPGA的I/O接口的高電平為+3.3V,故ADC0809與FPGA之間需要電平轉(zhuǎn)化電路。選取74LV4245作為電平變換器件,可以完成5V至3V的電平雙向轉(zhuǎn)換,通過DIR引腳控制傳輸方向,引腳控制輸出使能。
控制信號和數(shù)據(jù)信號通過Spartan-3E開發(fā)板的擴(kuò)展接口與外部電路相接,這樣,當(dāng)手勢信息變化時,F(xiàn)PGA就可以控制模數(shù)部分工作,讀入手勢信息。
4.2.3 其它功能模塊
其他功能模塊包括模液晶顯示、無線傳輸、鍵盤輸入、開關(guān)控制等。[!--empirenews.page--]
五 系統(tǒng)測試
系統(tǒng)平臺實(shí)物如圖5.1所示
圖5.1 系統(tǒng)平臺實(shí)物圖
在系統(tǒng)功能測試,發(fā)送端使用者A先設(shè)定密鑰為字符串OneWorldOneDream,之后發(fā)送手勢信息。當(dāng)接受端使用者B的密鑰與A一致時,可以接收到正確的A的手勢信息18,而當(dāng)B的密鑰為OneDreamOneWorld時,接收不到正確的A的手勢信息為66。同樣,B可以向A發(fā)送手勢信息,實(shí)現(xiàn)A和B之間的半雙工通信。
A(左)、B(右)兩平臺液晶顯示密鑰一致時,結(jié)果如圖5.2。
圖5.2 系統(tǒng)功能測試
密鑰不一致時,顯示結(jié)果如圖5.3。
圖5.3 系統(tǒng)功能測試
六 創(chuàng)新與特色
本系統(tǒng)的具體特色和創(chuàng)新體現(xiàn)在如下幾個方面:
6.1 選題實(shí)用性
本文研究的課題是從信息的安全性出發(fā),來考慮信息的產(chǎn)生方式的隱蔽性、傳輸方法的安全性,構(gòu)建的系統(tǒng)具有較強(qiáng)的應(yīng)用性和實(shí)用性。
6.2 加密算法優(yōu)越性
本系統(tǒng)采用128bit的密鑰長度的Twofish算法,它具有以下優(yōu)點(diǎn):
6.2.1 Twofish算法安全系數(shù)大,具有很高的安全余量。
6.2.2 Twofish 算法硬件實(shí)現(xiàn)靈活,占用資源少,具有很強(qiáng)的適應(yīng)性和可塑性,適合在FPGA上實(shí)現(xiàn)。
6.2.3 Twofish算法設(shè)計時考慮多層性能的平衡,加解密快速,與其他加密算法相比,具有速度方面的優(yōu)越性。
6.3 實(shí)現(xiàn)手段創(chuàng)新性
采用新穎的彎曲傳感器來“感知”手勢,是本系統(tǒng)實(shí)現(xiàn)手段的特色之一。該傳感器的使用原理并不復(fù)雜,而且能夠很好地實(shí)現(xiàn)系統(tǒng)所需的功能,達(dá)到“隱性”產(chǎn)生信息的目的。
此外,為實(shí)現(xiàn)系統(tǒng)的便攜性和實(shí)用性,本文獨(dú)立設(shè)計了電源模塊和手勢采集模塊,以及良好的人機(jī)交互界面,系統(tǒng)功能進(jìn)一步完備。本系統(tǒng)還具有良好的可擴(kuò)展性,例如,采用轉(zhuǎn)換精度更高的A/D芯片,得到更多可以利用的手勢信息;進(jìn)一步優(yōu)化改進(jìn)加密算法,更加便于在便攜式設(shè)備上使用;設(shè)計完善系統(tǒng)設(shè)備,實(shí)現(xiàn)多點(diǎn)自由通信等等,以及探索新的通信方法的思想,都值得我們今后深入研究。