999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

應用國密芯片的物聯網安全節點設計

2022-03-23 04:00:32石少青林偉斌

石少青,崔 超,肖 勇,趙 云,林偉斌

(南方電網科學研究院有限責任公司, 廣州 510663)

近年來,隨著智能設備制造和電子通訊技術的快速發展,物聯網通訊節點數量迅速增長,越來越多的數據通過通信系統進行傳輸。由于我國物聯網設備節點基數相對更大,所以我國的物聯網產業以后必將形成空前的市場份額并擁有強勁的發展潛力[1]。機遇往往伴隨挑戰,在擁有潛力的同時,黑客的攻擊范圍更廣,業界所面臨的安全挑戰也更為嚴峻[2]。在過去幾年中,各種黑客攻擊層出不窮,攻擊的目標涵蓋了支付、基礎設施、電子郵件、物聯網等領域[3-4]。因此,如何保障通信系統的信息安全,是目前首要解決的問題。

由于我國的安全芯片產業起步較晚,安全芯片供應鏈長期以來被支持國際通用密碼算法的國外安全芯片壟斷。采用國外的密碼技術或安全芯片,信息安全隱患巨大,一旦芯片被植入后門,后果不堪設想。十八大以來,黨和國家高度重視信息安全產業的發展,安全芯片等相關信息安全產業已上升至國家戰略高度[5]。雖然我國的自主國密芯片在功能和安全性上已經完全能夠取代國外的安全芯片,但是受先入為主思想的影響,我國的自主國密芯片市場占有率并不高,仍有大量的設備在使用國外的安全芯片。只有加強對自主國密芯片的應用,通過自主可控的國產加密技術對數據進行保護,才能增加外部獲取數據的難度,防止數據泄露,進而有效提升我國信息安全保障水平。

針對物聯網設備的通訊數據安全問題,給出一種基于國密芯片的可應用于物聯網設備的安全節點解決方案。該節點采用基于國密商用安全芯片為核心開發設計,能有效保證數據安全。一方面,本節點支持身份認證、信息加解密等功能,能夠滿足物聯網設備的數據安全需求,另一方面,本節點采用自主國密芯片,在一定程度上推動了我國國密芯片的應用。

1 安全節點電路設計

本節主要介紹安全節點的硬件電路設計,其中包括主控電路設計、電源電路設計、JTAG電路設計和外圍電路設計,最后通過PCB設計軟件Altium Designer完成安全節點電路板設計。

1.1 主控電路設計

所設計安全節點的主控制器是國密芯片,所以關于主控電路的設計也是圍繞國密芯片進行。所研制的國密芯片內部集成平頭哥半導體研發的低功耗32位處理器E802,該處理器支持RISC-V第三代指令系統架構的。芯片內部集成了國密加密算法IP、物理不可克隆函數IP和主流通用接口。

由于所研制的國密芯片內部沒有集成flash的硬件IP,所以在搭建主控電路必須集成flash芯片才能保證國密芯片正常啟動;選擇Atmel公司生產的SPI flash芯片AT25F512A作為用戶代碼存儲flash。該芯片還提供了單獨的寫使能信號和寫保護指令,進而實現對存儲數據的保護。該芯片主要存儲編譯好的用戶代碼機器碼,國密芯片啟動后即通過SPI接口從AT25F512A芯片中獲取用戶代碼,相關代碼會被搬運存儲在國密芯片內部集成的SRAM中按順序執行。

1.2 電源電路設計

安全節點將采用集中供電端口,即電源統一由外部提供。通過前期對市面上主流的物聯網設備進行調研發現,大部分物聯網設備工作電壓介乎3.3 ~12 V。所研制國密芯片IO工作電壓為3.3 V、CPU內核工作電壓是1.2 V,所以本安全節點的電源電路需將外部介乎3.3~12 V的電壓轉換成3.3 V和1.2 V的安全節點工作電壓。目前主流的穩壓電源轉換解決方案主要包括線性穩壓和開關穩壓。線性穩壓具有輸出波紋小、響應速度較快和外圍電路簡單等優點,但是容易出現發熱嚴重的現象。而開關穩壓既可進行升壓轉換,也可以實現降壓轉換[6-7],且轉換效率高,但缺點是噪聲較大、成本較高。

