摘要 提出了一種面積優(yōu)先的多功能、可重組的大數(shù)值運(yùn)算器設(shè)計(jì)方法.基于簡(jiǎn)單的加法操作,采用掃描鏈控制、迭代調(diào)用等方法對(duì)設(shè)計(jì)進(jìn)行優(yōu)化,實(shí)現(xiàn)了14種基本的大數(shù)運(yùn)算功能每種功能支持的規(guī)格從8位至2048位,給安全芯片用戶提供了極大的靈活性,顯著減小了代碼的開發(fā)周期和成本.由于多種功能盡量復(fù)用相同的邏輯資源,本設(shè)計(jì)在滿足體系運(yùn)算速度的前提下,規(guī)模只有13887門,完全滿足安全芯片面積優(yōu)先的設(shè)計(jì)約束.
關(guān)鍵詞 運(yùn)算器;運(yùn)算功能;安全芯片;硬件設(shè)計(jì)
隨著各種加解密算法密鑰長(zhǎng)度的逐步增加,在一些具有安全性需求的芯片設(shè)計(jì)中,大規(guī)格數(shù)據(jù)運(yùn)算的硬件實(shí)現(xiàn)已成為硬件設(shè)計(jì)的主要考慮因素和設(shè)計(jì)難點(diǎn).比如RSA等基于大數(shù)分解的公鑰密碼算法,雖然目前密鑰長(zhǎng)度已達(dá)1024位,但是仍然不能避免將被破解的厄運(yùn),致使密鑰還需進(jìn)一步增加.這種運(yùn)算規(guī)格的增長(zhǎng)不僅使加解密運(yùn)算速度降低,而且增加了硬件實(shí)現(xiàn)的難度.
目前國(guó)內(nèi)外對(duì)大數(shù)值運(yùn)算器的研究,主要集中在大數(shù)模冪乘運(yùn)算的實(shí)現(xiàn)上,其數(shù)學(xué)表達(dá)式為S=ABmodN.大數(shù)模冪乘一般用模平方和模乘來實(shí)現(xiàn);對(duì)于一個(gè)指數(shù)B,模平方的次數(shù)是固定的,而模乘的次數(shù)是可以優(yōu)化的.因此可在以下兩方面考慮運(yùn)算加速:(1)減少模乘次數(shù);(2)提高大數(shù)模乘速度.針對(duì)第一種方案提出的加速算法有m進(jìn)制方法、加法鏈法、Yacobi法;針對(duì)第二種方案有估商型系列算法和Montgomery系列算法_.以上各種方案或者需要預(yù)計(jì)算,占用較大的存儲(chǔ)空間,或者需要設(shè)置專門的乘法單元,都是在犧牲規(guī)模的前提下提高運(yùn)算速度.在對(duì)規(guī)模要求嚴(yán)格的安全芯片中,以上方法不再適用.而且,它們也并未涉及其他運(yùn)算(如加、減、乘、除等四則運(yùn)算)的大規(guī)格實(shí)現(xiàn)方法.
根據(jù)保密終端安全芯片CSTU(China secureterminal unit,國(guó)家密碼委員會(huì)審批項(xiàng)目,產(chǎn)品型號(hào)SSX11)對(duì)運(yùn)算速度要求不高(主頻20 MHz)、對(duì)規(guī)模要求嚴(yán)格的設(shè)計(jì)需求,提出了一種小規(guī)模的大數(shù)值運(yùn)算器設(shè)計(jì)方法.基于加法操作,在掃描鏈的配合下,全部用邏輯電路實(shí)現(xiàn)了包括加減乘除及模乘、模冪乘等多種運(yùn)算功能,各功能支持的運(yùn)算規(guī)格從8位一直擴(kuò)展到2048位.經(jīng)綜合驗(yàn)證,在20MHz的主頻下,設(shè)計(jì)規(guī)模只有13887門,完全適用于CSTU安全體系的面積優(yōu)先的設(shè)計(jì)要求.
1 CSTU 安全芯片體系結(jié)構(gòu)簡(jiǎn)介
隨著人們對(duì)安全需求的不斷增加,采用固定或單一加解密算法的產(chǎn)品已經(jīng)無法滿足人們的需求,目前的安全產(chǎn)品需要經(jīng)常更換加解密算法甚至改變整個(gè)安全策略.適應(yīng)這種需求常用的方法是在基本運(yùn)算器之上,使用軟件編程的方式靈活的實(shí)現(xiàn)算法的轉(zhuǎn)換.但是面對(duì)不斷升級(jí)的軟件破解技術(shù)的挑戰(zhàn),以及軟件方式的低速率性,各種加解密算法也由軟件實(shí)現(xiàn)向硬件電路實(shí)現(xiàn)過渡.為解決這一矛盾.可支持多種加解密算法的硬件安全產(chǎn)品就應(yīng)運(yùn)而生,其中基于可重組方式設(shè)計(jì)的安全芯片無疑又具有領(lǐng)先優(yōu)勢(shì).
CSTU保密終端安全芯片采用了可重組設(shè)計(jì)思想,綜合分析了當(dāng)前大量使用的DES,AES,IDEA,RSA,MD5等十余種加解密算法的實(shí)現(xiàn)過程,支持對(duì)稱、公鑰、摘要密碼算法及用戶隱秘算法,提供這些算法實(shí)現(xiàn)所需的IP平臺(tái),不同的用戶可以根據(jù)自己的需要在平臺(tái)上進(jìn)行二次開發(fā),形成自己定義的安全算法及策略.
CSTU安全芯片可用于保密電話、安全卡證或移動(dòng)安全終端等產(chǎn)品中,這些產(chǎn)品的共同特點(diǎn)是對(duì)規(guī)模要求比較嚴(yán)格,對(duì)公鑰密碼算法的速度要求不高.為提供對(duì)公鑰密碼算法和數(shù)字簽名算法的支持,大數(shù)運(yùn)算器成為CSTU安全體系中關(guān)鍵的核心IP.根據(jù)實(shí)際需求,本設(shè)計(jì)在滿足硬件規(guī)模盡可能小同時(shí)支持盡可能多的運(yùn)算功能和多種規(guī)格的數(shù)據(jù)運(yùn)算的條件下,最終保證整個(gè)系統(tǒng)的靈活性.
2 算法分析
2.1 模冪乘算法分析
模冪乘運(yùn)算采用平方乘算法,將模冪乘運(yùn)算轉(zhuǎn)化為模乘和模平方運(yùn)算實(shí)現(xiàn).
平方-乘算法:一般地,求S=ABmodN,其中A<N,B<N;將指數(shù)B表示為二進(jìn)制,即
觀察算法,由于指數(shù)B化為二進(jìn)制后的長(zhǎng)度不確定,多數(shù)情況下高位會(huì)存在很多個(gè)0.如果完全按照該算法實(shí)現(xiàn),指數(shù)B從最高位起開始運(yùn)算,在第一個(gè)1出現(xiàn)以前,雖進(jìn)行了多次運(yùn)算,但D的值一直為1;當(dāng)B出現(xiàn)第一個(gè)1后才進(jìn)入有效的模乘運(yùn)算.在具體實(shí)現(xiàn)時(shí),設(shè)計(jì)專門的電路從高到低掃描指數(shù)B的每一位,當(dāng)在找到第一個(gè)1之前,不做任何運(yùn)算,找到第一個(gè)1時(shí),使D=A,以后根據(jù)每次掃描的6[i]值