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