亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

具有微處理器的電子模塊中安裝的邏輯或數(shù)學操作符的保護方法

文檔序號:6477052閱讀:200來源:國知局
專利名稱:具有微處理器的電子模塊中安裝的邏輯或數(shù)學操作符的保護方法
技術領域
本發(fā)明涉及對搭載(embarked)系統(tǒng)的保護,該系統(tǒng)包含一個或若干個電子模塊,每個模塊有至少一個微處理器、一個含有至少一個要執(zhí)行的程序的ROM型存儲器以及與外部通信的輸入/輸出裝置。某些模塊還包含其他輔助電路,如用于更復雜應用的RAM和EEPROM,這些模塊也稱作微控制器。
這些模塊大多以單片電子微電路或者芯片的形式實現(xiàn)。這些模塊首先能用于經(jīng)物理保護后安裝在例如便攜智能卡對象,微電路卡或能用于各種領域的類似部件上,特別是與銀行和/或商業(yè)卡、移動無線電話、付費電視、保健和運輸有關的領域,其次,能用于其他搭載系統(tǒng),從比較簡單的系統(tǒng),如傳感器和電路斷路器,到更復雜的系統(tǒng),如工業(yè)控制器、復接機鍵(multiswitch)和其他子單元和電子控制設備,直到電子控制的完整工業(yè)系統(tǒng)。
背景技術
在現(xiàn)代生活中,智能卡和其他搭載系統(tǒng)應用的成倍增長和它們在某些領域應用的普及,例如與銀行卡、保健卡或付費電視有關的領域的普及,已使得有必要引入保護措施,例如對在微控制器的內(nèi)部總線上的數(shù)據(jù)輸送采取密碼措施和/或數(shù)據(jù)加密措施。這些保護措施特別涉及用戶驗證、事務處理(transaction)及其有效性的驗證、保持數(shù)據(jù)的保密性以及對所述數(shù)據(jù)的加密/解密。
盡管對智能卡的欺詐性使用并不是新的現(xiàn)象,但智能卡交易事務的量和值的增大已經(jīng)導致欺詐者使用越來越復雜的裝置和方法。特別是,以芯片為目標的短時輻射攻擊會造成對在內(nèi)部總線上從ROM到微處理器傳送的數(shù)據(jù)和/或代碼的修改,造成代碼的某些部分不執(zhí)行或不正常執(zhí)行,例如執(zhí)行不可操作的指令以代替一個或若干個保護性操作。
已經(jīng)表明,對在ROM存儲器中編碼的程序中的一個敏感數(shù)據(jù)操作(例如涉及加密和/或解密的操作)所處位置的精確標記使得更容易瞄準攻擊目標并顯著增大了這種攻擊的損害力。為進行這種定位,欺詐者使用SPA方法(簡單功率分析),它包括記錄微處理器某些點的電流消耗。能基于對信號的比較分析,通過DPA(差分功率分析)方法完成SPA方法?;谶@一考慮,某些編程操作(如在加密/解密中經(jīng)常使用的“異或”操作)的執(zhí)行揭示出有明顯特征的“標記”(signature),從而允許識別所考慮的操作并因此識別出它在程序中的位置。

