基于時間序列加密的智能家居安全控制系統(tǒng)如何設(shè)計

智能家居是利用先進(jìn)的計算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、綜合布線技術(shù)、依照人體工程學(xué)原理,融合個性需求,將與家居生活有關(guān)的各個子系統(tǒng)如安防、燈光控制、窗簾控制、煤氣閥控制、信息家電、場景聯(lián)動、地板采暖等有機(jī)地結(jié)合在一起,通過網(wǎng)絡(luò)化綜合智能控制和管理,實現(xiàn)“以人為本”的全新家居生活體驗。

但近年來隨著信息技術(shù)的發(fā)展,其安全性引起了人們的廣泛關(guān)注,為此我們設(shè)計了一個具有加密功能的智能家居安全控制系統(tǒng),用戶數(shù)據(jù)和信息碼通過隨機(jī)的6字節(jié)時間偏移量進(jìn)行加密,采用32或64字節(jié)數(shù)據(jù)包處理并打包傳輸,通過穩(wěn)定的數(shù)據(jù)編碼格式(格雷碼)進(jìn)行編碼,并且提供可選擇的用戶確認(rèn)機(jī)制,保證了數(shù)據(jù)信息的安全性和穩(wěn)定性。

一、基于時間序列加密的智能家居安全控制系統(tǒng)結(jié)構(gòu)

基于時間序列加密的智能家居安全控制系統(tǒng)主要由計算機(jī)上位機(jī),加密盾連接設(shè)備,被控制對象和用戶GSM通信設(shè)備組成,如圖1所示。

系統(tǒng)上位機(jī)采用了C#編寫,C#是為NET Framework量身訂做的程序語言,作為第一個組件導(dǎo)向(Component-oriented)的程序語言,采用面向?qū)ο蟮木幊陶Z言,具有良好的便利性和易用性。通過基于UART的底層通信模式,自定義上層的通信數(shù)據(jù)包,對數(shù)據(jù)包進(jìn)行自定義的編碼和解碼操作,通過RS232接口進(jìn)行通信。從而達(dá)到獲墩傳感器數(shù)據(jù)和控制家庭設(shè)備的功能。

加密盾設(shè)備作為數(shù)據(jù)傳輸?shù)闹虚g設(shè)備,主要目的是對智能家居系統(tǒng)中的各種傳感器數(shù)據(jù)密碼的解碼以及與計算機(jī)上位機(jī)通信的編碼和解碼操作,類似于網(wǎng)絡(luò)通信中的鏈接設(shè)備,如:無線網(wǎng)卡,其目的是把通信和連入網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行編碼和加密。實現(xiàn)數(shù)據(jù)的安全傳輸和加密。系統(tǒng)采用的是FT232的USB轉(zhuǎn)UART模塊來保證數(shù)據(jù)通信的穩(wěn)定性,編碼解碼部分采用的是宏晶科技的TC12LESA60S2單片機(jī),通信部分采用了TI公司的CC2500無線RF射頻收發(fā)模塊。

控制終端主要負(fù)責(zé)智能家居系統(tǒng)整個傳感網(wǎng)絡(luò)的數(shù)據(jù)采集以及對控制設(shè)備的智能化操作,并且控制顯示設(shè)備和輸入設(shè)備與用戶進(jìn)行簡單的實際控制的人機(jī)交互,同時采用GSM網(wǎng)絡(luò)與用戶手機(jī)進(jìn)行遠(yuǎn)程人機(jī)交互。其功能包括對室內(nèi)溫度、濕度、光線強(qiáng)度的采樣以及對節(jié)能LED等的自動調(diào)節(jié)等??刂平K端作為智能家居系統(tǒng)的傳感網(wǎng)絡(luò)部分,需要處理更多數(shù)據(jù),系統(tǒng)采用了Atmel公司的高端AVR單片機(jī)Atmega128作為控制中心,用于傳感器的采樣和系統(tǒng)控制,并負(fù)責(zé)GSM的遠(yuǎn)程人機(jī)交互和CC2500的射頻通信,而本地的人機(jī)交互系統(tǒng)采用STC12CSA60S2來控制OCM240128液晶顯示,并通過XPT2046觸摸屏控制器控制觸摸屏來實現(xiàn)人機(jī)交互的輸入;ATmega128和STC12C5A60S2之間通過RS485通信協(xié)議,以保證數(shù)據(jù)通信的穩(wěn)定性和安全性。

