來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用,作者:溫圣軍 , 張魯國(guó) , 張國(guó)芳
信息社會(huì)中,基于密碼算法設(shè)計(jì)的安全芯片,能夠?yàn)橛脩舻拿舾行畔⑻峁┯行У臋C(jī)密性與完整性保護(hù)。信息化的不斷深入使得人們對(duì)信息安全服務(wù)的需求呈現(xiàn)使用簡(jiǎn)單化、功能多樣化、高度集成化等趨勢(shì)。這要求安全芯片在單一的硬件平臺(tái)上,最大限度地提供多樣的密碼服務(wù),并且具備標(biāo)準(zhǔn)統(tǒng)一的對(duì)外服務(wù)接口。功能多樣化與高度集成化,已經(jīng)成為當(dāng)前以及今后安全芯片設(shè)計(jì)的必然要求。
安全芯片的功能多樣化設(shè)計(jì)要求可以由軟件方式實(shí)現(xiàn),也可通過集成多個(gè)硬件密碼算法IP核完成。由于密碼算法IP核集成安全性較高,在向外提供密碼服務(wù)時(shí),數(shù)據(jù)處理速度較快,且不占用主控制器運(yùn)算資源,相對(duì)于軟件實(shí)現(xiàn)方法,更適合于安全芯片的實(shí)際應(yīng)用需要。因此,在已有的多功能安全芯片設(shè)計(jì)中,一般采取多密碼算法IP核集成,實(shí)現(xiàn)安全芯片功能多樣化。
1 密碼算法多IP核集成要求及方法
在單一硬件平臺(tái)上集成多個(gè)密碼算法IP核,需要滿足三條基本設(shè)計(jì)要求:
第一,硬件平臺(tái)運(yùn)行頻率與IP核運(yùn)算頻率的不一致要求。通常情況下,設(shè)計(jì)者在進(jìn)行IP核實(shí)現(xiàn)時(shí),出于數(shù)據(jù)處理速度的需要,一般都會(huì)盡量提高IP 核運(yùn)算頻率,以實(shí)現(xiàn)對(duì)數(shù)據(jù)的高速處理。要求硬件平臺(tái)與IP核具備同樣的時(shí)鐘頻率是不現(xiàn)實(shí)的,因?yàn)橛布脚_(tái)的運(yùn)行頻率往往依賴于這一平臺(tái)所采用的主控制器運(yùn)行頻率,而要提高主控制器的運(yùn)行頻率,以達(dá)到與不同IP核運(yùn)算頻率一致,不具有實(shí)際可行性。在具體實(shí)現(xiàn)多IP核集成時(shí),密碼算法IP核運(yùn)算頻率會(huì)遠(yuǎn)高于硬件平臺(tái)的運(yùn)行頻率,各IP核的運(yùn)算頻率也不盡相同。因此,要實(shí)現(xiàn)IP核與硬件平臺(tái)掛接集成,需首先解決硬件平臺(tái)與IP核的時(shí)鐘不一致問題。
第二,硬件平臺(tái)與IP核、不同IP核之間處理數(shù)據(jù)位寬的不一致要求。同樣是出于提高數(shù)據(jù)處理速度考慮,設(shè)計(jì)者在設(shè)計(jì)IP核時(shí),一般采用較大的數(shù)據(jù)位寬。實(shí)現(xiàn)不同數(shù)據(jù)位寬的轉(zhuǎn)換,是IP核能否正確處理數(shù)據(jù)的基本條件。
第三,能夠靈活調(diào)用不同IP核的功能,對(duì)目標(biāo)數(shù)據(jù)進(jìn)行相應(yīng)處理。單一硬件平臺(tái)與多IP核的掛接集成,需要相應(yīng)機(jī)制來最終實(shí)現(xiàn)對(duì)不同IP核功能的靈活調(diào)用。通過IP功能調(diào)用機(jī)制,硬件平臺(tái)可以完成多個(gè)IP核對(duì)不同數(shù)據(jù)的同步運(yùn)算處理,也可以單獨(dú)調(diào)用某一IP核進(jìn)行數(shù)據(jù)處理。
基于上述多IP核集成設(shè)計(jì)要求,當(dāng)前文獻(xiàn)中已有的實(shí)現(xiàn)方法主要有:
方法一,使用第三方專用系統(tǒng)總線,實(shí)現(xiàn)多IP核集成。采用第三方專用系統(tǒng)總線,將不同IP核與總線掛接,實(shí)現(xiàn)多IP核集成。其優(yōu)點(diǎn)在于:專用系統(tǒng)總線功能強(qiáng)大,支持不同頻率、不同端口的IP核集成,能夠進(jìn)行多個(gè)IP核對(duì)不同數(shù)據(jù)的同步運(yùn)算處理,便于系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。但由于需要采用第三方總線,因而芯片的研發(fā)成本會(huì)相應(yīng)增加。
方法二,為每個(gè)IP核配備專用雙端口數(shù)據(jù)存儲(chǔ)器,實(shí)現(xiàn)多IP核集成。采用配備雙端口存儲(chǔ)器可以滿足硬件平臺(tái)與IP核異頻處理要求,能夠?qū)崿F(xiàn)不同數(shù)據(jù)位寬之間的轉(zhuǎn)換,能夠進(jìn)行多個(gè)IP核對(duì)不同數(shù)據(jù)的同步運(yùn)算處理。在進(jìn)行系統(tǒng)前端設(shè)計(jì)時(shí),設(shè)計(jì)簡(jiǎn)單且實(shí)現(xiàn)方便。但由于密碼服務(wù)是一個(gè)有序的過程,為每個(gè) IP核均配備專用存儲(chǔ)區(qū),會(huì)造成系統(tǒng)資源浪費(fèi),且極大地增加了芯片后端設(shè)計(jì)中的布局布線難度。
在分析上述兩種集成方法基礎(chǔ)上,本文基于方法二,給出了一種改進(jìn)的多IP核集成設(shè)計(jì)方法。方法采用IP橋接技術(shù),將同一雙端口存儲(chǔ)器與不同IP 核進(jìn)行動(dòng)態(tài)重構(gòu),實(shí)現(xiàn)多IP核集成。與方法一相比,采用IP橋接技術(shù)實(shí)現(xiàn)多IP核集成可以顯著減少芯片的研發(fā)成本;與方法二相比,改進(jìn)方法不僅能夠有效整合芯片內(nèi)部資源,還可以降低系統(tǒng)功耗,提高芯片的整體性能。
2 IP橋接技術(shù)設(shè)計(jì)原理與具體實(shí)現(xiàn)
IP橋接技術(shù)的核心是IP橋(IP_bridge)的設(shè)計(jì)與實(shí)現(xiàn)。IP_bridge是主控制器與各IP核協(xié)處理器的連接橋梁,同時(shí)也是各IP核協(xié)處理器與專用雙端口存儲(chǔ)器的連接橋梁。
2.1 IP橋接技術(shù)設(shè)計(jì)原理
IP_bridge是IP橋接技術(shù)設(shè)計(jì)與實(shí)現(xiàn)的核心,是主控制器與各IP核協(xié)處理器,以及各IP核協(xié)處理器與專用雙端口存儲(chǔ)器之間的連接橋梁。為實(shí)現(xiàn)這一目的,IP_bridge需完成以下功能:IP核選擇參數(shù)譯碼;不同IP核與同一數(shù)據(jù)處理區(qū)的動(dòng)態(tài)可重構(gòu);根據(jù)IP選擇參數(shù),配置選定IP核控制指令與運(yùn)行時(shí)鐘。
在IP_bridge滿足上述設(shè)計(jì)要求的前提下,IP橋接技術(shù)具體設(shè)計(jì)原理可作如下表述:將各IP核與IP_bridge、 dual_ramx(雙端口存儲(chǔ)區(qū))整合為系統(tǒng)的一個(gè)密碼算法IP核重構(gòu)模塊,模塊輸入為系統(tǒng)輸出數(shù)據(jù)、地址、讀/寫使能、系統(tǒng)時(shí)鐘與IP時(shí)鐘、IP控制指令與IP選擇參數(shù),輸出為 IP核處理完成數(shù)據(jù)與協(xié)處理器運(yùn)行狀態(tài)標(biāo)識(shí)。
在系統(tǒng)對(duì)某一IP核功能進(jìn)行調(diào)用時(shí),密碼算法IP 核重構(gòu)模塊按如下步驟進(jìn)行操作:a.根據(jù)系統(tǒng)的輸入地址與讀/寫使能,將輸入的待處理數(shù)據(jù)存儲(chǔ)于 dual_ramx中;b.IP橋譯碼IP選擇參數(shù),重構(gòu)選定IP核控制指令為輸入的IP控制指令,dual_ramx為選定IP核數(shù)據(jù)處理區(qū).c.選定 IP核將duaLramx中數(shù)據(jù)讀入IP核內(nèi)部,根據(jù)IP控制指令,完成數(shù)據(jù)處理;d.選定IP核將已處理數(shù)據(jù)輸出到dual_ramx中,置相應(yīng)狀態(tài)完成信號(hào)為有效.e.系統(tǒng)判斷狀態(tài)信號(hào)有效,通過dual_ramx將處理完成數(shù)據(jù)讀出,完成IP功能調(diào)用。
與本文第一部分中方法二相比較,IP橋接技術(shù)增加了IP_bridge對(duì)選定IP核重構(gòu)數(shù)據(jù)處理區(qū)與控制指令這一過程。該設(shè)計(jì)可以實(shí)現(xiàn)不同IP 核與 dual_ramx的動(dòng)態(tài)重構(gòu),通過引入IP橋,對(duì)IP核調(diào)用指令進(jìn)行解釋,進(jìn)而配置被調(diào)用IP核的地址、數(shù)據(jù)、指令與時(shí)鐘等各種接口信號(hào),完成系統(tǒng)對(duì) IP核的功能調(diào)用。不同IP核與同一數(shù)據(jù)處理區(qū)的動(dòng)態(tài)可重構(gòu)可以有效節(jié)省片內(nèi)存儲(chǔ)資源,提高存儲(chǔ)區(qū)利用效率。
采用IP橋接技術(shù)實(shí)現(xiàn)密碼算法多IP核集成,不僅可能節(jié)省系統(tǒng)資源消耗,在密碼服務(wù)提供方面也具有一定優(yōu)勢(shì)。密碼服務(wù)通常是一個(gè)有序的過程,在提供密碼服務(wù)時(shí),由于減少了在不同IP專用數(shù)據(jù)處理區(qū)之間的數(shù)據(jù)轉(zhuǎn)移操作,因而可以有效提高系統(tǒng)對(duì)數(shù)據(jù)的處理效率。例如,在完成一次簽名服務(wù)時(shí),一般先對(duì)簽名數(shù)據(jù)進(jìn)行雜湊值運(yùn)算,再調(diào)用公鑰密碼算法對(duì)雜湊結(jié)果進(jìn)行簽名,完成對(duì)簽名數(shù)據(jù)的簽名服務(wù)。在這一過程中,將簽名服務(wù)作為一個(gè)完整的基本服務(wù)功能進(jìn)行調(diào)用,系統(tǒng)將簽名數(shù)據(jù)寫入dual_ramx后,僅需完成對(duì)IP選擇參數(shù)的配置與完成信號(hào)的判斷操作,便可實(shí)現(xiàn)數(shù)據(jù)簽名,極大地簡(jiǎn)化了系統(tǒng)在向外提供密碼服務(wù)時(shí)的軟件控制過程,提高了服務(wù)的完成效率。相比較于方法二,所要完成的密碼服務(wù)越復(fù)雜,這一優(yōu)勢(shì)越明顯。
2.2 IP橋接技術(shù)具體實(shí)現(xiàn)
以2.1中IP橋接技術(shù)設(shè)計(jì)原理為指導(dǎo),本文在一個(gè)8位SoC系統(tǒng)上實(shí)現(xiàn)了TDES、SHA1、RSA三個(gè)IP核的系統(tǒng)集成設(shè)計(jì)。為簡(jiǎn)化 IP_bridge設(shè)計(jì),三個(gè)IP核的數(shù)據(jù)位寬均統(tǒng)一為32位,執(zhí)行頻率統(tǒng)一為50 MHz。圖1為密碼算法IP核重構(gòu)區(qū)RTL圖。
如圖1所示,密碼算法IP核重構(gòu)區(qū)由TDES、SHA1、RSA三個(gè)IP核與IP_bridge、asis_ramx共同構(gòu)成,根據(jù)輸入的控制參數(shù),完成同一雙端口存儲(chǔ)區(qū)與不同IP核之間的動(dòng)態(tài)重構(gòu)。其輸入輸出如表1所列。
以調(diào)用SHA1為例,系統(tǒng)完成對(duì)數(shù)據(jù)塊雜湊值計(jì)算的操作步驟為:
①MCU執(zhí)行指令
MOV FUNCCHOOSE,#05H
選擇當(dāng)前調(diào)用IP核為SHA1。
②將一個(gè)16字節(jié)待處理數(shù)據(jù)塊輸入雙端口存儲(chǔ)區(qū)asis_ramx中,此時(shí)輸入數(shù)據(jù)長(zhǎng)度必須為16字節(jié)。
③執(zhí)行指令
MOV INSTUCT,#80H
MOV INSTRUCT,#01H
前一條指令將SHA1進(jìn)行復(fù)位,后一條指令使能SHA1,將待處理數(shù)據(jù)讀入IP核內(nèi)部寄存器,進(jìn)而對(duì)其進(jìn)行SHA1運(yùn)算處理。
④對(duì)FUNCSTATE最低位進(jìn)行判斷,為1時(shí)輸入下一個(gè)16字節(jié)數(shù)據(jù)塊,執(zhí)行指令
MOV INSTRUCT,#01H
復(fù)位SHA1完成信號(hào),繼續(xù)進(jìn)行SHA1運(yùn)算處理。
⑤最后一個(gè)16字節(jié)數(shù)據(jù)塊輸入,執(zhí)行指令
MOV INSTRUCT,#01H
判斷FUNCSTATE最低位,為1時(shí)讀出雙端口存儲(chǔ)區(qū)中處理完成數(shù)據(jù)。
⑥執(zhí)行指令
MOV INSTRUCT,#00H
關(guān)閉SHA1協(xié)處理器,完成SHA1調(diào)用。
對(duì)TDES及RSA的功能調(diào)用類似于SHA1,僅在指令配置時(shí)稍有不同。TDES增加了密鑰生成過程的指令配置與完成信號(hào)判斷,RSA增加了對(duì)模長(zhǎng)與模冪的參數(shù)配置。由上可知,與方法二相比較,IP橋接技術(shù)在調(diào)用實(shí)現(xiàn)IP核功能時(shí),需要增加的僅為一條IP選擇參數(shù)配置指令。
3 測(cè)試與仿真
本文采用軟件仿真與FPGA下載測(cè)試兩種手段,對(duì)2.2中的設(shè)計(jì)進(jìn)行了功能正確性驗(yàn)證。圖2給出了該設(shè)計(jì)中IP_bridge在quartus II 5.0下的仿真波形圖。
在圖2中,F(xiàn)UNCCHOOSE為系統(tǒng)功能區(qū)的IP選擇參數(shù)輸入,INSTRUCT為IP控制指令。當(dāng)IP選擇參數(shù)值為07H、06H、05H 時(shí),對(duì)應(yīng)的選定IP為RSA、TDES、SHA1。以選定SHA1為例,當(dāng)IP選擇參數(shù)為05H時(shí),IP_bridge模塊重構(gòu)asis_ramx為 SHA1專用數(shù)據(jù)處理區(qū),且此時(shí)SHA1控制指令shal_instruct_o被配置為當(dāng)前IN-STRUCT值,完成對(duì)SHA1的接口配置;當(dāng)IP選擇參數(shù)為 06H、07H時(shí),IP_bridge置SHA1控制指令shal_in-struct_o為00H,使SHA1協(xié)處理器處于休眠狀態(tài)。對(duì) IP_bridge仿真波形圖的分析表明,其邏輯功能正確。由于在初次FPGA下載測(cè)試時(shí)發(fā)現(xiàn),允許IP_bridge對(duì)IP核進(jìn)行時(shí)鐘配置會(huì)導(dǎo)致協(xié)處理器功能不穩(wěn)定,因而取消了IP_bridge的IP核時(shí)鐘配置功能。除此以外,其余部分均滿足本文2.1中的功能要求。
為進(jìn)一步驗(yàn)證設(shè)計(jì)的正確性,本文選用Altera公司Cyclone II系列EP2C35F672C6器件,對(duì)其進(jìn)行了FPGA下載測(cè)試。在初次測(cè)試時(shí)發(fā)現(xiàn),各IP核雖然可以完成功能調(diào)用,但執(zhí)行結(jié)果不穩(wěn)定,測(cè)試結(jié)果的最后5~10字節(jié)與標(biāo)準(zhǔn)測(cè)試對(duì)的結(jié)果不符。經(jīng)分析發(fā)現(xiàn),導(dǎo)致IP核功能錯(cuò)誤的原因?yàn)镮P_bridge在對(duì)時(shí)鐘進(jìn)行配置時(shí),會(huì)產(chǎn)生時(shí)鐘延遲。因此,取消了 IP_bridge的時(shí)鐘配置功能,在Qu-artus II 5.0下進(jìn)行編譯仿真與綜合下載,再次進(jìn)行FPGA下載測(cè)試。測(cè)試結(jié)果顯示,各IP核功能均正確無誤。采用選定器件,IP_bridge邏輯資源消耗為 200 LE,最大路徑延遲為16.838 ns。
結(jié)語
本文在總結(jié)多IP核集成設(shè)計(jì)方法的基礎(chǔ)上,提出了一種IP橋接技術(shù),用于實(shí)現(xiàn)多IP核集成;并以其為指導(dǎo),基于一個(gè)8位SoC系統(tǒng),具體實(shí)現(xiàn)了三個(gè)IP核集成。功能仿真與FPGA 測(cè)試表明該技術(shù)具備實(shí)際可行性,且相比較于現(xiàn)有多IP核集成方法,IP橋接技術(shù)具備可有效提高片內(nèi)資源利用率,降低系統(tǒng)功耗與開發(fā)成本等優(yōu)勢(shì);其缺點(diǎn)在于,當(dāng)不同IP核的數(shù)據(jù)接口不一致時(shí),IP_bridge的邏輯設(shè)計(jì)會(huì)比較復(fù)雜,且不能實(shí)現(xiàn)對(duì)IP核的變頻時(shí)鐘配置。初步分析表明,通過修改IP核的雙端口存儲(chǔ)區(qū)數(shù)據(jù)寫入環(huán)節(jié),延長(zhǎng)數(shù)據(jù)寫入完成至done信號(hào)有效這一時(shí)間段,可解決這一問題。方法的有效性檢測(cè)與具體實(shí)現(xiàn),是筆者下一步工作的重點(diǎn)研究?jī)?nèi)容。
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
453文章
50406瀏覽量
421833 -
控制器
+關(guān)注
關(guān)注
112文章
16203瀏覽量
177413 -
IP核
+關(guān)注
關(guān)注
4文章
326瀏覽量
49428
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論