







摘要:本文設計了一個具有加密功能的智能家居安全控制系統,用戶數據和信息碼通過隨機的6字節時間偏移量進行加密,采用32或64字節數據包處理并打包傳輸,通過穩定的數據編碼格式(格雷碼)進行編碼,并且提供可選擇的用戶確認機制。保證了數據信息的安全性和穩定性。
關鍵詞:智能家居;數據安全;控制系統;GSM;CC2500
DOI: 10.3969/j.issn.1005-5517.2012.9.005
基金項目:湖北省教育廳科學研究項目(B20114409);湖北省優秀中青年科技創新團隊計劃項目(T201223)
引言
計算機上位機獲取用戶的信息碼(賬號)后,自動和加密盾中的密碼信息進行核對,如果核對正確,便可啟動上位機對用戶信息進行訪問。在綁定手機業務的情況下,下位機控制對象在收到加密盾中的核對信息后,自動向綁定的手機用戶發送隨機確認碼,用戶收到確認碼后把確認碼輸入計算機中,自動與加密盾中的確認碼核對(加密盾中的確認碼為控制終端產生的隨機數,通過無線通信設備傳送),并且用戶數據和信息碼通過隨機的6字節時間偏移量設定的函數進行加密,采用32或64字節數據包處理并打包傳輸,通過穩定的數據編碼格式(格雷碼)進行編碼,并且提供可選擇的用戶確認機制。這樣保證了在不同時刻的信息數據具有較高的隨機性,保證了數據信息的安全性和穩定性。
圖1 系統框圖
圖2 加密盾電路
系統結構
本系統主要由計算機上位機,加密盾連接設備,被控制對象和用戶GSM通信設備組成,如圖1所示。
系統上位機采用了C#編寫,C#是為NET Framework量身訂做的程序語言,作為第一個組件導向(Component-oriented)的程序語言,采用面向對象的編程語言,具有良好的便利性和易用性。通過基于UART的底層通信模式,自定義上層的通信數據包,對數據包進行自定義的編碼和解碼操作,通過RS232接口進行通信。從而達到獲取傳感器數據和控制家庭設備的功能[3]。
加密盾設備作為數據傳輸的中間設備,主要目的是對智能家居系統中的各種傳感器數據密碼的解碼以及與計算機上位機通信的編碼和解碼操作,類似于網絡通信中的鏈接設備,如:無線網卡,其目的是把通信和連入網絡中的數據進行編碼和加密。實現數據的安全傳輸和加密。系統采用的是FT232的USB轉UART模塊來保證數據通信的穩定性,編碼解碼部分采用的是宏晶科技的STC12LE5A60S2單片機,通信部分采用了TI公司的CC2500無線RF射頻收發模塊[8]。
控制終端主要負責智能家居系統整個傳感網絡的數據采集以及對控制設備的智能化操作,并且控制顯示設備和輸入設備與用戶進行簡單的實際控制的人機交互,同時采用GSM網絡與用戶手機進行遠程人機交互。其功能包括對室內溫度、濕度、光線強度的采樣以及對節能LED等的自動調節等。控制終端作為智能家居系統的傳感網絡部分,需要處理更多數據,系統采用了Atmel公司的高端AVR單片機Atmega128作為控制中心,用于傳感器的采樣和系統控制,并負責GSM的遠程人機交互和CC2500的射頻通信,而本地的人機交互系統采用 STC12C5A60S2來控制OCM240128液晶顯示,并通過XPT2046觸摸屏控制器控制觸摸屏來實現人機交互的輸入[4~6];ATmega128和STC12C5A60S2之間通過RS485通信協議,以保證數據通信的穩定性和安全性。
用戶GSM通信設備在設定了用戶驗證的模式下,用于對獲取數據進行確認驗證,使得數據的安全性得到可靠保證,同時可以實現遠程的數據監測和控制功能從而實現遠程人機交互。具體的系統工作過程如下:首先在系統上電初始化后,上位機將要求用戶插入加密盾設備,并輸入對應的賬戶和密碼,控制終端將通過賬號和密碼訪問加密盾設備,以獲取是否設置了用戶驗證模式,如果沒有驗證模式,將直接對賬號和密碼進行匹配,如果設定了用戶驗證模式,加密盾將通知控制終端向用戶GSM通信設備發送驗證碼進行驗證,同時對賬號和密碼進行匹配。匹配成功后進入控制模式對智能家居設備進行控制。在控制中心通信的數據中通過編碼和時間加密算法進行加密。其中也包括了隨機的驗證信息,一旦驗證信息錯誤,通信將會立即中斷,以保障用戶隱私。
圖3 液晶及觸摸屏電路
圖4 SIM900A GSM電路
圖5 控制臺部分電路
硬件設計
本系統硬件部分以Atmega128單片機作為控制終端的核心,通過4線電阻式觸摸屏和OCM240128作為近距離人機交互,同時通過GSM通信和電腦上位機進行遠程人機交互。通過CC2500射頻通信模塊與加密盾設備實現數據加密和個人隱私安全保護,采用AM2303等傳感器采樣家居中的環境,以實現全自動化的智能家居系統,并可隨時人為操控。因此系統硬件部分電路主要由以下四個部分構成。
(1)加密盾電路
加密盾電路部分的主要功能是完成上位機到控制臺之間的數據通信溝通橋梁和通信數據轉換與加密功能,其電路圖如圖2所示。系統通過UART協議與上位機進行通信,考慮到目前最常用的為USB接口,采用了FT232的USB轉UART模塊實現加密盾部分與上位機的計算機進行通信。同時加密盾部分與控制終端的通信采用了CC2500無線射頻通信模塊,并通過SPI總線與STC12LE5A60S2單片機相連。
(2)液晶及觸摸屏電路
液晶電路部分的主要功能是實現智能家居系統的近距離人機交互,液晶及觸摸屏電路如圖3所示。顯示部分采用了OCM240128,由于電路相對耗能較大,采用了PNP三極管對液晶的背光進行控制,在沒有用戶使用的情況下可以自動關閉顯示達到節能的目的。觸摸屏控制器XPT2046通過SPI與單片機相連實現觸摸功能。
(3)SIM900A GSM模塊電路
SIM900A GSM模塊的主要功能是用于用戶驗證和實現遠程人機交互,電路如圖4所示。系統采用了電源管理芯片MIC29302作為SIM900A的供電模塊、PESD5V0L4UW作為GSM模塊的ESD保護電路確保GSM模塊可靠工作。
(4)控制臺電路
如圖5控制臺電路所示。控制臺電路主要負責傳感器數據的采集,家電設備的控制操作,以及實現與加密盾設備、液晶與觸摸屏部分和用戶GSM設備部分的通信功能。
圖6 數據編碼與加密部分程序流程圖
圖7 CC2500無線通信部分程序流程圖
圖8 SIM900A發送短信流程圖
軟件設計
系統軟件設計主要包括數據編碼與加密、無線通信和AT指令短信通信三大部分。
(1)數據的編碼與加密
整個系統的編碼和加密部分程序流程如圖6所示。
由于格雷碼具有循環、單步特性消除了隨機取數時出現重大誤差的可能,反射、自補特性使得求反非常方便,屬于可靠性編碼,是一種錯誤最小化的編碼方式;此外,系統采用了便宜和相對簡單的微控制器,因此,運算相對簡單但是錯誤率小的格雷碼編碼成為本系統編碼的首選[5]。
加密部分系統通過設定了一個基于6字節隨機時間偏移量的邏輯函數來實現,通過底層的UART協議自定義上層的數據包,數據包為單字節,32字節或64字節幾種形式,基本的傳輸模式有1字節、32字節、2*32字節、1+32字節、1+2*32字節、1+32+2*32字節等幾種。單字節的數據包主要用于簡單的握手協議,在多字節的數據包中,我們對其進行編碼和加密,分為起始碼,數據包長度,應答信號,數據位置定義,隨機時間偏移值,對應的數據(包括賬號,密碼以及監控系統中的溫度、濕度,光線強度等各種傳感數值以及家電的控制狀況),接收數據判斷碼和截止碼等部分構成,且對應數據所在的數據包中的位置通過數據位置定義變量進行定義,數據包的空字節可以填入隨機數,且整體數據全部加上隨機時間的偏移值(通過加減乘除等數學運算進行數據的偏移),并最后進行數據打包,加上對應數據校驗碼之后進行傳輸,最后通過監控軟件來判斷數據的加密效果。
(2)CC2500無線射頻通信
CC2500無線通信程序流程圖如圖7所示。
(3)GSM的AT指令短信通信
SIM900A的GSM模塊的AT指令基本與標準AT指令相同,設計采用PDU的數據格式進行發送和接收數據[9],AT指令短信通信發送部分程序流程圖如圖8所示。
總結
本文介紹了一種基于時間序列加密的智能家居系統。對系統的硬件、軟件及加密算法進行了詳細介紹,系統的創新點在于采用了基于隨機時間偏移量的邏輯加密算法來實現對數據的加密,并采用了穩定的編碼方式對數據進行編碼傳輸,保證了數據具有一定的不可預測性,具有較強的加密性。且其實現方式簡單,不需要復雜的控制系統,通過簡單的微處理器即可實現。并設定了可以選擇的用戶驗證模式,保障用戶隱私,還具有實現遠程人機交互的功能。整個系統不僅可以適用于智能家居系統中,還可以適用于各種物聯網相關系統中,具有較高的使用價值和參考價值。