用戶GSM通信設(shè)備在設(shè)定了用戶驗證的模式下,用于對獲取數(shù)據(jù)進(jìn)行確認(rèn)驗證,使得數(shù)據(jù)的安全性得到可靠保證,同時可以實現(xiàn)遠(yuǎn)程的數(shù)據(jù)監(jiān)測和控制功能從而實現(xiàn)遠(yuǎn)程人機(jī)交互。具體的系統(tǒng)工作過程如下:首先在系統(tǒng)上電初始化后,上位機(jī)將要求用戶插入加密盾設(shè)備,并輸入對應(yīng)的賬戶和密碼,控制終端將通過賬號和碼進(jìn)行匹配。匹配成功后進(jìn)入控制模式對智能家居設(shè)備進(jìn)行控制。在控制中心通信的數(shù)據(jù)中通過編碼和時間加密算法進(jìn)行加密。其中也包括了隨機(jī)的驗證信息,一旦驗證信息錯誤,通信將會立即中斷,以保障用戶隱私。

二、基于時間序列加密的智能家居安全控制系統(tǒng)的硬件設(shè)計

基于時間序列加密的智能家居安全控制系統(tǒng)硬件部分以Atmega128單片機(jī)作為控制終端的核心,通過4線電阻式觸摸屏和OCM240128作為近距離入機(jī)交互,同時通過GSM通信和電腦上位機(jī)進(jìn)行遠(yuǎn)程人機(jī)交互。通過CC2500射頻通信模塊與加密盾設(shè)備實現(xiàn)數(shù)據(jù)加密和個人隱私安全保護(hù),采用AM2303等傳感器采樣家居中的環(huán)境,以實現(xiàn)全自動化的智能家居系統(tǒng),并可隨時人為操控。因此系統(tǒng)硬件部分電路主要由以下四個部分構(gòu)成。

(1)加密盾電路

加密盾電路部分的主要功能是完成上位機(jī)到控制臺之間的數(shù)據(jù)通信溝通橋梁和通信數(shù)據(jù)轉(zhuǎn)換與加密功能,其電路圖如圖2所示。系統(tǒng)通過UART協(xié)議與上位機(jī)進(jìn)行通信,考慮到目前最常用的為USB接口,采用了FT232的USB轉(zhuǎn)UART模塊實現(xiàn)加密盾部分與上位機(jī)的計算機(jī)進(jìn)行通信。同時加密盾部分與控制終端的通信采用了CC2500無線射頻通信模塊,并通過SPI總線與STC12LESA60SZ單片機(jī)相連。

 

(2)液晶及觸摸屏電路

液晶電路部分的主要功能是實現(xiàn)智能家居系統(tǒng)的近距離人機(jī)交互,液晶及觸摸屏電路如圖3所示。顯示部分采用了OCM240128,由于電路相對耗能較大,采用了PNP三極管對液晶的背光進(jìn)行控制,在沒有用戶使用的情況下可以自動關(guān)閉顯示達(dá)到節(jié)能的目的。觸摸屏控制器XPT2046通過SPI與單片機(jī)相連實現(xiàn)觸摸功能。

 

(3)SIM900A GSM模塊電路

SIM900A GSM模塊的主要功能是用于用戶驗證和實現(xiàn)遠(yuǎn)程人機(jī)交互,電路如圖4所示。系統(tǒng)采用了電源管理芯片MIC29302作為SIM900A的供電模塊、PESD5VOL4UW怍為GSM模塊的ESD保護(hù)電路確保GSM橫塊可靠工作。

(4)控制臺電路

如圖5為控制臺電路??刂婆_電路主要負(fù)責(zé)傳感器數(shù)據(jù)的采集,家電設(shè)備的控制操作,以及實現(xiàn)與加密盾設(shè)備、液晶與觸摸屏部分和用戶GSM設(shè)備部分的通信功能

