當前,信息安全防護已經從傳統的單點信息加密發展到了以芯片級硬件防護為基礎,構建覆蓋全網絡系統的信息保障體系;谛酒壍挠布鉀Q方案已經成為保證信息安全的最可靠的途徑。可重構信息安全SoC芯片是基于信息安全服務、面向安全應用、向微型信息安全設備提供密碼服務的基礎部件,可廣泛應用在安全電子支付、身份識別、社會保障、安全電子載體高性能加解密、生物特征識別、金融智能卡、面向城市基礎設施的智能IC卡、電子護照和可信計算等安全領域。由于信息安全SoC芯片有著如此眾多的應用,因此其開發必須很好地解決應用多樣性和開發通用性的問題,使所開發的產品具有智能化、模塊化、可裁減、可重構等特征。正因為信息安全SoC芯片所處理的大都是敏感信息和秘密信息,所以在芯片開發時必須著重考慮系統的安全性。基于上述因素,在系統整體功能不變的前提下,筆者利用可重構的思想、相關優化技術、安全防護技術,有效地整合系統中的有限資源,設計實現了一款可重構信息安全SoC芯片。所制定的通用靈活的IP核接口,引入了較為完備的安全機制,使之具有快速的數據加密與解密、數字簽名與身份認證等功能;所采用的優化技術提高了系統性能,降低了系統規模和功耗,能更好地滿足智能IC卡及安全電子載體USB key等相關安全設備的安全需求、規模限制和功耗要求。
1 SoC芯片的系統結構設計
基于密碼應用的信息安全SoC芯片系統結構由系統控制模塊、密碼服務模塊、存儲器控制模塊、功能輔助模塊、通信模塊及系統總線模塊組成,如圖1所示。

(1)系統控制模塊。該模塊是整個安全SoC芯片的系統核心,在系統軟件的控制下,用于協調系統中各個模塊的運行。該模塊采用具有自主知識產權的微控制器(MCU),完全兼容8052指令集,并針對密碼應用和密碼服務進行了優化設計,設計出了專用的密碼服務指令,從而大幅度提升了密碼服務時數據處理的效率。
(2)密碼服務模塊。該模塊用于向系統提供密碼服務,由DES/TDES和RSA兩個密碼子模塊構成。DES/TDES分組密碼模塊,提供分組密碼算法服務,可用于高速數據處理;RSA公鑰密碼模塊,提供公鑰密碼算法服務,可用于低速數據處理、數字簽名及身份認證等服務。
(3)功能輔助模塊。該模塊向系統提供密碼輔助功能,由真隨機數發生器和16/8除法器兩部分組成。真隨機數發生器向系統提供真隨機數服務;16/8除法器用于在進行隨機數素性判定時實現快速的16位/8位除法。
(4)存儲器控制模塊。該模塊用于控制各存儲器地址分配、數據選擇,由存儲器切換模塊和存儲器動態配置模塊兩部分構成。利用存儲器切換模塊,通過裝載工具配置相應的寄存器,對SoC芯片進行操作系統升級更新;存儲器動態配置模塊,對系統中各存儲器進行整合,通過配置相應的控制寄存器,對指令存儲器和數據存儲器的容量進行動態配置。
(5)通信模塊。該模塊用于和外部進行數據通信。本設計中的外圍接口采用智能卡通用接口,接口模塊包括USB接口模塊和串行接口模塊。USB接口模塊支持USB1.1標準,通信速率為1.5Mbps,支持HID類規范,支持控制傳輸和中斷傳輸;串行接口模塊采用異步半雙工模式,符合ISO/7816-3智能卡接口標準。
(6)系統總線。系統總線包括控制總線、地址總線及數據總線。為了防止芯片被破解或芯片內的關鍵信息被竊密,系統總線模塊中引入了總線加密機制,即在存儲器與各系統模塊之間添加總線安全模塊,用于進行總線數據的安全傳輸。
2 密碼服務模塊的設計
密碼服務模塊的設計,特別是密碼服務模塊中各子模塊的接口設計一直是信息安全SoC芯片系統設計的重點,設計的優劣直接關系到信息安全SoC芯片的整體性能,因此本文對其進行重點描述。
2.1 密碼服務模塊結構設計
在信息安全SoC芯片系統中,為了滿足不同的密碼需求,會有多個密碼服務子模塊。但在實際應用中,一般不會在同一時刻用到全部的密碼服務子模塊。在大多數的信息安全SoC芯片設計中,都會為每個模塊單獨配置控制寄存器和雙端口存儲器。這種方法雖然設計容易,實現方便,但會使所設計的SoC芯片內部結構復雜,各模塊間的連線繁多。這無疑增加了后端布局布線難度,降低了系統的整體性能,而且由于控制寄存器和存儲器資源有限,一旦芯片系統中所采用的密碼功能模塊較多,就會對系統中有限的資源造成較大的浪費。
為了降低后端布局布線難度,提高系統性能,有效利用系統中的有限資源,在密碼服務模塊中加入IP橋模塊來解決以上問題。密碼服務模塊的結構如圖2所示。