本著實現低成本、減少硬件面積的原則,選擇使用線性穩壓的解決方案為安全節點提供工作電壓。安全節點選擇了亞德諾半導體公司生產的低壓差線性穩壓器件ADP1711和ADP1712,通過這兩款芯片穩定生成安全節點的工作電壓。

1.3 JTAG電路設計

所設計安全節點配備下載接口,方便其他開發人員利用安全節點進行產品研發。目前業界主流的裸機下載調試電路主要包括JTAG和SWD,本文采用14端口的JTAG下載接口電路。在安全節點開發調試階段,通過JTAG接口可以快速訪問主控國密芯片的所有硬件寄存器,觀察目前國密芯片的工作狀態和運算數據,通過JTAG接口還可以訪問flash芯片和外部串口等外設,可以有效提升開發人員的設備開發、功能仿真和聯合調試效率。安全節點的仿真器使用的是平頭哥半導體公司研發的CKLink lite下載器,該下載器可配置調試接口時鐘頻率從10 kHz~24 MHz,且該下載器同時支持Windows操作系統和Linux操作系統,極大方便了使用雙系統進行開發的研發人員。安全節點通過JTAG接口與仿真器CKLink相連后即可實現在線仿真調試和程序燒寫,CKLink lite下載器及其接口原理圖如圖1所示。

圖1 CKLink lite下載器及其接口原理圖

1.4 外圍電路設計

安全節點在最小系統的基礎上進行外圍電路擴展,以提升安全節點的應用功能,本小節主要介紹WiFi模塊接入、USB轉串口電路設計和傳感器電路設計等外圍電路的設計。

將安信可科技所開發的WiFi模塊ATK-ESP8266作為外接WiFi通信設備。該安全節點內置一款超低功耗的32位微控制器,主頻可支持80 MHz和160 MHz,而工作模式支持AP、STA和STA+AP。該安全節點整體面積較小,可以實現通過串口與外部控制設備通信,內置的TCP/IP協議棧,方便開發人員通過安信可科技提供的SDK進行二次開發使用,也可直接通過AT指令進行WiFi模塊手動配置。該WiFi模塊是目前物聯網行業應用較為廣泛的一款WiFi通信設備,所以本安全節點外圍電路集成該WiFi模塊,如圖2所示是WiFi模塊及其接口原理圖。

圖2 WiFi模塊及其接口原理圖

目前還有很多物聯網設備是需要進行串口通信的,所以本安全節點同樣可以提供USB轉串口的外圍電路。本文設計一款USB轉串口電路,方便安全節點與用戶上位機進行數據交互,以快速實現用戶指令。

本文的國密芯片包含8路3.3 V的GPIO端口,可以為開發人員提供更多的應用驅動解決方案。在安全節點的設計中,將提供2路單點按鍵和2路LED,以方便開發人員增加應用場景的展示效果,還可以為開發人員設備調試提供更多手段。

1.5 安全節點硬件實現

通過前面具體電路的設計過程,針對安全節點的完整電路,通過Altium Designer完成安全節點PCB板的設計。由于需要結合物聯網設備使用,所以電路設計面積必須盡可能小,類似目前物聯網設備廣泛使用的WiFi模塊、藍牙模塊和Zigbee模塊等通信模塊,小巧、方便以適用于嵌入設計。

由于安全節點電路需要控制器件發熱和整體面積,故選擇通過手動布局完成電子器件布局。總結了以下電子器件手動布局經驗法則:先大后小原則,對于尺寸較大的電子器件需要首先布局,尺寸較小的電子器件隨后通過電路原理和工作模式進行合理布局[8];先難后易原則,首先要將必須聯合工作的器件布局在一起,例如最小系統的控制器和時鐘必須就近布局,那就需要布局初期定位;模塊化原則,完成相同工作的電子器件盡量統一布局在相近的位置,組成類似外接模塊的布局標準,這樣能有效減少后期布線的難度。防干擾原則。大功率器件或者高頻器件盡量減少靠近布局,否則可能會導致器件相互干擾或者PCB板某處發熱嚴重的后果。

通過以上原則對安全節點進行器件布局,安全節點PCB板的元件布局情況如圖3所示。