三、基于時間序列加密的智能家居安全控制系統(tǒng)的軟件設(shè)計

系統(tǒng)軟件設(shè)計主要包括數(shù)據(jù)編碼與加密、無線通信和AT指令短信通信三大部分。

(1)數(shù)據(jù)的編碼與加密

整個系統(tǒng)的編碼和加密部分程序流程如圖6所示。

由于格雷碼具有循環(huán)、單步特性消除了隨機(jī)取數(shù)時出現(xiàn)蘑大誤差的可能,反射、自補(bǔ)特性使得求反非常方便,屬于可靠性編碼,是一種錯誤最小化的編碼方式;此外,系統(tǒng)采用了便宜和相對簡單的微控制器,因此,運(yùn)算相對簡單但是錯誤最小的格雷碼編碼成為本系統(tǒng)編碼的首選。

加密部分系統(tǒng)通過設(shè)定了一個基于6字節(jié)隨機(jī)時間偏移量的邏輯函數(shù)來實現(xiàn),通過底層的UART協(xié)議自定義上層的數(shù)據(jù)包,數(shù)據(jù)包為單字節(jié),32字節(jié)或64字節(jié)幾種形式,基本的傳輸模式有1字節(jié)、32字節(jié)、2*32字節(jié)、1+32字節(jié)、1+2*32字節(jié)、l+32+2*32字節(jié)等幾種。單字節(jié)的數(shù)據(jù)包主要用于簡單的握手協(xié)議,在多字節(jié)的數(shù)據(jù)包中,我們對其進(jìn)行編碼和加密,分為起始碼,數(shù)據(jù)包長度,應(yīng)答信號,數(shù)據(jù)位置定義,隨機(jī)時間偏移值,對應(yīng)的數(shù)據(jù)(包括賬號,密碼以及監(jiān)控系統(tǒng)中的溫度、濕度,光線強(qiáng)度等各種傳感數(shù)值以及家電的控制狀況),接收數(shù)據(jù)判斷碼和截止碼等部分構(gòu)成,且對應(yīng)數(shù)據(jù)所在的數(shù)據(jù)包中的位置通過數(shù)據(jù)位置定義變量進(jìn)行定義,數(shù)據(jù)包的空字節(jié)可以填人隨機(jī)數(shù),且整體數(shù)據(jù)全部加上隨機(jī)時間的偏移值‘(通過加減乘除等數(shù)學(xué)運(yùn)算進(jìn)行數(shù)據(jù)的偏移),并最后進(jìn)行數(shù)據(jù)打包,加上對應(yīng)數(shù)據(jù)校驗碼之后進(jìn)行傳輸,最后通過監(jiān)控軟件來判斷數(shù)據(jù)的加密效果。

(2)CC2500無線射頻通信

CC2500無線通信程序流程圖如圖7所示。

(3)GSM的AT指令短信通信

SIM900AlyjGSM模塊的AT指令基本與標(biāo)準(zhǔn)AT指令相同,設(shè)計采用PDU的數(shù)據(jù)格式進(jìn)行發(fā)送和接收數(shù)據(jù),AT指令短信通信發(fā)送部分程序流程圖如圖8所示。

小知識之格雷碼

格雷碼,因1953年公開的弗蘭克·格雷專利“Pulse Code Communication”而得名,當(dāng)初是為了通信,現(xiàn)在則常用于模擬-數(shù)字轉(zhuǎn)換和位置-數(shù)字轉(zhuǎn)換中。法國電訊工程師波特在1880年曾用過的波特碼相當(dāng)于它的一種變形。1941年George Stibitz設(shè)計的一種8元二進(jìn)制機(jī)械計數(shù)器正好符合格雷碼計數(shù)器的計數(shù)規(guī)律。格雷碼(Gray code)曾用過Grey Code、葛萊碼、葛蘭碼、格萊碼、戈萊碼、循環(huán)碼、二進(jìn)制反射碼、最小差錯碼等名字,它們有的是錯誤的,有的易與其它名稱混淆,建議不再使用它們。