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