圖3 安全節點PCB板元件布局圖

安全節點完成元器件布局后,就要對該PCB板進行布線操作。Altium Designer在布線操作中提供了手動布線和自動布線2種工作模式。自動布線同樣是適用于結構較為簡單的電路設計,本文的安全節點電路設計較為復雜,故選擇手動布線的方式完成安全節點的布線操作。手動布線遵循以下布線的經驗法則[9]:優先原則,布線過程中按照電源線、信號線和地線的順序進行布線,并且在合理范圍內增加電源線和地線的寬度,以達到更好的電氣性能;最短原則,在布線過程中應盡可能布最短路徑,減小布線帶來的阻抗,降低PCB板設計失敗的可能;45°原則,拐角布線盡量采用45°方式走線,盡可能避免90°拐角,可以有效較少對信號完整性的干擾;規整原則,布線在盡可能靠攏走線,盡可能有序分布。

通過以上布線規則完成PCB板布線,安全節點最終完成布線后的layout結果如圖4所示。

圖4 安全節點layout圖

2 安全節點軟件設計

安全節點的軟件設計通過調用SM2/SM3/SM4國密算法模塊實現,SM4的作用是對需要加密的信息進行加密/解密;而SM2則是實現公鑰加密/私鑰解密,SM3作為密碼雜湊函數供SM2調用。

發送方先用對稱密鑰對需要發送的信息進行SM4加密生產密文,然后用接收方的公鑰對SM4的對稱密鑰進行加密并連同密文一起發送給接收方;接收方用私鑰進行SM2解密得到SM4對稱密鑰,并利用對稱密鑰對密文解密得到明文。

2.1 SM4加密函數

SM4模塊的工作主要分為3個部分:加解密數據分組、輪密鑰生成以及加解密運算。其中數據分組即將輸入數據統一分成128位的數據,方便后面進行數據加解密。輪密鑰生成操作主要是對輸入密鑰進行邏輯運算,進而生成對應的輪密鑰存儲于內部的寄存器[10]。加解密操作則主要是對輸入數據完成相應的邏輯處理,進而得到加解密輸出數據。

用戶輸入明文或密文數據N,此時SM4函數首先需要對數據N進行分解成128 bits一組的N1,N2,N3,…,Ni。隨后將分別將每一組加載至數據通過輸入數據寄存器中進行加解密操作。對應函數庫函數為SM4_Group_Divide(uint32 *key,uint32 *in,uint32 *out,uint32 mode),函數中最重要的部分是確定數據的組數,首先判斷組數是否為整數。若組數不為整數則表明最后一組數據位寬不足,此時通過補零補齊。

在國密芯片的SM4模塊中,通過軟件實現工作模式控制、輸入數據分組和模塊工作狀態讀取,硬件則完成輪密鑰生成和加解密邏輯運算。SM4模塊的核心算法模塊并不是直接掛載在AHB總線,所以每次核心算法運算后,軟件都要對狀態寄存器進行讀操作以確定模塊工作狀態。加密操作由于輪密鑰由低到高的順序進行使用,所以在進行輪密鑰生成操作后,軟件即可向輸入數據寄存器輸入加密數據。解密操作時則需要不斷的對狀態寄存器進行讀操作,通過判斷核心算法模塊的輪密鑰生成完畢后,再向輸入數據寄存器輸入解密數據。

輸出數據寄存器將用于保存模塊運算后的數據,輸出數據寄存器數據要在top_data_complete信號上升沿到來之后進行更新。由于模塊輸出數據是128 bits,而本文所采用都是32位寄存器,所以需要4個寄存器來保存輸出數據。輸出數據寄存器的數據保存周期是在前一次運算完成至下一次數據的輸入,在這期間輸出數據寄存器均有效可讀的。

可配置的寄存器包含控制寄存器和輸入數據寄存器,其中控制寄存器的ENABLE位是軟件復位信號,軟件正常工作時該復位信號需要保持低電平。輸入數據寄存器數據更新時,控制寄存器的UPDATE位必須置高,通過控制寄存器的MODULE位可以確定輸入寄存器的輸入類型,其中包括加密數據、解密數據或是密鑰數據。

2.2 SM3雜湊函數

