專利名稱:安全敏感系統(tǒng)中的微處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及安全敏感系統(tǒng)中的微處理器,用于根據(jù)指令來(lái)處理操 作數(shù)。
背景技術(shù):
在很多不同的學(xué)科(如密碼和計(jì)算機(jī)科學(xué))中,模算術(shù)是一種強(qiáng) 大的工具。由于模算術(shù),在根據(jù)特定指令來(lái)執(zhí)行特定步驟的乘法、加 法、除法和/或減法的微處理器的幫助下,可以對(duì)消息等進(jìn)行編碼和解碼。
因此,對(duì)于兩個(gè)整數(shù)a和a,,如果n是正整數(shù)并且a-a'是n的整 數(shù)倍,則將a和a'稱作模n同余,并且表達(dá)為a = a'(mod n)。
如果a三a' (mod n)并且b三b' (mod n),則對(duì)于整數(shù)a、 a,、 b和b,, 下列規(guī)則成立
(a + b)三(a' + b') (mod n)
(a — b)三(a' — b') (mod n)
(a* b)三(a'*b,) (modn)。
特別在安全敏感的計(jì)算系統(tǒng)(例如智能卡控制器)中,微處理器 執(zhí)行的算術(shù)運(yùn)算可能被干擾或者甚至被稱為黑客的未授權(quán)人員的攻擊 所操縱。由于敏感數(shù)據(jù)可能被盜,特別是如果由軟件來(lái)計(jì)算密碼算法 (如RSA)時(shí),這可能是危險(xiǎn)的。
為了克服該問(wèn)題,兩種眾所周知的解決方案是常見(jiàn)的。在第一種 解決方案中,將微處理器計(jì)算硬件加倍。但是這大部分消耗了過(guò)多的 芯片面積。在第二種解決方案中,執(zhí)行加倍的計(jì)算,但是因此降低了 系統(tǒng)性能。
發(fā)明內(nèi)容
相應(yīng)地,本發(fā)明的目的是提供一種微處理器,能夠執(zhí)行安全敏感 的計(jì)算,并且在不實(shí)質(zhì)性降低其性能的情況下抵御攻擊。
為了實(shí)現(xiàn)該目標(biāo),該微處理器具有基于模的檢査硬件,以與該微 處理器并行地執(zhí)行運(yùn)算,并且用于比較兩個(gè)結(jié)果的同余性。
本發(fā)明的核心在于以下事實(shí),對(duì)普通微處理器附加配備基于模的 檢査硬件以增強(qiáng)系統(tǒng)安全性。該冗余硬件可以與主計(jì)算單元或者微處
理器并行地執(zhí)行加法、減法、乘法、MAD (乘和加)以及MSUB (乘 和減)運(yùn)算,并且比較兩個(gè)結(jié)果的同余性。在不匹配的情況下,將向 系統(tǒng)報(bào)告攻擊。
由于在模運(yùn)算之后減少了操作數(shù)向量的寬度,檢査單元中的計(jì)算 邏輯將不如主計(jì)算單元中的計(jì)算邏輯那樣復(fù)雜。因此,基于模的檢查 代表了一種經(jīng)濟(jì)的、不需要較大芯片面積的解決方案。
顯而易見(jiàn),本領(lǐng)域技術(shù)人員根據(jù)要計(jì)算的數(shù)據(jù)的要求和數(shù)量,可 以選擇微處理器和檢查硬件的精確硬件架構(gòu)。
為了盡可能少地影響原始計(jì)算功能,建議在相同層級(jí)中將檢査單 元構(gòu)建在主計(jì)算單元之外。兩個(gè)單元共享所有相關(guān)輸入信號(hào),包括指 令和兩個(gè)操作數(shù)。附加地,檢查單元獲得計(jì)算單元的結(jié)果輸出作為輸 入。
如果檢查硬件已經(jīng)檢測(cè)到同余性不匹配,則向系統(tǒng)報(bào)告攻擊。這 意味著,顯示任意錯(cuò)誤消息并且執(zhí)行例如軟件異常和/或系統(tǒng)復(fù)位。
必須對(duì)主計(jì)算單元的溢出場(chǎng)景加以特別注意。在該情況中,兩個(gè) 單元的結(jié)果將典型地不匹配。如果來(lái)自計(jì)算單元的溢出狀態(tài)信號(hào)可用, 則檢查單元可以使用它來(lái)抑制模錯(cuò)誤狀態(tài),否則必須針對(duì)導(dǎo)致溢出的 軟件代碼部分禁用模檢查。
下面描述本發(fā)明的實(shí)施例。附圖示出了 圖1示出了具有檢查硬件的示意微處理器。
具體實(shí)施例方式
圖l示出了用于對(duì)微處理器l內(nèi)的加法、減法和乘法運(yùn)算進(jìn)行基于 模的檢查的總體硬件架構(gòu),微處理器l的詳細(xì)實(shí)現(xiàn)方式可以根據(jù)不同的 微處理器類型而變化。為了盡可能少地影響原始計(jì)算功能,建議在相
同層級(jí)中在主計(jì)算單元或者微處理器1之外構(gòu)建檢查單元2。單元l、 2 共享所有相關(guān)輸入信號(hào),包括指令和兩個(gè)操作數(shù)A、 B。附加地,如箭 頭所示,檢査單元2獲得計(jì)算單元的結(jié)果輸出作為輸入。
每一次當(dāng)微處理器l接收到指令時(shí),檢查單元2將首先確定是否應(yīng) 當(dāng)對(duì)其進(jìn)行基于模的檢查。如果是,則對(duì)兩個(gè)操作數(shù)A、 B進(jìn)行模運(yùn)算, 而通常用其它更簡(jiǎn)單的運(yùn)算來(lái)代替實(shí)數(shù)除法運(yùn)算,并且之后根據(jù)指令 類型對(duì)其進(jìn)行加、減或者乘。最終,如果需要,將對(duì)結(jié)果再一次進(jìn)行 模運(yùn)算。在微處理器l的結(jié)果變?yōu)榭捎弥?,也?duì)其進(jìn)行模運(yùn)算并且與 檢査單元2的結(jié)果進(jìn)行比較。如果微處理器l用于特定指令的循環(huán)數(shù)量 是固定的,則檢查單元2僅必須等待相同數(shù)量的循環(huán)。否則檢査單元2 可以使用指示運(yùn)算完成的微處理器1的狀態(tài)信號(hào)。在結(jié)果不匹配的情況 中,檢查單元2將使錯(cuò)誤狀態(tài)輸出有效,以對(duì)攻擊進(jìn)行信號(hào)指示。
一些微處理器2支持更復(fù)雜的指令MAD和MSUB。在檢查它們之 前,將首先對(duì)計(jì)算單元結(jié)果寄存器的內(nèi)容進(jìn)行模運(yùn)算并且進(jìn)行緩沖。 在經(jīng)過(guò)模運(yùn)算的操作數(shù)A、 B的乘法完成之后,將緩沖的值與乘法結(jié)果 相加或者從乘法結(jié)果中減去,以得到最終的參考模運(yùn)算結(jié)果。
對(duì)于模數(shù)n,錯(cuò)誤檢測(cè)等于(n-l)/n。模數(shù)越大,錯(cuò)誤檢測(cè)就越大, 但是檢查硬件2的復(fù)雜度也越高。因此,設(shè)計(jì)者必須選擇恰當(dāng)?shù)臋?quán)衡。
參考標(biāo)記列表 1微處理器 2檢查硬件 A、 B 操作數(shù)
權(quán)利要求
1、一種安全敏感計(jì)算系統(tǒng)中的微處理器(1),用于根據(jù)指令來(lái)處理操作數(shù),其特征在于,提供基于模的檢查硬件(2),以與所述微處理器(1)并行地執(zhí)行運(yùn)算,并比較兩個(gè)結(jié)果的同余性。
2、 根據(jù)權(quán)利要求l所述的微處理器,其中,在相同層級(jí)中,與所 述微處理器(1)分離地構(gòu)建所述檢查硬件(2)。
3、 根據(jù)權(quán)利要求1或2所述的微處理器,其中,能夠顯示錯(cuò)誤消息。
4、 根據(jù)權(quán)利要求1至3中任意一項(xiàng)所述的微處理器,其中,所述 檢查硬件(2)能夠考慮溢出狀態(tài)信號(hào)。
全文摘要
本發(fā)明提供了一種安全敏感計(jì)算系統(tǒng)中的微處理器(1),用于根據(jù)指令來(lái)處理操作數(shù),以通過(guò)基于模的檢查硬件(2)來(lái)與所述微處理器(1)并行地執(zhí)行運(yùn)算并比較兩個(gè)結(jié)果的同余性,從而增強(qiáng)其安全性。
文檔編號(hào)G06F21/55GK101689233SQ200880023337
公開(kāi)日2010年3月31日 申請(qǐng)日期2008年5月9日 優(yōu)先權(quán)日2007年7月5日
發(fā)明者拉爾夫·馬爾察恩, 里·陶 申請(qǐng)人:Nxp股份有限公司