楊金龍,馬靜怡
(鄭州科技學院大數(shù)據(jù)與人工智能學院,鄭州 450064)
智能家居系統(tǒng)是一種集成了計算機控制技術(shù)、傳感器技術(shù)、通信技術(shù)、電子信息技術(shù)等并將其應用到傳統(tǒng)家庭中的現(xiàn)代化系統(tǒng)[1]。智能家居系統(tǒng)具有集成度高、可靠性強、操作方便靈活、使用安全舒適、經(jīng)濟實惠、節(jié)能環(huán)保、安全可靠、人性化設(shè)計等優(yōu)點。通過網(wǎng)絡(luò)化綜合智能控制和管理,智能家居系統(tǒng)實現(xiàn)了以人為中心的全新家居生活體驗,為用戶提供更加智能化、個性化的居住體驗。
在智能家居的應用中,保障信息和數(shù)據(jù)的安全傳輸一直是一個需要解決的棘手問題,這是不可避免的挑戰(zhàn)。由于目前市場上沒有專門針對家庭中信息傳遞過程的安全產(chǎn)品,因此必須要對信息、數(shù)據(jù)傳輸進行嚴格的管理。其中的機密性是確保信息和數(shù)據(jù)傳輸有效的關(guān)鍵[2],必須采用有效的身份驗證措施。因此,對智能家居系統(tǒng)中常用的一些認證方式進行分析和研究,都是為了確保網(wǎng)絡(luò)的安全性和可靠性?,F(xiàn)如今在智能家居認證系統(tǒng)中,其主控芯片的算法參數(shù)可以進行調(diào)整,但是算法種類無法更換,正是由于該缺點的存在導致其在加密問題的廣泛適配性上有一定缺失。
為了應對上述問題,人們一直在追求一種完美的技術(shù)方案。目前比較成熟的方法是通過使用加密芯片來對數(shù)據(jù)進行保護和處理。針對現(xiàn)有技術(shù)的局限性,我們提出了一種基于自主加密芯片的智能家居控制系統(tǒng),以彌補現(xiàn)有技術(shù)的不足。該系統(tǒng)采用自主加密芯片對家庭內(nèi)部進行加密處理,實現(xiàn)對家庭中重要數(shù)據(jù)和信息的保護,并且能夠通過網(wǎng)絡(luò)將加密后的文件上傳至服務(wù)器上。該系統(tǒng)提供了更加多樣化的加密算法,從而顯著提升了其安全性水平。
本文所設(shè)計的智能家居控制系統(tǒng)[3-4]由加密模塊、控制模塊以及相關(guān)的連接模塊構(gòu)成??刂破髂K用來接通控制器端口以接收來自控制器端口的指令和數(shù)據(jù);接口模塊用來接通智能家居的端口以發(fā)出控制指令;加密芯片部分包括主控芯片以及算法協(xié)處理單元,其中算法協(xié)處理單元采用FPGA 芯片,它是算法處理的核心,為主控芯片提供算法加密。
系統(tǒng)控制加密模塊的硬件框圖如圖1所示。
圖1 系統(tǒng)控制加密模塊的硬件框圖
如圖1所示,該控制模塊以加密芯片CK810為控制處理核心,主控芯片通過PCIE 接口將時鐘模塊、電源模塊、復位模塊、外部存儲模塊、IC 模塊和算法協(xié)處理單元連接在一起。多余的PCIE接口與控制單元、連接單元相連。
CK810 在嵌入式系統(tǒng)開發(fā)中被廣泛采用,其主要長處在于擁有卓越的主頻表現(xiàn)、卓越的單位性能以及高效的功耗。該處理器具有很好的低功耗特性和良好的可移植性能,適合嵌入式操作系統(tǒng)移植。CK810 芯片的移植開發(fā)采用了安卓系統(tǒng),通過Java 編程和底層程序開發(fā),實現(xiàn)了在家居智能芯片的設(shè)計研究開發(fā)中更高效的應用。
本系統(tǒng)可以在單片機上運行多種算法,包括串行通信、并行通訊和并行處理等功能。FPGA 芯片因其高度集成、可反復編程、高可靠性等優(yōu)點,已成為當今硬件設(shè)計中最為重要的可選方案之一。算法模塊采用FPGA芯片進行構(gòu)建,為加密芯片提供了多樣化的算法支持,解決了算法種類受限的問題。外部存儲模塊包括FLASH 和 DDR3,IC 模塊用于內(nèi)部通過算法[5]生成的密鑰,F(xiàn)LASH用來管理公鑰和身份信息,而DDR3則存儲有公鑰與其使用者的身份匹配關(guān)系。
加密芯片的結(jié)構(gòu)框圖如圖2所示。
圖2 加密芯片的結(jié)構(gòu)框圖
圖3 控制模塊的數(shù)據(jù)傳輸示意圖
主控芯片由CPU 核心、算法引擎接口、存儲接口以及外面連接的數(shù)據(jù)端口構(gòu)成。通過各種算法引擎連接到FPGA,實現(xiàn)多種算法處理,從而提高了系統(tǒng)的安全性。
算法引擎能夠以硬件方式實現(xiàn)密碼算法,主要通過控制電路和協(xié)議數(shù)據(jù)端口來實現(xiàn);FLASH 作為芯片啟動引導程序、程序靜態(tài)存儲、密鑰、證書和標志信息存儲以及芯片參數(shù)等方面的重要工具,它能夠確保程序的安全性和可靠性;作為芯片的主要服務(wù)接口,PCI-E 接口提供了命令與密碼服務(wù)的數(shù)據(jù)傳輸,而DDR3接口則連接了SDRAM 芯片,同時還提供了對外PCI-E接口、USB2.0接口、DDR3接口、SPI 接口、I2C 接口、GPIO 接口、UART 接口和外部存儲器接口;IC卡可通過I2C接口進行連接,而外部存儲芯片則可通過外部存儲器接口與之相連。
控制單元[6]通過PCIE 口與主控芯片算法模塊進行傳輸,算法模塊將信息反饋給控制單元,連接單元將用戶加密信息傳遞給主控模塊,并通過算法協(xié)處理單元進行加密信息處理,將結(jié)果反饋給連接單元,通過上述流程來實現(xiàn)控制終端與智能家居設(shè)備之間的綁定和身份認定過程。
其中加密處理過程是一種基于FPGA技術(shù)的硬件加密傳輸設(shè)備,它為公鑰密碼系統(tǒng)提供了在非安全網(wǎng)絡(luò)上安全、準確地傳輸密鑰的能力。網(wǎng)絡(luò)加密卡具有良好的性能,可以很好地滿足各種不同環(huán)境下對數(shù)據(jù)進行安全性和保密性要求。作為加密的重要組成部分,公鑰密碼算法采用TCP/IP協(xié)議作為一種全面的協(xié)議,針對網(wǎng)絡(luò)加密卡的實際需求,對密鑰交換協(xié)議進行了深入分析,并利用VHDL語言實現(xiàn)了AES算法,最終成功實現(xiàn)了公鑰密碼算法。同時針對不同類型的加密需要選擇合適的加密算法和解密方法。類似的實現(xiàn)方式也包括非對稱和雜湊等算法。
通過引入上述算法協(xié)處理單元,不僅豐富了加密芯片的算法種類,而且在面對各種不同的加密需求時,能夠靈活地加載相適配的算法,從而顯著提升其廣泛適用性。
本文采用的測試平臺由上位機與測試平合硬件系統(tǒng)組成:上位機選用具有Windows 操作糸統(tǒng)的PC 機,實現(xiàn)對測試過程的發(fā)起與控制;測試平合硬件系統(tǒng)由FPGA 測試基板組成,為多芯片同步測試提供必要的工作環(huán)境。PC 機與FPGA[7]測試基板之間通過 USB 線連接。
考慮到測試的效率與穩(wěn)定性,本文選用FPGA-DE3 開發(fā)板作為測試平合的FPGA 測試基板[8],它通過內(nèi)部 FPGA 芯片的 Nios II CPU按收與下發(fā)上位機命令,并在測試結(jié)束后將測試結(jié)果上傳,完成測試平臺系統(tǒng)上位機與下位機間的數(shù)據(jù)交互。測試中FPGA 測試基板主要用到的DE3 開發(fā)板自帶器件包括LED 品示、USB 通信接口、DDR IT SDRAM 插槽、HSTC 擴展接口、電源、晶振、按鍵等。
測試平臺軟件質(zhì)量會直接影響批量測試板及FPGA 測試基板性能的實現(xiàn),本文設(shè)計的軟件系統(tǒng)應具有良好的層次性、可復用性、可擴展性,同時還應該滿足系統(tǒng)的標準化與開放化的要求。
本文采用層次化設(shè)計思想將測試平臺的軟件系統(tǒng)分為三層,分別為提供上位機端的應用層、FPGA 測試基板端的控制層以及測試實現(xiàn)層。通過Nios II CPU 將上位機與下位機、用戶與被測芯片緊密聯(lián)系起來,共同保證了測試平合運行的穩(wěn)定性。系統(tǒng)軟件層次劃分如圖4所示。
圖4 軟件層次劃分
(1)應用層。上位機端的應用層是測試平合系統(tǒng)軟件的最頂層,也是直接與用戶接觸的層次。用戶通過相應測試命令實現(xiàn)對測試流程的發(fā)起;操作界面完成測試項的選擇,重要信息及測試結(jié)果的顯示;用戶通過上位機直接控制芯片協(xié)處理器的測試流程。
(2)控制層。FPGA 測試基板端的控制層是測試平臺系統(tǒng)軟件的中間層。它以USB 接口讀寫驅(qū)動為基礎(chǔ),通過內(nèi)部Nios II CPU 完成對應用層命令的接收,實現(xiàn)應用層與測試實現(xiàn)層的數(shù)據(jù)信息交換,并對芯片內(nèi)部各模塊的測試順序進行控制。
(3)測試實現(xiàn)層。批量測試板端的測試實現(xiàn)層直接與芯片硬件接觸,負責內(nèi)部模塊功能測的實現(xiàn)。它以芯片通信接口和存儲單元讀寫驅(qū)動為基礎(chǔ),完成對芯片功能測試程序的執(zhí)行,并編寫模塊測試程序。
為了驗證協(xié)處理器功能,本文以處理AES[9]算法功能為例,具體的實現(xiàn)流程如圖5所示。
圖5 算法協(xié)處理單元流程
(1)算法注入。協(xié)處理器內(nèi)部需要寫入相應算法[10-12]方可進行對算法處理能力的測試,上位機在測試前的首要工作就是從Coprocessor Test.date 中讀出需要進行功能測試的算法并注入?yún)f(xié)處理器。
(2)指令注入。在算法寫人協(xié)處理器后,上位機向控制寄存器注入控制命令并完成啟動指令的裝載準備;向指令寄存器注入指令,完成協(xié)處理器的配置、密鑰選取等數(shù)據(jù)信息加密前必須進行的準備工作;向控制寄存器注入控制命令完成指令的注入操作。
(3)參數(shù)注入。在確定上位機己經(jīng)將算法、指令注入完成后,根據(jù)算法類型的不同,依次向協(xié)處理器注入密鑰、IV 等參數(shù)并通過檢測相應的狀態(tài)寄存器來判斷是否注入成功。當檢測狀態(tài)位空閑時注入待測試的明文,這樣就完成了上位機向協(xié)處理器的參數(shù)注入。
(4)讀出結(jié)果并比對。上位機在接收到狀態(tài)寄存器發(fā)出處理完成的信號后,從數(shù)據(jù)寄存器中將協(xié)處理器運算后得到的密文讀出,與相應算法的標準密文進行比對,并將結(jié)果顯示在上位機界面上。
本文在查閱相關(guān)的國內(nèi)外智能家居系統(tǒng)的基礎(chǔ)上,針對我國傳統(tǒng)主要控制器件的算法種類不可替代和無法針對不具有廣適性的加密情況,設(shè)計了具有多樣化加密算法、高穩(wěn)定性的采用了自主保密芯片的智能家居控制系統(tǒng),并通過搭建的測試平臺進行了軟硬件的功能測試。結(jié)果表明,本文采用的自主加密芯片的智能家居系統(tǒng)設(shè)計能夠?qū)崿F(xiàn)最理想的效果。