欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

安全性密鑰生成方法

文檔序號:6663834閱讀:411來源:國知局
專利名稱:安全性密鑰生成方法
技術(shù)領(lǐng)域
本發(fā)明涉及包括至少一個中央單元和兩個存儲區(qū)域的安全性模塊的領(lǐng)域。
背景技術(shù)
這些單元被用于實現(xiàn)密碼系統(tǒng)的操作且以單片電路的形式被給出,它們在同一硅芯片上被產(chǎn)生或者它們被裝配在一個支撐物上并被嵌入在樹脂中或者由覆蓋不同元件并在企圖的入侵情況下?lián)斎劢z的薄片所保護。
這些安全處理器具有被稱為自舉區(qū)段(bootstrap zone)的第一存儲器區(qū)段,所述區(qū)段在處理器的激活期間或者在每次初始化時被執(zhí)行。這個存儲器是ROM類型的,即,它是只讀存儲器。
在啟動程序的執(zhí)行期間,此程序驗證第二存儲器區(qū)段,所述區(qū)段是可重寫類型的,通常是EEPROM、NVRAM或者Flash類型的。
此驗證很重要,因為它用來確保在這個第二區(qū)段中的數(shù)據(jù)是有效的,即,它一定是一程序(至少在某種程度上是)。
此驗證可以用各種方式被實現(xiàn),例如,印記(imprint)(CRC,Hash)的計算以及此印記與儲存在同一區(qū)段中的數(shù)值的比較。
一旦最初已被啟動的主程序完成其驗證,則它切換到第二區(qū)段并在一常規(guī)地址處開始用戶程序的執(zhí)行。
這類處理器的特性是當程序在第二區(qū)段中執(zhí)行時,它不能自由訪問第一區(qū)段的存儲器。此訪問或者被明確禁止或者受驗證機制(例如口令)的限制。
此限制提供重要的安全性,因為驗證手段以及啟動數(shù)據(jù)對用戶程序來說是不可訪問的。因此保護包含在第一區(qū)段中的所有數(shù)據(jù)不受任意入侵。
此第一自舉區(qū)段除了具有只讀存儲器(ROM)中的一部分之外,還可能包括可重寫的存儲器的部分,該可重寫的存儲器的部分受到同樣的安全性條件的限制。
當?shù)谝粎^(qū)段具有非常有限的大小時,驗證程序的執(zhí)行可以從第二區(qū)段被執(zhí)行。后者被分成驗證部分和用戶部分。
因此,用戶程序的驗證根據(jù)第一區(qū)段的數(shù)據(jù),即,根據(jù)通常儲存在所述第一區(qū)段中并允許驗證第二區(qū)段的數(shù)據(jù)印記的第一密鑰,而被執(zhí)行。
第二區(qū)段包含構(gòu)成程序的數(shù)據(jù)和由該第一密鑰所加密的簽名(signature)。
可以位于第一區(qū)段中或者位于第二區(qū)段的驗證部分中的驗證程序計算關(guān)于要被驗證的數(shù)據(jù)的唯一印記(Hash,CRC)。
為了驗證數(shù)據(jù)被正確地證實,第二區(qū)段包含被最初儲存在第一區(qū)段中的由密鑰所加密的印記。此密鑰被用來解密所加密的印記,并且所獲得的結(jié)果與計算出的印記進行比較。
這個密鑰可以以確定的形式(ROM)或者以編程的形式(EEPROM或者Flash)位于第一區(qū)段中。在所述第二種情況中,編程在制造步驟期間或者在一個經(jīng)授權(quán)的中心里被執(zhí)行,只要在此存儲器位置中沒有發(fā)現(xiàn)其它密鑰,第一區(qū)段的程序就接受這種寫入。
此密鑰可以是對稱的類型的并且因此是秘密的,或者它可以是不對稱的類型的。在此第二變形中,此密鑰可以在除了第一區(qū)段之外的存儲器區(qū)段中被發(fā)現(xiàn),因為即使第三方發(fā)現(xiàn)了此密鑰,所述第三方也不能識別被修改的數(shù)據(jù)集,因為他必需具有相應(yīng)的私有密鑰來識別所述數(shù)據(jù)。顯然,此密鑰被負責準備該數(shù)據(jù)更新的管理中心保持秘密。
第二存儲器區(qū)段的數(shù)據(jù)可以表示一個或者幾個程序、諸如權(quán)利或者解密密鑰的重要數(shù)據(jù)、或者二者的組合。
用于發(fā)現(xiàn)第二區(qū)段的內(nèi)容的已知類型的攻擊之一是搜索安全性缺陷,比如允許對處理器進行控制的存儲器溢出。一旦成功地進行控制,則第三方向外部傳送第二區(qū)段的內(nèi)容并且能夠分析所使用的安全性機制和密鑰。
使用第二存儲器區(qū)段的內(nèi)容的知識,所述第三方具有用來管理對于控制此處理器的業(yè)務(wù)的各種權(quán)利和訪問的密鑰。
因此,如果由管理中心管理的密鑰發(fā)生改變,則此改變命令將被第二存儲器區(qū)段中的密鑰所加密。知道此密鑰的第三方就能夠解密這則消息并且也更新此新密鑰的內(nèi)容。
因此,明顯地,雖然可靠的機制被用于驗證程序區(qū)段(第二區(qū)段)的內(nèi)容,但是一旦安全性已被破壞,則管理中心發(fā)出的任何改變都無法影響安全性,因為改變手段(例如新的傳輸密鑰)使用第三方已經(jīng)擁有的密鑰。他因此能夠解密更新消息并且也改變其傳輸密鑰。即使在應(yīng)用中已經(jīng)糾正了安全性缺口(security breach),但是破壞仍然無法被停止。