SM3雜湊函數[11-12]包含1個頭文件和8個源文件,分別執行輸入數據、消息填充、數據分組、更新數據和輸出數據等雜湊過程,表1所示為SM3的輸入輸出數據。

表1 SM3的輸入輸出

SM3雜湊函數的軟件流程如圖5所示。

圖5 SM3雜湊函數軟件流程框圖

SM3雜湊函數的軟件執行具體步驟如下:

1) 輸入數據

對應函數庫函數為:Input_Message(in,len);

該函數讀取用戶輸入長度為len的數據in進行數據拼接,如果用戶需要對數據進行單獨雜湊值運算可以通過fscanf直接讀入數據。

2) 數據填充

SM3函數通過對低于264位的輸入數據進行直接運算,在此假設數據M的數據位寬為有限位寬N。函數首先將數據按照512位進行分塊,最后不足512位的塊也記錄為一個數據塊。

隨后通過在輸入數據的最后一位進行數據補1操作,即可實現在數據最后一個字節添加0x80后再增補k個0,完成數據填充操作,最后完成模塊的塊數據更新。

3) 硬件驅動

SM3雜湊函數需要對底層硬件進行操作,所以通過定義相關結構體,以方便軟件對相關寄存器的讀寫操作。

在SM3雜湊實際使用過程中,首先需要設置結構體的指針,使其可以指向SM3硬件模塊的基地址,同時根據控制寄存器相關控制位的定義進行模塊復位和初始化。隨后通過輸入數據寄存器開始寫入用戶數據,隨后將控制寄存器模塊工作使能控制位置高,SM3模塊開始進行邏輯運算[13]。軟件通過對狀態寄存器進行讀操作,進而判斷SM3模塊的邏輯運算是否完成,若運算結束則通過輸出數據寄存器將運算結果輸出,該結果即為用戶所需的雜湊值。

2.3 SM2函數

SM2函數需要對輸入數據進行2次預處理,然后生成加解密密鑰對數據[14],最后完成簽名驗簽操作。

SM2函數對輸入數據的第一次預處理是通過簽名方的用戶標識和公鑰進行拼接和雜湊運算,最后獲取雜湊結果Z1,同時雜湊值Z1將會用于第二次數據預處理。如表2所示為到二次數據預處理的輸入輸出端口。

表2 預處理1的輸入輸出

SM2函數完成第一次數據預處理后即進行第二次數據預處理[15],本次數據預處理通過對Z1值和待簽名數據M進行數據拼接并通過雜湊運算得到摘要數據H,雜湊值H則是作為簽名驗簽的輸入。如表3所示是第二次數據預處理的輸入輸出端口。

表3 預處理2的輸入輸出

SM2函數完成輸入數據預處理后,隨后即要進行密鑰對生成操作,密鑰對生成操作包括32字節的私鑰生成操作以及其對應的公鑰生成操作。

SM2函數完成數據預處理和密鑰對生成后即可進行簽名驗簽[16-17]操作,如圖6所示是簽名驗簽的軟件工作流程。

圖6 簽名驗簽軟件流程框圖

SM2函數在進行簽名驗簽操作時,模運算均通過取模N進行計算,所有寄存器數據都保存在結構體指針*initial中,其中儲存數據按照寄存器總線基地址依次進行偏移。在SM2模塊工作前,軟件需要配置控制寄存器相應控制位完成模塊復位和初始化操作。通過輸入數據寄存器[18]寫入用戶數據后,配置控制寄存器相應控制位選擇工作模式和啟動模塊運算。軟件通過讀取狀態寄存器的值判斷SM2模塊的運算情況,運算結束后需要配置控制寄存器相應控制位表明運算結束,隨后通過輸出數據寄存器輸出運算結果。

2.4 抗側信道攻擊分析

側信道攻擊是指攻擊者通過主通信信道以外的途徑獲取到的關于密碼實現運行狀態相關的信息,從而破解出密鑰信息,典型的側信息包括密碼實現運行過程中的能量消耗、電磁輻射、運行時間等信息。沒加入抗攻擊設計的加密算法可以被攻擊者輕易攻擊而引起密鑰泄露,因此需要加入抗攻擊設計。

