汪釗旭,鄒雪城,江鴻,孫添平,劉政林



摘? 要:隨著車聯網的不斷發展,人們對車聯網系統的安全性也提出了更高的要求。為了保護用戶的隱私和人身安全,需要采用加解密算法對車聯網通信進行保護。在中國,國密算法是被廣泛采用的一種加解密算法,因此,本文設計了一塊支持SM2、SM3、SM4算法,用于車聯網場景的安全芯片,同時兼容RSA和ECC算法,完成了仿真及FPGA驗證并使用55nm工藝庫進行了流片。電路總面積為3.98mm2,約1.2×106個MOS管,外設最高工作頻率為200MHz,可在2.14M時鐘周期內完成一次257位二元擴域點乘運算,具有較高的面積利用率和兼容性。
關鍵詞:國密算法;SOC;安全芯片;SM2
中圖分類號:U462.1? ? ? 文獻標識碼:A? ? ? 文章編號:1005-2550(2023)03-0065-06
Design and Verification of a National Security Chip for V2X Communication
WANG Zhao-Xu1, ZOU Xue-cheng1, JIANG Hong2, SUN Tian-ping3, LIU Zheng-lin1
(1.School of Integrated Circuit, Huazhong University of Science and Technology, Wuhan 430074, China; 2.Wuhan Single Cloud Network Technology Co.,Ltd, Wuhan 430072, China;
3. Shenzhen AiXieSheng Technology Co.,LTD, Shenzhen 518101, China)
Abstract: With the continuous development of Telematics, there comes higher requirements for the security of Telematics systems. In order to protect the privacy and personal safety of users, encryption and decryption algorithms need to be used to protect the Telematics communication. In China, the SM algorithm is a widely adopted encryption and decryption algorithm. Therefore,this paper designs a security chip that supports SM2, SM3, and SM4 algorithms, also compatible with RSA and ECC algorithms. The simulation and FPGA verification have been completed and taped out using the 55nm process library. The total area of the circuit is 3.98 mm2, with about 1.2×106 MOS tubes, the maximum peripheral operating frequency is 200 MHz, which can complete a 257-bit binary extended domain dot product operation in 2.14M clock cycles with high area utilization and compatibility.
Key Words: SM Cryptographic Algorithm; SOC; Security Chip; SM2
1? ? 引言
當前,各國政府和產業界正在著力發展智能汽車,據中國汽車工程學會預測,到2025年和2030年,我國網聯車銷售占比將增長到80%、100%,其銷售規模將達到2800萬輛、3800萬輛。其中車輛與外界的通信是實現輔助駕駛乃至自動駕駛、信息娛樂、出行管理等智能汽車重要功能的基礎,汽車專用的V2X(Vehicle-to-Everything)通信將成為未來智能交通系統信息網絡的關鍵組成部分。
V2X系統是一種和用戶高度關聯的終端設備,會產生大量與個人隱私相關的數據和信息。進行通信時如果不對數據的機密性、可用性和完整性進行保護,用戶與車輛會面臨非常嚴重的信息安全風險。2019年7月,IMT-2020(5G)推進組發布《LTE-V2X安全技術》白皮書,該白皮書指出,LTE-V2X車聯網系統在業務應用、網絡通信、路側設備和車載終端等多方面都面臨安全風險。比如,在接入網絡的過程中,車輛面臨假冒終端、偽基站、消息竊聽/篡改/重放等風險,車載終端和電子控制單元可能會被入侵。
V2X中進行通信的信息包含車輛位置、速度、路況等敏感信息,需要進行加密以保證安全性。目前的加密算法分為對稱加密和不對稱加密兩種,前者安全性較差,對密鑰的保密性有嚴格要求;后者的安全性較好,但是所需的計算量十分龐大。車載安全芯片一般存在算力不足的問題,不足以支撐完全使用不對稱加密進行通信。較為常用的方式是使用一次較短的不對稱加密傳輸密鑰,再使用對稱加密進行通信。這要求安全芯片同時具備對稱和不對稱加解密的功能。
V2X在通信過程中,對于信息的發送者和接收者需要進行認證,確保信息的來源和目的地可信。同時需要避免某一方在通信過程中發生抵賴行為,對整個系統造成影響。數字簽名機制可以同時提供認證功能和防抵賴能力,因此安全芯片也應當具備數字簽名功能。
盡管學界提出過一些輕量化車載安全算法,但是只停留在理論研究階段。由于沒有經過大規模,長時間的產品應用,其安全性有待進一步檢驗。因此在IMT-2020(5G)推進組發布的《LTE-V2X安全技術》白皮書中,建議使用國家密碼管理局批準的密碼算法保護V2X場景下的通信安全。
SM系列密碼算法是由我國國家密碼管理局主導研發、制定并推廣使用的國家標準密碼,近年來陸續成為國際標準,在國內外的產品中都得到了大量應用。SM2算法、SM3算法、SM4算法分別對應于國外Elliptic Curve Cryptography(ECC)不對稱加解密算法、Secure Hash Algorithm(SHA)簽名算法、Advanced Encryption Standard(AES)對稱加解密算法[9]。在性能表現上,SM系列密碼優于同類型的國際密碼[8]。同時,SM系列密碼是由我國研發的,具有自主知識產權。2020年1月1日起施行的《中華人民共和國密碼法》鼓勵商用密碼從業單位采用商用密碼推薦性國家標準、行業標準,提升商用密碼的防護能力,維護用戶的合法權益。
在SM系列算法得到更加廣泛應用的同時,依舊有很多以ECC和RSA算法為核心的非對稱加密協議仍在使用。由于SM2、ECC和RSA算法具有一定的通用性,因此可以付出較小代價的同時使用單個外設兼容以上三種算法。
目前,國內已經有許多公司成功研發并批量生產出基于國密算法的安全芯片,例如蘇州國芯的CCM3310S-T[11]、上海芯鈦的Mizar TTM20[12]、國民技術的Z32HUA[13]。但這些商用芯片普遍在兼容性上存在不足之處。例如以上三種芯片均不支持2048位以上的RSA算法,部分國密芯片也不支持高位數的SM2算法。
本文設計并實現了支持SM2,SM3,SM4國密算法同時兼容RSA和ECC算法的安全芯片,以外設方式提供各種國密算法的硬件加速器。其中SM2外設不僅可以完成384位SM2計算,同時兼容ECC和4096位RSA運算。SM3外設可以生成單組和多組的雜湊值。SM4外設可以完成單組和多組的對稱加解密。同樣配有種類數量豐富的接口,包括Controller Area Network(CAN)總線以及Serial Peripheral Interface(SPI),Inter-Integrated Circuit(I2C),Universal Asynchronous Receiver/Transmitter(UART)接口,以方便V2X在不同場景中的應用。
2? ? 安全芯片結構與外設
2.1? ?硬件整體架構
硬件架構部分的設計如圖1所示:
安全芯片總線矩陣為AHB接口,內核通過總線矩陣與SRAM,DMA外設,AHB總線,APB總線,cache與eflash相連。eflash用來存儲指令,與其相連的cache僅用來緩存指令。DMA可以進行I2C,UART和SPI的收發,以加快安全芯片的數據傳輸速度。AHB總線連接SM2,SM3,SM4外設、I2C,CAN總線和中斷控制器。APB總線通過轉接模塊與總線矩陣連接,上面掛載看門狗,TRNG,計時器和CRC外設以及UART,GPIO,SPI接口。
2.2? ?外設種類與作用
2.2.1 SM2外設
RSA公鑰加密算法是第一個被提出的非對稱加密算法,是目前最有影響力的公鑰加密算法之一。雖然提出的時間較老,依舊有大量的軟硬件在使用這種算法。ECC算法相較RSA算法具有安全性高、計算速度快、存儲空間小等優點,有望取代RSA密碼體制,成為下一代公鑰密碼標準。SM2國密算法本質上是適用于基域為素數域和二元擴域的橢圓曲線密碼算法。
本文設計的SM2外設不僅支持SM2算法,同時兼容RSA和ECC算法。這是由于這三個算法在算法底層具有通用性。
RSA算法的加密過程需要對明文求公鑰的冪之后取模,解密需要對密文求私鑰的冪之后取模。顯而易見,RSA算法依賴模冪運算,模冪運算則可以被分解為模乘運算。ECC和SM2密碼系統需要將私鑰與選擇的曲線上基點相乘獲得公鑰,加密時需要進行隨機數與基點和公鑰的點乘和明文的點加;解密時需要進行私鑰與密文的點乘和密文的點加,所以SM2和ECC最核心的運算為點乘和點加運算。同時SM2和ECC算法也需要用到模加減和模逆算法,而模逆可以被分解為模乘。綜上所述,RSA、ECC和SM2均可通過幾種簡單算法的排列組合完成。
SM2外設對外接口為一個AHB總線接口和一個高速時鐘接口,ARM處理器通過讀寫SRAM來送入待計算的數據和取出計算結果;通過讀寫工作寄存器來配置參數,控制外設的運算。可以實現8個算法:模加減算法、模乘算法、模乘參數Q預計算算法、模冪算法、模逆算法、點的加法、點的倍乘和點的標量乘算法。由于ECC,RSA,SM2均可被分解成以上8種算法的排列組合。因此通過以上8種算法,配合上合適的軟件程序即可完成以上三種公鑰密碼算法的協議。
模乘、模加減和Q值計算算法不依賴其它的算法,因此稱為底層算法。模冪、點加和點乘算法只依賴底層算法,稱為中層算法;模逆、點的標量乘算法則依賴了中層算法,稱為頂層算法。處理器能夠直接調用的是模乘、模逆、Q值計算和點的標量乘算法。
底層算法中,模乘使用蒙哥馬利算法實現,主要包含華萊士樹形三級流水線乘法器和64位雙域加法器;Q值的計算電路中主體為狀態機和雙域乘法器;模加減算法較為簡單。只需通過狀態機即可實現。中層算法中,模冪算法使用R-L掃描快速冪算法調用模乘實現,R-L算法可以減少使用的模乘次數;點的加法和點的倍乘均通過狀態機調用模乘和模加減電路進行運算,由于點的加法和點的倍乘不會在同一時刻同時執行,因此這兩者可以共享一片堆棧空間,以達到節省內存空間的效果。頂層算法中,模逆算法使用歐拉定理,將求模逆轉化為求模冪,使用狀態機調用模冪算法實現;點乘算法使用狀態機調用模逆、模乘、點加和點乘算法計算。
以計算消耗的高速時鐘周期數衡量該外設的計算用時,則該外設執行一次素數域256位橢圓曲線的點乘運算需要約3M個周期,執行一次二元擴域257位橢圓曲線的點乘運算約2.14M個周期,執行一次4096位RSA私鑰運算耗時約74.44M個周期,執行一次4096位公鑰運算耗時約0.58M個周期。
2.2.2 SM3,SM4外設
SM3密碼雜湊算法可以將任意長度的消息生成固定長度的摘要,用于文件簽名和完整性保護。消息分組長度512位,輸出長度256位。本文中的SM3外設可以完成單組和多組計算,在200MHz時鐘下可以在1ms后完成單組計算,輸出256位雜湊值。
SM4密碼算法是一個對稱加密分組算法,每個分組和密鑰長度為128比特。加密算法與密鑰擴展算法都采用32輪非線性迭代結構。數據解密和數據加密的算法結構相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。本文中的SM4外設可以完成單組和多組加密與解密,在200MHz時鐘下能在0.3ms輸出256位雜湊值。
由于SM3和SM4的結構缺乏內在聯系,難以使用同一組硬件完成,因此本文中的SM3和SM4外設分為兩個硬件模塊實現。本文中的SM3和SM4外設的結構類似,均由接口、寄存器模塊、輸入FIFO、輸出FIFO、計算模塊構成。兩種外設的主要差別在于其計算模塊不同。SM3外設的計算模塊主要為壓縮模塊,SM4外設的計算模塊主要為迭代分組模塊,由狀態機控制。
2.2.3 其余外設種類與作用
本文的國密安全芯片提供了多種外設接口,以方便V2X場景的使用。本文自行設計的CAN外設擁有64字節的接收FIFO,支持11位和29位標識符。除正常發送以外還可以進行只聽,自測和單次傳輸。錯誤處理方面,擁有錯誤計數器、可編程的錯誤警告、錯誤中斷和波特率檢測功能。
SPI接口可被配置為主從模式,支持中斷,查詢和DMA發送數據。支持四線傳輸,時鐘極性和相位可配置。數據寬度可配置為4-16比特。I2C接口可被配置為主從模式,可以通過DMA發送數據,支持7bit 設備地址和從機地址掩碼。UART支持中斷和DMA傳輸方式,輸出數據可配置為5,6,7,8位,同時支持四種校驗方式。停止位位寬可配置為1或2比特。支持錯誤檢測。
本文的國密安全芯片中共有14個中斷源,外設,接口和DMA均可觸發中斷。每個中斷源均可使能或屏蔽,設置優先級,配置成FIQ或者IRQ中斷。DMA共有6個通道,分別用于進行UART;SPI;I2C三個接口的收發。數據寬度支持8,16,32位,格式支持大小端。中斷可在DMA傳輸完成和出現錯誤時觸發。
3? ?軟硬件協同驗證
3.1? ?設計與驗證平臺
本文使用了一臺安裝有linux系統的服務器,一臺安裝windows系統的電腦和一塊Artix-7系列的FPGA開發板。其中linux系統服務器用于進行硬件設計,可進行verilog編程、仿真與版圖繪制;windows系統電腦用于進行軟硬件協同驗證,安裝有C語言調試和硬件燒錄工具;FPGA開發板用于硬件驗證。
3.2? ?協同驗證流程
3.2.1 軟件操作
首先進行工程創建。先編寫地址文件,新建工程之后,導入啟動文件和核文件。之后導入與本工程對應的寄存器地址文件。編譯之后查看有無錯誤出現。如果沒有錯誤出現,應當進行程序編寫,沒有錯誤后在工程設置中選擇輸出hex文件,生成hex文件備用。
之后下載程序至安全芯片。首先下載FLX文件的模板,根據eflash控制器的手冊編寫下載算法。將下載算法導入C語言調試工具中,之后選擇下載,即可將代碼燒錄進安全芯片當中。
3.2.2 硬件仿真
硬件仿真需要將C語言調試工具編譯生成的hex文件使用腳本進行處理后,生成bin文件并加載進入eflash中。仿真時的tb文件不提供激勵,只負責復位并啟動安全芯片。激勵由hex文件提供。
3.2.3 FPGA驗證
在完成硬件仿真,確認仿真中功能正確之后,生成比特文件。之后將比特文件燒寫進FPGA開發板中,啟動C語言調試工具并下載程序進入安全芯片,進行單步調試及整體功能測試。所有外設測試結果正常,可以完成全部功能,可以正常產生中斷。
3.3? ?性能評估
使用Vivado 2017.4 進行邏輯綜合,目標器件為xc7a200tfbg484-2,綜合優化策略為默認。綜合結果如表所示。從表中可以看到,SM2外設作為最重要的外設,占用了超過一半的主要資源。
本文在后仿時使用55nm工藝庫可以實現50 MHz的總線時鐘和200MHz的外設時鐘。關鍵路徑是從核到cache的路徑。生成的芯片數字版圖4如圖所示。電路總面積為3.98 mm2,約1.2×106個MOS管。
3.4? ?同類成果對比
表2將本文和其它已有的車聯網安全芯片對比,通過比較結果可以看出,本文所提出的用于V2X的安全芯片相較于其它安全芯片,可以計算更高位數的加密算法,同時具備更多的外設接口。總體而言具有較高的兼容性。
4? ? 結束語
本文設計并驗證了一塊支持國密算法的安全芯片,能夠滿足V2X場景對高速高安全性的要求。在支持SM2,SM3和SM4算法的同時,帶有足夠種類的接口。本文對非對稱算法外設的兼容性進行了優化,通過挖掘SM2,ECC和RSA三種算法的底層通用性,使得設計可以支持多種非對稱加密算法。本文最終完成了設計,通過仿真、FPGA實現驗證了邏輯功能的正確性,并進行了流片。
參考文獻:
[1]國家密碼管理局.GM/T 0003—2012 SM2 橢圓曲線公鑰密碼算法[S].北京:國家商用密碼管理辦公室,2012.
[2]國家密碼管理局.GM/T 0004—2012 SM3 密碼雜湊算法[S].北京:國家商用密碼管理辦公室,2012.
[3]國家密碼管理局.GM/T 0002—2012 SM4分組密碼算法[S].北京:國家商用密碼管理辦公室,2012.
[4]國家密碼管理局GM/T 0009,SM2密碼算法使用規范[S]. 北京:國家商用密碼管理辦公室,2012
[5]鄒雪城,周家樂,劉文超,劉政林.小面積高兼容性RSA&SM2的硬件實現方法[J].華中科技大學學報(自然科學版), 2019,47(01):79-84.
[6]于哲,支持國密算法SM1-SM4的通用數據安全芯片. 北京市,北京華大智寶電子系統有限公司,2019-01-04.
[7]孫榮燕,蔡昌曙,周洲,趙燕杰,楊金銘.國密SM2數字簽名算法與ECDSA算法對比分析研究[J].網絡安全技術與應用,2013(02):60-62.
[8]吳志紅,趙建寧,朱元,陸科.國密算法和國際密碼算法在車載單片機上應用的對比研究[J].信息網絡安全,2019(08):68-75.
[9]劉麗敏,王小云,張振峰,王鵬.商用密碼算法國際標準提案研究[J].信息技術與標準化,2018(05):17-20.
[10]王小云,于紅波.SM3密碼雜湊算法[J].信息安全研究,2016,2(11):983-994.
[11]蘇州國芯科技股份有限公司. 車載SE芯片CCM3310S-T(車規級)[EB/OL].[2023.3.29].https://www.china-core.com/products_show.php?id=7&xlm=14&lm=14.
[12]上海芯鈦信息科技有限公司. Mizar TTM20.[EB/OL].[2023.3.29].http://www.think-tech.com.cn/ProductDetail/2727275.html.
[13]國民技術股份有限公司.產品及解決方案.[EB/OL].[2023.3.29].https://www.nationstech.com/N32A455/.
汪釗旭
華中科技大學本科學歷,目前正在攻讀華中科技大學博士研究生。研究方向為微電子學與固體電子學。
專家推薦語
饒云華
武漢大學電子信息學院
電子科學與技術? 副教授
在車聯網行業標準和算法國產化的大背景下,本文針對車聯網通信所需的加解密和簽名驗簽算法,設計了一塊用于V2X的國密算法SOC,并進行了前仿,后仿與流片。設計的SOC較好的挖掘了不同非對稱加密算法之間的底層相似度,相較于以往的產品能支持更高位數的非對稱加密算法,擁有更多使用場景。本文格式清晰,條理清楚,具有一定的科研與應用價值。