發(fā)明內(nèi)容
本發(fā)明的目的是保護一個程序內(nèi)部的某些脆弱的操作,特別是邏輯的或數(shù)學的操作符或類似的操作電路,使它們難于,甚至更加難于被識別。
考慮這一目的,本發(fā)明涉及一種方法,用于保護邏輯的或數(shù)學的操作符或類似的操作電路,該操作符或電路能用于在具有微處理器的電子模塊中執(zhí)行一個程序,這里在所述方法中所述操作符的執(zhí)行由執(zhí)行一個替代操作序列所代替,這些替代操作的最終結果與所述操作符的功能得到的結果完全相同。
這樣,一個復雜的操作符,(如XOR(異或)操作符)的有高度特征性的標記被一個操作序列的信號代替,這些操作往往不那么復雜但也不是必定不復雜,例如具有不那么有特征性的相近或相同標記的基本操作序列,于是該操作符的識別變得更加困難。
根據(jù)本發(fā)明方法的一個優(yōu)選實現(xiàn),對于由于受保護的操作符的每個調(diào)用,從一組等效序列中選擇替代操作序列。這樣,在執(zhí)行一個給定程序過程中多重改變替代受保護操作符的操作序列,從而進一步增大了識別困難。有利地,這組序列包含至少四個等效序列,優(yōu)選地包含八個等效序列,這使得欺詐者尋找操作符時該序列甚至更難于識別。
根據(jù)本發(fā)明的第一變體,被選序列在其整體中的順序號是根據(jù)當前執(zhí)行的程序的某些參數(shù)和/或有利地從偽隨機數(shù)發(fā)生器得到的隨機參數(shù)確定的。當在一個程序中受保護操作符重復若干次時,例如在加密/解密處理中的XOR操作符,這種用于置亂序列的置亂機制證明特別有效。
根據(jù)本發(fā)明的第二變體(不排斥第一變體),給定組的各操作序列總是有相同的執(zhí)行周期。有利地,某些序列包含至少一個非操作性指令,以在執(zhí)行所涉及的序列時引入延時。具體地說,該非操作性指令是從與該微處理器關聯(lián)的非操作性指令中選出的,或者從正常的操作指令中選出但由于它們在該操作序列中的位置使它們變成無效了。使各序列有統(tǒng)一執(zhí)行周期的這一機制使得更難于彼此區(qū)分這些序列。
根據(jù)本發(fā)明方法的第一應用,例如受保護的操作符是一個邏輯操作符(但不限于此),如XOR(異或)邏輯操作符。有利地,至少一個替代操作序列是由基本邏輯操作符構成的。例如,至少一個操作序列是由AND(與)、OR(或)以及NOT(非)基本邏輯操作符構成的。
關于保護XOR操作符的處理,本發(fā)明還涉及替代操作序列組S1至S8和S′1至S′8,如下式給出的那樣S1=(x OR y)AND NOT(x AND y)S2=(x OR y)AND(NOT x OR NOT y)S3=NOT(NOT x AND NOT y)AND NOT(x AND y)S4=NOT(NOT x AND NOT y)AND(NOT x OR NOT y)S5=NOT(NOT(x OR y)OR(x AND y))S6=NOT((NOT x AND NOT y)OR(x AND y))S7=NOT((NOT x AND NOT y)OR NOT(NOT x OR NOT y))S8=NOT(NOT(x OR y)OR NOT(NOT x OR NOT y))
以及有相同執(zhí)行周期的替代操作序列S′1=(x OR NOP y OR y)AND NOP NOT(x AND NOP y AND y)S′2=(x OR y NOP OR y)AND NOP(NOT x OR NOP NOT y)S′3=NOT(NOT x AND NOP NOT y)AND NOT(x AND y AND y)S′4=NOT(NOT x AND NOP NOT y)AND(NOT x OR NOT y)S′5=NOT(NOT(x NOP OR y OR y) OR (x NOP AND y AND y))S′6=NOT((NOT x AND NOT y NOP)OR(x AND y NOP AND y))S′7=NOT((NOT x AND NOT y)OR NOT(NOT x OR NOT y))S′8=NOT(NOT(x OR y OR y)OR NOT(NOT x OR NOT y))其中指令NOP對應于與微處理器關聯(lián)的非操作性指令。
根據(jù)本發(fā)明方法的其他應用,要受保護的操作符是一個數(shù)學操作符,如一位加法操作符,加法操作符,減法操作符或乘法操作符,或者類似于邏輯的或數(shù)學的操作符的功能電路,如組合電路,特別是多路組合器和/或多路分解器,編碼器和/或解碼器,發(fā)生器和/或奇偶性檢測器或比較器。
特別是,根據(jù)本發(fā)明方法的第二應用,該操作符是一個“乘以2”數(shù)學操作符,這里通過左移1個二進位并使最低有效二進位復位得到的,這一操作符的C ANDSI表示是(X<<1)。
關于保護操作符(X<<1)的處理,替代序列S"1至S"4遵循下列等式S″1=(x ADD x)S″2=(x AND F0h)ADD x ADD(x AND 0Fh)S″3=(NOT((NOT x)ADD(NOT x)))SUB 1S″4=(y ADD x)SUB(y SUB x),其中,ADD操作符是作用于一個八位位組的標準加法操作符,SUB操作符是作用于一個八位位組的標準減法操作符,而后綴《h》表示一個十六進制的值。
本發(fā)明還涉及一個其操作符受到保護的電子模塊,它包含至少一個微處理器和一個要執(zhí)行的程序,該程序中包含至少一個要保護的邏輯或數(shù)學操作符或類似的操作電路,這里該模塊包含裝置用于以執(zhí)行一個操作序列代替執(zhí)行該操作符,該操作序列的執(zhí)行結果與該操作符功能的結果完全相同。
有利的是,本發(fā)明的電子模塊包含裝置用于對操作符的每個調(diào)用從一組等效序列中選擇操作序列,根據(jù)一個極其有利的變體,該模塊包含計算機處理裝置用于根據(jù)執(zhí)行的程序的某些參數(shù)和/或由偽隨機信號發(fā)生器產(chǎn)生的隨機參數(shù)來確定關于選定序列的順序號。
本發(fā)明還涉及一個其操作符受到保護的電子模塊,它包含至少一個微處理器和一個要執(zhí)行的程序,該程序中包含至少一個要保護的邏輯或數(shù)學操作符或類似的操作電路,這里該模塊包含硬件或軟件裝置用以實現(xiàn)上述本發(fā)明的方法。
本發(fā)明還涉及搭載系統(tǒng)或微電路卡,其中包含如先前在其各種變體中定義的帶有受保護操作符的電子模塊。


