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