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