基于IP核及可重構設計的信息安全SoC芯片的實現(xiàn)
當前,信息安全防護已經(jīng)從傳統(tǒng)的單點信息加密發(fā)展到了以芯片級硬件防護為基礎,構建覆蓋全網(wǎng)絡系統(tǒng)的信息保障體系。基于芯片級的硬件解決方案已經(jīng)成為保證信息安全的最可靠的途徑???a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/重構">重構信息安全SoC芯片是基于信息安全服務、面向安全應用、向微型信息安全設備提供密碼服務的基礎部件,可廣泛應用在安全電子支付、身份識別、社會保障、安全電子載體高性能加解密、生物特征識別、金融智能卡、面向城市基礎設施的智能IC卡、電子護照和可信計算等安全領域。由于信息安全SoC芯片有著如此眾多的應用,因此其開發(fā)必須很好地解決應用多樣性和開發(fā)通用性的問題,使所開發(fā)的產(chǎn)品具有智能化、模塊化、可裁減、可重構等特征。正因為信息安全SoC芯片所處理的大都是敏感信息和秘密信息,所以在芯片開發(fā)時必須著重考慮系統(tǒng)的安全性。基于上述因素,在系統(tǒng)整體功能不變的前提下,筆者利用可重構的思想、相關優(yōu)化技術、安全防護技術,有效地整合系統(tǒng)中的有限資源,設計實現(xiàn)了一款可重構信息安全SoC芯片。所制定的通用靈活的IP核接口,引入了較為完備的安全機制,使之具有快速的數(shù)據(jù)加密與解密、數(shù)字簽名與身份認證等功能;所采用的優(yōu)化技術提高了系統(tǒng)性能,降低了系統(tǒng)規(guī)模和功耗,能更好地滿足智能IC卡及安全電子載體USB key等相關安全設備的安全需求、規(guī)模限制和功耗要求。
1 SoC芯片的系統(tǒng)結構設計
基于密碼應用的信息安全SoC芯片系統(tǒng)結構由系統(tǒng)控制模塊、密碼服務模塊、存儲器控制模塊、功能輔助模塊、通信模塊及系統(tǒng)總線模塊組成,如圖1所示。
(1)系統(tǒng)控制模塊。該模塊是整個安全SoC芯片的系統(tǒng)核心,在系統(tǒng)軟件的控制下,用于協(xié)調系統(tǒng)中各個模塊的運行。該模塊采用具有自主知識產(chǎn)權的微控制器(MCU),完全兼容8052指令集,并針對密碼應用和密碼服務進行了優(yōu)化設計,設計出了專用的密碼服務指令,從而大幅度提升了密碼服務時數(shù)據(jù)處理的效率。
(2)密碼服務模塊。該模塊用于向系統(tǒng)提供密碼服務,由DES/TDES和RSA兩個密碼子模塊構成。DES/TDES分組密碼模塊,提供分組密碼算法服務,可用于高速數(shù)據(jù)處理;RSA公鑰密碼模塊,提供公鑰密碼算法服務,可用于低速數(shù)據(jù)處理、數(shù)字簽名及身份認證等服務。
(3)功能輔助模塊。該模塊向系統(tǒng)提供密碼輔助功能,由真隨機數(shù)發(fā)生器和16/8除法器兩部分組成。真隨機數(shù)發(fā)生器向系統(tǒng)提供真隨機數(shù)服務;16/8除法器用于在進行隨機數(shù)素性判定時實現(xiàn)快速的16位/8位除法。
(4)存儲器控制模塊。該模塊用于控制各存儲器地址分配、數(shù)據(jù)選擇,由存儲器切換模塊和存儲器動態(tài)配置模塊兩部分構成。利用存儲器切換模塊,通過裝載工具配置相應的寄存器,對SoC芯片進行操作系統(tǒng)升級更新;存儲器動態(tài)配置模塊,對系統(tǒng)中各存儲器進行整合,通過配置相應的控制寄存器,對指令存儲器和數(shù)據(jù)存儲器的容量進行動態(tài)配置。
(5)通信模塊。該模塊用于和外部進行數(shù)據(jù)通信。本設計中的外圍接口采用智能卡通用接口,接口模塊包括USB接口模塊和串行接口模塊。USB接口模塊支持USB1.1標準, 通信速率為1.5Mbps, 支持HID類規(guī)范,支持控制傳輸和中斷傳輸;串行接口模塊采用異步半雙工模式,符合ISO/7816-3智能卡接口標準。
(6)系統(tǒng)總線。系統(tǒng)總線包括控制總線、地址總線及數(shù)據(jù)總線。為了防止芯片被破解或芯片內的關鍵信息被竊密,系統(tǒng)總線模塊中引入了總線加密機制,即在存儲器與各系統(tǒng)模塊之間添加總線安全模塊,用于進行總線數(shù)據(jù)的安全傳輸。
2 密碼服務模塊的設計
密碼服務模塊的設計,特別是密碼服務模塊中各子模塊的接口設計一直是信息安全SoC芯片系統(tǒng)設計的重點,設計的優(yōu)劣直接關系到信息安全SoC芯片的整體性能,因此本文對其進行重點描述。
2.1密碼服務模塊結構設計
在信息安全SoC芯片系統(tǒng)中,為了滿足不同的密碼需求,會有多個密碼服務子模塊。但在實際應用中,一般不會在同一時刻用到全部的密碼服務子模塊。在大多數(shù)的信息安全SoC芯片設計中,都會為每個模塊單獨配置控制寄存器和雙端口存儲器。這種方法雖然設計容易,實現(xiàn)方便,但會使所設計的SoC芯片內部結構復雜,各模塊間的連線繁多。這無疑增加了后端布局布線難度,降低了系統(tǒng)的整體性能,而且由于控制寄存器和存儲器資源有限,一旦芯片系統(tǒng)中所采用的密碼功能模塊較多,就會對系統(tǒng)中有限的資源造成較大的浪費。
為了降低后端布局布線難度,提高系統(tǒng)性能,有效利用系統(tǒng)中的有限資源,在密碼服務模塊中加入IP橋模塊來解決以上問題。密碼服務模塊的結構如圖2所示。
根據(jù)實際應用的需要,IP橋通過配置IP控制寄存器(IPC)選用所需的密碼服務子模塊,使之與系統(tǒng)掛接,達到有效整合系統(tǒng)中有限資源的目的。各密碼服務子模塊通過IP橋與控制模塊及存儲器連接;IP橋根據(jù)IPC狀態(tài)進行配置,選擇所需的密碼子模塊,并將其與控制模塊及存儲器進行整合;子模塊與控制模塊及存儲器之間的數(shù)據(jù)交互通過IP橋進行調配;最后通過控制模塊啟動密碼服務子模塊,進行相應的密碼操作,實現(xiàn)系統(tǒng)所需的密碼服務功能。
2.2 IP橋設計
IP橋主要功能是根據(jù)IPC寄存器狀態(tài)進行數(shù)據(jù)動態(tài)配置,由控制組合邏輯模塊和數(shù)據(jù)配置邏輯模塊構成,其結構如圖3所示??刂平M合邏輯模塊根據(jù)IPC狀態(tài)輸出控制信號,控制數(shù)據(jù)配置邏輯模塊進行數(shù)據(jù)配置。數(shù)據(jù)配置可分為兩類,即對密碼服務子模塊的通路配置和對雙端口存儲器(Dual RAM)的通路配置。
(1)密碼服務子模塊通路配置是指IP橋將MCU與所選用的子模塊進行整合,包括對其控制信號的配置和時鐘信號的分配??刂菩盘柵渲檬侵父鶕?jù)IPC狀態(tài)將MCU中用于控制密碼模塊的控制寄存器與相應的子模塊控制單元進行整合,以便MCU對子模塊操作進行控制。密碼服務子模塊的時鐘信號分配是指只有當所需的子模塊被IP橋選用時,才會分配時鐘信號,否則時鐘信號被屏蔽,處于休眠狀態(tài)。
(2)雙端口存儲器通路配置是指將所選用的密碼子模塊與雙端口存儲器進行時鐘匹配,并進行控制總線、地址總線、數(shù)據(jù)總線的動態(tài)配置。當整個密碼服務模塊未運行時,用于存儲器與密碼服務模塊匹配的時鐘信號被屏蔽。
2.3 密碼服務子模塊接口設計
在本設計中共有兩個子模塊:RSA公鑰密碼子模塊和DES/TDES分組密碼子模塊。這兩個子模塊都采用同樣的接口設計,具體的接口設計圖如圖4所示。
圖中實線信號為直連信號,虛線信號為通過IP橋配置的連通信號,密碼服務子模塊的各控制信號均由MCU通過IP橋控制產(chǎn)生,MCU可通過密碼指令控制子模塊。在子模塊完成運算并將數(shù)據(jù)寫入Dual RAM后,就輸出完成信號,將狀態(tài)寄存器中相應位置位,MCU通過查詢此狀態(tài)位就能判斷模塊是否完成運算。與密碼服務子模塊相關的Dual RAM可在兩個不同時鐘下,根據(jù)兩條地址線分別對存儲器單元進行讀寫操作。在本設計中分別由密碼服務子模塊和MCU對雙端口存儲器進行讀寫操作。密碼服務子模塊在初始運行階段,從雙端口存儲器中讀取需運算的數(shù)據(jù),完成運算后再將數(shù)據(jù)寫入雙端口存儲器中,供MCU使用操作。
密碼服務子模塊采用此種接口設計,可有效解決密碼IP核與系統(tǒng)間的速度差異問題。IP核可在高速時鐘下運行,系統(tǒng)可在低速時鐘下運行,而且由于雙端口存儲器的兩個數(shù)據(jù)端口可采用不同的數(shù)據(jù)位寬,也就解決了密碼服務子模塊與控制模塊之間的數(shù)據(jù)總線寬度不同的問題。兩個密碼服務子模塊都采用同樣的接口設計,使得所設計的IP核具有很強的通用性,在無需修改接口設計情況下,就可應用于其他的系統(tǒng)設計中。子模塊的后期測試也可采用同樣的測試平臺,使得測試簡單易行。
2.4密碼服務模塊運行流程
加入IP橋設計后,在調用密碼服務模塊之前需要對IPC進行配置,將密碼子模塊通過IP橋與系統(tǒng)模塊連接。密碼服務模塊運行流程如圖5所示。
密碼服務模塊運行流程實際上僅多了一個配置IPC的過程。對IPC的配置可通過對SFR的寫操作完成,此操作僅耗費二個系統(tǒng)時鐘,而且是在初始模塊運行時進行靜態(tài)配置,故對密碼服務模塊運行速率的影響幾乎可忽略不計。雖然MCU發(fā)出控制信號、子模塊的輸入輸出數(shù)據(jù)及完成信號,但這些密碼模塊和系統(tǒng)模塊之間的通信都通過IP橋來完成,并由IP橋整合調配,由于IP橋的配置是靜態(tài)配置,所以在密碼子模塊運行時,數(shù)據(jù)通信實際上幾乎不存在延遲。
IP橋的引入,使芯片系統(tǒng)的可重構特性大大加強,可以有效整合SoC芯片內部的資源,充分利用系統(tǒng)中的有限資源,從而降低了系統(tǒng)規(guī)模。在IP橋的控制下,對未調用的模塊所采用的時鐘屏蔽措施,使其處于休眠狀態(tài),有效地降低了系統(tǒng)功耗。由于各子模塊在IP橋控制下共用存儲器,因此在進行多密碼服務子模塊協(xié)同工作時就無需進行大規(guī)模的數(shù)據(jù)轉移,從而可節(jié)省大量用于數(shù)據(jù)轉移的時間,提高系統(tǒng)運行的效率。
3 設計實現(xiàn)及驗證
利用硬件語言VHDL對該款安全SoC芯片進行具體實現(xiàn),所設計的安全SoC芯片可在33MHz時鐘下正常運行,RSA密碼IP核可在50MHz時鐘下正常運行,對于小規(guī)模數(shù)據(jù)的低速通信可提供非對稱算法512/1 024bit RSA簽名/加解密服務,進行43次/秒的1 024bit模冪運算,規(guī)模僅40萬門。DES/TDES密碼IP核可在50MHz時鐘下正常運行,對于大規(guī)模數(shù)據(jù)的高速通信可提供對稱算法DES/TDES加解密服務,可進行100次/秒的DES加解密運算和60次/秒的TDES加解密運算。由于IP橋依據(jù)IPC的狀態(tài)對各模塊的控制總線、地址總線、數(shù)據(jù)總線進行通路配置,并不進行數(shù)據(jù)寄存,因此實現(xiàn)了IP橋所耗費的資源相當少,僅需200門左右。
系統(tǒng)測試一直都是SoC系統(tǒng)設計的重點。因此在系統(tǒng)設計階段,針對每個模塊,都進行了詳細的仿真測試,特別是針對存儲器轉換功能和存儲器配置的實現(xiàn)。為了能詳細仿真操作系統(tǒng)下載配置過程,設計了合理的仿真測試方法。針對IP橋配置也進行了詳細的仿真測試。系統(tǒng)整體設計完成后,在FPGA開發(fā)板上進行了具體的測試,采用的是ALTERA公司的EP2C35芯片,并利用中國人民銀行金融認證(CFCA認證)通過的COS(片上操作系統(tǒng))對整個系統(tǒng)進行了詳細而全面的應用測試,測試結果證明系統(tǒng)完全滿足COS系統(tǒng)中的各種密碼操作。
本文介紹了一款基于密碼服務、面向密碼應用的可重構信息安全SoC芯片的設計。為使所設計的信息安全SoC芯片更具技術特色和應用前景,運用可重構的思想,在密碼服務模塊和存儲器控制模塊中采用了IP橋技術、存儲器動態(tài)配置技術和存儲器切換技術。這些優(yōu)化技術的采用有效地利用了芯片系統(tǒng)中的有限資源,使得所設計的信息安全SoC芯片在微型系統(tǒng)的密碼應用中配置更為靈活、運行效率更高、資源耗費更少、功耗更低。這些特性對信息安全設備,特別是對微型或手持設備來說意義重大。
評論