發(fā)明內(nèi)容
本發(fā)明的目的是提出一種方法,一旦第二存儲器區(qū)段的內(nèi)容已被第三方讀取,則該方法恢復(fù)這類安全性裝置的安全性。
使用一種由安全性模塊實現(xiàn)的用于生成安全性密鑰的方法來達到此目的,此安全性模塊包括中央單元、第一條件訪問存儲器區(qū)段和至少一個第二存儲器區(qū)段,所述第二存儲器區(qū)段包含用戶程序的全部或一部分,其中該方法包括如下步驟-讀出第二存儲器區(qū)段的全部或一部分,-基于第二區(qū)段的數(shù)據(jù)的全部或者一部分和存儲在第一存儲器區(qū)段中的秘密信息的至少一項來生成至少一個根密鑰。
因此,由于此新的根密鑰的生成,有可能保證傳輸密鑰的替換并且以同樣的方式保證隨后傳輸?shù)乃忻荑€的替換。
重要的是,這個根密鑰決不是固定的,并且因為所述原因而必需不同于諸如工廠密鑰的存儲在第一存儲器區(qū)段中的任何密鑰。為此原因,使用管理中心所傳輸?shù)男聰?shù)據(jù)作為變量來生成所述根密鑰。
在第一種形式中,生成這個新密鑰而不必驗證第二區(qū)段的數(shù)據(jù)。如果此數(shù)據(jù)已被修改,則根密鑰將只須成為錯誤的并且通過此密鑰對傳輸密鑰的將來的解密不會給出正確的結(jié)果。
此根密鑰因此一方面取決于第二存儲器的下載或內(nèi)容(或者數(shù)據(jù)),另一方面取決于儲存在第三方不可訪問的位置中的密鑰。
根據(jù)另一實施例,工廠密鑰被儲存在第一區(qū)段中的秘密程序所替換,該秘密程序根據(jù)秘密算法計算關(guān)于第二區(qū)段數(shù)據(jù)的全部或一部分的印記。根據(jù)特定的算法對第二區(qū)段數(shù)據(jù)的操作(組合、乘法、除法、EXOR等)使得根密鑰被確定。


