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