[發(fā)明專利]安全敏感系統(tǒng)中的微處理器有效
| 申請?zhí)枺?/td> | 200880023337.7 | 申請日: | 2008-05-09 |
| 公開(公告)號: | CN101689233A | 公開(公告)日: | 2010-03-31 |
| 發(fā)明(設(shè)計)人: | 拉爾夫·馬爾察恩;里·陶 | 申請(專利權(quán))人: | NXP股份有限公司 |
| 主分類號: | G06F21/02 | 分類號: | G06F21/02;G06F11/16 |
| 代理公司: | 中科專利商標(biāo)代理有限責(zé)任公司 | 代理人: | 王波波 |
| 地址: | 荷蘭艾*** | 國省代碼: | 荷蘭;NL |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 安全 敏感 系統(tǒng) 中的 微處理器 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及安全敏感系統(tǒng)中的微處理器,用于根據(jù)指令來處理操 作數(shù)。
背景技術(shù)
在很多不同的學(xué)科(如密碼和計算機科學(xué))中,模算術(shù)是一種強 大的工具。由于模算術(shù),在根據(jù)特定指令來執(zhí)行特定步驟的乘法、加 法、除法和/或減法的微處理器的幫助下,可以對消息等進行編碼和解 碼。
因此,對于兩個整數(shù)a和a’,如果n是正整數(shù)并且a-a’是n的整 數(shù)倍,則將a和a’稱作模n同余,并且表達為a≡a′(mod?n)。
如果a≡a′(mod?n)并且b≡b′(mod?n),則對于整數(shù)a、a’、b和b’, 下列規(guī)則成立:
·(a+b)≡(a′+b′)(mod?n)
·(a-b)≡(a′-b′)(mod?n)
·(a*b)≡(a′*b′)(mod?n)。
特別在安全敏感的計算系統(tǒng)(例如智能卡控制器)中,微處理器 執(zhí)行的算術(shù)運算可能被干擾或者甚至被稱為黑客的未授權(quán)人員的攻擊 所操縱。由于敏感數(shù)據(jù)可能被盜,特別是如果由軟件來計算密碼算法 (如RSA)時,這可能是危險的。
為了克服該問題,兩種眾所周知的解決方案是常見的。在第一種 解決方案中,將微處理器計算硬件加倍。但是這大部分消耗了過多的 芯片面積。在第二種解決方案中,執(zhí)行加倍的計算,但是因此降低了 系統(tǒng)性能。
發(fā)明內(nèi)容
相應(yīng)地,本發(fā)明的目的是提供一種微處理器,能夠執(zhí)行安全敏感 的計算,并且在不實質(zhì)性降低其性能的情況下抵御攻擊。
為了實現(xiàn)該目標(biāo),該微處理器具有基于模的檢查硬件,以與該微 處理器并行地執(zhí)行運算,并且用于比較兩個結(jié)果的同余性。
本發(fā)明的核心在于以下事實,對普通微處理器附加配備基于模的 檢查硬件以增強系統(tǒng)安全性。該冗余硬件可以與主計算單元或者微處 理器并行地執(zhí)行加法、減法、乘法、MAD(乘和加)以及MSUB(乘 和減)運算,并且比較兩個結(jié)果的同余性。在不匹配的情況下,將向 系統(tǒng)報告攻擊。
由于在模運算之后減少了操作數(shù)向量的寬度,檢查單元中的計算 邏輯將不如主計算單元中的計算邏輯那樣復(fù)雜。因此,基于模的檢查 代表了一種經(jīng)濟的、不需要較大芯片面積的解決方案。
顯而易見,本領(lǐng)域技術(shù)人員根據(jù)要計算的數(shù)據(jù)的要求和數(shù)量,可 以選擇微處理器和檢查硬件的精確硬件架構(gòu)。
為了盡可能少地影響原始計算功能,建議在相同層級中將檢查單 元構(gòu)建在主計算單元之外。兩個單元共享所有相關(guān)輸入信號,包括指 令和兩個操作數(shù)。附加地,檢查單元獲得計算單元的結(jié)果輸出作為輸 入。
如果檢查硬件已經(jīng)檢測到同余性不匹配,則向系統(tǒng)報告攻擊。這 意味著,顯示任意錯誤消息并且執(zhí)行例如軟件異常和/或系統(tǒng)復(fù)位。
必須對主計算單元的溢出場景加以特別注意。在該情況中,兩個 單元的結(jié)果將典型地不匹配。如果來自計算單元的溢出狀態(tài)信號可用, 則檢查單元可以使用它來抑制模錯誤狀態(tài),否則必須針對導(dǎo)致溢出的 軟件代碼部分禁用模檢查。
附圖說明
下面描述本發(fā)明的實施例。附圖示出了:
圖1示出了具有檢查硬件的示意微處理器。
具體實施方式
圖1示出了用于對微處理器1內(nèi)的加法、減法和乘法運算進行基于 模的檢查的總體硬件架構(gòu),微處理器1的詳細實現(xiàn)方式可以根據(jù)不同的 微處理器類型而變化。為了盡可能少地影響原始計算功能,建議在相 同層級中在主計算單元或者微處理器1之外構(gòu)建檢查單元2。單元1、2 共享所有相關(guān)輸入信號,包括指令和兩個操作數(shù)A、B。附加地,如箭 頭所示,檢查單元2獲得計算單元的結(jié)果輸出作為輸入。
每一次當(dāng)微處理器1接收到指令時,檢查單元2將首先確定是否應(yīng) 當(dāng)對其進行基于模的檢查。如果是,則對兩個操作數(shù)A、B進行模運算, 而通常用其它更簡單的運算來代替實數(shù)除法運算,并且之后根據(jù)指令 類型對其進行加、減或者乘。最終,如果需要,將對結(jié)果再一次進行 模運算。在微處理器1的結(jié)果變?yōu)榭捎弥螅矊ζ溥M行模運算并且與 檢查單元2的結(jié)果進行比較。如果微處理器1用于特定指令的循環(huán)數(shù)量 是固定的,則檢查單元2僅必須等待相同數(shù)量的循環(huán)。否則檢查單元2 可以使用指示運算完成的微處理器1的狀態(tài)信號。在結(jié)果不匹配的情況 中,檢查單元2將使錯誤狀態(tài)輸出有效,以對攻擊進行信號指示。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于NXP股份有限公司,未經(jīng)NXP股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200880023337.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