本設計需要保護的密鑰包括SM4的對稱密鑰和SM2的私鑰[19],采用的是抵抗簡單功耗分析的方法。SM2在用私鑰進行點乘計算過程中,不同的私鑰會進行不同次數的點加運算,因此可以根據計算的功耗曲線來判斷出私鑰,抵抗簡單功耗分析的方法是通過平衡點加功耗使不同私鑰執行的點加次數一致從而無法根據功耗曲線破解私鑰。而SM4則是通過保證密鑰擴展的功耗平衡而抵抗簡單功耗分析。

3 安全節點功能測試

完成安全節點的設計后,通過文獻[20]開發的身份認證及加密系統對安全節點進行功能測試,該系統是基于本課題的國密芯片開發的,可以快速完成安全節點的功能測試。

安全節點將作為測試的下位機,身份認證及加密系統是通過Matlab圖形用戶界面開發的上位機,上位機與下位機之間方通過UART進行數據通信。如圖7和圖8所示是身份認證及加密系統的發送方交互界面和接收方交互界面[21]。

圖7 身份認證及加密系統發送方交互界面

圖8 身份認證及加密系統接收方交互界面

3.1 WiFi功能測試

安全節點通信方A在交互頁面點擊“創建WiFi熱點”即可完成熱點創建,創建WiFi熱點結果如圖9所示。

圖9 創建 WIFI 熱點界面

安全節點通信方B在交互頁面輸入熱點名稱并點擊“WiFi連接”即可完成熱點連接,連接WiFi熱點結果如圖10所示。

圖10 連接 WIFI 熱點界面

通過WiFi功能測試結果表明安全節點的WiFi功能可以正常創建和連接,符合預期功能需求。

3.2 身份認證測試

安全節點[22]進行身份認證測試,需要生成硬件設備ID,通過點擊“生成硬件設備ID”即可獲取當前安全節點的唯一硬件ID,同時該ID會直接顯示在交互界面中。安全節點生成硬件設備ID結果如圖11所示。

圖11 硬件設備ID生成結果

完成硬件設備ID生成操作后,即可錄入用戶信息。在身份認證及加密系統交互界面中輸入用戶名、用戶密碼和硬件設備ID,隨后點擊“身份信息錄入”按鈕即可完成設備A的信息錄入,同時設備B接收完成,如圖12和圖13所示。

圖12 身份信息錄入界面

圖13 身份信息錄入界面

安全節點設備完成信息錄入后,再次進入即需要進行身份認證操作,對身份認證操作同步4種情況進行測試。

1) 身份認證無誤。通過交互界面輸入正確的用戶信息后點擊“身份認證”按鈕,即可通過身份認證。如圖14所示是身份認證通過結果。

圖14 身份認證通過界面

2) 用戶名錯誤。當用戶名輸入錯誤進行身份認證時,交互界面會提示錯誤原因和告知認證不通過。如圖15所示是身份認證用戶名錯誤界面。

圖15 身份認證用戶名錯誤界面

3) 用戶密碼錯誤。當用戶密碼輸入錯誤進行身份認證時,交互界面會提示錯誤原因及告知認證不通過。如圖16所示是身份認證用戶密碼錯誤界面。

圖16 身份認證用戶密碼錯誤界面

4) 硬件設備ID錯誤。當硬件設備ID輸入錯誤進行身份認證時,交互界面會提示錯誤原因和告知認證不通過。如圖17所示是身份認證硬件設備ID錯誤界面。

圖17 身份認證硬件設備ID錯誤界面

通過身份認證測試結果表明安全節點的身份認證功能正常使用。

3.3 文檔加密測試

安全節點通信方A點擊“打開文檔”按鈕即可在計算機本地選擇需要加密的文本文件,文本數據會在“文檔明文”顯示窗口中進行顯示。隨后點擊“文檔加密”按鈕,安全節點便會對文檔明文數據進行加密操作,安全節點加密完成后密文將在“文檔密文”顯示窗口中進行顯示。最后點擊“發送文檔密文”按鈕即可將密文數據發送至安全節點通信方B。

安全節點通信方B完成密文接收后,密文數據將在“接收文檔密文”顯示窗口中進行顯示。隨后點擊“文檔解密”按鈕即可對密文數據進行解密操作,安全節點解密完成后解密數據將在“解密后文檔明文”顯示窗口中進行顯示,具體結果如圖18所示,表明模塊文本解密功能正常。