根據實際應用的需要,IP橋通過配置IP控制寄存器(IPC)選用所需的密碼服務子模塊,使之與系統掛接,達到有效整合系統中有限資源的目的。各密碼服務子模塊通過IP橋與控制模塊及存儲器連接;IP橋根據IPC狀態進行配置,選擇所需的密碼子模塊,并將其與控制模塊及存儲器進行整合;子模塊與控制模塊及存儲器之間的數據交互通過IP橋進行調配;最后通過控制模塊啟動密碼服務子模塊,進行相應的密碼操作,實現系統所需的密碼服務功能。
2.2 IP橋設計
IP橋主要功能是根據IPC寄存器狀態進行數據動態配置,由控制組合邏輯模塊和數據配置邏輯模塊構成,其結構如圖3所示?刂平M合邏輯模塊根據IPC狀態輸出控制信號,控制數據配置邏輯模塊進行數據配置。數據配置可分為兩類,即對密碼服務子模塊的通路配置和對雙端口存儲器(Dual RAM)的通路配置。

(1)密碼服務子模塊通路配置是指IP橋將MCU與所選用的子模塊進行整合,包括對其控制信號的配置和時鐘信號的分配?刂菩盘柵渲檬侵父鶕蘒PC狀態將MCU中用于控制密碼模塊的控制寄存器與相應的子模塊控制單元進行整合,以便MCU對子模塊操作進行控制。密碼服務子模塊的時鐘信號分配是指只有當所需的子模塊被IP橋選用時,才會分配時鐘信號,否則時鐘信號被屏蔽,處于休眠狀態。
(2)雙端口存儲器通路配置是指將所選用的密碼子模塊與雙端口存儲器進行時鐘匹配,并進行控制總線、地址總線、數據總線的動態配置。當整個密碼服務模塊未運行時,用于存儲器與密碼服務模塊匹配的時鐘信號被屏蔽。
2.3 密碼服務子模塊接口設計
在本設計中共有兩個子模塊:RSA公鑰密碼子模塊和DES/TDES分組密碼子模塊。這兩個子模塊都采用同樣的接口設計,具體的接口設計圖如圖4所示。

圖中實線信號為直連信號,虛線信號為通過IP橋配置的連通信號,密碼服務子模塊的各控制信號均由MCU通過IP橋控制產生,MCU可通過密碼指令控制子模塊。在子模塊完成運算并將數據寫入Dual RAM后,就輸出完成信號,將狀態寄存器中相應位置位,MCU通過查詢此狀態位就能判斷模塊是否完成運算。與密碼服務子模塊相關的Dual RAM可在兩個不同時鐘下,根據兩條地址線分別對存儲器單元進行讀寫操作。在本設計中分別由密碼服務子模塊和MCU對雙端口存儲器進行讀寫操作。密碼服務子模塊在初始運行階段,從雙端口存儲器中讀取需運算的數據,完成運算后再將數據寫入雙端口存儲器中,供MCU使用操作。
密碼服務子模塊采用此種接口設計,可有效解決密碼IP核與系統間的速度差異問題。IP核可在高速時鐘下運行,系統可在低速時鐘下運行,而且由于雙端口存儲器的兩個數據端口可采用不同的數據位寬,也就解決了密碼服務子模塊與控制模塊之間的數據總線寬度不同的問題。兩個密碼服務子模塊都采用同樣的接口設計,使得所設計的IP核具有很強的通用性,在無需修改接口設計情況下,就可應用于其他的系統設計中。子模塊的后期測試也可采用同樣的測試平臺,使得測試簡單易行。
2.4 密碼服務模塊運行流程
加入IP橋設計后,在調用密碼服務模塊之前需要對IPC進行配置,將密碼子模塊通過IP橋與系統模塊連接。密碼服務模塊運行流程如圖5所示。

