魏平俊, 楊 潔, 胥浩陽
(1.中原工學(xué)院 電子信息學(xué)院, 河南 鄭州 450007; 2.鄭州工業(yè)應(yīng)用技術(shù)學(xué)院 信息工程學(xué)院, 河南 新鄭 451100)
隨著社會(huì)的進(jìn)步和科技的發(fā)展,人們的安全意識(shí)越來越強(qiáng),傳統(tǒng)的機(jī)械鎖已不能滿足人們的需要。電子密碼鎖因其操作簡單、密碼可變、誤碼保護(hù)等特點(diǎn),成為密碼鎖的主流產(chǎn)品,并得以迅速推廣。但有些產(chǎn)品密碼鍵盤外露,易被破解;有些產(chǎn)品需攜帶遙控器、卡片等,安全性和易用性較差。藍(lán)牙是一種無線技術(shù)標(biāo)準(zhǔn),可實(shí)現(xiàn)固定設(shè)備、移動(dòng)設(shè)備和樓宇個(gè)人域網(wǎng)之間的短距離數(shù)據(jù)交換,并可通過密碼算法對(duì)數(shù)據(jù)進(jìn)行處理,安全性得到極大提升。本文設(shè)計(jì)了一種藍(lán)牙加密密碼鎖,系統(tǒng)以STC89C52單片機(jī)為主控模塊,運(yùn)用藍(lán)牙技術(shù)實(shí)現(xiàn)安卓手機(jī)和密碼鎖的通信,在單片機(jī)編程的基礎(chǔ)上,通過藍(lán)牙地址配對(duì)、算法加密、密碼校驗(yàn)等技術(shù),實(shí)現(xiàn)了隨機(jī)密碼功能。用戶只需攜帶手機(jī)即可實(shí)現(xiàn)自由密碼修改,安全性和便捷性大大提高。
系統(tǒng)包括智能手機(jī)端和單片機(jī)端。其中,手機(jī)端采用安卓系統(tǒng)自帶的藍(lán)牙模塊;單片機(jī)端采用STC公司生產(chǎn)的高性能芯片STC89C52作為中央處理器[1],基于HCI協(xié)議層的開發(fā)方式,用HC-06藍(lán)牙模塊實(shí)現(xiàn)密碼信息的無線傳輸。藍(lán)牙模塊通信的建立主要分為5個(gè)步驟:初始化藍(lán)牙芯片、查詢周邊藍(lán)牙地址、建立連接、數(shù)據(jù)傳輸、斷開連接[2]。初始化過程中,通過編寫C語言程序,單片機(jī)產(chǎn)生6位初始密碼信息,通過HC-06藍(lán)牙模塊查詢周邊藍(lán)牙地址,并進(jìn)行初始化密碼的驗(yàn)證,待6位密碼配對(duì)成功后,建立手機(jī)端和單片機(jī)端的連接。手機(jī)隨機(jī)設(shè)置4位密碼信息,通過藍(lán)牙無線信道發(fā)送到單片機(jī),單片機(jī)接收隨機(jī)密碼信息并存儲(chǔ)。開鎖時(shí),通過鍵盤輸入密碼并與單片機(jī)存儲(chǔ)器中的密碼進(jìn)行比對(duì),實(shí)現(xiàn)密碼驗(yàn)證;若密碼驗(yàn)證不成功,則通過繼電器控制和無源蜂鳴器等作出反饋。系統(tǒng)流程如圖1所示。
圖1 系統(tǒng)流程
由于藍(lán)牙協(xié)議是一個(gè)公開協(xié)議,為保證信息的安全傳輸,每個(gè)藍(lán)牙設(shè)備都須具備密鑰管理的功能,如加密、解密和破解等。本文采用的E0加密算法是一種作用于鏈路層的對(duì)稱的單鑰加密算法,加密過程就是將數(shù)據(jù)流與密鑰比特流進(jìn)行異或運(yùn)算[3]。
E0算法實(shí)現(xiàn)結(jié)構(gòu)如圖2所示[4]。它主要包含3個(gè)部分:LFSR(線性反饋移位寄存器)、混合器和組合邏輯?;旌掀髦蠰1、L2表示線性變換網(wǎng)絡(luò),可通過異或來實(shí)現(xiàn),Z-1表示延時(shí)網(wǎng)絡(luò)。E0算法的實(shí)現(xiàn)過程如下[5]:首先進(jìn)行初始化,以加密私鑰Kc、藍(lán)牙設(shè)備地址ADR、時(shí)鐘信號(hào)CL和隨機(jī)數(shù)RAND作為輸入,產(chǎn)生有效載荷字(凈荷密鑰);然后有效載荷字發(fā)生器對(duì)輸入的比特位以適當(dāng)?shù)男问竭M(jìn)行組合,再傳送給LFSR,LFSR產(chǎn)生偽隨機(jī)序列,形成密鑰流;最后將密鑰流按模二加運(yùn)算作用于數(shù)據(jù)流完成加密,若將密文和形成的密鑰流再異或即可實(shí)現(xiàn)解密。
圖2 E0算法實(shí)現(xiàn)框圖
硬件系統(tǒng)主要包括手機(jī)、控制電路、電插鎖和電源等部分,其結(jié)構(gòu)如圖3所示。
圖3 硬件系統(tǒng)結(jié)構(gòu)
控制電路由單片機(jī)、液晶顯示屏、HC-06藍(lán)牙模塊、繼電器和無源蜂鳴器模塊等組成。電路原理如圖4所示。
2.1.1 單片機(jī)
單片機(jī)采用高性能、低功耗的8位微控制器STC89C52,它具有8 k字節(jié)Flash,32位I/O口,具有可在線編程功能[6],可直接使用串口下載、編寫和燒錄程序?qū)崿F(xiàn)電路控制。本設(shè)計(jì)使用了STC89C52單片機(jī)的15個(gè)I/O口,其中P0為LCD1602數(shù)據(jù),P2. 2為電插鎖控制端口,P2. 4為蜂鳴器控制端口,P2. 5為讀/寫端口,P2. 6為液晶數(shù)據(jù)指令端口,P2. 7為液晶使能端口,P3. 0為RXD接口(接藍(lán)牙的TX端,是單片機(jī)串口的接收端),P3. 1為TXD接口(接藍(lán)牙的RX端,是單片機(jī)串口的發(fā)送端)。
2.1.2 液晶屏
液晶屏采用并行驅(qū)動(dòng)的LCD1602,通過電壓控制顯示區(qū)。開機(jī)后打開背光燈,成功連接后顯示“enter password:”,每輸入一位密碼,顯示一個(gè)“*”,密碼輸入錯(cuò)誤顯示“error!try again:”,密碼輸入正確顯示“welcome!!!”。
2.1.3 藍(lán)牙模塊
HC-06藍(lán)牙模塊支持藍(lán)牙2.0協(xié)議標(biāo)準(zhǔn),采用CSR藍(lán)牙芯片,具有2~3 Mbps的調(diào)制度,內(nèi)置2.4 GHz天線[7],有效距離可以達(dá)到10 m,輸入電壓為3.6~6 V,未配對(duì)時(shí)電流約為30 mA,配對(duì)后約為10 mA,具有標(biāo)準(zhǔn)HCI端口(UART or USB)并采用自適應(yīng)跳頻技術(shù)。
采用內(nèi)置和外接雙電源供電系統(tǒng),如圖5所示。Vcc IN為12 V、1 A的電源適配器,BT1為13 V、0.6 A、2 000 mAh的鋰電池。當(dāng)外接電源斷開時(shí)使用內(nèi)置電源供電,采用繼電器切換,繼電器采用T73型12 V電磁式5腳繼電器。
圖4 控制電路原理圖
圖5 雙電源供電電路圖
采用XL03型電磁式電插鎖,工作電流為0.6 A,電壓為12 V,額定功率為7.5 W,開鎖時(shí)間為1 s,允許連續(xù)通電時(shí)間10 s。通過繼電器來控制一個(gè)D觸發(fā)器,電流通過,觸點(diǎn)斷開,開鎖;斷電時(shí),觸點(diǎn)閉合,關(guān)鎖。
該系統(tǒng)軟件采用上位機(jī)和下位機(jī)分別編程的方法來實(shí)現(xiàn)。上位機(jī)利用Eclipse平臺(tái),使用Java語言編程,將智能手機(jī)設(shè)置的隨機(jī)密碼信息通過HC-06模塊傳輸給下位機(jī)[8]。
單片機(jī)作為下位機(jī),采用Keil平臺(tái),使用C語言編程。89C52單片機(jī)具有3個(gè)16位的定時(shí)/計(jì)數(shù)器,其中,T1、T2都可以用作串口波特率發(fā)生器。在本設(shè)計(jì)中采用T2作為波特率發(fā)生器,使用11.059 2 MHz的晶振,其產(chǎn)生的波特率最高且誤差較小[9]。采用RS-232C通信標(biāo)準(zhǔn),8位數(shù)據(jù)位、1位停止位、無奇偶校驗(yàn)的通信格式。
采用隨機(jī)編碼方式,逐一傳輸6組密碼信息,每組范圍為0X00到0XFF,可以表示“0”到“9”的任意數(shù),具有256種變化方式。主要程序如下:
if (RI) //RI接收中斷標(biāo)志
{ RI=0; //清除RI接收中斷標(biāo)志
table3[i]=SBUF-m; /*SUBF為接收/發(fā)送緩沖器;m為隨機(jī)編碼種子,若使用ASCII碼,m為48*/
i++; }
單片機(jī)通過隨機(jī)編碼產(chǎn)生6位密碼信息與手機(jī)進(jìn)行地址匹配,匹配成功后接收手機(jī)端設(shè)置的4位密碼,同樣采用隨機(jī)編碼方式進(jìn)行編碼并保存在單片機(jī)存儲(chǔ)芯片中。開鎖時(shí),與鍵盤輸入的隨機(jī)密碼信息進(jìn)行比對(duì),密碼正確則開鎖。
硬件電路搭建完成后,暫不通電,先觀察焊接情況,看有無虛焊漏焊現(xiàn)象;然后根據(jù)電路原理圖判斷線路連接是否正確;再用萬用表檢查關(guān)鍵元件的電壓、電流是否正常,排除隱患后進(jìn)行系統(tǒng)調(diào)試。
采用單片機(jī)開發(fā)裝置調(diào)試單片機(jī)程序,用藍(lán)牙串口通信助手調(diào)試HC-06藍(lán)牙模塊[10]。將單片機(jī)I/O口的P3.0接HC-06藍(lán)牙模塊的TX端,P3.1接藍(lán)牙模塊的RX端,給HC-06模塊上電,進(jìn)入AT指令模式;在PC端啟動(dòng)串口調(diào)試助手,選擇正確的端口和波特率并打開串口,勾選自動(dòng)發(fā)送,在輸入框中輸入AT指令并回車,回收框中顯示OK,則說明串口正常;打開手機(jī)的藍(lán)牙,利用串口調(diào)試助手查詢HC-06藍(lán)牙地址并進(jìn)行連接,匹配成功后在輸入框中輸入一個(gè)AT命令,若LED燈亮且回收框中顯示返回值,則說明HC-06藍(lán)牙模塊調(diào)試成功,可以與手機(jī)及單片機(jī)連接進(jìn)行數(shù)據(jù)傳輸。
在單片機(jī)燒寫程序和電路板制作時(shí),電路報(bào)警裝置提前設(shè)置好參數(shù),若輸入密碼錯(cuò)誤,則單片機(jī)會(huì)驅(qū)動(dòng)報(bào)警裝置,蜂鳴器做出響應(yīng),時(shí)間為2 s。若連續(xù)5次出現(xiàn)密碼輸入錯(cuò)誤,則蜂鳴器長時(shí)間鳴叫,需按下復(fù)位鍵方可停止報(bào)警。
本文設(shè)計(jì)的密碼鎖,利用藍(lán)牙無線技術(shù)進(jìn)行數(shù)據(jù)傳輸,通過加密算法和隨機(jī)密碼的設(shè)置,實(shí)現(xiàn)了手機(jī)對(duì)密碼的控制,提高了密碼鎖的安全性和方便性。實(shí)驗(yàn)表明,該密碼鎖具有安全性高、使用方便、價(jià)格低廉等特點(diǎn),可以應(yīng)用在圖像處理設(shè)備、安全產(chǎn)品、建筑、家用電器等領(lǐng)域,具有廣闊的應(yīng)用前景。本設(shè)計(jì)已通過中華人民共和國國家知識(shí)產(chǎn)權(quán)局審批,被授予實(shí)用新型專利權(quán)(201420358698X)。