圖18 文本加密通信界面

3.4 圖像加密測試

安全節點通信方A通過點擊“打開圖像”按鈕即可在計算機本地選擇需要加密的圖像,同時圖像內容將會在“圖像明文”顯示窗口中進行顯示。隨后點擊“圖像加密”按鈕即可啟動安全節點對圖像數據進行加密操作,安全節點加密完成后密文將在“圖像密文”顯示窗口中進行顯示。最后點擊“發送圖像密文”按鈕即可把圖像密文數據發送至安全節點通信方B。

安全節點通信方B接收圖像密文數據完成后,即可將圖像密文在“接收圖像密文”顯示窗口中進行顯示。隨后點擊“圖像解密”按鈕即可啟動安全節點對圖像密文進行解密,最后將解密后獲得的圖像在“解密后圖像明文”顯示窗口中進行顯示。

如圖19所示是安全節點圖像加密通信結果,通過測試結果表明安全節點圖像加解密功能正常。

圖19 圖像加密通信界面

4 結論

完成了以基于物理不可克隆函數的國密芯片為核心的面向物聯網設備的安全節點的設計與實現。通過節點的調試結果表明該節點運行穩定,能夠完成對通信雙方進行身份認證,實現文檔和圖像的加密通信,達到預期研發目標。安全節點具有功耗低、加密性能強和運算速度快的優點,可以有效保障通訊數據在物聯網設備信道間的安全傳輸,是當前物聯網設備加密通訊的有效可行解決方案,針對物聯網硬件安全性能提升有較大應用前景。

主站蜘蛛池模板: 在线国产91| 在线观看免费AV网| 国产成人久久综合一区| 国产主播在线一区| 精品国产网| 婷婷激情五月网| 欧美成人国产| 日韩不卡免费视频| 亚洲美女一区二区三区| 在线五月婷婷| 91外围女在线观看| 99成人在线观看| 亚洲αv毛片| 色成人综合| 四虎AV麻豆| 综合色天天| 午夜福利视频一区| 91福利一区二区三区| 亚洲中文字幕23页在线| 亚洲一道AV无码午夜福利| yy6080理论大片一级久久| 成年av福利永久免费观看| 国产理论一区| 色噜噜在线观看| 久久女人网| 又猛又黄又爽无遮挡的视频网站 | 欧美人与动牲交a欧美精品| 国产精品人人做人人爽人人添| 亚洲欧美天堂网| 亚洲精品成人福利在线电影| 女同久久精品国产99国| 在线高清亚洲精品二区| AⅤ色综合久久天堂AV色综合 | 国产精品久久自在自2021| 亚洲婷婷六月| 国产va免费精品观看| 一级黄色欧美| 国产本道久久一区二区三区| 成人在线天堂| 国产成人一二三| 色丁丁毛片在线观看| 五月婷婷亚洲综合| 色悠久久综合| 免费在线观看av| 高清无码手机在线观看| 欧美a在线视频| 亚洲精品第五页| 欧美日本在线观看| 国产亚洲高清在线精品99| 中文天堂在线视频| 欧美三级日韩三级| 国产主播喷水| 福利国产在线| 久久永久精品免费视频| 亚洲一区二区成人| 国产免费福利网站| 亚洲第一色视频| 亚洲av无码牛牛影视在线二区| 国产麻豆永久视频| 色香蕉影院| 国产剧情国内精品原创| 91午夜福利在线观看| 波多野结衣亚洲一区| 欧美区一区| 亚洲国产精品一区二区第一页免 | 日韩精品一区二区三区大桥未久| 亚洲成人黄色在线| www.av男人.com| 国产精品吹潮在线观看中文| 亚洲黄色激情网站| 国产精品中文免费福利| 久久亚洲精少妇毛片午夜无码| 国产成人精品2021欧美日韩| 亚洲国产日韩在线成人蜜芽| 欧美一区二区三区香蕉视| 成人av手机在线观看| 国产波多野结衣中文在线播放| 国产亚洲精品自在线| 中文字幕永久视频| 欧美97色| 超碰免费91| 全免费a级毛片免费看不卡|