密碼服務模塊運行流程實際上僅多了一個配置IPC的過程。對IPC的配置可通過對SFR的寫操作完成,此操作僅耗費二個系統時鐘,而且是在初始模塊運行時進行靜態配置,故對密碼服務模塊運行速率的影響幾乎可忽略不計。雖然MCU發出控制信號、子模塊的輸入輸出數據及完成信號,但這些密碼模塊和系統模塊之間的通信都通過IP橋來完成,并由IP橋整合調配,由于IP橋的配置是靜態配置,所以在密碼子模塊運行時,數據通信實際上幾乎不存在延遲。
IP橋的引入,使芯片系統的可重構特性大大加強,可以有效整合SoC芯片內部的資源,充分利用系統中的有限資源,從而降低了系統規模。在IP橋的控制下,對未調用的模塊所采用的時鐘屏蔽措施,使其處于休眠狀態,有效地降低了系統功耗。由于各子模塊在IP橋控制下共用存儲器,因此在進行多密碼服務子模塊協同工作時就無需進行大規模的數據轉移,從而可節省大量用于數據轉移的時間,提高系統運行的效率。
3 設計實現及驗證
利用硬件語言VHDL對該款安全SoC芯片進行具體實現,所設計的安全SoC芯片可在33MHz時鐘下正常運行,RSA密碼IP核可在50MHz時鐘下正常運行,對于小規模數據的低速通信可提供非對稱算法512/1024bit RSA簽名/加解密服務,進行43次/秒的1024bit模冪運算,規模僅40萬門。DES/TDES密碼IP核可在50MHz時鐘下正常運行,對于大規模數據的高速通信可提供對稱算法DES/TDES加解密服務,可進行100次/秒的DES加解密運算和60次/秒的TDES加解密運算。由于IP橋依據IPC的狀態對各模塊的控制總線、地址總線、數據總線進行通路配置,并不進行數據寄存,因此實現了IP橋所耗費的資源相當少,僅需200門左右。
系統測試一直都是SoC系統設計的重點。因此在系統設計階段,針對每個模塊,都進行了詳細的仿真測試,特別是針對存儲器轉換功能和存儲器配置的實現。為了能詳細仿真操作系統下載配置過程,設計了合理的仿真測試方法。針對IP橋配置也進行了詳細的仿真測試。系統整體設計完成后,在FPGA開發板上進行了具體的測試,采用的是ALTERA公司的EP2C35芯片,并利用中國人民銀行金融認證(CFCA認證)通過的COS(片上操作系統)對整個系統進行了詳細而全面的應用測試,測試結果證明系統完全滿足COS系統中的各種密碼操作。
本文介紹了一款基于密碼服務、面向密碼應用的可重構信息安全SoC芯片的設計。為使所設計的信息安全SoC芯片更具技術特色和應用前景,運用可重構的思想,在密碼服務模塊和存儲器控制模塊中采用了IP橋技術、存儲器動態配置技術和存儲器切換技術。這些優化技術的采用有效地利用了芯片系統中的有限資源,使得所設計的信息安全SoC芯片在微型系統的密碼應用中配置更為靈活、運行效率更高、資源耗費更少、功耗更低。這些特性對信息安全設備,特別是對微型或手持設備來說意義重大。