根據(jù)如下的詳細說明并且參考作為非限制性示例給出的附圖,將會更好地理解本發(fā)明,其中圖1描述了安全性處理器裝置的構(gòu)造;圖2示出了第二區(qū)段的劃分;圖3描述了用于生成根密鑰的機制。
具體實施例方式
在圖1中,模塊MOD是安全性處理器模塊。為此原因,它處理至少兩個存儲器區(qū)域,即,第一區(qū)段Z1和第二區(qū)段Z2。第一區(qū)段包括所有或部分ROM存儲器,并且因此是不可重寫的。另外,其中也可能有一部分包括用于變量的RAM或EEPROM形式的存儲器。由于特別是在第二區(qū)段中的程序的執(zhí)行期間,其不是可自由訪問的,因此這被稱為條件訪問。
第二區(qū)段Z2包含處理程序和數(shù)據(jù)。這個區(qū)段包括非易失性存儲器,但是有可能寫入此類EEPROM。區(qū)段Z2還可以包含諸如RAM的易失性存儲器。事實上,這個區(qū)段通常不是都同一類的并且可以包括幾個ROM、RAM、EEPROM、NVRAM和FLASH類型的存儲器。
在本示例中,被稱為工作區(qū)段Z2A的區(qū)段2的第一部分被考慮用來執(zhí)行與根密鑰的生成相關(guān)的操作。
用戶區(qū)Z2B是包含處理程序的部分的示意圖。根據(jù)實現(xiàn)方法,其可能包括諸如安全性密鑰的變量。
處理器CPU在初始化或者重置期間在第一區(qū)段Z1中被自動搜尋。此時第一安全性操作被執(zhí)行。
這些操作使用第一存儲器區(qū)段,但是,如果有必要也使用工作區(qū)段Z2A。由于第一區(qū)段的有限區(qū)域,消息被發(fā)送給工作區(qū)段以便例如執(zhí)行印記的計算。允許計算此印記的例行程序可以在第二區(qū)段中被找到。什么也不能阻止此例行程序形成將被驗證的數(shù)據(jù)的一部分。這個程序被稱為系統(tǒng)程序。
最初啟動的初始化程序計算有關(guān)要被驗證的數(shù)據(jù)的常規(guī)部分的印記。這個部分由在第二存儲器區(qū)段中包含的指針所定義。用戶區(qū)段Z2B的部分機制的說明被包含在圖2中。
對形成印記的數(shù)據(jù)的考慮可以在所有的或一部分的用戶區(qū)段上進行。在實踐中,優(yōu)選地,此印記將是在程序部分上被計算的而不是在數(shù)據(jù)部分上被計算的(例如可視化權(quán)利),因為后者在用戶程序的使用期間易于修改。在系統(tǒng)啟動時初始化的印記的識別程序計算有關(guān)要被驗證的數(shù)據(jù)的預(yù)確定部分的所述印記。這個部分由在第二存儲器區(qū)段中包含的指針,尤其是在圖2中的部分DES中包含的指針所定義。
在本發(fā)明的范圍內(nèi),此印記通過單向操作來實現(xiàn),此單向操作是源集朝著目的地集的數(shù)學運算H,其中源集的每個元素x用圖像(image)H(x)表示。這些函數(shù)在它們是所謂的Hash函數(shù)時特別有用,例如在著作″RSA Laboratories′Frequently Asked Questions AboutToday′s s Cryptography,v4.0″的第27頁中定義的內(nèi)容。元素x可以是任意長度的,但是H(x)總是固定長度的字符,即,一個固定大小的串。這類函數(shù)難以反轉(zhuǎn),也就是說,知道H(x)一般不能發(fā)現(xiàn)x。此外,它是無碰撞的(collision free),因為它是單射函數(shù)(injective function),也就是說,H(y)=H(x)必定導致y=x,類似地H(y)≠H(x)必定導致y≠x。
只要集x的單個數(shù)值被修改,即使其它值被修改以使第一修改生成的修改無效,再現(xiàn)同一控制信息H也被認為是不可能的。
在圖2中,圖1中的用戶區(qū)段Z2B被分成幾個部分PA、PB和PC。這些部分在這個示例中不是相鄰的并且被不影響印記計算的部分PI分開。描述這些不同部分的信息被包含在也形成用戶區(qū)段Z2B的一部分的部分DES中。它包含控制信息的計算中涉及的存儲器位置的指示。這些指示可以是以″啟動指針″和″長度″的形式的或者是以″啟動指針″和″結(jié)束指針″的形式的。
此外,具有不只一項而是幾項控制信息是可能的,每項信息H1、H2、Hn被應(yīng)用在部分PA、PB或Pn上。這允許生成不止一個根密鑰而是生成幾個密鑰。
在圖1中,I/O塊說明了向模塊MOD的外部進行通信的手段,其是使用密碼函數(shù)和儲存在存儲器Z2B中的權(quán)利的不可缺少的手段。還是用這種方式,通過例如先前描述的缺陷的缺陷,數(shù)據(jù)從區(qū)段Z2中隨機提取。
在圖3中,根密鑰的生成被示意地表示。根據(jù)圖2中的示例,包括部分PA、PB和PC的數(shù)據(jù)DTA用來利用處理器計算印記,在我們的情況中,該印記是控制信息Hash。為了計算根密鑰RK,這個控制信息H和工廠密鑰MK2通過加密模塊ENC被用來獲得所述根密鑰RK。這個秘密密鑰將是對稱類型的(或者由管理中心對稱地使用),因為在相反的情況下,它在管理中心中和在模塊MOD中不是相同的合成根密鑰。
應(yīng)該注意,如果當儲存的程序的一致性被驗證時用戶部分Z2B的內(nèi)容已經(jīng)具有建立的印記,則使用所述印記代替控制信息H是可能的。在這個操作中重要的因素是表示數(shù)據(jù)DTA的全部或者一部分的數(shù)據(jù)的使用。在一種變形中,有可能從三個八位位組中選擇一個例如來識別將被工廠密鑰MK2加密的數(shù)據(jù)。
根據(jù)另一實施例,工廠密鑰被儲存在第一區(qū)段Z1中的密秘算法(RTN)替換。必要時,所述算法可以在初始化階段期間從該第一區(qū)段拷貝到工作區(qū)段Z2A。
根據(jù)一個特定的方法,所述算法合并數(shù)據(jù)DTA的全部或者一部分以便獲得取決于所述數(shù)據(jù)的唯一結(jié)果。這種組合可以實現(xiàn)不同的算術(shù)操作,比如乘法、Exor等等。
一旦已經(jīng)計算出這個根密鑰,則它被儲存在第二區(qū)段Z2的存儲器區(qū)段中。
這些方法步驟的執(zhí)行的位置未被識別。自舉區(qū)段中的程序可以只需把工廠密鑰拷貝到一個臨時存儲器區(qū)段中,并且被稱為系統(tǒng)程序的根密鑰生成程序可以被包含在工作區(qū)段Z2A中。重要的因素是所述工廠密鑰在第一區(qū)段Z1中的存儲以便在用戶程序的正常執(zhí)行期間使其不可訪問。
一旦根密鑰已被生成,則從臨時存儲器中刪除工廠密鑰。
根據(jù)一個實際應(yīng)用,負責安全性的管理中心準備新的軟件以避免已知的缺陷,例如目的是提取區(qū)段Z2的數(shù)據(jù)的偽造者的攻擊。此新的軟件被簽名(sign),也就是說,關(guān)于該數(shù)據(jù)來計算Hash函數(shù),并且用專用密鑰MK1加密該結(jié)果。
所有內(nèi)容然后都被傳輸密鑰加密并且以消息的形式發(fā)送給安全性模塊MOD。
在用戶區(qū)段Z2B中的程序處理輸入數(shù)據(jù)并且借助于一個或幾個系統(tǒng)傳輸密鑰解密所述消息。數(shù)據(jù)然后被儲存在為此目的所提供的位置中。一旦已經(jīng)完成此下載,則處理器激活重啟函數(shù)。這允許所有新存儲的數(shù)據(jù)被驗證。
此驗證一般是指儲存的程序集,并且所述驗證是根據(jù)上述步驟來執(zhí)行的。如果具有不安全模塊MOD的第三方的假設(shè)被考慮,則第一存儲器區(qū)段Z1不存在(或者為空),并且處理器立即在第二區(qū)段Z2中啟動。從管理中心接收到的新程序被第三方解密并且用戶區(qū)段因此與具有雙存儲器區(qū)段的安全處理器的相同。
在安全處理器的起動期間,根密鑰被生成并且被用來解密新的傳輸密鑰。偽造的模塊不具有這個根密鑰并且不能解密傳輸密鑰。此時,在管理中心和安全模塊之間交換的消息對偽造的模塊來說不再是可訪問的。如果后者嘗試借助于允許其獲得第二區(qū)段內(nèi)容的這種類型的攻擊來重新發(fā)現(xiàn)根密鑰,則這種攻擊將不再起作用,因為這個新軟件的目的正好是避免這類欺騙。安全的模塊在允許數(shù)據(jù)提取的攻擊之前重新發(fā)現(xiàn)安全級別。
因此,這種方法允許遠程地改正安全性缺陷并且重置原始的安全性而無需象通常的情況那樣交換所有的模塊。
如上所述,對第一區(qū)段Z1的訪問在微處理器起動時或者在驗證機制之后被執(zhí)行。在上述情況期間,有可能不用激活微處理器的重置,并且通過網(wǎng)關(guān)請求訪問第一區(qū)段。一旦通過此請求網(wǎng)關(guān)(通過例如口令的引導)執(zhí)行進入,則程序的執(zhí)行不再是可見的,因為第二區(qū)段對重新拷貝此區(qū)段的第三方來說是未知的。用這種方式啟動的程序開始生成根密鑰。
條件訪問存儲器區(qū)段Z1不能提供必要的秘密數(shù)據(jù)來形成根密鑰。在這種配置中,用戶區(qū)段Z2的程序只能訪問第一區(qū)段Z1以便讀取用于計算根密鑰的數(shù)據(jù)。在這些操作期間,第一區(qū)段的可視性持續(xù)時間將被限制為用于讀取所必需的時間,然后將使此區(qū)段不可訪問。
根據(jù)一個實施例,工廠密鑰產(chǎn)生一組密鑰。在每次生成根密鑰時,工廠密鑰被停用。要被使用的密鑰的選擇可以用不同的方式來執(zhí)行,即-根據(jù)管理中心的命令,也就是說,通過定義數(shù)據(jù)DES中的描述符,-通過使用印記的n個最后的比特(例如3個比特),其允許所述比特從儲存的密鑰(例如8個密鑰)中進行選擇。
權(quán)利要求
1.一種由安全模塊(MOD)所實現(xiàn)的用于生成安全性密鑰的方法,該安全模塊包括中央單元(CPU)、第一條件訪問存儲器區(qū)段(Z1)和至少一個第二存儲器區(qū)段(Z2),所述第二存儲器區(qū)段包括用戶程序的全部或者一部分,其中該方法包括以下步驟-讀出第二存儲器區(qū)段(Z2)的全部或者一部分,-基于第二區(qū)段(Z2)的數(shù)據(jù)(DTA)的全部或者一部分和在第一存儲器區(qū)段(Z1)里存儲的秘密信息(MK2,RTN)中的至少一項來生成至少一個根密鑰(RK)。
2.根據(jù)權(quán)利要求1的方法,其中,該秘密信息是工廠密鑰(MK2)。
3.根據(jù)權(quán)利要求1的方法,其中,該秘密信息是描述生成根密鑰(RK)的數(shù)據(jù)(DTA)的使用的算法(RTN)。
4.根據(jù)權(quán)利要求1到3之一的方法,其中,所述方法包括計算表示第二區(qū)段(Z2)的數(shù)據(jù)(DTA)的全部或一部分的控制信息(H)的至少一項,所述控制信息(H)被用于生成根密鑰(RK)。
5.根據(jù)權(quán)利要求4的方法,其中,所述控制信息(H)是在第二存儲器區(qū)段(Z2)的數(shù)據(jù)的全部或一部分上執(zhí)行的被稱為單向的且無碰撞的函數(shù)(Hash)的結(jié)果。
6.根據(jù)權(quán)利要求1到5之一的方法,其中,所述第二區(qū)段(Z2)還包括描述部分(DES),該描述部分包括確定控制信息(H)的構(gòu)成的存儲器區(qū)段的位置。
7.根據(jù)權(quán)利要求6的方法,其中,所述描述部分(DES)包括用于和部分控制信息(H1,H2 H2...Hn)相對應(yīng)的用戶存儲器區(qū)段(Z2B)的每個部分(PA,PB,PC)的多條位置信息。
8.根據(jù)權(quán)利要求2的方法,其中,所述工廠密鑰(MK2)是對稱類型的。
9.根據(jù)權(quán)利要求1到8之一的方法,其中,所述第二區(qū)段(Z2)包括驗證區(qū)段(Z2A)和用戶區(qū)段(Z2B),在驗證區(qū)段(Z2A)中所包括的程序負責用戶區(qū)段(Z2B)中的數(shù)據(jù)的驗證,第一區(qū)段的程序系統(tǒng)把必要的數(shù)據(jù)從所述第一區(qū)段向驗證區(qū)段(Z2A)進行傳送。
10.根據(jù)權(quán)利要求9的方法,其中,所述工廠密鑰(MK2)被系統(tǒng)程序從第一區(qū)段(Z1)向驗證區(qū)段(Z2A)進行拷貝。
11.根據(jù)權(quán)利要求10的方法,其中,當根密鑰被生成時所述工廠密鑰被刪除。
12.根據(jù)前面權(quán)利要求之一的方法,其中,根密鑰(RK)被用作傳輸密鑰以解密來自于管理中心的消息。
全文摘要
本發(fā)明的目的是提供一種在例如智能卡的安全裝置的第二存儲器區(qū)域的內(nèi)容已被第三方讀取之后恢復(fù)其安全性的方法。通過一種使用安全模塊來生成安全性密鑰的方法而達到此目的,該安全模塊包括中央處理單元、第一條件訪問存儲器區(qū)域和包括用戶程序的全部或一部分的至少一個第二存儲器區(qū)域,其特征在于,所述方法包括以下步驟讀出第二存儲器區(qū)域的全部或一部分,基于第二區(qū)段區(qū)域中的數(shù)據(jù)的全部或者一部分和在第一存儲器區(qū)域中存儲的秘密信息中的至少一項來生成至少一個根密鑰。
文檔編號G07F7/10GK1795471SQ200480014723
公開日2006年6月28日 申請日期2004年5月27日 優(yōu)先權(quán)日2003年5月23日
發(fā)明者亨利·庫德爾斯基, 瑟奇·高梅恩 申請人:納格拉卡德股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
古蔺县| 尉氏县| 家居| 洛南县| 行唐县| 句容市| 成都市| 深泽县| 方山县| 沾化县| 蓬溪县| 神农架林区| 万安县| 澄江县| 万载县| 林西县| 紫阳县| 石屏县| 巨野县| 察隅县| 汤阴县| 阳西县| 九龙坡区| 江达县| 内黄县| 邢台县| 琼结县| 青浦区| 秭归县| 白山市| 富源县| 奉贤区| 阆中市| 嘉祥县| 大洼县| 商丘市| 上犹县| 西安市| 禄丰县| 乌兰浩特市| 朝阳区|