亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

保護靜態(tài)和動態(tài)數據免遭未授權操作的系統的制作方法

文檔序號:6472675閱讀:318來源:國知局
專利名稱:保護靜態(tài)和動態(tài)數據免遭未授權操作的系統的制作方法
技術領域
本發(fā)明涉及防止電子存儲器操作的系統,更具體地說,涉及防止對電子設備中需要保密的存儲器內容的未授權操作的方法和裝置。
本文中公開的本發(fā)明涉及所有需要維護存儲器內容的安全或不允許改變其狀態(tài)的電子設備。這種需求可能是出于安全考慮提出的,例如,防止蜂窩式電話存儲器的欺詐性操作,或者在一些重要應用中,例如航空控制或醫(yī)藥設備的操作,維護電子設備運行的整體性目的。正如本文中公開的和說明的,本發(fā)明的示范性方面是從用于加密蜂窩式電話中的一個或多個電子存儲器的系統和方法方面著手的。本文中還說明一種系統,所述系統允許在訪問電子存儲器之前,利用經過鑒別的數據傳送設備訪問和操作電子設備中的一個或多個電子存儲器。后一種系統也在蜂窩式電話的應用中說明。即使本文說明的本發(fā)明的示范性實施例,在保密蜂窩式電話存儲器以及用于安全訪問和修改蜂窩式電話存儲器內容的裝置方面作了說明,本專業(yè)的技術人員容易理解,本發(fā)明的系統也可以用于具有一個或多個存儲器的任何電子系統,這些存儲器內容要保持不變,或者其存儲器只有通過授權裝置才能被訪問和修改。所以,本發(fā)明的范圍不局限于本文中給出的示范性實施例,而是由后附的權利要求書和等價內容規(guī)定。
在許多固定的和移動的計算和通信系統中,例如個人數字助理(PDA)和蜂窩式電話,需要保護某些存儲在系統存儲器中的數據。這些數據可能是與文檔、數據庫或程序對應的數據。在蜂窩式電話的內容中,這些數據可能表示有關信息,例如,國際移動式設備身份碼(IMEI)編號(由ETSI GSM規(guī)范確定),無線電校正數據以及加密訪問代碼。一旦存入存儲器中,這類數據就不想改變,因此,本文中將它稱作為靜態(tài)數據。其它類型數據也可以存儲在存儲器中,例如,表示GSM電話是否被鎖定在規(guī)定的操作員網絡的狀態(tài)標記的數據。這類數據(本文中將它稱作為動態(tài)數據)具有被用戶修改的可能,但是只有用戶被授權才可能修改。在所有其它情況下,動態(tài)數據是不允許修改的。
已經對確保靜態(tài)數據完整性的技術(即,防止靜態(tài)數據被竄改)作了說明,例如在美國專利No.5442645和No.6026693中給出的說明,所述專利通過引用被全部包括在本文中。這些方法廣泛應用密碼技術,用于從靜態(tài)數據產生所謂“特征”。密碼技術已眾所周知,并在象《應用密碼學手冊》(A.Menezes,P.C.an Orrshot和S.A.Vanstone,CRC出版社,1996)一類的出版物中作了說明,所述內容通過引用被全部包括在本文中。當已知所述靜態(tài)數據為可信的時,則產生特征同時保存。然后,在允許用戶使用靜態(tài)數據之前,再次計算特征,并與前一次保存的版本進行比較。如果發(fā)現任何不匹配,則證明靜態(tài)數據發(fā)生了變化就不使用所述靜態(tài)數據。
在美國專利5442645中,需要保存秘密密鑰以便實現整體性保護。在美國專利6026293中說明了一種更完善的技術?,F在,參照圖1的方框圖簡要說明。在所述系統中,包括處理電路100的ASIC與快速程序存儲器101、隨機訪問存儲器(RAM)103和電可擦可編程只讀存儲器(EEPROM)105通過系統總線107相互連接在一起。處理電路100包括微處理器109、定時器和控制器邏輯電路111以及兩種形式的存儲器保護靜態(tài)RAM(PSRAM)113和內部只讀存儲器(IROM)115。除了傳統的引導代碼117外,IROM 115存儲公開密鑰119、散列算法的程序代碼(用散列碼121表示)和設備驗證代碼123的程序代碼。靜態(tài)數據125存儲在EEPROM 105中。靜態(tài)數據125由存儲在EEPROM 105中的審查散列值127保護。審查散列值127由存儲在處理電路的IROM115中的散列碼121實現的散列算法計算得到。外部數據傳送設備對EEPROM的內容的訪問是利用存儲在IROM 115中的公開密鑰119和驗證代碼123、通過使用驗證程序來控制的。驗證程序要求數據傳送設備占有對應的公用/專用加密方案的秘密密鑰,所述秘密密鑰用于實現驗證程序。由定時器和控制邏輯電路111實現的定時機制用于觸發(fā)處理電路的性能,以便在一組計數器確定的某一瞬間實現整體性檢查。
現有方法的缺點在于,由于任何修改整體性檢查軟件的方法可以用來饒過加密機制,因此,實現整體性檢查的軟件本身必須加密。在美國專利6026293說明的技術中,通過固定處理電路ASIC的IROM中的軟件代碼可以滿足這種要求。然而,為了能夠應用所述技術,系統開發(fā)者必須能夠定義一部分ASIC。這種能力會增加所述部件的成本。
這些現有技術的另一個缺點在于,不適合用來確保動態(tài)數據的完整性。
在美國專利5606315中描述了一種機制,對動態(tài)數據對象的訪問是通過存儲在EEPROM中的口令控制的。然而,用戶很容易從EEPROM中讀取口令并獲得對動態(tài)數據的修改權力。而且,在該文件描述的系統中,不對動態(tài)數據進行完整性檢查??獞搹娬{,當在本說明書中使用術語“包括”和“包含”時,意指存在確定的特征、整體、步驟或部件;但是使用這些術語并不排除存在或附加一個或多個特征、整體、步驟、部件或它們的組合。
根據本發(fā)明的一個方面,在確保包括一個或多個數據項的動態(tài)數據對象完整性的方法和裝置中實現前述的和其它目的。完成這一點包括將動態(tài)數據對象和動態(tài)授權數據存儲在存儲器中。分別產生動態(tài)數據對象和動態(tài)授權數據的不同散列特征,并將其存儲在存儲器中。當用戶希望修改動態(tài)數據對象時,必須確定所述用戶是否被授權修改動態(tài)數據對象。如果所述用戶被授權,那么,動態(tài)授權數據被修改(例如,失敗嘗試計數器加”,并產生新的動態(tài)授權數據的散列特征。然后,存回到存儲器中。
如果所述用戶被授權修改動態(tài)數據對象,那么,就允許進行修改。然后重新計算對應的散列特征并將其存回到存儲器中。只有新產生的兩個散列特征值與預先存入存儲器中的值相匹配時,才認為所述動態(tài)數據對象是可信的。
詳細說明現在將參照


本發(fā)明的各種特征,其中,用相同的參考符號來標識相同的部件。
現在將結合幾個示范性實施例更詳細說明本發(fā)明的各個方面。為了便于理解本發(fā)明,我們借助于用計算機系統單元執(zhí)行一系列操作來說明本發(fā)明的許多方面。在每一個實施例中將可以看出,各種操作可以通過專用電路(例如,實現專用功能的互連的分立邏輯門)、通過由一個或多個處理器執(zhí)行的程序指令、或者通過兩者組合來完成。而且,本發(fā)明還可以考慮在任何形式的計算機可讀載體、例如固體存儲器、磁盤、光盤或載波(例如,無線電頻率,音頻或光頻載波)中完整地實施,這些載體包含可以使處理器實現所述技術的相應的計算機指令集。因此,本發(fā)明的各個方面可以用許多不同形式實現,并且所有這些形式都屬于本發(fā)明的范圍。對于本發(fā)明的每一方面,任何這種形式的實施例都可以稱為“配置”成完成所述操作的“邏輯”,或者稱為完成所述操作的“邏輯”。
在本發(fā)明的一個方面,提供使系統免遭對存儲在系統內部存儲器中的數據的未授權修改的方法和裝置。具體地說,本發(fā)明的技術針對為兩類數據(靜態(tài)數據和動態(tài)數據)提供保護的問題。如前所述,靜態(tài)數據是裝入系統后不應該修改的數據。(在某些例子中,可能期望允許修改靜態(tài)數據,例如,所討論的設備的授權的服務中心。這種可能性不改變設備的用戶決不允許修改所述數據這一事實。)相反,動態(tài)數據則是設備用戶可能允許修改的數據,但是只有他或她被賦予修改數據的權利(例如,系統操作員)時才能這樣做。兩類數據都應該防止未授權的修改。然而,當授權后,數據完整性機制不應該防止用戶修改動態(tài)數據。此外,可能還希望防止兩類數據被復制(即,克隆)到其它設備上。
為了便于說明本發(fā)明的各種基本原理,我們用Ms表示一個或多個需要保護的靜態(tài)數據項,用Md表示一個或多個需要保護的動態(tài)數據項。一種授權機制應該是允許對動態(tài)數據Md進行授權修改。在這樣一種授權機制的示范性實施例中,要求用戶正確提供訪問代碼,以便允許修改動態(tài)數據。在所述示范性實施例中,訪問代碼以不可讀形式作為靜態(tài)數據存儲在系統的存儲器中。訪問代碼本身是一個隨機選取的字符串??梢酝ㄟ^借助于加密算法E、利用秘密秘密密鑰Ke對其數據加密來使訪問代碼成為不可讀的。E的合適選擇可以是例如上面引用的書(A.Menezes等著)所描述的三模式數據加密標準(DES)算法。但是,也可以選擇應用任何其它加密算法。秘密密鑰Ke的大小應足夠長,以便防止窮舉密鑰搜索。使用當前技術至少要應用64位。對于三重DES,密鑰的大小為112位。由于訪問代碼可以通過系統用戶手工輸入,所以其大小(用輸入的符號數目表示)可以比較小。例如,在由GSM確定的動態(tài)數據的情況下,這種代碼可以由最多8個十進制數字組成。
由于訪問代碼比較小,所以,所述授權方法可能容易受到窮舉猜試的攻擊。為了防止這種野蠻的攻擊,最好還要提供一種限制用戶連續(xù)輸入不正確訪問代碼次數的機制。這可以通過提供一種保持跟蹤輸入錯誤訪問代碼次數的偽嘗試計數器(false-attempt counter)實現。設TryCnt表示輸入正確訪問代碼的失敗次數。系統可以設計成當計數器達到預定的限制時則鎖定。系統能否從所述鎖定狀態(tài)退出取決于設計的系統所需的安全等級。例如,用戶可以使系統接入專門的服務中心,在那里,系統可以在安全控制條件下執(zhí)行解鎖。
在上述討論中,確保靜態(tài)數據Ms完整性的某些機制不僅需要保護確定系統參數屬性(例如,在GSM中的IMEI)的靜態(tài)數據部分,而且還要保護構成動態(tài)數據授權方法的不變數據單元,例如,表示將允許輸入訪問代碼不成功的最大次數(“預定的限制”),以及授權方法本身的程序代碼的執(zhí)行。
也可以看到,保護動態(tài)數據完整性的某些機制不僅需要保護確定系統參數屬性的動態(tài)數據部分(例如,GSM電話是否鎖定到操作員網絡上的狀態(tài)標記),而且還要保護過時變化的授權機制方面的數據,例如,必須隨每一次輸入訪問代碼嘗試失敗而調整的失敗嘗試計數器TryCnt(例如,加1)。如果變量TryCnt沒有被保護,不守紀律的用戶可能相當容易對計數器復位,由此達到能夠無限次輸入嘗試代碼。存儲在擴展存儲器中的失敗嘗試計數器(TryCnt)和所有其它變量是隨訪問次數變化的,統稱為動態(tài)授權數據,并用Md_auth表示。
可以按如下方法實現數據對象Ms,Md和Md_auth的完整性。首先討論數據對象Ms,我們把靜態(tài)審查散列值或特征Ss與數據對象Ms聯系在一起。審查散列值Ss是對Ms(或者至少對其一部分)利用表示為Hs的散列算法計算出來的。Ss值存儲在非易失性存儲器中。在某些實施例中,Ss值可以與數據對象Ms一起在生產過程期間存儲在快速程序存儲器中。在另一些實施例中,正如在后面的說明中將假設,數據對象Ms和Ss存儲在EEPROM中。這樣做的優(yōu)點是使得有可能在生產過程結束后安裝保護的數據對象Ms。
為了使用戶免于執(zhí)行相同操作,系統的處理電路最好包括驗證機制,例如,上面認定的美國專利No.6026293中公開的一種驗證機制與美國專利No.4748668中公開的算法相結合,所述專利通過引用被全部包括在本文中。因此,根據本發(fā)明的一個方面,驗證機制不僅用于控制對存儲器內容的訪問(正如美國專利No.6026293中指出的),而且也用于控制執(zhí)行散列算法Hs的能力。
如前所述,還需要防止數據從一臺設備復制(即,克隆)到另一臺設備。為了實現這方面的保護,進一步使通過算法Hs從數據對象Ms計算出來的Ss值是靜態(tài)參數的函數,所述靜態(tài)參數最好是存儲在處理電路或快速存儲器中的設備序列號(用SerNo表示)。在最佳實施例中,系統的每一種實現方案被給予唯一的SerNo值。在另一些實施例中,可以給系統的有限數目的實現方案分配相同的SerNo值,同時,將唯一的SerNo值分配給許多不同系統。把SerNo值作為散列算法Hs的輸入參數之一實際上不可能防止數據被系統重使用或者被克隆到另一個相似的系統中。應當指出,實現數據完整性保護的這種方法不需要存儲秘密密鑰。這是一個重要的優(yōu)點,因為以保密方式存儲秘密密鑰要求用昂貴的技術實現反竄改。
現在,轉到動態(tài)數據的保護,這里使用了兩種動態(tài)審查散列值。第一動態(tài)審查散列值(用Sd表示)保護動態(tài)數據對象Md,并用第一動態(tài)散列算法(用Hd表示)計算。第二審查動態(tài)散列值(用S’d表示)保護動態(tài)授權數據(用Md_auth表示)并用第二動態(tài)散列算法(用Hd_auth表示)計算。對于Hd和Hd_auth可以使用不同的散列算法。因此,在其它實施例中,只要它們產生不同的特征值,它就可以更有效地應用相同算法(Hd=Hd_auth)。所述最新結果可以利用不同的輸入參數產生第二動態(tài)審查散列值(S’d)而不是產生第一動態(tài)審查散列值(Sd)來實現。例如,第一動態(tài)審查散列值可以由確定的Sd=Hd(Md)產生,而第二動態(tài)審查散列值可以由確定的S’d=Hd(Md_auth)產生。本發(fā)明的這一方面還將在下面結合一些示范性實施例加以說明。
具有兩個完全不同的審查散列值的目的如下。每一次,一個用戶試圖獲得對非組合動態(tài)數據Md的修改權利時,他或她需要輸入所要求的訪問代碼。但是,在可以使用授權機制前,Md和Md-auth值的完整性(例如,TryCnt)必須首先確認。如果Md和Md_auth通過了這一檢查但是用戶輸入的訪問代碼錯誤,則數據對象Md_auth將調整(例如,變量TryCnt可以加1)。由于第二動態(tài)審查散列值S’d是Md_auth的函數,那么,就必須重新計算并將計算結果存儲回到非易失性存儲器中。如果它不是動態(tài)數據對象Md_auth的函數,那么,第一動態(tài)審查散列值Sd就不必重新計算。
另外,如果Md和Md_auth通過了完整性檢查,用戶輸入了正確的訪問代碼,那么,用戶就可以修改Md構成的動態(tài)數據。由于第一動態(tài)審查散列值Sd是Md的函數,因此必須重新計算Sd。正如下面將看到的,在某些實施例中,第二動態(tài)審查散列值S’d也是Md的函數,因而在這些情況下,也必須重新計算這時的S’d。
不知道訪問代碼就想修改Md值的惡意用戶可能試圖通過反復訪問嘗試并記錄在動態(tài)數據Md、動態(tài)授權數據Md_auth以及它們相關的動態(tài)審查散列值(Sd和S’d)中出現的任何變化來繞過完整性機制。用這些知識,這類用戶可能能了解保護機制的特征。然而,極大多數這類用戶將看到與第二動態(tài)審查散列值S’d的產生相關聯的特征,但是,不能看到第一動態(tài)審查散列值Sd中的任何變化,因為這種情況直到輸入正確的訪問代碼才會出現。(假設用戶被授權輸入正確的訪問代碼,因此不會知到第一動態(tài)審查散列值Sd是如何變化的任何事情。)本發(fā)明的這一方面添加到保護機制的安全性中并且是既設置動態(tài)數據對象Md的審查散列值又設置動態(tài)授權數據Md_auth的審查散列值的原因。
圖2是說明根據本發(fā)明的實施例、確保只有授權才能對動態(tài)數據對象Md進行修改的技術的流程圖。在所述示范性實施例中,不允許做任何修改,如果未授權就對動態(tài)數據對象進行修改,那么要做的第一件事情就是產生第一和第二動態(tài)審查散列值的期望值,將這些值分別與存儲值Sd和S’d進行比較(步驟201)。如果期望值中的任何一個與對應的存儲值不匹配(判定模塊203中的“NO”路徑),則表明是未授權的修改并采取相應的步驟,例如鎖定系統(步驟205)。
或者,如果兩個期望動態(tài)審查散列值都與對應的存儲值匹配(判定模塊203中的“YES”路徑),那么,動態(tài)數據對象Md和動態(tài)授權數據Md_auth(例如,TryCnt)都通過了完整性檢查,并允許修改例程繼續(xù)進行。
下面,例程確定用戶是否被授權進行修改。在所述實施例中,它包括確定前面進行的失敗嘗試的次數,獲得修改動態(tài)數據對象的授權是否超過預先確定的限制(決策模塊207)。因此,動態(tài)授權數據Md_auth在本發(fā)明中包括計數器的值TryCnt。如果TryCnt的當前值比預先確定的限制大(決策模塊207中的“YES”路徑),那么不允許再進行嘗試,并使系統進入鎖定狀態(tài)(步驟205)。
如果訪問失敗嘗試的次數沒有超過預定的限制(決策模塊207中的“NO”路徑),則通過確定用戶是否被授權修改使授權例程繼續(xù)(決策模塊209)。這可以以任何方式進行。例如,如上所述,用戶可以提供一個與預先存入值進行比較的訪問代碼。然而,使用的具體授權技術不是本發(fā)明的實質方面,可以選擇應用其它技術。例如,可以要求用戶插入一張有效的密鑰卡或其它硬件保密卡。在其它選擇中,可以檢查用戶的一些物理屬性,例如指紋,以便確認所述用戶已被授權。
如果用戶沒有通過授權檢查(判定模塊209中的“NO”路徑),就調整動態(tài)授權數據Md_auth,這時,失敗嘗試計數器(TryCnt)加1(步驟211),因此它表示已經進行了另一次失敗的嘗試。由于第二個動態(tài)審查散列值S’d是失敗嘗試計數器的函數,所以它也將重新計算并存回到存儲器中(步驟213)。
如果用戶通過了授權檢查(判定模塊209中的“YES”路徑),那么,就允許修改動態(tài)數據對象Md(步驟215)。在所述修改之后,由于它是動態(tài)數據對象Md的函數,所以重新計算第一動態(tài)審查散列值Sd并存回到存儲器中(步驟217)。在某些實施例中,最好第二動態(tài)審查散列值S’d不僅是動態(tài)授權數據的函數、而且也是動態(tài)數據對象Md的函數。這可能是有用的,例如,它將使惡意的用戶確定動態(tài)授權數據和第二動態(tài)審查散列值之間的映射更加困難。在這種情況下,或者如果TryCnt被調整(例如,復位到初始值),那么,每當對動態(tài)數據對象Md進行授權的修改,第二動態(tài)審查散列值S’d就需要重新計算并且將結果存回到存儲器中(選擇步驟219)。
上述技術僅僅是參照本發(fā)明所有實施例的許多可能的實施例中的一個。例如,在確定用戶是否授權進行修改之前對動態(tài)數據對象Md和動態(tài)授權數據Md_auth的完整性進行檢查不是必不可少的??梢援a生另一個實施例,在所述實施例中,完整性的檢查可以在進行確定用戶所需的修改前的那一刻執(zhí)行,例如,在用戶已經證明自已被授權之后、或者在發(fā)現TryCnt還沒有達到其預定限制之后而用戶已經證明自已被授權之前。
上述技術可以用一些不同方法實現。下面將結合圖3的方框圖說明第一個實施例。在所述系統中,包括處理電路300的ASIC通過系統總線307與快速程序存儲器301、RAM 303和EEPROM 305互連。處理電路300包括微處理器309、定時器和控制器的邏輯電路311以及兩種形式的存儲器PSRAM 313和IROM 315。IROM 315存儲引導代碼317以及在下面將更詳細說明的其它數據。
現在將集中討論本實施例與確保靜態(tài)數據Ms完整性相關的那些方面,其中Ms與其它相關的靜態(tài)審查散列值Ss一起存儲在EEPROM305中。如前所述,靜態(tài)審查散列值Ss由靜態(tài)散列算法Hs產生,其程序代碼319存儲在IROM 315中。存儲在EEPROM 305中的靜態(tài)審查散列值Ss的值可以在系統外、在將靜態(tài)數據Ms轉移到EEPROM 305中之前產生,或者,在靜態(tài)數據對象Ms首先轉移到EEPROM 305時通過處理電路300產生。在后一種情況下,最好通過授權程序對訪問執(zhí)行散列算法Hs的程序代碼319并且將其計算值存儲到處理電路300外面的非易失性存儲器(例如,EEPROM 305)中的能力進行控制。公用/專用密鑰加密方案可用于此目的。程序代碼323和用于授權程序的公開密鑰321存儲在處理電路300的IROM 315中。
如前所述,通過靜態(tài)散列算法Hs計算的靜態(tài)審查散列代碼Ss的值不僅僅隨使用哪一種靜態(tài)散列算法而變而且與輸入參數的值有關??梢砸造o態(tài)數據Ms的函數的形式嚴格計算Ss。但是,在本實施例中,最好還有防止復制的保護。為了實現這種保護,向靜態(tài)散列算法Hs輸入的參數為靜態(tài)數據Ms和唯一的(或幾乎是唯一的)靜態(tài)參數,例如,上述參數SerNo。這可以表示為以下形式Ss=Hs(Ms,SerNo)SerNo的值可以在生產快速程序存儲器301時存儲到快速程序存儲器301中,并要用不能改變其值的方法完成。
在靜態(tài)審查散列值Ss被存儲到EEPROM 305中后,執(zhí)行靜態(tài)散列算法Hs的程序代碼319,無論何時都需要確保存儲在EEPROM 305中的靜態(tài)數據Ms不被修改。例如,這可以在定時器和控制器邏輯電路311的指導下定期地進行。將靜態(tài)數據Ms和SerNo作為輸入信號提供給靜態(tài)散列算法Hs。新產生的絕不會出現在處理電路300外的靜態(tài)審查散列值與存儲在EEPROM 305中的靜態(tài)審查散列值進行比較。任何不匹配都表示靜態(tài)數據Ms被修改了。
現在,集中討論包含在確保動態(tài)數據Md完整性的那些方面。動態(tài)數據對象Md與動態(tài)授權數據(此時為失敗嘗試計數器(TryCnt))、以及第一和第二動態(tài)審查散列值Sd和S’d一起存儲在EEPROM 305中。其程序代碼325存儲在IROM 315中的單個動態(tài)散列算法Hd根據接收的輸入參數計算預期的第一或第二動態(tài)審查散列值Sd或S’d。
在將動態(tài)數據Md轉移到系統存儲器(例如,EEPROM 305)中之前,可以在系統外面計算第一第二動態(tài)審查散列值Sd和S’d的初始值,或者當動態(tài)數據對象Md被轉移到系統的存儲器中、但是在靜態(tài)數據對象Ms和Ss也已經保存之后,可以在處理電路300內計算。
通過動態(tài)散列算法Hd計算的第一動態(tài)審查散列值Sd的值是動態(tài)數據對象Md的函數,但最好不是失敗嘗試計數器值TryCnt的函數。在最佳實施例中,第一動態(tài)審查散列值Sd取決于Hd本身和Md以及Ss的值。這可以表示為以下形式Sd=Hd(Md,Ss)將可以看到,由于Ss是SerNo本身的函數,所以Sd也是SerNo的函數。
類似地,通過動態(tài)散列算法Hd來計算第二動態(tài)審查散列值S’d,后者至少是動態(tài)授權數據Md_auth的函數,在此情況下所述動態(tài)授權數據Md_auth是失敗嘗試計數器值TryCnt。然而,為了使保護方案更難反演,第二動態(tài)審查散列值S’d最好依賴于Hd本身和Md、SerNo以及TryCnt的值。這可以表示為以下形式S’d=Hd(Md,SerNo,TryCnt)為了表明其有效性,動態(tài)數據Md必須通過兩種測試。一種測試是,保存的數據由處理電路300通過計算給定控制瞬間的期望的第一審查散列值來檢查。把決不會出現在處理電路300外的所述計算值與預先存儲在EEPROM 305中的第一動態(tài)審查散列值Sd進行比較。如果兩個值相互不同,那么,表明動態(tài)數據Md已被修改。
在第二種測試中,存儲的數據由處理電路300通過計算給定瞬間的期望的第二動態(tài)審查散列值來檢查。把也決不會出現在處理電路300外的所述計算值與預先存儲在EEPROM 305中的第二動態(tài)審查散列值S’d進行比較。同樣,如果兩個值相互不同,那么,表明動態(tài)數據Md已被修改。應當指出,即使第二動態(tài)審查散列值S’d不是動態(tài)數據對象Md的函數,所述不匹配也表示動態(tài)授權數據(例如,失敗嘗試計數器值TryCnt)被竄改。因此,也可以設想,動態(tài)數據對象Md已經在未授權的情況下被修改。
只有兩種測試都成功地通過時動態(tài)數據對象Md才看作為可信的(即沒有出現未授權的修改)。如果動態(tài)數據對象Md已被證實為可信的,那么,用戶可以通過成功地完成訪問過程來獲得通向修改動態(tài)數據對象Md的權力的入口。在這里說明的示范性實施例中,訪問過程包括用戶通過輸入設備,例如鍵盤(未示出),輸入訪問代碼。期望的訪問代碼327以加密形式被存儲在EEPROM 305中并且隨后在處理電路300內利用秘密密鑰Ke 329和解密算法進行加密,,所述解密算法的程序代碼331存儲在IROM 315中。
如果用戶成功地完成了訪問過程并修改了動態(tài)數據對象Md,那么,就執(zhí)行動態(tài)散列算法325,計算第一和第二動態(tài)審查散列值Sd和S’d的新值。(在第二動態(tài)審查散列值不是動態(tài)數據對象Md的函數的實施例中,如果動態(tài)授權數據一例如,失敗嘗試計數器的值TryCnt-還沒有被修改,那么,僅僅需要計算第一動態(tài)審查散列值的新值。)然后,將這些新值存儲到EEPROM 305中,供以后的動態(tài)數據完整性檢查使用。如前所述,由于用戶已經確認,他或她被授權,因而沒有惡意,因此總線307上的這些值的表示被看作是安全的。
如果用戶的訪問嘗試失敗了,就需要修改存儲在EEPROM 305中的動態(tài)授權數據(在本實施例中為失敗嘗試計數器TryCnt)。在進行這種修改時,由于S’d是TryCnt的函數,所以,保存的第二動態(tài)審查散列值S’d將不再有效。因此,必須執(zhí)行動態(tài)散列算法Hd以便重新計算第二動態(tài)審查散列值S’d的新值。然后,將所述新值存入EEPROM305中。在進行這些操作時,把第二動態(tài)審查散列值S’d送入總線307,因此有可能把第二動態(tài)審查散列值暴露給惡意用戶,由于他或她仍將沒有足夠的信息指明如何可以計算第一動態(tài)審查散列值Sd,這時,用戶將沒有足夠的信息去確定如何繞過動態(tài)數據完整性檢查機制。由于第一和第二動態(tài)審查散列值都需要成功地完成動態(tài)數據完整性檢查機制,因此系統是安全的。
在圖4的方框圖中說明了本發(fā)明的可供選擇的實施例。在所述實施例中,與使用秘密密鑰Ke相關聯的有價值的加密配置方案避免使用公用/專用密碼系統保護訪問代碼。所述實施例不同于圖3所示的實施例之處在于第二公開密鑰401存儲在IROM 215中。允許將第二公開密鑰401存儲在IROM 215中是第二公開密鑰401的公開特征。相反,保持圖3的秘密密鑰Ke 329的秘密需要將所述密鑰存儲在安全的不希望讀出的地方。
可以在不泄漏由生產廠家使用的匹配的秘密密鑰的的情況下使第二公開密鑰401成為公開的。因此,在所述實施例中,有可能避免為安全地存儲秘密密鑰需要的昂貴技術。
一種系統和方法(例如,在美國專利No.4405829的中公開的)可以用來有效地對圖4所示實施例的訪問系統進行加密。美國專利No.4405829通過引用而被全部包括在本文中。
由于要求使用非標準的處理電路(例如,所述電路不僅包括標準的微處理器,而且還包括特殊的程序代碼和存儲在ASIC的IROM中的參數),上述實施例可能要承擔一些附加的費用才能實現。在圖5的方框圖中說明的另一個可選擇的實施例中可避免所述成本。在所述實施例中,所有的程序代碼和與靜態(tài)和動態(tài)數據完整性機制相關聯的參數都存儲在快速程序存儲器501中,而不是IROM 315中。為了消除惡意用戶在快速程序存儲器中對所述數據進行簡單編程的可能性,在編程后,應對快速程序存儲器的內容使用部分凍結或瑣定(即設置為非重編程的)功能。在圖5中,示出了存儲在快速程序存儲器501的可鎖定部分503中的所述程序代碼和相關參數。
已經參考具體的實施例對本發(fā)明進行了說明。但是,本專業(yè)的技術人員將容易明白,用特殊形式而不是上述最佳實施例能夠實現本發(fā)明。可以在不脫離本發(fā)明精神的情況下這樣做。最佳實施例僅僅是說明,并沒有考慮任何限制。本發(fā)明的范圍由所附權利要求書限定,而不是前面的描述,所有屬于所述權利要求書范圍內的修改和等價內容都包括在內。
權利要求
1.一種確保動態(tài)數據對象完整性的方法,所述動態(tài)數據對象包括一個或多個數據項,所述方法包括將所述動態(tài)數據對象存入存儲器中;將動態(tài)授權數據存入所述存儲器中;應用第一動態(tài)散列算法、從包括所述動態(tài)數據對象的一個或多個參數產生初始的第一動態(tài)審查散列值;應用第二動態(tài)散列算法、從包括所述動態(tài)授權數據的一個或多個參數產生初始的第二動態(tài)審查散列值;將所述初始的第一動態(tài)審查散列值存入所述存儲器中;將所述初始的第二動態(tài)審查散列值存入所述存儲器中;確定用戶是否被授權修改所述動態(tài)數據對象;如果用戶未被授權修改所述動態(tài)數據對象,那么調整所述動態(tài)授權數據;將所述調整后的動態(tài)授權數據存入所述存儲器中;應用第二動態(tài)散列算法、從包括所述調整后的動態(tài)授權數據的一個或多個參數產生調整后的第二動態(tài)審查散列值;以及將所述調整后的第二動態(tài)審查散列值存入所述存儲器中;以及如果用戶被授權修改動態(tài)數據對象,那么允許用戶修改所述動態(tài)數據對象;將所述修改后的動態(tài)數據對象存入所述存儲器中;應用第一動態(tài)散列算法、從包括所述修改后的動態(tài)數據對象的一個或多個參數產生調整后的第一動態(tài)審查散列值;以及將所述調整后的第一動態(tài)審查散列值存入所述存儲器中。
2.如權利要求1所述的方法,其特征在于所述從其中產生所述第二動態(tài)審查散列值的一個或多個參數還包括與所述動態(tài)數據對象有關的參數;以及所述方法還包括如果用戶被授權修改所述動態(tài)數據對象,那么利用所述第二動態(tài)散列算法,從包括所述修改后的動態(tài)數據對象、預先確定的值以及靜態(tài)參數的一個或多個參數產生調整后的第二動態(tài)審查散列值;以及將所述調整后的第二動態(tài)審查散列值存入所述存儲器中。
3.如權利要求1所述的方法,其特征在于還包括在允許所述用戶修改所述動態(tài)數據對象之前,確定所述動態(tài)數據對象是否為未授權的修改結果,其中,進行所述確定的方法是利用所述第一動態(tài)散列算法、從包括所述動態(tài)數據對象的所述一個或多個參數產生期望的第一動態(tài)審查散列值;應用第二動態(tài)散列算法、從包括所述動態(tài)授權數據的所述一個或多個參數產生期望的第二動態(tài)審查散列值;將所述期望的第一動態(tài)審查散列值與存儲在所述存儲器中的所述初始的第一動態(tài)審查散列值進行比較,如果所述期望的第一動態(tài)審查散列值與存儲在所述存儲器中的所述初始的第一動態(tài)審查散列值不匹配,則表明所述動態(tài)數據對象是未授權的修改結果;以及將所述期望的第二動態(tài)審查散列值與存儲在所述存儲器中的所述初始的第二動態(tài)審查散列值進行比較,如果所述期望的第二動態(tài)審查散列值與存儲在所述存儲器中的所述初始的第二動態(tài)審查散列值不匹配,則表明所述動態(tài)數據對象是未授權的修改結果。
4.如權利要求3所述的方法,其特征在于所述動態(tài)數據對象是否為未授權的修改結果的所述確定是在確定所述用戶是否被授權修改所述動態(tài)數據對象之前進行的。
5.如權利要求1所述的方法,其特征在于所述第一動態(tài)散列算法與第二動態(tài)散列算法相同。
6.如權利要求1所述的方法,其特征在于所述動態(tài)授權數據包括失敗嘗試計數器值,后者表示為獲得修改所述動態(tài)數據對象的授權已經進行了多少次失敗嘗試。
7.如權利要求1所述的方法,其特征在于所述方法在第一設備中實現;以及從其中產生所述第一動態(tài)審查散列值的所述一個或多個參數還包括靜態(tài)參數。
8.如權利要求7所述的方法,其特征在于所述靜態(tài)參數是把所述第一設備與第二設備區(qū)別開的序列號。
9.如權利要求8所述的方法,其特征在于從其產生中所述第二動態(tài)審查散列值的所述一個或多個參數還包括靜態(tài)參數。
10.如權利要求1所述的方法,其特征在于所述方法在第一設備中實現;以及從其中產生所述第二動態(tài)審查散列值的所述一個或多個參數還包括靜態(tài)參數。
11.如權利要求10所述的方法,其特征在于所述靜態(tài)參數是把所述第一設備與第二設備區(qū)別開的序列號。
12.如權利要求1所述的方法,其特征在于從其中產生所述第一動態(tài)審查散列值的所述一個或多個參數還包括通過靜態(tài)散列算法產生作為靜態(tài)數據對象的函數的靜態(tài)審查散列值。
13.如權利要求12所述的方法,其特征在于所述靜態(tài)散列算法與所述第一動態(tài)散列算法相同。
14.如權利要求13所述的方法,其特征在于所述第一動態(tài)散列算法與所述第二動態(tài)散列算法相同。
15.如權利要求1所述的方法,其特征在于確定所述用戶是否被授權修改所述動態(tài)數據對象的操作包括接收所述用戶的訪問代碼;以及確定所述訪問代碼是否為授權的訪問代碼。
16.如權利要求15所述的方法,其特征在于所述確定訪問代碼是否為授權的訪問代碼的操作包括從存儲器檢索加密的授權訪問代碼;將所述加密的授權訪問代碼解密;以及將所述解密的授權訪問代碼與從所述用戶接收到的所述訪問代碼比較。
17.如權利要求15所述的方法,其特征在于所述確定訪問代碼是否為授權的訪問代碼的操作包括從存儲器檢索被加密的授權訪問代碼;對從所述用戶接收到的所述訪問代碼加密;以及將所述檢索的加密的授權訪問代碼與從所述用戶接收到的加密的訪問代碼進行比較。
18.一種確定存儲在存儲器中的動態(tài)數據對象是否為未授權修改結果的方法,所述方法包括從所述存儲器檢索初始的第一動態(tài)審查散列值;從所述存儲器檢索初始的第二動態(tài)審查散列值;應用第一動態(tài)散列算法、從包括所述動態(tài)數據對象的一個或多個參數產生期望的第一動態(tài)審查散列值;應用第二動態(tài)散列算法、從包括所述動態(tài)授權數據的一個或多個參數產生期望的第二動態(tài)審查散列值;將所述期望的第一動態(tài)審查散列值與從所述存儲器中檢索的所述初始的第一動態(tài)審查散列值進行比較,如果所述期望的第一動態(tài)審查散列值與從所述存儲器中檢索的所述初始的第一動態(tài)審查散列值不匹配,那么,表明所述動態(tài)數據對象是未授權的修改結果;以及將所述期望的第二動態(tài)審查散列值與從所述存儲器中檢索的所述初始的第二動態(tài)審查散列值進行比較,如果所述期望的第二動態(tài)審查散列值與從所述存儲器中檢索的所述初始的第二動態(tài)審查散列值不匹配,那么,表明所述動態(tài)數據對象是未授權的修改結果。
19.一種用于確保包括一個或多個動態(tài)數據項的動態(tài)數據對象完整性的裝置,所述裝置包括將所述動態(tài)數據對象存入存儲器的邏輯部件;將動態(tài)授權數據存入所述存儲器的邏輯部件;應用第一動態(tài)散列算法、從包括所述動態(tài)數據對象的一個或多個參數產生初始的第一動態(tài)審查散列值的邏輯部件;應用第二動態(tài)散列算法、從包括所述動態(tài)授權數據的一個或多個參數產生初始的第二動態(tài)審查散列值的邏輯部件;將所述初始的第一動態(tài)審查散列值存入所述存儲器的邏輯部件;將所述初始的第二動態(tài)審查散列值存入所述存儲器的邏輯部件;確定用戶是否被授權修改所述動態(tài)數據對象的邏輯部件;如果所述用戶未被授權修改所述動態(tài)數據對象、則執(zhí)行以下操作的邏輯部件調整所述動態(tài)授權數據;將所述調整后的動態(tài)授權數據存入所述存儲器中;應用第二動態(tài)散列算法、從包括所述調整后的動態(tài)授權數據的一個或多個參數產生調整后的第二動態(tài)審查散列值;以及將所述調整后的第二動態(tài)審查散列值存入所述存儲器中;以及如果所述用戶被授權修改所述動態(tài)數據對象,則執(zhí)行以下操作的邏輯部件允許所述用戶修改所述動態(tài)數據對象;將所述修改后的動態(tài)數據對象存入所述存儲器中;應用所述第一動態(tài)散列算法、從包括所述修改后的動態(tài)數據對象的一個或多個參數產生調整后的第一動態(tài)審查散列值;以及將所述調整后的第一動態(tài)審查散列值存入所述存儲器中。
20.如權利要求19所述的裝置,其特征在于從其中產生所述第二動態(tài)審查散列值的所述一個或多個參數還包括與所述動態(tài)數據對象有關的參數;以及所述裝置還包括如果所述用戶被授權修改所述動態(tài)數據對象,則執(zhí)行以下操作的邏輯部件應用所述第二動態(tài)散列算法、從包括所述修改后的動態(tài)數據對象的所述一個或多個參數、所述預確定值以及所述靜態(tài)參數產生調整后的第二動態(tài)審查散列值;以及將所述調整后的第二動態(tài)審查散列值存入所述存儲器中。
21.如權利要求19所述的裝置,其特征在于還包括邏輯部件,它在允許所述用戶修改所述動態(tài)數據對象之前運行、以便確定所述動態(tài)數據對象是否為未授權的修改結果,其中,執(zhí)行所述確定操作的步驟如下應用所述第一動態(tài)散列算法、從包括所述動態(tài)數據對象的所述一個或多個參數產生期望的第一動態(tài)審查散列值;應用所述第二動態(tài)散列算法,從包括所述動態(tài)授權數據的所述一個或多個參數產生期望的第二動態(tài)審查散列值;將所述期望的第一動態(tài)審查散列值與存儲在所述存儲器中的所述初始的第一動態(tài)審查散列值進行比較,如果所述期望的第一動態(tài)審查散列值與存儲在所述存儲器中的所述初始的第一動態(tài)審查散列值不匹配,那么,表明所述動態(tài)數據對象是未授權的修改結果;以及將所述期望的第二動態(tài)審查散列值與存儲在所述存儲器中的所述初始的第二動態(tài)審查散列值進行比較,如果所述期望的第二動態(tài)審查散列值與存儲在所述存儲器中的所述初始的第二動態(tài)審查散列值不匹配,那么,表明所述動態(tài)數據對象是未授權的修改結果。
22.如權利要求21所述的裝置,其特征在于所述動態(tài)數據對象是否為未授權的修改結果的確定是在確定所述用戶是否被授權修改所述動態(tài)數據對象之前進行的。
23.如權利要求19所述的裝置,其特征在于所述第一動態(tài)散列算法與所述第二動態(tài)散列算法相同。
24.如權利要求19所述的裝置,其特征在于所述動態(tài)授權數據包括失敗嘗試計數器值,后者表示為獲得修改所述動態(tài)數據對象的授權已經進行了多少次失敗嘗試。
25.如權利要求19所述的裝置,其特征在于所述裝置在第一設備中實現;以及從其中產生所述第一動態(tài)審查散列值的所述一個或多個參數還包括靜態(tài)參數。
26.如權利要求25所述的裝置,其特征在于所述靜態(tài)參數是將所述第一設備與第二設備區(qū)別開的序列號。
27.如權利要求26所述的裝置,其特征在于從其中產生所述第二動態(tài)審查散列值的所述一個或多個參數還包括所述靜態(tài)參數。
28.如權利要求19所述的裝置,其特征在于所述裝置在第一設備中實現;以及從其中產生所述第二動態(tài)審查散列值的所述一個或多個參數還包括靜態(tài)參數。
29.如權利要求28所述的裝置,其特征在于所述靜態(tài)參數是將所述第一設備與第二設備區(qū)別開的序列號。
30.如權利要求19所述的裝置,其特征在于從其中產生所述第一動態(tài)審查散列值的所述一個或多個參數還包括靜態(tài)審查散列值,所述靜態(tài)審查散列值是通過靜態(tài)散列算法、作為靜態(tài)數據對象的函數產生的。
31.如權利要求30所述的裝置,其特征在于所述靜態(tài)散列算法與所述第一動態(tài)散列算法相同。
32.如權利要求31所述的裝置,其特征在于所述第一動態(tài)散列算法與所述第二動態(tài)散列算法相同。
33.如權利要求19所述的裝置,其特征在于確定所述用戶是否被授權修改所述動態(tài)數據對象的所述邏輯部件包括從所述用戶接收訪問代碼的邏輯部件;以及確定所述訪問代碼是否為授權的訪問代碼的邏輯部件。
34.如權利要求33所述的裝置,其特征在于確定所述訪問代碼是否為所述授權的訪問代碼的所述邏輯部件包括從存儲器檢索加密的授權訪問代碼的邏輯部件;對所述加密的授權訪問代碼進行解密的邏輯部件;以及將所述解密的授權訪問代碼與從所述用戶接收到的所述訪問代碼進行比較的邏輯部件。
35.如權利要求33所述的裝置,其特征在于確定所述訪問代碼是否為所述授權的訪問代碼的所述邏輯部件包括從存儲器檢索加密的授權訪問代碼的邏輯部件;對從所述用戶接收到的所述訪問代碼加密的邏輯部件;以及將所述檢索的加密的授權訪問代碼與從所述用戶接收到的所述加密的訪問代碼進行比較的邏輯部件。
36.一種用于確定存儲在存儲器中的動態(tài)數據對象是否為未授權的修改結果的裝置,所述裝置包括從存儲器中檢索初始的第一動態(tài)審查散列值的邏輯部件;從存儲器中檢索初始的第二動態(tài)審查散列值的邏輯部件;應用第一動態(tài)散列算法從包括所述動態(tài)數據對象的一個或多個參數產生期望的第一動態(tài)審查散列值的邏輯部件;應用第二動態(tài)散列算法從包括所述動態(tài)授權數據的一個或多個參數產生期望的第二動態(tài)審查散列值的邏輯部件;將所述期望的第一動態(tài)審查散列值與從所述存儲器中檢索的所述初始的第一動態(tài)審查散列值進行比較、如果所述期望的第一動態(tài)審查散列值與從所述存儲器中檢索的所述初始的第一動態(tài)審查散列值不匹配、則指示所述動態(tài)數據對象是未授權的修改結果的邏輯部件;以及將所述期望的第二動態(tài)審查散列值與從所述存儲器中檢索的初始的第二動態(tài)審查散列值進行比較、如果所述期望的第二動態(tài)審查散列值與從所述存儲器中檢索的所述初始的第二動態(tài)審查散列值不匹配、則指示所述動態(tài)數據對象是未授權的修改結果的邏輯部件。
全文摘要
通過把動態(tài)數據對象和動態(tài)授權數據存儲在存儲器中來確保包括一個或多個動態(tài)數據項的動態(tài)數據對象的完整性。例如,動態(tài)授權數據可以是為獲得授權進行了多少次失敗嘗試的記數,并且在任何時候進行了另一次失敗嘗試至少要修改所述記數。無論何時都可以修改動態(tài)數據對象和動態(tài)授權數據,其對應的散列值就要重新計算并存回到存儲器中。只有新產生的兩個散列特征值與預先存儲在存儲器中的值匹配時,動態(tài)數據對象才被看作為可信的。對動態(tài)數據對象的修改只能在用戶已經執(zhí)行并通過授權程序后才能進行。
文檔編號G06F21/00GK1466710SQ01816218
公開日2004年1月7日 申請日期2001年9月25日 優(yōu)先權日2000年9月26日
發(fā)明者B·斯梅茨, B 斯梅茨 申請人:艾利森電話股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1