專利名稱:密碼處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于密碼技術(shù),尤其是關(guān)于密碼應(yīng)用的密碼處理器。
隨著非現(xiàn)金金錢交易,經(jīng)由公眾網(wǎng)絡(luò)的電子數(shù)據(jù)傳輸,經(jīng)由公眾網(wǎng)絡(luò)的信用卡號(hào)碼的交換,以付款,識(shí)別或存取為目的之所謂智能卡的使用等的用途的廣泛增加,存在著密碼技術(shù)需求的增加。密碼技術(shù)一方面包括密碼算法,另一方面包括執(zhí)行由密碼算法所指定之計(jì)算的合適處理器解決方案。在以前,當(dāng)密碼算法藉由一般目的計(jì)算器而被執(zhí)行時(shí),關(guān)于不同的外部攻擊者的成本,計(jì)算時(shí)間需求以及安全性并未扮演如今日般的重要角色,其中密碼算法為特定需求而逐漸在芯片卡上或特定安全I(xiàn)Cs上執(zhí)行。因此,在另一方面,隨著智能卡的大量生產(chǎn),此種智能卡必須以具有成本效益的方式而可被利用,然而,另一方面,它們必須對(duì)外部攻擊者展示高度的安全性,當(dāng)它們完全受控于潛在攻擊者的情況下。
此外,密碼處理器必須提供相當(dāng)?shù)挠?jì)算能力,尤其是因?yàn)樵S多密碼算法,例如已知的RSA算法,的安全性基本上系依據(jù)所使用的鍵(key)的長(zhǎng)度而定。換句話說(shuō),這表示,以增加的被處理數(shù)目的長(zhǎng)度,安全性也隨之增加,因?yàn)榛趪L試所有可能性的攻擊因?yàn)橄嚓P(guān)計(jì)算時(shí)間的理由而變得不可能。
如圖式中所表示,這表示密碼處理系統(tǒng)必須處理可能具有長(zhǎng)度為,例如1024位(bit),2048位或甚至更多,的整數(shù)。相較之下,典型的PC處理器處理32位或64位整數(shù)。
然而,高度的計(jì)算消耗也表示大量的計(jì)算時(shí)間,因此密碼處理器的必要需求是同時(shí)達(dá)成高度的計(jì)算處理量(throughput),因此,例如,識(shí)別,對(duì)建筑物的進(jìn)出,付款的交換或信用卡的傳輸不需花費(fèi)太多時(shí)間,這對(duì)市場(chǎng)接受度有絕對(duì)的決定性。
綜言之,因此,可以說(shuō)明密碼處理器必須是機(jī)密的,快速的,且因此具有高性能。
一種經(jīng)由處理器增加處理量的可能性是提供具有一或多個(gè)平行工作的共同處理器(co-processors),例如現(xiàn)代的PC或圖形卡的情況。此種方案被描述于圖七圖七表示一種計(jì)算機(jī)電路板800,于其上設(shè)置一CPU 802,一隨機(jī)存取內(nèi)存(RAM)804,一第一共同處理器806,一第二共同處理器808以及一第三共同處理器810。CPU 802經(jīng)由總線812與三個(gè)共同處理器806,808,810連接。此外,每一共同處理器可被具有其本身的內(nèi)存,其僅為該共同處理器之運(yùn)作服務(wù),亦即,共同處理器1的內(nèi)存1 814,共同處理器2的內(nèi)存2 816,共同處理器3的內(nèi)存3 818。
此外,圖七所示之設(shè)置于計(jì)算機(jī)電路板800上的每一芯片經(jīng)由其本身的電流及/或電壓供應(yīng)端I1-I8被提供獨(dú)立組件內(nèi)之電子零件執(zhí)行功能所需的電源。另外,僅存在一個(gè)電路板用的供應(yīng)電源,該電源隨后橫越電路板被分布至電路板上的個(gè)別芯片。然而,于此情況中,導(dǎo)引至個(gè)別芯片的電源線可被攻擊者所利用。
圖七所示之典型的計(jì)算機(jī)應(yīng)用,由于許多理由,對(duì)于密碼處理器而言是適合的。另一方面,所有短整數(shù)算術(shù)用的組件被列出,然而,密碼處理器必須執(zhí)行長(zhǎng)整數(shù)運(yùn)算。
此外,計(jì)算機(jī)電路板800上的每一芯片具有其本身的電流及/或電源存取,其可能快速地被攻擊者存取,以便釋放做為時(shí)間函數(shù)之功率輪廓(taping off power profile)或電流輪廓。釋放做為時(shí)間函數(shù)之功率輪廓是大多數(shù)對(duì)密馬處理器有效率攻擊的基礎(chǔ)。各種對(duì)于密碼處理器攻擊的進(jìn)一步背景細(xì)節(jié)及/或更詳細(xì)的描述參見(jiàn)2000年13日至15日的Eurosmart Security Conference,Hess等人的「Information Leakage Attacks Against Smart CardImplementations of Cryptographic」。做為對(duì)抗的手段,已提出基于不同的操作總是需要相同時(shí)間的基礎(chǔ)的實(shí)施方式,因此攻擊者不能從一電源輪廓決定密碼處理器是否已執(zhí)行乘法,加法或其它運(yùn)算。
2000年13日至15日的Eurosmart Security Conference,Hess等人的「Design of Long Integer Arithmetical units forPublic-key Algorithms」描述必須由密碼處理器執(zhí)行之不同計(jì)算運(yùn)作的細(xì)節(jié)。特別是描述如德國(guó)DE 36 31 992 C2專利之模(modular)乘法,模降低方法以及所謂的ZDN方法。
ZDN方法是以使用先看(look-ahead)算法之串行/平行架構(gòu)為基礎(chǔ),其可為乘法及模降低而平行執(zhí)行,因此將二進(jìn)制數(shù)的乘法轉(zhuǎn)換為使用乘法及模降低用之先看參數(shù)之疊代(iterative)三操作數(shù)(operand)加法。因此,模乘法被分解為一串部份乘積的運(yùn)算。在疊代的開(kāi)始,形成二部份乘積,且之后在模降低的考慮下加在一起以便獲得中間結(jié)果。之后,再次形成另一個(gè)部份乘積,其于模降低的考慮下被加到該中間結(jié)果。此疊代持續(xù)進(jìn)行直到所有乘數(shù)的數(shù)目皆被處理完成為止。為三操作數(shù)加法而言,密碼處理器包括加法單元,其于流動(dòng)的疊代步驟中執(zhí)行新部份乘積至處理中之疊代步驟之中間結(jié)果的相加。
因此,圖七的每一共同處理器可具有其本身的ZDN單元,以便平行執(zhí)行數(shù)個(gè)模乘法,因而增加特定應(yīng)用的處理量。然而,此解決方案將因?yàn)楣粽呖赡苣軌驔Q定每一個(gè)別芯片的電流輪廓的事實(shí)而不成功,因此處理量的增加確已達(dá)成,然而,是在增加密碼計(jì)算機(jī)安全性成本的情況下。
本發(fā)明之目的在于提供一種快速及機(jī)密的密碼處理器。
本發(fā)明藉由申請(qǐng)專利范圍第一項(xiàng)之密碼處理器而達(dá)成。
本發(fā)明系基于發(fā)現(xiàn)快速的密碼處理器可僅于密碼計(jì)算運(yùn)算被分解為次運(yùn)算時(shí)以及當(dāng)這些次運(yùn)算藉由被平行設(shè)之次單元運(yùn)算時(shí)達(dá)成。另一方面,安全性,尤其是電源攔截的攻擊,可以僅藉由當(dāng)所有計(jì)算次單元,包括計(jì)算次單元的控制單元及中央處理單元被設(shè)計(jì)在單一芯片上時(shí)達(dá)成,因此個(gè)別組件的電源存取將不會(huì)被外部攻擊者所利用。
換句話說(shuō),中央處理裝置及具有單一控制單元及復(fù)數(shù)計(jì)算次單元的共同處理器被集積于單一芯片上。此外,此單一芯片僅展示提供復(fù)數(shù)計(jì)算次單元,控制單元以及中央處理單元用之電流的單一電源存取。
將這些組件集積于單一芯片上并提供此芯片電源電流存取產(chǎn)生與計(jì)算次單元相關(guān)的電流輪廓與密碼處理器的電流端重疊在一起的優(yōu)點(diǎn)。如果,例如,二計(jì)算次單元平行工作,此二計(jì)算次單元的電流輪廓重疊在一起,因此攻擊者很難藉由電源供應(yīng)的輪廓決定那一運(yùn)算同時(shí)由二計(jì)算次單元以及以那些數(shù)目執(zhí)行。如果計(jì)算次單元的數(shù)目增加,單一電源端之電流輪廓均一地增加。然而,由于以并行計(jì)算次單元的增加數(shù)目而增加的平行處理,處理量也提升,因此,在所發(fā)明的概念中,安全性也隨著處理量的增加而上升。在習(xí)知技術(shù)中則非此種情況,相反地,安全性將隨處理量的增加而降低。
當(dāng)與分割計(jì)算次單元中之次運(yùn)算相關(guān)以及與驅(qū)動(dòng)個(gè)別計(jì)算次單元相關(guān)之控制單元見(jiàn)到強(qiáng)烈的增加時(shí),可以達(dá)成平行處理的限制。然而,對(duì)于相當(dāng)長(zhǎng)期間的運(yùn)算,例如二個(gè)極長(zhǎng)整數(shù)的乘法,計(jì)算次單元中的計(jì)算時(shí)間與組織及管理工作用之控制單元的時(shí)間的比例很高,因此并行計(jì)算的合理程度可以達(dá)成,不需要消耗疑難的管理工作。
然而,并行計(jì)算的程度是需要的,以便增加足夠的處理量,因此,在邏輯模塊以及內(nèi)存模塊在集積于相同芯片時(shí)發(fā)生的邏輯單元的速度損失,可以獲得補(bǔ)償。通常,此意圖是在于設(shè)計(jì)邏輯模塊及內(nèi)存模塊于分離的芯片上,因?yàn)榇硕K的技術(shù)不同。換句話說(shuō),用以產(chǎn)生邏輯模塊的計(jì)憶體模塊的內(nèi)存技術(shù)不允許與特別適用于邏輯模塊之技術(shù)所產(chǎn)生之邏輯模塊一樣快速的邏輯模塊。因此,在不同共同處理器之簡(jiǎn)易平行連接之例中,如圖七所示,內(nèi)存及計(jì)算單元總是被設(shè)計(jì)在不同模塊。
然而,很確實(shí)的是攻擊者不能攔截對(duì)高安全性而言很重要的計(jì)算單元與緩存器(register)之間的通信。
本發(fā)明之較佳實(shí)施例將參照所附圖
式而被詳細(xì)說(shuō)明,其中第一圖表示集積于單一芯片上之本發(fā)明之密碼處理器;第二圖表示展示具有不同長(zhǎng)度緩存器之計(jì)算次單元之共同處理器之更多細(xì)節(jié);第三圖表示適用于三操作數(shù)加法之計(jì)算次單元之更多細(xì)節(jié);第4a圖表示串行/平行方式之執(zhí)行模乘法之流程圖;第4b圖表示使用乘法范例之計(jì)算單元之運(yùn)算的串行/平行模式的數(shù)目范例;第五圖表示將一模指數(shù)法(exponentiation)分割為數(shù)個(gè)模乘法之范例;第六圖表示在不同計(jì)算次單元中分割一模乘法之另一范例;第七圖表示具有復(fù)數(shù)電源模塊之點(diǎn)腦電路板。
在詳細(xì)描述個(gè)別圖式之前,以下將詳細(xì)說(shuō)明為何藉由平行連接數(shù)個(gè)設(shè)置于一芯片上之次單元且由設(shè)置于相同芯片上之一控制單元驅(qū)動(dòng)可以達(dá)到較高的安全性。
密碼處理器系用于安全方面重要的應(yīng)用,例如數(shù)字簽字,授權(quán),或加密工作。例如,攻擊者希望找出機(jī)密鍵以便破解密碼方法。密碼處理器被使用于芯片卡中,例如已經(jīng)揭露過(guò)的,包括法律上結(jié)合的電子簽字,家庭銀行或以行動(dòng)電話付款用等等之智能卡或簽名卡。另一種方式是,此種密碼處理器也被使用于計(jì)算機(jī)中,并且被當(dāng)成安全I(xiàn)Cs使用,以便直行授權(quán)或能夠執(zhí)行加密工作,其可包含例如,經(jīng)由網(wǎng)際網(wǎng)絡(luò),在所謂的SSL期間(SSL=Secure Socket Layer)的安全付款,亦即,安全地傳輸信用卡號(hào)碼。
典型的實(shí)體攻擊測(cè)量電流消耗(SPA,DPA,時(shí)間攻擊)或電磁幅射。就有關(guān)的攻擊的進(jìn)一步解釋,將參考一開(kāi)始提及的文字片斷。
因?yàn)榻袢瞻雽?dǎo)體技術(shù)達(dá)到一般250納米(nanometer)或更小范圍的結(jié)構(gòu),使得攻擊者很難執(zhí)行區(qū)域的電流測(cè)量,這一般是整個(gè)芯片卡得電流消耗,包括CPU及共同處理器,由,例如,CPU,ROM,E2PROM,閃存,時(shí)間控制單元,隨機(jī)數(shù)產(chǎn)生器(RNG),DES模塊,以及密碼共同處理器之個(gè)別的電流消耗的總合所構(gòu)成,其于一攻擊中被測(cè)量。
因?yàn)槊艽a共同處理器通常展現(xiàn)最高的電流消耗,攻擊者可以看見(jiàn)密碼共同處理器開(kāi)始計(jì)算的時(shí)候。為避免這樣的請(qǐng)況,目標(biāo)將是讓電流消耗在任何時(shí)間完全保持固定;攻擊者將不再發(fā)現(xiàn)密碼共同處理器開(kāi)始計(jì)算的時(shí)候。即使不能達(dá)成此理想的目標(biāo),目的將是藉由平行連接計(jì)算次單元達(dá)成盡可能均勻的噪聲并使其集中在一平均值。
在,例如CMOS技術(shù)中,所產(chǎn)生的芯片的電流消耗于切換中從”0”改變到”1”。因此,電流消耗系基于數(shù)據(jù)及CPU所使用的指令以及密碼共同處理器。
如果數(shù)個(gè)計(jì)算次單元被平行連接且如果令它們平行處理數(shù)個(gè)運(yùn)算或次運(yùn)算,或如果一個(gè)運(yùn)算被分布在多個(gè)次單元之中,從數(shù)據(jù)及指令處理所產(chǎn)生的電流的輪廓將重疊,如已經(jīng)討論的內(nèi)容。
越多的計(jì)算次單元一起平行工作,越難推論個(gè)別計(jì)算次單元及/或控制單元中的數(shù)據(jù)及指令,因?yàn)槊恳挥?jì)算次單元中的數(shù)據(jù)及指令一般會(huì)不同,而攻擊者將只看到不同指令的重疊。
圖一表示執(zhí)行密碼應(yīng)用之本發(fā)明的密碼處理器。此密碼處理器被設(shè)置于一單一芯片100之上并包括一中央處理器(CPU)102以及一共同處理器104。共同處理器104,如圖一所示,被設(shè)置于與中央處理單元102相同的芯片上。此共同處理器包括復(fù)數(shù)計(jì)算次單元106,108,110及112,每一計(jì)算次單元106至112包括其本身的算術(shù)單元AU。較佳者,每一次計(jì)算單元106至112包括,除了AU之外,有至少一緩存器(REG)以便能夠儲(chǔ)存中間乘積,如同參照?qǐng)D二所解釋者。
典型的密碼處理器包括輸入接口114及輸出接口116,其為資料之輸入及輸出而與分別外部端點(diǎn)以及CPU 102連接。通常,CPU 102具有其本身的內(nèi)存118,其由圖一中的RAM所指示。在其它方面,密碼處理器也可包括一時(shí)脈產(chǎn)生器120,其它內(nèi)存,隨機(jī)數(shù)產(chǎn)生器等等,其并未被表示于圖一。
應(yīng)指出的是,在圖一中所指出的所有組件被設(shè)置于單一芯片上,并由單一電流供應(yīng)端122供應(yīng)電源。芯片100內(nèi)部包括引導(dǎo)至所有圖一所示組件之電流供應(yīng)線,其因上述之理由而無(wú)法被個(gè)攔截。相反地,可以容易地?cái)r截電流供應(yīng)端122的電流。不像圖七所示之每一個(gè)別組件之電流供應(yīng)端很容易被攔截,且因此具有極”有特征”的電流輪廓的電路板,在電流供應(yīng)端122的電流輪廓幾乎固定及/或展現(xiàn)盡量均一之環(huán)繞一固定值得噪聲。這是因?yàn)樨暙I(xiàn)大部份電流消耗之共同處理器104展示復(fù)數(shù)平行設(shè)置的計(jì)算次單元,其,例如,獨(dú)立地從”0”切換至”1”,因此互不關(guān)聯(lián)地消耗電流的事實(shí)。
個(gè)別計(jì)算次單元的平行連接導(dǎo)致密碼處理器之處理量可增加的事實(shí),因此,在芯片上內(nèi)存實(shí)施的情況中,伴隨的由于內(nèi)存及計(jì)算單元所使用之不同技術(shù)所造成的速度損失可被補(bǔ)償。
依據(jù)本發(fā)明之較佳實(shí)施例,二或多個(gè)計(jì)算次單元可被結(jié)合以形成所謂的串(cluster),因此,例如,第一串執(zhí)行第一運(yùn)算的次運(yùn)算,而第二串執(zhí)行第二密碼運(yùn)算的次運(yùn)算。因此,例如,包括計(jì)算次單元106及108之第一串可以執(zhí)行每一情況之一半長(zhǎng)度的二模指數(shù)法,其系從整體長(zhǎng)度之單一模指數(shù)法所導(dǎo)出,而包括計(jì)算次單元110及1112之第二串可執(zhí)行如圖六所示之模乘法。
另一種情況是,一個(gè)串可以執(zhí)行RSA運(yùn)算,而另一串執(zhí)行一DES運(yùn)算,而又一個(gè)串計(jì)算,例如,雜亂總合(hash sum)。
此處應(yīng)該解釋的是所提及之密碼算法已于文獻(xiàn)中為人所知,且因此不再解釋任何的細(xì)節(jié)。應(yīng)該同時(shí)指出的是,僅以例示方法指出,例如,處理長(zhǎng)度為2048之RSA密碼操作數(shù)。在解密中,藉由中國(guó)余數(shù)理論(Chinese Reminder Theorem,CRT)可以以長(zhǎng)度的一半以及二次運(yùn)算工作。如果一密馬處理器僅為此種算法而設(shè)計(jì),計(jì)算次單元的數(shù)目為2,且算術(shù)單元的長(zhǎng)度將僅為1024,而非在單一算術(shù)單元中的2048。依據(jù)中國(guó)余數(shù)理論的次運(yùn)算被平行處理,且因此由空制單元控制,在計(jì)算次單元中的一個(gè)被結(jié)合,以獲得結(jié)果。
圖二說(shuō)明圖一所示之共同處理器104之較詳細(xì)的表示。除了算術(shù)單元106a之外計(jì)算次單元106包括,例如,三個(gè)緩存器106b,106c,106d。同樣的,計(jì)算次單元108包括算術(shù)單元108a以及,例如三緩存器108b,108c,108d。對(duì)計(jì)算次單元112也是相同的情況。如圖二所示,計(jì)算次單元之緩存器的長(zhǎng)度可以和不同計(jì)算次單元之緩存器的長(zhǎng)度不同,因此長(zhǎng)度L1之?dāng)?shù)的運(yùn)算可以由例如,計(jì)算次單元106執(zhí)行,而長(zhǎng)度L2的數(shù)的運(yùn)算可以由計(jì)算次單元108執(zhí)行。
例如,控制單元105可以進(jìn)一步駒動(dòng)二計(jì)算次單元106及102因此算術(shù)單元AU1及AU2以隨后形成一串之二計(jì)算次單元將執(zhí)行長(zhǎng)度為L(zhǎng)1+L2之?dāng)?shù)的運(yùn)算的方式互相耦合。因此,二計(jì)算次單元之緩存器可互相連接。
另一方式是,計(jì)算次單元可以專屬地被指定緩存器的數(shù)目,該數(shù)目夠大以便讓操作數(shù)滿足數(shù)個(gè)次運(yùn)算,例如模乘法或模指數(shù)法。為避免信息漏出,次運(yùn)算隨后可被重疊或甚至隨機(jī)混合,例如藉由變化相同的次序,由圖二的200所指示,以便達(dá)到電流輪廓的進(jìn)一步隱藏。這是特別有利的,當(dāng),例如僅存在二計(jì)算次單元及/或僅二個(gè)計(jì)算次單元在工作而密碼處理器的其它計(jì)算次單元同時(shí)處于閑置的情況時(shí)。
依據(jù)本發(fā)明之較佳實(shí)施例,控制單元105更包括一裝置,未表示于圖二中,用以于不需要時(shí)關(guān)閉計(jì)算次單元及/或計(jì)算次單元的緩存器,尤其是對(duì)于電池驅(qū)動(dòng)應(yīng)用時(shí),以便節(jié)省整體電路的電流消耗。即使CMOS模塊僅于切換進(jìn)行時(shí)需要相當(dāng)?shù)碾娏髁?,它們也展示關(guān)閉的電路電流消耗,其于可用電源受限時(shí)變得有意義。
如已經(jīng)解釋的內(nèi)容,由于必須處理的長(zhǎng)數(shù)目,密碼處理器顯示如圖4a及4b所示之例如串行/平行乘法的次運(yùn)算需要相當(dāng)大量的時(shí)間的特性。較佳者,計(jì)算次單元被實(shí)施,以便它們?cè)诳刂茊卧越?jīng)提供足夠的指令給計(jì)算單元之后,能夠執(zhí)行此種獨(dú)立次運(yùn)算而不需要控制單元105部份的介入。為達(dá)成此目的,計(jì)算次單元通常需要儲(chǔ)存中間結(jié)果的緩存器。
由于計(jì)算次單元在沒(méi)有動(dòng)指單元105之輸入的情況下工作一段相當(dāng)長(zhǎng)的時(shí)間的事實(shí),此控制單元105可以提供復(fù)數(shù)具有序列形式,亦即一個(gè)接一個(gè),之必要指令的獨(dú)立計(jì)算次單元,因此所有計(jì)算次單元平行工作,然而,以交錯(cuò)的方式,亦即一個(gè)與另一個(gè)相關(guān)。
舉例而言,第一計(jì)算次單元在特定時(shí)間點(diǎn)被驅(qū)動(dòng)。一旦控制單元105已完成第一計(jì)算次單元的驅(qū)動(dòng),其立刻驅(qū)動(dòng)第二計(jì)算次單元,而第一計(jì)算次單元已開(kāi)始工作。第三計(jì)算次單元將被驅(qū)動(dòng)一旦第二計(jì)算次單元的驅(qū)動(dòng)完成后。這表示在第三計(jì)算次單元驅(qū)動(dòng)期間,第一及第二計(jì)算次單元已經(jīng)在計(jì)算。如果對(duì)所有n個(gè)計(jì)算次單元執(zhí)行這樣的情況,所有計(jì)算次單元于時(shí)間交錯(cuò)的方式中工作。如果所有的計(jì)算次單元以其次運(yùn)算花費(fèi)相等時(shí)間的方式工作,第一計(jì)算次單元將首先完成?,F(xiàn)在,控制單元可以傳輸來(lái)自第一計(jì)算次單元之結(jié)果給中央處理單元,且理想狀況下在第二計(jì)算次單元完成之前完成此傳輸。因此,處理量可大幅增加,同時(shí)達(dá)成控制單元105之計(jì)算容量之最佳利用。如果所有的計(jì)算次單元執(zhí)行相同的運(yùn)算,將產(chǎn)生強(qiáng)烈的隱藏電流輪廓,因?yàn)樗械挠?jì)算次單元在時(shí)間交錯(cuò)的方式中運(yùn)作。如果所有的計(jì)算次單元在相同的時(shí)間被控制單元驅(qū)動(dòng)并工作,亦即完全同步,情況將會(huì)不同。然后,將產(chǎn)生非隱藏的電流輪廓,甚至是加強(qiáng)的電流輪廓。因此,連續(xù)驅(qū)動(dòng)計(jì)算次單元與密碼處理器之安全性而言是有利的。
以下將處理圖三,其表示執(zhí)行三操作數(shù)加法,如同以圖三右側(cè)所示之公式所指,的裝置。圖三右邊的公式表示加法及減法被相等執(zhí)行,因?yàn)橐徊僮鲾?shù)必須簡(jiǎn)單地被乘上因子”-1”以獲得一減法。三操作數(shù)加法藉由以不具有進(jìn)位(carry),亦即,一半加器(half adder),的三位加法器以及以一進(jìn)位,亦即全加器(full adder),之下游二位加法器而被執(zhí)行?;蛘呤牵部赡苡挟?dāng)僅有操作數(shù)N,僅有操作數(shù)P或沒(méi)有操作數(shù)將被加至或從操作數(shù)Z減去的情況。在圖三,這藉由正/負(fù)符號(hào)下方的”0”表示,并且由圖4a所示之每一疊代步驟中重新進(jìn)行之所謂的先看參數(shù),a1,b1表示。
圖三表示此種加法單元之所謂的位切片(bit-slice)。對(duì)于,例如,具有1024數(shù)字位置的三個(gè)數(shù)的加法而言,圖三所示之設(shè)計(jì)將在完整平行運(yùn)算之計(jì)算單元106之算術(shù)單元中出現(xiàn)1024次。
在本發(fā)明之較佳實(shí)施例中,每一計(jì)算次單元106至112(圖一)被設(shè)計(jì)成使用DE 36 31 992 C2所述之先看算法執(zhí)行模指數(shù)法。
需要執(zhí)行此運(yùn)算的模乘法參照?qǐng)D4b解釋。此工作是二進(jìn)制(binary)數(shù)”111”與”101”相乘。此時(shí),此乘法于一計(jì)算次單元中執(zhí)行,藉由模擬依據(jù)已知的「正統(tǒng)數(shù)學(xué)」之二數(shù)的乘法,但以二進(jìn)制數(shù)表示。以下,不使用先看算法及模降低的情況將為簡(jiǎn)便表示之故而被考慮。當(dāng)此算法被執(zhí)行時(shí),第一部份乘積”111”將先被產(chǎn)生。此部份乘積隨后將被向左移動(dòng)一位置,以便考慮其意義。在第二疊代步驟中,第二部份乘積”000”將被加到已向左偏移之第一部份乘積,且可被視為第一疊代步驟中之一中間結(jié)果。此加法的結(jié)果隨后將再次向左偏移一位置。此加法偏移后的結(jié)果隨后是被更新的中間結(jié)果。部份乘積”111”隨后被加到該更新后的中間乘積。所獲得的結(jié)果將是乘法的最后結(jié)果。可以看見(jiàn)乘法已被分為二加法以及二偏移運(yùn)算。
進(jìn)一步可見(jiàn)的是,當(dāng)乘數(shù)的位置被認(rèn)為是二進(jìn)制”1”時(shí),被乘數(shù)代表該部份乘積。然而,當(dāng)乘數(shù)的位置被認(rèn)為是二進(jìn)制”10時(shí),此部份乘積是0。此外,部份乘積的位置及/或原子價(jià)(有效位)(valencies(significancies))經(jīng)由個(gè)別偏移運(yùn)作而被考慮。在圖4b,這是藉由部份乘積的交錯(cuò)描繪而表示。以硬件而言,圖4b的加法需要二個(gè)緩存器Z1,Z2。第一部份乘積可以被儲(chǔ)存在緩存器Z1,且之后在此緩存器中向左偏移1位。第二部份乘積可以被儲(chǔ)存在緩存器Z2。中間總合隨后可再被儲(chǔ)存在緩存器Z1,且之后再向左偏移1位。第三部份乘積可以被儲(chǔ)存在緩存器Z2。最后結(jié)果隨后將在緩存器Z1中發(fā)現(xiàn)。
顯示于圖4b之此方法之流程可以在圖4a中發(fā)現(xiàn)。一開(kāi)始,出現(xiàn)在計(jì)算次單元中的緩存器在步驟S10中被初始化。接著,在初始化之后,在步驟S12執(zhí)行三操作數(shù)加法,以計(jì)算第一部份乘積。應(yīng)指出的是,對(duì)圖4b所示之例中,其代表不具有模運(yùn)算的乘法,圖S12所指的程序?qū)H包括Z,a1,及P1。a1可以表示第一先看參數(shù)。在簡(jiǎn)單的實(shí)施中當(dāng)所考慮的乘數(shù)O為1時(shí),a的值為1。所考慮的乘數(shù)O為0時(shí),a的值為0。
方塊S12所表示的運(yùn)算為所有,例如1024位,執(zhí)行。之后,在步驟S14在最簡(jiǎn)單的情況中執(zhí)行向右偏移一位置的運(yùn)算,以考慮第二部份乘積的最大有效位(most significant bit)比第一部份乘積之最大有效位低。如果乘數(shù)O的數(shù)個(gè)連續(xù)位顯示為0,則向右偏移數(shù)個(gè)位置。最后,平行三操作數(shù)加法在步驟S16再次被執(zhí)行,例如使用圖三所示的加法器鏈。
此程序被繼續(xù)直到所有,例如1024部份乘積已被加總為止。串行/平行也表示方塊S12或S16中的平行執(zhí)行以及串行處理,以便結(jié)合所有的部份乘積與其它連續(xù)的每一乘積。
在下文將參考圖五至七以提供一運(yùn)算如何被分為數(shù)個(gè)特定運(yùn)算的例子。考慮圖五中的xdmod N的運(yùn)算。為分解此模指數(shù)法,指數(shù)d以二進(jìn)制指示被表示。如圖五所示,這產(chǎn)生模乘法之一鏈,其中,同樣如圖五所示,每一個(gè)別模運(yùn)算可以分別被指定一計(jì)算次單元,因此所有的模運(yùn)算藉由圖一所示的密碼處理器被平行運(yùn)算。所獲得的中間乘積隨被乘,在它們已被平行決定之后,以便獲得此結(jié)果。于此過(guò)程中,控制單元105控制個(gè)別計(jì)算次單元TRW1至TRWk之中的分割,以及之后個(gè)別中間結(jié)果的最終相乘。
另一個(gè)(a*b)mod c至數(shù)個(gè)模運(yùn)算之運(yùn)算的分割表示于圖六。再次,計(jì)算次單元TRW1可以決定一第一中間結(jié)果。計(jì)算次單元TRW1至TRWn也計(jì)算中間結(jié)果,之后,在獲得中間乘積之后控制單元105控制中間結(jié)果的乘法。例如,此控制單元控制以選擇隨后將接收加總用之結(jié)果之計(jì)算次單元的方式控制加總。這表示,此處之運(yùn)算也被分割為數(shù)個(gè)互相獨(dú)立的運(yùn)算。
應(yīng)指出的是,有許多分割一或其它運(yùn)算為次運(yùn)算的可能。圖五及六所示的例子僅為說(shuō)明將一運(yùn)算分割為復(fù)數(shù)次運(yùn)算的可能性,可以存在與達(dá)成效能有關(guān)之更適合的分割。因此,此范例重要的不在于處理器的性能,而是分割存在因此每一計(jì)算次單元執(zhí)行獨(dú)立的次運(yùn)算的事實(shí),以及復(fù)數(shù)次運(yùn)算被一控制單元控制,以便在進(jìn)入芯片之電流輸入,獲得盡能可隱藏的電流輪廓的事實(shí)。
參考標(biāo)號(hào)表
100 芯片102 CPU104 共同處理器105 控制單元106 計(jì)算次單元1108 計(jì)算次單元2110 計(jì)算次單元3112 計(jì)算次單元n114 輸入接口116 輸出接口118 RAM120 時(shí)脈產(chǎn)生器122 電流提供端106a 算術(shù)單元1106b 緩存器1106c 緩存器2106d 緩存器3108a 算術(shù)單元2108b 緩存器1108c 緩存器2108d 緩存器3200 變化次序的裝置800 計(jì)算機(jī)電路板803 CPU804 第一共同處理器806 第二共同處理器808 第三共同處理器810 總線812 內(nèi)存1814 內(nèi)存2816 內(nèi)存3I1-I8 電流供應(yīng)端
權(quán)利要求
1.一種密碼處理器,用以執(zhí)行密碼應(yīng)用之運(yùn)算,包括一中央處理單元(102),用以獲得執(zhí)行一運(yùn)算以及輸出一運(yùn)算之結(jié)果用之指令;一共同處理器(104),耦合至該中央處理單元(102),該共同處理器包括復(fù)數(shù)計(jì)算次單元(106,108,110,112),每一計(jì)算次單元包括至少一算術(shù)單元(AU1,AU2,AU3,AUn);以及一單一控制單元(105),耦合至每一該復(fù)數(shù)計(jì)算次單元,并用以將一運(yùn)算分割為次運(yùn)算,以便分布該復(fù)數(shù)計(jì)算次單元之中的次運(yùn)算并藉由該復(fù)數(shù)計(jì)算次單元控制該運(yùn)算之執(zhí)行,該復(fù)數(shù)計(jì)算次單元(106,108,110,112)以及該控制單元(105)系集積于一單一芯片(100)上,以及該芯片(100)包括一共同提供電流存取(122)用以提供電流給該復(fù)數(shù)計(jì)算次單元以及該控制單元。
2.如申請(qǐng)專利第1項(xiàng)之密碼處理器,其中該密碼應(yīng)用之運(yùn)算包括一模指數(shù)法及/或一模乘法。
3.如申請(qǐng)專利第1或2項(xiàng)之密碼處理器,其中每一計(jì)算次單元被設(shè)計(jì)以處理具有至少512數(shù)目之二進(jìn)制數(shù),且最好是至少1024或2048位數(shù)。
4.如前述申請(qǐng)專利范圍任一項(xiàng)之密碼處理器,更包括僅與該中央處理裝置(102)相關(guān)之一內(nèi)存(118)。
5.如前述申請(qǐng)專利范圍任一項(xiàng)之密碼處理器,更包括以下一時(shí)脈產(chǎn)生裝置(120)用以傳遞一時(shí)脈至該處理裝置(102),該復(fù)數(shù)計(jì)算次單元,以及該控制單元(105),該時(shí)脈產(chǎn)生裝置也被集積于該單一芯片上。
6.如前述申請(qǐng)專利范圍任一項(xiàng)之處理器,其中每一計(jì)算次單元更包括復(fù)數(shù)緩存器(106b,106c,106d,108b,108c,108d)專屬指定給該個(gè)別計(jì)算次單元之算術(shù)單元(106a,108a)。
7.如申請(qǐng)專利第6項(xiàng)之密碼處理器,其中被指定給一計(jì)算次單元之復(fù)數(shù)緩存器之長(zhǎng)度(L1,L2),以及與其它計(jì)算次單元相關(guān)之復(fù)數(shù)緩存器之長(zhǎng)度不同,因此該計(jì)算次單元可以執(zhí)行每一情況中不同長(zhǎng)度數(shù)目的算術(shù)計(jì)算。
8.如申請(qǐng)專利第6或7項(xiàng)之密碼處理器,其中與一計(jì)算次單元相關(guān)之緩存器之?dāng)?shù)目是足夠的以便維持至少二次運(yùn)算的操作數(shù)域,因此對(duì)于至少二次運(yùn)算不需要共同處理器(104)與中央處理裝置(102)之間的操作數(shù)轉(zhuǎn)移。
9.如申請(qǐng)專利第8項(xiàng)之密碼處理器,其中該控制單元(105)更包括一裝置(200)用以在時(shí)間方面控制該等計(jì)算次單元之運(yùn)算,因此該至少二次運(yùn)算之次序,儲(chǔ)存于一計(jì)算次單元之緩存器中之運(yùn)算是可調(diào)整的。
10.如申請(qǐng)專利第6至9項(xiàng)任一項(xiàng)之密碼處理器,更包括一裝置,用以關(guān)閉一計(jì)算次單元,如果控制裝置決定沒(méi)有該計(jì)算次單元之次運(yùn)算存在的話,以便降低該處理器的電流消耗。
11.如前述申請(qǐng)專利范圍任一項(xiàng)之密碼處理器,其中該控制裝置(105)被設(shè)計(jì)以結(jié)合至少二計(jì)算次單元為一串,因此一次運(yùn)算被指定給該串,因此該次運(yùn)算可藉由該串之該等計(jì)算次單元一起被執(zhí)行
12.如申請(qǐng)專利第6至11項(xiàng)任一項(xiàng)之密碼處理器,其中每一計(jì)算次單元包括由該算術(shù)單元數(shù)目寬度所指定之之字符(word)長(zhǎng)度,且其中該控制單元(105)被設(shè)計(jì)以便以互相連接的計(jì)算次單元可執(zhí)行字符長(zhǎng)度等于互相連接計(jì)算次單元之?dāng)?shù)目寬度總合之計(jì)算的方式與至少二計(jì)算次單元連接。
13.如前述申請(qǐng)專利范圍任一項(xiàng)之密碼處理器,其中該至少一計(jì)算次單元之算術(shù)單元包括一串行/并行計(jì)算單元,使計(jì)算之?dāng)?shù)目于一循環(huán)中被平行執(zhí)行,該數(shù)目等于計(jì)算中使用之一數(shù)目的位數(shù),且與第一循環(huán)相同的計(jì)算于一不同.,稍后的循環(huán)中使用該循環(huán)之結(jié)果以串行方式被執(zhí)行。
14.如申請(qǐng)專利第13項(xiàng)之密碼處理器,其中該計(jì)算次單元系由一模乘法而實(shí)施,以便于一循環(huán)中加一部份乘積至前一循環(huán)之一結(jié)果,并于另一循環(huán)中加該最后循環(huán)之結(jié)果至一下一部份乘積。
15.如申請(qǐng)專利第14項(xiàng)之密碼處理器,其中該算術(shù)單元包括模乘法之一三操作數(shù)加法器,該三操作數(shù)加法器包括以下一處理中之?dāng)?shù)目之每一位數(shù)一半加器,用于不進(jìn)位之加法,具有三輸入及二輸出;以及一下游全加器,具有二輸入及一輸出。
全文摘要
一種密碼處理器,包括一中央處理單元及一共同處理器,該共同處理器包括復(fù)數(shù)計(jì)算次單元以及一單一控制單元耦合至每一該復(fù)數(shù)計(jì)算次單元。一密碼運(yùn)算以次運(yùn)算之形式被該控制單元分布于該復(fù)數(shù)計(jì)算次單元之中。該中央處理單元,該復(fù)數(shù)計(jì)算次單元以及該控制單元系集積于一單一芯片上,該芯片包括一共同提供電流存取(122)用以提供電流給該復(fù)數(shù)計(jì)算次單元以及該控制單元。由于平行的計(jì)算次單元的設(shè)計(jì),一方面,密碼處理器的處理量增加。但另一方面,可能在供應(yīng)電流存取被偵測(cè)之電流輪廓是隨機(jī)的,其程度達(dá)到一攻擊者不再能夠推斷個(gè)別計(jì)算次單元中處理的數(shù)目。
文檔編號(hào)G06F21/72GK1481524SQ01820565
公開(kāi)日2004年3月10日 申請(qǐng)日期2001年12月6日 優(yōu)先權(quán)日2000年12月13日
發(fā)明者A·埃爾貝, A 埃爾貝, H·塞德拉克, 呂, N·詹森 申請(qǐng)人:因芬尼昂技術(shù)股份公司