閱讀下文中的描述將看出本發(fā)明的其他目的,優(yōu)點和特點,下文的描述是關于本發(fā)明的方法在應用于保護XOR操作符的實現(xiàn)以及根據(jù)本發(fā)明的具有微處理器的電子模塊的實施例,描述是以非限定性實例的方式結合附圖給出的,這些附圖是——圖1顯示根據(jù)本發(fā)明的具有微處理器和受保護的XOR操作符的電子模塊實施例的圖形表示,以及——圖2顯示在圖1的模塊中實現(xiàn)本發(fā)明的方法等效執(zhí)行XOR操作符的圖形表示。
具體實施例方式
根據(jù)本發(fā)明在圖1中顯示的并以非限定性實例方式描述的具有微處理器的單片電子模塊10一般包含一個微處理器或中央單元CPU 11,由內(nèi)部總線12雙向連接于一個活的RAM存儲器14、一個死的ROM存儲器16、一個EEPROM存儲器18以及一個I/O輸入/輸出接口20。模塊10還包含一個具有自動復位功能的計時器22(在一個可選變體中)和偽隨機信號發(fā)生器GNPA 24,它們連接于內(nèi)部總線12。
應用程序安裝在ROM 16,如銀行卡事務處理或醫(yī)療卡應用,由于保密性和保護的原因,它們包含加密/解密、操作員驗證或交易事務有效性核實子程序,其中經(jīng)常出現(xiàn)XOR操作符,特別是用于完成逐個八位位組的比較。
關于XOR操作符的執(zhí)行,這個操作符最經(jīng)常地應用于構成一組算術指令的一部分,這些算術指令具有中央單元CPU或微處理器11的兩個操作數(shù)OP1和OP2。
在這里描述的實施例中,實現(xiàn)保護XOR操作符方法的裝置主要是以受保護XOR計算例程(或稱XORSEC例程)形式存在的軟件項目,如圖2中所示。這樣,對于來自XOR指令(OP1,OP2)的每次調(diào)用,該程序帶著操作數(shù)OP1和OP2重定向到XORSEC例程,它將執(zhí)行以替代XOR指令,應該理解,執(zhí)行XORSEC例程實現(xiàn)的功能等效于原來的XOR指令。
根據(jù)本發(fā)明的主要特點,XOR指令的執(zhí)行由XORSEC例程中一個操作序列的執(zhí)行所代替,該操作系列中的操作是復雜程度較低的那類操作(但不排除其他操作),如基本操作,XORSEC例程的最終結果與XOR操作符功能的結果完全相同(這種條件容易被證實,例如通過完全相同的出口表來證實)。
利用非限定性舉例,下面給出等效于XOR指令的八個序列S1至S8S1=(x OR y)AND NOT(x AND y)S2=(x OR y)AND(NOT x OR NOT y)S3=NOT(NOT x AND NOT y)AND NOT(x AND y)S4=NOT(NOT x AND NOT y)AND(NOT x OR NOT y)S5=NOT(NOT(x OR y)OR(x AND y))S6=NOT((NOT x AND NOT y)OR(x AND y))S7=NOT((NOT x AND NOT y)OR NOT(NOT x OR NOT y))S8=NOT(NOT(x OR y)OR NOT(NOT x OR NOT y))
可以看出,所有這些序列S1至S8都是基于AND、NOT和OR三個邏輯基本指令中的至少二個,而且與XOR指令有相同的真值出口表。
使用帶有兩個入口x、y和一個出口s的真值表傳統(tǒng)表現(xiàn)形式,有可能對XOR、AND和OR操作符以及對序列S5(以非限定性舉例方式選出的)給出下列四個真值表XOR AND ORx y s(XOR) x y s(AND) x ys(OR)0 0 0 0 0 00 0 00 1 1 0 1 00 1 11 0 1 1 0 01 0 11 1 0 1 1 11 1 1對于S5=NOT(NOT(x OR y)OR(x AND y))A=(x OR y),B=NOT A,C=(x AND y)D=(NOT(x OR y)OR(x AND y)=BORC,s(S5)=E=NOT Dx y A B C D E0 0 0 1 0 1 00 1 1 0 0 0 11 0 1 0 0 0 11 1 1 0 1 1 0由此證明s(S5)=E與S(XOR)完全相同。
可以看出,自動選出替代XOR操作符的這個序列由5個基本操作構成,它們的標記(signature)與XOR操作符的標記顯著不同。這樣,有可能為實現(xiàn)本發(fā)明的方法具體化一個最簡單的變體。
根據(jù)這里描述的實施例中使用的本發(fā)明的一個可選的但特別有利的特點,替代操作序列,即,ES組,由上文給出的8個序列S1至S8構成。這樣,通過在執(zhí)行程序過程中多次改變替代XOR操作符的操作序列,而且能被使用的序列S1至S8有完全不同的標記,從而進一步增加了識別XOR操作符的困難。
根據(jù)這里描述的實施例中使用的本發(fā)明的另一個可選的但特別有利的特點,被選定執(zhí)行的序列Si在其整體(S1至S8)中的順序號NDO=I(i的范圍是從1至8)是根據(jù)當前執(zhí)行的程序的某些參數(shù)和/或一個偽隨機數(shù)確定的。有利地,所述隨機參數(shù)是從一個偽隨機數(shù)發(fā)生器得到的。當在程序中XOR操作符被多次調(diào)用時,特別是在加密/解密處理中,在每次調(diào)用時有效地隨機選擇要替代XOR操作符的序列,這種置亂序列機制證明特別有效。
如圖2所示,XORSEC例程包含4個主要處理階段,按執(zhí)行順序它們是——開始或初始化階段IN-XORSEC,其間特別是存儲程序計數(shù)器值和操作數(shù)OP1和OP2,——階段CAL-NDO,通過計算確定要被執(zhí)行以替代指令XOR的操作符列Si的順序號NDO=i(i的范圍是從1至8),并分支轉向相應的子例程CAL-XORSEC(i),它是由8個子例程CAL-XORSEC(1)至CAL-XORSEC(8)構成的子例程組CAL-XORSEC中的一個子例程,——階段CAL-XORSEC(i),以階段CAL-NDO選定的操作序列Si的操作數(shù)OP1和OP2進行邏輯計算,以執(zhí)行子例程CAL-XORSEC(i),——階段OUT-XORSEC,用于返回主程序以恢復它的執(zhí)行,并傳送CAL-XORSEC(i)的結果,該結果等效于計算兩個操作數(shù)OP1和OP2之間的XOR得到的結果。
應該指出,對于階段CAL-NDO,隨機數(shù)發(fā)生器GNPA24根據(jù)要求提供一個隨機八位位組R單獨用作計算參數(shù),或與從操作數(shù)OP1和OP2的值中提取的其他參數(shù)一起使用計算參數(shù),其計算的最終結果是一個八位位組F(R)。例如通過使用NOD=i=F(R)AND 07h類型的操作,從這個八位位組中提取三個較低有效位,從而得到NOD=i的二進位值(從000到111,即00h至07h),即要執(zhí)行的序列Si的順序號。應該指出,該順序號的值是所考慮的算法中的一個敏感數(shù)據(jù)元素。
最后,在識別難度方面,例程XORSEC表現(xiàn)為一個進一步改進的變體,其中的替代序列系列是由給定執(zhí)行周期(由于這一點,使區(qū)分更困難)的序列構成的。于是,為達到這一點,某些序列包含至少一個非操作性指令,設計成在所考慮的序列執(zhí)行中引入延時。具體地說,該非操作性指令是從與微處理器關聯(lián)的非操作性指令中選出的,或者是從正常的操作性指令中選出的但通過它們在該操作序列中所放位置使其變成無效了。
如果假定基本操作AND、OR和NOT有近似相等的執(zhí)行周期(例如中央單元CPU 11的4個時鐘周期),如非執(zhí)行操作《空格》(操作NOP)那樣,于是序列S1至S8組ES被修改成新的一組序列,統(tǒng)一為9個操作為ES′,作為非限定性舉例,如下所示(其中增加的操作用粗S′1=(x OR NOP y OR y)AND NOP NOT(x AND NOP y AND y)S′2=(x OR y NOP OR y)AND NOP(NOT x OR NOP NOT y)S′3=NOT(NOT x AND NOP NOT y)AND NOT(x AND y AND y)S′4=NOT(NOT x AND NOP NOT y)AND(NOT x OR NOT y)S′5=NOT(NOT(x NOP OR y OR y)OR(x NOP AND y AND y))S′6=NOT((NOT x AND NOT y NOP)OR(x AND y NOP AND y))S′7=NOT((NOT x AND NOT y)OR NOT(NOT x OR NOT y))S′8=NOT(NOT(x OR y OR y)OR NOT(NOT x OR NOT y))
例如,對于序列S′5,有S′5=NOT(NOT(x NOP OR y OR y)OR(x NOP AND y AND y))x′=x NOP,A=(x′OR y),A′=AOR y,B=NOT A′,C=(x′AND y),C′=C AND y,D=BOR C′s(S′5)=E=NOT D可以寫出序列S′5的真值表,它也證明s(S′5)=s(XOR)S′5x yx′ AA′ BCC′ DE0 0000100100 1011000011 0111000011 111101110可以看出,對于有9個基本操作的序列,其機器時間仍是相當合理的。
本發(fā)明不限于涉及保護邏輯操作符的保護的應用,它也可應用于保護數(shù)學操作符,如一位加法操作符、加法操作符、減法操作符或乘法操作符,或者與邏輯的或數(shù)學的操作符類似的功能電路,如組合電路,特別是多路組合器和/或多路分解器、編碼器和/或解碼器、發(fā)生器和/或奇偶性檢測器或比較器。
例如,根據(jù)本發(fā)明方法的另一應用,受保護的操作符是一個“乘以2”數(shù)學操作符,這是通過左移1個二進位并使低階位復位得到的。以CANSI的符號表示,這一操作符也表示為(x<<1)。
這樣,對由于操作符(x<<1)的每次調(diào)用,它的執(zhí)行將代之以執(zhí)行從下列等效序列中選出的一個操作序列S"1=(x ADD x)S"2=(x AND F0h)ADD x ADD(x AND 0Fh)S"3=(NOT((NOT x)ADD(NOT x)))SUB1S"4=(y ADD x)SUB(y SUB x)其中ADD操作符是作用于一個八位位組的標準加法操作符,指令SUB是作用于一個八位位組的標準減法操作符,而后綴《h》表示一個十六進制的值。一般地說,等效序列S"i的選擇及其實現(xiàn)的具體化是與先前對XOR操作符的詳細描述相似或完全相同的。
還應該指出,不脫離本發(fā)明的范圍,容納根據(jù)本發(fā)明的其操作符受保護的電子模塊的智能卡能由任何其他搭載系統(tǒng)代替。
下文所示本發(fā)明的一個實施例涉及使用電子模塊來實現(xiàn)它。在保護邏輯的或數(shù)學的操作符或者類似的功能電路(該電路能用于在包括微處理器和存儲器的電子模塊中執(zhí)行一個程序)的方法中,由微處理器執(zhí)行所述操作符被執(zhí)行替代操作序列所代替,這些替代操作的最終結果與所述操作符的功能得到的結果完全相同,所述結果被存儲在存儲器中。帶有受保護操作符的電子模塊含有至少一個微處理器和存儲要執(zhí)行的程序的存儲器,該程序包含至少一個受保護的邏輯的或數(shù)學的操作符或類似的功能電路,這里該電子模塊包含裝置借助該微處理器以執(zhí)行一個操作序列代替執(zhí)行該操作符,執(zhí)行該操作序列的最終結果與該操作符的功能的執(zhí)行結果完全相同,所述結果被存儲在存儲器中。
權利要求
1.一種用于保護邏輯的或數(shù)學的操作符或者類似的功能電路的方法,該操作符或電路能用于在具有處理器的電子模塊(10)中執(zhí)行一個程序,該方法的特點在于所述操作符的執(zhí)行由執(zhí)行一個替代操作序列所代替,這些替代操作的最終結果與所述操作符的功能的結果完全相同。
2.根據(jù)權利要求1的方法,其特點在于所述替代操作序列是由于所述操作符的每次調(diào)用從一組等效序列中選出的。
3.根據(jù)權利要求2的方法,其特點在于選定序列在所述組中的順序號是根據(jù)被執(zhí)行的程序的某些參數(shù)和/或從偽隨機數(shù)發(fā)生器(24)得到隨機參數(shù)確定的。
4.根據(jù)權利要求2的方法,其特點在于某些序列包含至少一個非操作性指令,以在執(zhí)行所涉及的序列時引入延時,所述非操作性指令是從與該微處理器(11)關聯(lián)的非操作性指令中選出的,或者從正常的操作指令中選出但由于它們在該操作序列中的位置使它們變成無效的。
5.根據(jù)權利要求2的方法,其特點在于至少一個替代操作序列是由若干基本邏輯操作符構成的。
6.根據(jù)權利要求5的方法,其特點在于至少一個替代操作序列是由AND、OR和NOT這些基本邏輯操作符構成的。
7.一個電子模塊(10),包括至少一個微處理器(11)和一個要執(zhí)行的程序,該程序中包括至少一個要保護的邏輯的或數(shù)學的操作符或者類似的功能電路,該電子模塊的特點在于該模塊包括裝置用于以一個操作序列的執(zhí)行代替所述操作符的執(zhí)行,這些替代操作的最終結果與所述操作符的功能的結果完全相同。
8.根據(jù)權利要求7的電子模塊(10),其特點在于它包括裝置用于對所述操作符的每次調(diào)用從一組等效序列中選出所述操作序列。
9.根據(jù)權利要求8的電子模塊(10),其特點在于它包括數(shù)據(jù)處理裝置以根據(jù)被執(zhí)行的程序的某些參數(shù)和/或從偽隨機數(shù)發(fā)生器(24)得到的隨機參數(shù)確定所選定序列在所述組中的順序號。
10.一種安裝的系統(tǒng),其特點在于它包括根據(jù)權利要求7的電子模塊(10)。
全文摘要
本發(fā)明涉及一種使邏輯的或數(shù)學的操作符(在本案例中是XOR操作符)安全的一種方法,能用于執(zhí)行基于微處理器的電子模塊中的程序。本發(fā)明的特點在于XOR操作符的執(zhí)行由對操作序列(Si)的執(zhí)行(CAL-XORSEC(i))代替,其最終結果與XOR功能的結果完全相同。在一案例中的操作序列(Si)包含基于AND、OR和NOT的基本操作,該序列(Si)是在根據(jù)程序參數(shù)和/或由偽隨機發(fā)生器(24)提供的隨機參數(shù)R確定(CAL-NDO)順序號NDO=i之后從一組八個等效序列(Si至S8)中選出的。
文檔編號G06F21/77GK1488091SQ01822194
公開日2004年4月7日 申請日期2001年12月20日 優(yōu)先權日2000年12月21日
發(fā)明者尼古拉斯·吉勞德, 尼古拉斯 吉勞德, 漢姆 布洛爾, 阿布拉漢姆·布洛爾, 帕特利斯·哈繆, 斯 哈繆 申請人:Cp8技術公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1