專利名稱:認(rèn)證系統(tǒng)的制作方法
認(rèn)證系統(tǒng)本發(fā)明涉及遠(yuǎn)程服務(wù)的認(rèn)證系統(tǒng)。目前,在互聯(lián)網(wǎng)或計(jì)算機(jī)以及通訊網(wǎng)絡(luò)中的許多遠(yuǎn)程服務(wù)通常都使用認(rèn)證它們用戶的裝置。最普遍的是,這種認(rèn)證由用戶以問(wèn)候形式輸入標(biāo)識(shí)符和密碼來(lái)實(shí)現(xiàn)的。但是,這種簡(jiǎn)單且用戶普遍接受的解決方式被認(rèn)為只能提供較低的安全性。例如,用戶選擇的密碼很容易被猜測(cè)出,并且專用的軟件程序能夠在幾分鐘內(nèi)找到大量用戶的密碼。因此,提出了旨在適用于嚴(yán)重問(wèn)題(例如訪問(wèn)銀行操作)的服務(wù)的安全認(rèn)證的多種解決方法。大部分這類解決方法根據(jù)使用特殊安全的器件,最普遍的是智能卡或者芯片卡, 其能夠作為存儲(chǔ)加密的密鑰且能進(jìn)行一定加密計(jì)算的電子保險(xiǎn)箱。這類解決方法的缺點(diǎn)是用戶必須攜帶附加物體。此外,還必須提供接口器件,以便允許智能卡與這類需要魯棒性認(rèn)證的服務(wù)進(jìn)行通訊。因此,通過(guò)使用用戶已擁有的物體(例如用戶的手機(jī)、便攜式電腦或者PDA或者甚至是其個(gè)人電腦)來(lái)提供相當(dāng)于智能卡所具有的安全層級(jí)將是非常有利的。為了解決上述一個(gè)或多個(gè)缺點(diǎn),用于認(rèn)證用戶的系統(tǒng),包括具有認(rèn)證實(shí)體(1)的認(rèn)證裝置(3),所述認(rèn)證裝置包括用于存儲(chǔ)至少一個(gè)狀態(tài)變量的裝置(11),以及可由用戶請(qǐng)求下激勵(lì)驅(qū)動(dòng)的一次性訪問(wèn)代碼的發(fā)生器(2),所述訪問(wèn)代碼包括至少一個(gè)不可預(yù)測(cè)部分并且傳輸至用于核實(shí)的認(rèn)證實(shí)體,所述核實(shí)使用認(rèn)證實(shí)體來(lái)認(rèn)證用戶,其特征在于,所述狀態(tài)變量以隨機(jī)方法由所述認(rèn)證裝置主動(dòng)地在各個(gè)新訪問(wèn)代碼產(chǎn)生前執(zhí)行系統(tǒng)更新,一旦所述狀態(tài)變量已經(jīng)更新,所述發(fā)生器適用于通過(guò)所述至少一個(gè)狀態(tài)變量來(lái)計(jì)算所述訪問(wèn)代碼,并且所述認(rèn)證實(shí)體通過(guò)使用所述認(rèn)證實(shí)體預(yù)先獲知的信息和由已傳輸訪問(wèn)代碼表示的不可預(yù)測(cè)部分,在所述訪問(wèn)代碼的至少部分核實(shí)中,來(lái)修改至少一個(gè)內(nèi)部變量的數(shù)值。這就有可能有效地處理與這類裝置去同步的問(wèn)題,例如當(dāng)用戶沒有傳輸由具計(jì)數(shù)器器件所產(chǎn)生的一個(gè)或多個(gè)代碼或者器件采用電源或者時(shí)鐘設(shè)置不能保證隨著時(shí)間而變化的情況,諸如采用手機(jī)的情況。這種情況所產(chǎn)生的附加優(yōu)點(diǎn)是不需要外部重新同步機(jī)制的介入,例如用戶必須連接遠(yuǎn)程服務(wù)商以執(zhí)行重新同步的情況下,這些機(jī)制是昂貴的或者從安全性的觀點(diǎn)而言不是非常一致的情況,也就是說(shuō),從認(rèn)證系統(tǒng)有效性的觀點(diǎn)而言,例如在核實(shí)認(rèn)證的服務(wù)器授權(quán)計(jì)數(shù)器或時(shí)鐘大量可能性的數(shù)值,使得用戶可能不合理的使用將計(jì)數(shù)器或時(shí)鐘保持在這一范圍內(nèi)。此外,這種方法還有可能有利于處理在本領(lǐng)域所熟知的安全性問(wèn)題,由認(rèn)證裝置中的器件所引起的安全性問(wèn)題,這些認(rèn)證裝置是不依賴硬件安全元件的軟件程序,認(rèn)證裝置可以進(jìn)行復(fù)制和分析并且對(duì)系統(tǒng)的安全性進(jìn)行折衷;相似的,當(dāng)認(rèn)證裝置是要求用戶輸入短密鑰的軟件程序時(shí)、所述密鑰本領(lǐng)域技術(shù)人員較容易實(shí)現(xiàn)且不論認(rèn)證裝置是否存儲(chǔ)該密鑰都不需要與核實(shí)認(rèn)證服務(wù)器進(jìn)行通訊的情況下,這就有利于處理下述問(wèn)題。具體的特征或?qū)嵤├秊? 各個(gè)狀態(tài)變量由單向函數(shù)h進(jìn)行更新,所述單向函數(shù)h具有作為輸入?yún)?shù)的至少一個(gè)專用于所述認(rèn)證裝置的密鑰。 至少一個(gè)可用的第一和一個(gè)第二認(rèn)證層級(jí),例如訪問(wèn)代碼根據(jù)第一或第二層級(jí)來(lái)計(jì)算,第二層級(jí)包括由用戶作為函數(shù)1 輸入?yún)?shù)所輸入的密鑰代碼; 認(rèn)證裝置包括由函數(shù)h更新的多個(gè)狀態(tài)變量,所述h包括一簇具有作為輸入?yún)?shù)的所述狀態(tài)變量的子函數(shù),使得由一個(gè)&子函數(shù)之一所更新的狀態(tài)變量不再被后者作為輸入?yún)?shù)使用; 其包括第一、第二和第三認(rèn)證層級(jí),更新的狀態(tài)變量的數(shù)值隨著所應(yīng)用的認(rèn)證層級(jí)的函數(shù)而變化,因此 在第一認(rèn)證層級(jí)中更新一個(gè)狀態(tài)變量,其他兩個(gè)狀態(tài)變量作為&子函數(shù)的輸入?yún)?shù); 在第二認(rèn)證層級(jí)中更新兩個(gè)狀態(tài)變量,第三個(gè)狀態(tài)變量作為h子函數(shù)的輸入?yún)?shù);以及, 在第三認(rèn)證層級(jí)中更新三個(gè)狀態(tài)變量并且不使用任何狀態(tài)變量作為輸入變量。 其還包括認(rèn)證客戶端以及使用該客戶端的第三認(rèn)證層級(jí),所述認(rèn)證客戶端包括密鑰并適用于根據(jù)由認(rèn)證裝置所產(chǎn)生的訪問(wèn)代碼來(lái)產(chǎn)生第二訪問(wèn)代碼,所述第二訪問(wèn)代碼適用于通過(guò)認(rèn)證實(shí)體來(lái)認(rèn)證用戶。 發(fā)生器包括用于根據(jù)單向函數(shù)foe產(chǎn)生第一數(shù)值的裝置,所述單向函數(shù)to的輸入?yún)?shù)包括至少一個(gè)更新過(guò)的狀態(tài)變量。 發(fā)生器包括 單向函數(shù)Ex,用于產(chǎn)生第二數(shù)值并包括輸入?yún)?shù) 認(rèn)證裝置的密鑰;眷隨機(jī)數(shù)值 一個(gè)具有逆向函數(shù)的函數(shù),適用于疊加由函數(shù)foe和Ex所產(chǎn)生的第一和第二數(shù)值與逆向函數(shù)的函數(shù),疊加的數(shù)值表示訪問(wèn)代碼并且逆向函數(shù)適用于根據(jù)訪問(wèn)代碼來(lái)產(chǎn)生第一和第二數(shù)值。 認(rèn)證實(shí)體適用于以不同的方法來(lái)核實(shí)第二數(shù)值的有效性和第一數(shù)值的有效性; 在有效性的核實(shí)過(guò)程中,認(rèn)證實(shí)體更新內(nèi)部狀態(tài)。 函數(shù)foe至少一個(gè)輸入?yún)?shù)為先前訪問(wèn)代碼產(chǎn)生步驟中由認(rèn)證裝置產(chǎn)生的不可預(yù)測(cè)信息項(xiàng)所更新的狀態(tài)變量。 認(rèn)證裝置和認(rèn)證實(shí)體各自包括時(shí)鐘,并且認(rèn)證裝置適用于在計(jì)算訪問(wèn)代碼中使用參考時(shí)間和時(shí)鐘時(shí)間之間的時(shí)間間隙(time gap),并且僅當(dāng)認(rèn)證實(shí)體在涉及產(chǎn)生所述訪問(wèn)代碼的確定時(shí)間間隔中接受訪問(wèn)代碼時(shí),認(rèn)證實(shí)體適用于核實(shí)訪問(wèn)代碼。 因?yàn)橄到y(tǒng)允許對(duì)多個(gè)服務(wù)進(jìn)行用戶的認(rèn)證,訪問(wèn)代碼由認(rèn)證裝置使用專用給定服務(wù)的代碼來(lái)產(chǎn)生,使得由認(rèn)證實(shí)體對(duì)其的核實(shí)僅對(duì)該服務(wù)進(jìn)行訪問(wèn)。 所述認(rèn)證裝置適用于通過(guò)使用至少一個(gè)專用于服務(wù)、專用于認(rèn)證裝置和時(shí)間間隙的代碼來(lái)計(jì)算第一訪問(wèn)代碼,以及認(rèn)證實(shí)體適用于計(jì)算專用于服務(wù)、專用于認(rèn)證裝置的第二訪問(wèn)代碼,并將其傳輸至用戶,使得用戶可以將其與第一訪問(wèn)代碼進(jìn)行比較,并且因此識(shí)別所確定的服務(wù),僅當(dāng)由認(rèn)證裝置計(jì)算第一訪問(wèn)代碼在相對(duì)于由認(rèn)證實(shí)體計(jì)算第二密鑰代碼的時(shí)間的確定時(shí)間間隔中執(zhí)行并且所述專用于使用服務(wù)和認(rèn)證裝置的代碼都是相同時(shí),則所述第一和第二訪問(wèn)代碼是一致的。本發(fā)明將通過(guò)閱讀下列僅以實(shí)例方式給出的描述及其附圖得以更好的理解,附圖包括
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的認(rèn)證系統(tǒng)的示意圖;圖2A、2B和2C是根據(jù)圖1所示系統(tǒng)的三種不同選擇的操作示意圖;圖3是由圖1所示系統(tǒng)的認(rèn)證裝置計(jì)算訪問(wèn)代碼的流程圖;圖4是由圖1所示系統(tǒng)的認(rèn)證客戶計(jì)算訪問(wèn)代碼的流程圖;圖5是由圖1所示系統(tǒng)的認(rèn)證實(shí)體核實(shí)訪問(wèn)代碼的流程圖;參考圖1,認(rèn)證系統(tǒng)包括作為認(rèn)證服務(wù)器的認(rèn)證實(shí)體1、一個(gè)或多個(gè)認(rèn)證裝置3和一個(gè)或多個(gè)認(rèn)證客戶端5。認(rèn)證裝置3和認(rèn)證客戶端5由系統(tǒng)用戶擁有。服務(wù)器7作為認(rèn)證管理器,用于實(shí)現(xiàn)認(rèn)證裝置、客戶端和實(shí)體使用的安全和多項(xiàng)服務(wù)所需的接口和功能,后者選擇性地作為該闡述的第三方。認(rèn)證實(shí)體1和認(rèn)證管理器7可以組合在同一物理服務(wù)器中,也可以不組合在同一物理服務(wù)器中。認(rèn)證裝置3包括可編程計(jì)算和用戶接口裝置9。用戶接口具體包括用于輸入密鑰密碼的裝置(例如數(shù)值鍵盤),以及用于顯示和/或傳輸訪問(wèn)代碼M的裝置。具體地說(shuō),訪問(wèn)代碼M直接通過(guò)數(shù)據(jù)鏈接傳輸至認(rèn)證實(shí)體,或由用戶觀察認(rèn)證裝置的顯示器并隨后由該用戶在認(rèn)證窗口中輸入或者口述傳輸,或者采用DTMF調(diào)制方式傳輸至例如語(yǔ)音服務(wù)器。認(rèn)證裝置還包括用于存儲(chǔ)一個(gè)或多個(gè)狀態(tài)變量i、j、k以及用于各個(gè)裝置獨(dú)有的密鑰Kl的裝置11。例如,認(rèn)證裝置3可在具有編程執(zhí)行裝置(例如Java虛擬機(jī))的手機(jī)中進(jìn)行編程??蛻舳?還包括可編程計(jì)算和用戶接口裝置13和用于與認(rèn)證實(shí)體1傳輸數(shù)據(jù)(例如通過(guò)因特網(wǎng))的裝置15。具體地說(shuō),客戶端5包括用于存儲(chǔ)各個(gè)客戶端獨(dú)有的密鑰1(3的裝置17,該密鑰可選擇公共密鑰加密算法的私人/公共密鑰對(duì)(pK3,sK3)的類型??蛻舳?通常可在計(jì)算機(jī)上執(zhí)行,例如臺(tái)式計(jì)算機(jī)、筆記本計(jì)算機(jī)、便攜式計(jì)算機(jī)(pocket computers) 或手機(jī)。認(rèn)證管理器7是認(rèn)證裝置3和認(rèn)證實(shí)體1之間的智能接口。該接口在下文所描述的認(rèn)證協(xié)議中透明的并且可選擇性應(yīng)用于后者。然而,在真實(shí)環(huán)境中,認(rèn)證管理器提供在其環(huán)境中易于操作且有效運(yùn)作認(rèn)證系統(tǒng)所需的功能,即其用戶和服務(wù)可使用認(rèn)證系統(tǒng)為用戶提供它們服務(wù)的訪問(wèn)。因此,認(rèn)證管理器7可明確地提供下述功能 實(shí)體的訪問(wèn)控制,用于管理使用認(rèn)證系統(tǒng)的服務(wù)下載發(fā)布(loading spreading)、、認(rèn)證、連接和請(qǐng)求的管理和安全; 處理由這些實(shí)體發(fā)出的對(duì)這些服務(wù)的認(rèn)證請(qǐng)求路由選擇、由靜態(tài)或動(dòng)態(tài)數(shù)據(jù)增強(qiáng)、響應(yīng); 處理由這些實(shí)體發(fā)出的管理或監(jiān)督的請(qǐng)求,無(wú)論該請(qǐng)求是否與系統(tǒng)或與最終用戶相關(guān)創(chuàng)建密鑰并且激活可以應(yīng)用的帳戶(例如,對(duì)由初始“惰性(inert) ”認(rèn)證裝置所產(chǎn)生密鑰的安全傳輸應(yīng)用Diffie-Hellmarm類型的算法)、添加或刪除服務(wù)(例如遠(yuǎn)程服務(wù)、遠(yuǎn)程使用支付卡或會(huì)員卡、權(quán)限管理等); 認(rèn)證客戶端的控制訪問(wèn)認(rèn)證、下載發(fā)布連接及請(qǐng)求的管理和安全; 處理由認(rèn)證客戶端所發(fā)出的管理終端用戶賬戶的請(qǐng)求權(quán)限管理、服務(wù)請(qǐng)求、裝置或認(rèn)證/識(shí)別客戶端的增加、刪除或管理、帳戶恢復(fù)裝置的增加或管理; 在線請(qǐng)求的訪問(wèn)控制和處理(特別是用戶帳戶的恢復(fù))認(rèn)證、下載發(fā)布、請(qǐng)求的處理;以及, 認(rèn)證系統(tǒng)的管理功能。除了計(jì)算裝置20以外,認(rèn)證實(shí)體1還包括裝置22,用于為各個(gè)認(rèn)證裝置和各個(gè)認(rèn)證客戶端存儲(chǔ)密鑰K1、密鑰K3,或者采用公共密鑰加密方法的公共密鑰PK3、認(rèn)證裝置的狀態(tài)變量i、j、k的對(duì)稱狀態(tài)變量ii、jjik,采用離散方式、誤差計(jì)數(shù)器和優(yōu)選的數(shù)據(jù)堆棧π 方式對(duì)應(yīng)于用戶密鑰密代碼的常數(shù)密鑰。參照?qǐng)D2Α、2Β及2C闡述認(rèn)證系統(tǒng)和認(rèn)證協(xié)議的操作。具有服務(wù)的用戶的認(rèn)證通過(guò)傳輸由認(rèn)證實(shí)體1認(rèn)證的訪問(wèn)代碼CA來(lái)執(zhí)行。如果該碼有效,則認(rèn)證實(shí)體允許該用戶訪問(wèn)所請(qǐng)求的服務(wù)。認(rèn)證系統(tǒng)包括用于由認(rèn)證裝置所產(chǎn)生的訪問(wèn)代碼的三種選擇Α、Β和C所反映的三種操作模式訪問(wèn)代碼。選擇A和B產(chǎn)生用于認(rèn)證使用認(rèn)證系統(tǒng)的服務(wù)的訪問(wèn)代碼。如圖2Α所示,選擇A 允許具有因素1的認(rèn)證,其基于認(rèn)證裝置所具有的密鑰Κ1。如圖2Β所示,選擇B允許具有因素2的認(rèn)證認(rèn)證裝置具有密鑰Kl且由持有人輸入密鑰C。如圖2C所示,選擇C產(chǎn)生用于連接認(rèn)證客戶端的訪問(wèn)密鑰CA1,該認(rèn)證客戶端執(zhí)行了將訪問(wèn)代碼CA2傳輸至認(rèn)證實(shí)體的操作,由認(rèn)證裝置計(jì)算而產(chǎn)生不同的訪問(wèn)代碼。選擇C 允許具有因素3的認(rèn)證認(rèn)證裝置具有密鑰Kl以及如選擇B中由持有人所輸入的密鑰C, 和認(rèn)證客戶端具有密鑰Κ3或者sK3/pK3密鑰對(duì)。為選擇授權(quán)使用而做出的選擇的抉擇通常是由用戶所決斷的,因?yàn)镃不具有A和B 相同的功能從持有者的觀點(diǎn)而言,C用于連接認(rèn)證客戶端,同時(shí)A和B用于系統(tǒng)所使用的服務(wù)的授權(quán)。使用A而不使用B的決定或者相反的決定也是取決于持有者。選擇A產(chǎn)生獨(dú)有的鏈接至認(rèn)證裝置的訪問(wèn)代碼,使得獲得該裝置的攻擊者可作為持有者讓自己通過(guò)。選擇B 產(chǎn)生與認(rèn)證裝置和持有者為獲得訪問(wèn)代碼而輸入的個(gè)人密鑰相關(guān)的訪問(wèn)代碼。持有者的個(gè)人密鑰不存儲(chǔ)在認(rèn)證裝置中,但是僅當(dāng)用戶輸入正確的個(gè)人密鑰時(shí),產(chǎn)生的訪問(wèn)代碼才會(huì)正確。然而,系統(tǒng)的某些條件可能迫使用戶使用一種選擇而不是另一種。特別是,認(rèn)證裝置執(zhí)行與多種選擇的同步和異步使用相關(guān)的多種檢測(cè),并且如果需要能夠根據(jù)這些檢測(cè)通過(guò)強(qiáng)制執(zhí)行選擇B來(lái)替換選擇A強(qiáng)制持有者的個(gè)人密鑰的輸入。這些條件將在下文中進(jìn)行闡述,尤其是參考系統(tǒng)誤差的管理。如圖3所示,用于選擇χ的認(rèn)證裝置產(chǎn)生訪問(wèn)代碼包括下述步驟 產(chǎn)生步驟S30,用于產(chǎn)生偽隨機(jī)數(shù)randx ; 計(jì)算步驟S32,用于通過(guò)具有例如狀態(tài)變量k、密鑰K1和隨機(jī)數(shù)randx之一作為輸入?yún)?shù)的函數(shù)Ex來(lái)計(jì)算第一數(shù)M1,,,且表示為M1, x = Ex (k,K1,randx)公式 1 計(jì)算步驟S34,用于通過(guò)具有例如輸入?yún)?shù)狀態(tài)變量j、k、密鑰K1、隨機(jī)數(shù)randx 以及在選擇A中省略的CODE碼數(shù)的函數(shù)Fx計(jì)算狀態(tài)變量i、j和k的新數(shù)值iMW、Jnew和 knew,以及選擇性地包括與認(rèn)證裝置關(guān)聯(lián)的序列號(hào)SNO的函數(shù),且表示為(inew,jnew, knew) = Fx (j,k,Kl,CODE, SN(),randx) 公式 2 計(jì)算步驟S36,用于通過(guò)具有例如新計(jì)算得到的狀態(tài)變量inew、jnew和knew以及在參考時(shí)間與計(jì)算訪問(wèn)代碼的執(zhí)行時(shí)間之間的時(shí)間間隔At的時(shí)間函數(shù)P的結(jié)果作為輸入?yún)?shù)的第三函數(shù)來(lái)計(jì)算第二數(shù)M2, x,且表示為M2, x = Gx (inew,jnew,knew,P (At))公式 3 計(jì)算步驟S38,用于通過(guò)函數(shù)C0nCatx(M1YM2Yrandx)計(jì)算訪問(wèn)代碼,使之有可能根據(jù)訪問(wèn)代碼來(lái)產(chǎn)生M1YM2Yranc^ concat,是其輸入?yún)?shù)連接串的雙射函數(shù),其反函數(shù)是標(biāo)記為S^arerx的函數(shù)。concat,可選擇性地具有密碼的性質(zhì),例如作為實(shí)施部分所執(zhí)行的安全分析所建議的對(duì)稱密鑰加密算法的應(yīng)用。此外,(3011(^、可選擇性地由交錯(cuò)位的連接至輸入?yún)?shù),從而有利于持有者的訪問(wèn)代碼的輸入錯(cuò)誤不影響一個(gè)其他的獨(dú)立輸入?yún)?shù)。索引χ表示選擇A、B或C,并且Ea對(duì)應(yīng)選擇A使用的函數(shù)E的版本。通常,函數(shù)Ex、Fx和&為單向函數(shù),也就是說(shuō),即使知道結(jié)果也不能夠反向獲得輸入?yún)?shù)。哈希函數(shù)是編碼系統(tǒng)所熟知的單向函數(shù)的一個(gè)例子。函數(shù)Ex、Fx和&不作加密(它們是認(rèn)證裝置和認(rèn)證實(shí)體所公知的)。特別是,函數(shù)Ex用于核實(shí)訪問(wèn)代碼的發(fā)生器是否具有認(rèn)證裝置。各個(gè)步驟將進(jìn)行詳細(xì)的闡述,尤其對(duì)根據(jù)所選擇的選擇類型的操作的特有特征。對(duì)于公式1,Ea和&既不是i也不是j的函數(shù),Ec也不是狀態(tài)變量的函數(shù),也就是說(shuō),不是i或j或k的函數(shù)。需要明確的是,如果Ea或&是j的函數(shù),則在選擇B中受到不成功的黑客行為后, 有可能對(duì)初始內(nèi)部狀態(tài)的多次迭代來(lái)實(shí)施對(duì)持有者的個(gè)人密鑰的強(qiáng)行攻擊。這種攻擊可能不能由認(rèn)證實(shí)體檢測(cè)到,因?yàn)閖已經(jīng)在第一次不成功的嘗試之后由認(rèn)證實(shí)體進(jìn)行了更新, 正如下文中所闡述的那樣,當(dāng)用于攻擊所使用的個(gè)人密鑰不正確時(shí),那么匪i也是不正確的。然而,如果Ea為j的函數(shù),這種內(nèi)部狀態(tài)的去同步將損害到持有者的使用(損失步驟的風(fēng)險(xiǎn))。相似的,如果E。為k的函數(shù),這種內(nèi)部的去同步將損害到持有者的使用(損失步驟的風(fēng)險(xiǎn))。另一方面,當(dāng)E。不是k的函數(shù)時(shí),將不會(huì)出現(xiàn)問(wèn)題,因?yàn)?當(dāng)通過(guò)認(rèn)證客戶端傳送的情況中MM1對(duì)選擇C正確時(shí),該認(rèn)證客戶端必然為持有者;以及, 對(duì)攻擊者而言,不可能在不具有持有者的認(rèn)證客戶端的情況下來(lái)測(cè)試具有選擇 C的持有者的個(gè)人密鑰的數(shù)值。對(duì)公式2,函數(shù)Fx用于更新內(nèi)部狀態(tài)i、j和k且具有下述特別特征。Fa返回單一數(shù)值且僅更新內(nèi)部狀態(tài)i。Fb返回一對(duì)數(shù)值且僅更新i和j。F。返回三個(gè)數(shù)值且更新i、j和K。然而,F(xiàn)a不是i的函數(shù),以及Fb既不是i也不是j的函數(shù),F(xiàn)c既不是i也不是j又不是K的函數(shù)。也就是說(shuō),函數(shù)Fx不具有它們所更新的作為輸入函數(shù)的狀態(tài)變量。有利的是,在計(jì)算訪問(wèn)代碼之前執(zhí)行更新,以對(duì)持有者最小化去同步的影響。正如下文所闡述的,認(rèn)證裝置在產(chǎn)生各個(gè)訪問(wèn)代碼時(shí)無(wú)條件地更新其內(nèi)部狀態(tài),同時(shí)除非認(rèn)證成功,認(rèn)證實(shí)體通常不更新對(duì)應(yīng)的內(nèi)部狀態(tài)。CODE數(shù)值對(duì)應(yīng)于常數(shù)e或當(dāng)使用模式B或C時(shí)由用戶輸入的密鑰代碼c的哈希值。值得注意的是,選擇A的函數(shù)Fa不必須使用e作為參數(shù)。因而,內(nèi)部狀態(tài)同時(shí)更新 采用隨機(jī)的方式(使用randx),并且可通過(guò)傳輸?shù)脑L問(wèn)代碼觀察到;以及, 通過(guò)使用密鑰Kl和C,或者甚至j和k的確定但保密的方式,但是不能通過(guò)傳輸訪問(wèn)代碼觀察到。因此, 伴隨選擇A的i的正確更新需要獲知j、k和Kl (Fa密鑰參數(shù)); 伴隨選擇B的i和j的正確更新需要獲知k、Kl和c ; 伴隨選擇C的i、j和k的正確更新需要獲知ΚΙ、K3和C。參考公式3,函數(shù)Gx為單向函數(shù)并且完全取決于相同的參數(shù)inew、jnew、knew和 P (At)。關(guān)于函數(shù)Fx和(^的選擇的唯一額外要求是不論持有者使用選擇的序列(x(n), x(n-l),…),它們的復(fù)合組合G χ (η) °Ρχ (η) °GX (n-1)〇FX (n-1)〇… 不收斂(converge)于由固定點(diǎn)(或周期)。如果使用安全(選擇性阻截)哈希函數(shù)(例如MD5、SHA256等)作為單向函數(shù),則該需求不是真正的需求條件。值得注意的是,這些函數(shù)的參數(shù)不收斂于任何子集,因?yàn)殡S機(jī)數(shù)值!^!!(^插入在各個(gè)訪問(wèn)代碼的產(chǎn)生過(guò)程中,并且如果函數(shù)的組合自身不能收斂于函數(shù)意義,因此這些函數(shù)的結(jié)果較難收斂于一個(gè)數(shù)值或數(shù)值周期。數(shù)值Δ t定義為時(shí)間間隔,用于分隔先前訪問(wèn)請(qǐng)求tref和當(dāng)前請(qǐng)求t。函數(shù)P為At的函數(shù),At可由下述方法根據(jù)第二函數(shù)λ確定λ (At) = E(At/52)modN2 (公式 4)若λ ( Δ t)彡 γ M,則 ρ ( Δ t) = λ (At)否貝1J,則 P ( Δ t) = λ ( Δ t) + σ (公式 5)式中ΥΜ、δ 2、N2和ο必須為正整數(shù)。δ 2為編碼間距且δ 2. N2為λ的偽周期。 具體地說(shuō),隊(duì)可選擇為任意大的整數(shù),例如可由認(rèn)證裝置表示的最大整數(shù),并因而被下述計(jì)算省略。在這種情況下,EO指定為較小的整數(shù)。σ為隨意選擇且需要足夠大,即大于 ΥΜ+β,其中Ym和β為本文下述部分所定義的確切正整數(shù)。根據(jù)公式1至3,可明確至多4個(gè)參數(shù)在各個(gè)訪問(wèn)代碼請(qǐng)求中更新i、j、k和t,ef 可以選擇其對(duì)應(yīng)這類訪問(wèn)代碼請(qǐng)求的時(shí)間作為數(shù)值。因此,如果認(rèn)證裝置檢測(cè)到訪問(wèn)代碼沒有被使用,例如因?yàn)橛脩翩I入取消鍵,則這4個(gè)參數(shù)可以保持它們?cè)谠L問(wèn)代碼請(qǐng)求之前的狀態(tài)。如圖4所示,在選擇C的情況下,由認(rèn)證裝置產(chǎn)生的訪問(wèn)代碼轉(zhuǎn)移至認(rèn)證客戶端。認(rèn)證客戶端通過(guò)步驟40通過(guò)對(duì)訪問(wèn)代碼使用函數(shù)s印are。計(jì)算數(shù)值(M1 ;M2 ; rand)并且隨后計(jì)算數(shù)值 步驟S42,M’ i等于Ed(K3 M1,。),即如果訪問(wèn)代碼輸入正確且其確實(shí)包括持有者的認(rèn)證客戶端時(shí),則為Ed(k ;K3 ;randc); 步驟 S44,Μ’ 2 等于 Gd (K3 ;M2,。),即在相同條件下為 Gd (inew ; Jnew ; knew ;K3 ; P (At))。隨后,在步驟S46中,由認(rèn)證客戶端傳輸?shù)脑L問(wèn)代碼CA2為concat。(Μ' , ;Ψ 2 ; randc)。K3為認(rèn)證客戶端所相關(guān)的密鑰。因?yàn)樵L問(wèn)代碼由電子裝置傳輸至認(rèn)證實(shí)體,這里不限制由認(rèn)證客戶端所計(jì)算和傳輸?shù)脑L問(wèn)代碼的長(zhǎng)度。這樣,根據(jù)本發(fā)明的實(shí)施例,函數(shù)(^d 和&可為同時(shí)被認(rèn)證客戶端與認(rèn)證實(shí)體所獲知的單向函數(shù),或者為采用非對(duì)稱加密方法的消息M’工和Μ’ 2分別的簽名函數(shù),其中K3作為私人密鑰sK3。在這第二種情況下,認(rèn)證實(shí)體具有與SK3相關(guān)的公共密鑰pK3,以便核實(shí)簽名的有效性,即所已傳輸?shù)脑L問(wèn)代碼的有效性。非對(duì)稱加密與使用單向函數(shù)和使用對(duì)認(rèn)證客戶及認(rèn)證實(shí)體端獲知密鑰的方法相比的優(yōu)點(diǎn)在于即使認(rèn)證實(shí)體被破解(compromised)時(shí)仍舊安全(認(rèn)證實(shí)體不具有產(chǎn)生M’ ! 或Μ’ 2的裝置,僅用于核實(shí)它們是否正確)。對(duì)于已滿足的認(rèn)證管理器具有適用且傳統(tǒng)的安全性,則有可能具有選擇C的認(rèn)證作為操作基礎(chǔ),所述操作基礎(chǔ)對(duì)整個(gè)系統(tǒng)的安全性非常敏感(例如,持有者的個(gè)人密鑰代碼的變換、持有者的認(rèn)證裝置的管理等)。非對(duì)稱加密的使用可拓展至在本發(fā)明實(shí)施例的選擇A和選擇B,其中將認(rèn)證裝置所產(chǎn)生的訪問(wèn)代碼傳輸至認(rèn)證實(shí)體,且不通過(guò)持有者的輸入或語(yǔ)音方式,或在實(shí)施例中未充分考慮和提及的簽名方法,使得所產(chǎn)生的訪問(wèn)代碼可由持有者傳輸至認(rèn)證實(shí)體。如圖5所示,認(rèn)證實(shí)體通過(guò)執(zhí)行下述步驟核實(shí)所接收到的訪問(wèn)代碼 檢測(cè)步驟S50,用于檢測(cè)認(rèn)證實(shí)體系統(tǒng)時(shí)鐘的當(dāng)前時(shí)間以及記錄tt本身的數(shù)值; 循環(huán)返回步驟S52,用于如果認(rèn)證客戶端已傳輸訪問(wèn)代碼時(shí),所選擇的類型循環(huán)返回至已獲知的選擇C。否則,實(shí)體檢測(cè)選擇B,然后A,最后C。 確定步驟S54,用于根據(jù)選擇來(lái)確定CODE。對(duì)選擇A,不使用CODE或者CODE為常數(shù),而對(duì)其它選擇,則CODE為密鑰代碼的哈希數(shù)值; 計(jì)算步驟S56,用于通過(guò)對(duì)訪問(wèn)代碼運(yùn)用函數(shù)s印arA來(lái)計(jì)算數(shù)值(Μ^,ρΜ^,,、 rrandx); 計(jì)算步驟S58,用于通過(guò)使用函數(shù)Ex和(^以及由認(rèn)證實(shí)體具有的密鑰來(lái)計(jì)算數(shù)值MM’ iyMM’ 2,x,密鑰對(duì)稱于認(rèn)證裝置所具有的密鑰,而對(duì)選擇C而言由認(rèn)證客戶端所具有密鑰。同時(shí),還使用認(rèn)證實(shí)體的可能參考時(shí)間ttMf與時(shí)間tt之間的時(shí)間間隙Att以及使用函數(shù)Fx來(lái)計(jì)算狀態(tài)變量ii、jj和Ick。 核實(shí)步驟S60,S62,用于核實(shí)匪LpMM2ix以及對(duì)應(yīng)的匪,^x、匪,2,x。該步驟和先前步驟通常對(duì)應(yīng)于采用具有密鑰的對(duì)稱加密中的代碼的核實(shí); 如果訪問(wèn)代碼被核實(shí),除了訪問(wèn)服務(wù)以外,在步驟S64中,認(rèn)證實(shí)體更新內(nèi)部變量ii、j j、Ick和ttref,使之與認(rèn)證裝置保持同步。可以理解的是,系統(tǒng)的特別敏感的要素是保持認(rèn)證裝置與認(rèn)證實(shí)體的同步。為此目的,下文將闡述初始同步時(shí)鐘的問(wèn)題,因此有可能獲得一個(gè)在兩者之間具有相同數(shù)值的時(shí)間間隙的時(shí)間tref、ttMf、t和tt。具體的說(shuō),這有利于使系統(tǒng)在兩個(gè)時(shí)鐘的差異之間具有魯棒性。可假設(shè)^Pmin為訪問(wèn)代碼至認(rèn)證實(shí)體的最小傳輸時(shí)間,即持有者的輸入時(shí)間加上傳輸時(shí)間,在該實(shí)施過(guò)程中持有者必須輸入訪問(wèn)代碼;· Pval為確認(rèn)所產(chǎn)生的訪問(wèn)代碼有效過(guò)程的時(shí)間;· Pfflax為大于Pval的時(shí)間,且超過(guò)Pmax如果持有者沒有在此之前完成,那么可以合理的認(rèn)為持有者不再傳輸訪問(wèn)代碼,則可獲知該代碼不再有效;眷乜為最小時(shí)間以及tM為最大時(shí)間,且在這個(gè)最大時(shí)間中可以合理的認(rèn)為如果第一次失敗之后,持有者將作出第二次認(rèn)證嘗試。下述內(nèi)容需明確· α =Ε((Ρν -ρ_)/δ2);· β =E((Pfflax-Pfflin)/52);· Yffl = E(tffl/52);· y M = E (tM/ δ 2).這就給出了At= Att+Δ。-At,式中 Δ t = tt_t 且 Δ。= ttref_tref。我們可從上式中推導(dǎo)出λ (At) = λ (Att)+E(A),式中 Δ = (r+Δ。-Δ t) / δ 2 且 彡r < δ2。我們假SPmin< Δο< Pvalo可能出現(xiàn)三種情況 如果在有效的時(shí)間中由認(rèn)證實(shí)體接收訪問(wèn)代碼,即Pmin < At < Pval,則可得到 E (-(Pval-Pmin)/δ 2) <Ε(Δ) < l+E((Pval-Pmin)/S2),且因?yàn)?Ε(Δ)為整數(shù),則最終獲得- α彡Ε(Δ)彡α ; 如果在有效時(shí)間之后但在最大輸出時(shí)間之前接收到訪問(wèn)代碼,即Pval < At < Pfflax,則可得到E (- (Pmax-Pmin) / δ2)<Ε(Δ)<1;且因?yàn)棣?Δ)為整數(shù),則最終獲得- β 彡 Ε(Δ) ^ 0 ; 最后,如果Δ t在tm和tM秒之間,則得到Y(jié) m彡λ ( Δ t)彡Y M。相反,如果λ (At)-λ (Att)等于一相關(guān)整數(shù)a,則E((r+A0-At)/52) = a,BPa^ (r+A0-At)/52 < a+1因此Pmin-(1+a) · δ 2 < Δ t < Pval+(1-a) · δ 2這是對(duì)上述驗(yàn)證的三種情況的結(jié)果 如果認(rèn)證實(shí)體認(rèn)為訪問(wèn)代碼有效使得-α彡Ε(Δ) ( α,則在Pval+(1+α ). δ2 之后接收到的訪問(wèn)代碼將不再認(rèn)為有效。 如果雖然超過(guò)計(jì)時(shí),但認(rèn)證實(shí)體認(rèn)為訪問(wèn)代碼為真使得-β彡Ε(Δ)彡-α-1, 則在ρ_+α+β). δ2之后接收到的訪問(wèn)代碼將不會(huì)認(rèn)為為真。 如果認(rèn)證實(shí)體認(rèn)為訪問(wèn)代碼有效使得YmS λ (At) ^ ΥΜ,則如果其是在前一訪問(wèn)代碼產(chǎn)生之后在Ym. \和(YM+1). S2之間的時(shí)刻所產(chǎn)生的,那么即使在去同步的情況下仍舊可以保持訪問(wèn)代碼的有效性。然而,如果在Pval后接收到訪問(wèn)代碼,則必須對(duì)tt進(jìn)行校正,使得在接收下一個(gè)訪問(wèn)代碼時(shí),條件Pmin < AciC Pval仍然保持有效。這情況等效于如果λ (At)-λ (Att)等于一相關(guān)整數(shù)a使得Pval彡P(guān)min-(1+a). δ2,即如果α彡-α-l。因此,對(duì)a ε [-β ;-α-1] 而言,tt在具有數(shù)值tt+(a+a). δ 2的訪問(wèn)代碼認(rèn)證操作的末端進(jìn)行更新。值得注意的是, 該校正 不檢測(cè)所有超時(shí)輸入的情況,因?yàn)镻val和Pmax之間的輸入可能會(huì)得到Ε(Δ) ε [-β ;0]的結(jié)果;現(xiàn)在未檢測(cè)超時(shí)輸入會(huì)產(chǎn)生“斷裂”(disruption),可在下個(gè)步驟中致使排斥有效的訪問(wèn)代碼和及時(shí)輸入(雖然不具有大的概率)。然而,可能通過(guò)接受有效的碼使得Ε(Δ) = α+l以防范這個(gè)問(wèn)題,其表示對(duì)認(rèn)證實(shí)體進(jìn)行附加計(jì)算; 當(dāng)超過(guò)計(jì)時(shí)的輸入被檢測(cè)到且如上述進(jìn)行校正,則不需完全或系統(tǒng)地控制斷裂。然而,在實(shí)際操作中,當(dāng)tt的校正在上述兩個(gè)認(rèn)證嘗試的一個(gè)過(guò)程中完成時(shí),通過(guò)接受代碼為有效的使得Ε(Δ) ε [α+1 ;β]可防范這個(gè)問(wèn)題,在上述兩個(gè)認(rèn)證嘗試中,訪問(wèn)代碼被認(rèn)為為真,其表示對(duì)認(rèn)證實(shí)體進(jìn)行忽略附加計(jì)算,這種情況不具有大的概率。最后,例如ο > ΥΜ+β,上述驗(yàn)證的第三種情況與其余兩種情況完全不同。如果這種條件不能滿足,則上述兩種情況可能在某些情況下不能被區(qū)分開,盡管導(dǎo)致不同步的或在超過(guò)計(jì)時(shí)后的正確輸入因而無(wú)效,認(rèn)證實(shí)體隨意地確定訪問(wèn)代碼是否有效,并因此也隨意地確定是否執(zhí)行t、ef的校正。認(rèn)證裝置的時(shí)鐘的絕對(duì)精度是無(wú)用的,因?yàn)槲ㄒ恢档藐P(guān)注的是時(shí)間差異;同樣,在認(rèn)證裝置時(shí)鐘和認(rèn)證實(shí)體時(shí)鐘之間的差異也是不重要的,因?yàn)樗圆町愑?jì)算進(jìn)行了簡(jiǎn)化。認(rèn)證裝置的時(shí)鐘在長(zhǎng)時(shí)間周期中的相對(duì)精度也是不必需的,因?yàn)槌钟姓邔?huì)在這個(gè)時(shí)間階段中或在最差的情況(第一個(gè)訪問(wèn)代碼不被認(rèn)為是真的)中具有所使用的認(rèn)證裝置。然而,重要的是由持有者使用的認(rèn)證裝置的時(shí)鐘在其“正常”使用量級(jí)周期中的相對(duì)精度保證了在認(rèn)證裝置時(shí)鐘和認(rèn)證實(shí)體時(shí)鐘之間引入的最大差異至多為Pval量級(jí)。在實(shí)際操作中,不對(duì)該時(shí)鐘進(jìn)行約束。除了由上述方法解決時(shí)鐘同步問(wèn)題以外,可以理解的是,在生產(chǎn)環(huán)境中,系統(tǒng)必須具有對(duì)按鍵錯(cuò)誤和黑客企圖的魯棒性,從而保證狀態(tài)變量i、j、k去同步,同時(shí)保持訪問(wèn)代碼的安全性。為此,在所示實(shí)施例中,使用了選擇A,B和C的混合體,根據(jù)某些環(huán)境保留訪問(wèn)代碼的使用和狀態(tài)i、j、k的更新的歷史記錄。認(rèn)證裝置具有標(biāo)記optionB。如果使用選擇B或C,則標(biāo)記optionB設(shè)置為FALSE。如果認(rèn)證裝置意識(shí)到認(rèn)證嘗試使用對(duì)未通過(guò)選擇A所產(chǎn)生的訪問(wèn)代碼(例如,持有者可能在認(rèn)證裝置上具有一個(gè)選擇,用于指示認(rèn)證嘗試的失敗),則內(nèi)部狀態(tài)optionB設(shè)置為TRUE。在下述情況下強(qiáng)制執(zhí)行選擇B(因此取代由持有者所選擇的選擇A) 對(duì)選擇A的認(rèn)證嘗試失敗如果這個(gè)失敗情況是在認(rèn)證裝置和認(rèn)證實(shí)體之間的內(nèi)部狀態(tài)j去同步的情況,則使用選擇B允許重新同步。這個(gè)情況不由認(rèn)證實(shí)體進(jìn)行檢測(cè) (在不考慮選擇的認(rèn)證失敗后,不排斥選擇A產(chǎn)生的訪問(wèn)代碼); 選擇A連續(xù)使用的數(shù)值超出了在系統(tǒng)設(shè)計(jì)過(guò)程中所設(shè)置的閾值。其目的在于限制有效訪問(wèn)代碼的數(shù)值,這樣可無(wú)須輸入持有者的密鑰而產(chǎn)生,特別是在認(rèn)證裝置被盜的情況下。選擇和附加的是,對(duì)認(rèn)證裝置的訪問(wèn)必須受一個(gè)簡(jiǎn)單密碼的限制。這個(gè)檢測(cè)的第二目的在于保證內(nèi)部狀態(tài)j的最小刷新速度。相似的檢測(cè)由具有稍小于嚴(yán)格閾值的認(rèn)證實(shí)體來(lái)執(zhí)行,使得如果選擇B不能在認(rèn)證裝置一側(cè)很快強(qiáng)制執(zhí)行,而不發(fā)生認(rèn)證的錯(cuò)誤; 在設(shè)定時(shí)間周期中選擇A的連續(xù)使用數(shù)值大于在系統(tǒng)設(shè)計(jì)過(guò)程中所設(shè)定的閾值。這一目的是相似的,該檢測(cè)更具體地針對(duì)于認(rèn)證裝置被盜情況下阻止具有選擇A的訪問(wèn)代碼的“防御性存儲(chǔ)”。該檢測(cè)還能夠由認(rèn)證實(shí)體來(lái)實(shí)施,用于核實(shí)諸如λ ε [Ym ; Ym]的為選擇A所產(chǎn)生的可靠的訪問(wèn)代碼構(gòu)成的連續(xù)認(rèn)證嘗試的數(shù)值不超過(guò)在系統(tǒng)設(shè)計(jì)過(guò)程中所設(shè)置的閾值。在選擇B的連續(xù)失敗的情況下(并且失敗的次數(shù)滿足一定數(shù)量)這可能僅為持有者標(biāo)識(shí)符或選擇B的數(shù)據(jù)塊的輸入重復(fù)錯(cuò)誤導(dǎo)致的結(jié)果,認(rèn)證裝置建議持有者重新產(chǎn)生認(rèn)證裝置的密鑰以對(duì)選擇B去阻止。具有兩個(gè)認(rèn)證要素(認(rèn)證裝置和持有者的個(gè)人密鑰代碼)的去阻止概率的數(shù)值也可由內(nèi)部狀態(tài)erreUrCOdeB的特性通過(guò)認(rèn)證實(shí)體進(jìn)行檢測(cè),并且限制在稍大于seuilcodq的數(shù)值。超過(guò)這個(gè)數(shù)值,則選擇B可能就不能僅通過(guò)認(rèn)證裝置的操作進(jìn)行去阻止;為此目的,持有者必須使用選擇C和認(rèn)證客戶端。上述檢測(cè)尤其有可能使之(并不是他們的唯一目的)檢測(cè)內(nèi)部狀態(tài)的重新更新的速度。還必須保證已產(chǎn)生的訪問(wèn)代碼可以再次產(chǎn)生的極小概率,因?yàn)閹缀蹩梢源_認(rèn)進(jìn)行嘗試攻擊。對(duì)選擇C而言,如果正在執(zhí)行公式G。和產(chǎn)生隨機(jī)數(shù)rand。,則三元組(i、j、k)的可能數(shù)值是與可能隨機(jī)字rand。的數(shù)值Rand。相同(即假設(shè)!^(^λ (At)是固定的訪問(wèn)代碼的數(shù)值)。因此,該實(shí)施方式一方面必須選擇足夠大的Rand。,另一方面在認(rèn)證客戶端上檢測(cè)密鑰代碼c的重建頻率是充分高的,例如強(qiáng)制在與認(rèn)證客戶端的一些連接之后的c的重建頻率等于Rand。/P。,其中P。是在系統(tǒng)設(shè)計(jì)過(guò)程中所設(shè)置的閾值。如果認(rèn)證裝置不能存儲(chǔ)在兩個(gè)c重建之間所使用的rand。數(shù)值,則P。必需設(shè)置成第二次產(chǎn)生相同數(shù)值rand。的概率非常小?!凹o(jì)念日理論” (anniversaries theorem)指出該閾值是非常小的,因此,在該實(shí)施例中,Rand。本身就相對(duì)較小并且需要優(yōu)先使用,以便防止對(duì)于Rand。的重建而言c的重建頻率過(guò)快,偽隨機(jī)發(fā)生器的特性保證了在沒有沖突風(fēng)險(xiǎn)的情況中,可以產(chǎn)生rand。的大部分?jǐn)?shù)值Rand。。然后,認(rèn)證實(shí)體存儲(chǔ)在兩個(gè)c重建之間由選擇C(或隨機(jī)字rand。)產(chǎn)生的訪問(wèn)編碼,并且拒絕已經(jīng)使用的訪問(wèn)代碼(或由已經(jīng)使用的隨機(jī)字rand。產(chǎn)生的訪問(wèn)代碼)。對(duì)于選擇B,如果正在執(zhí)行公式Gb和產(chǎn)生隨機(jī)數(shù)值randBJlJ可能的數(shù)值對(duì)(i,j) 的數(shù)值(即假設(shè)k、ΚΙ、C、λ (At)是固定的訪問(wèn)代碼的數(shù)值)等于可能的隨機(jī)字randBm 數(shù)值RandB。因此,實(shí)施例必須一方面選擇足夠大的RandB,另一方面檢查滿足k的重建頻率 (作為最小數(shù)值)。然后,認(rèn)證實(shí)體存儲(chǔ)在兩個(gè)k重建之間由選擇B (或隨機(jī)字randB)產(chǎn)生的訪問(wèn)代碼,并且拒絕已經(jīng)使用的訪問(wèn)代碼(或由已經(jīng)使用的隨機(jī)字randB產(chǎn)生的訪問(wèn)代碼)。對(duì)于選擇A,如果正在執(zhí)行公式Ga和產(chǎn)生隨機(jī)數(shù)值randA,則可能的內(nèi)部狀態(tài)i的數(shù)值(即假設(shè)j、k、Kl、c,λ (At)為固定的訪問(wèn)代碼的數(shù)值)等于可能的隨機(jī)字randAm 數(shù)值RandA。因此,該實(shí)施例必須一方面選擇足夠大的RandA,另一方面檢查j的重建頻率 (作為最小數(shù)值)是否充分滿足,上述是通過(guò)使用強(qiáng)制選擇B的檢測(cè)機(jī)制之一來(lái)實(shí)施的。認(rèn)證實(shí)體存儲(chǔ)在兩個(gè)j重建之間由選擇A(或隨機(jī)字randA)產(chǎn)生的訪問(wèn)代碼,并且拒絕已經(jīng)使用的訪問(wèn)代碼(或由已經(jīng)使用的隨機(jī)字randA產(chǎn)生的訪問(wèn)代碼)。因此,在認(rèn)證裝置和認(rèn)證實(shí)體之間的內(nèi)部狀態(tài)i、j、k和tref的同步由下述方法實(shí)施 更改為“更高的”選擇,例如在認(rèn)證失敗的情況下,從選擇A更改到選擇B (艮口, 重新同步除了 i、j、k以外的更多內(nèi)部狀態(tài)); 認(rèn)證實(shí)體將Ml為正確而M2為不正確的訪問(wèn)代碼存儲(chǔ)于訪問(wèn)代碼接收存儲(chǔ)器的數(shù)據(jù)堆棧η中; 檢測(cè)有效但由認(rèn)證實(shí)體超時(shí)接收到的或不能對(duì)應(yīng)必要選擇的訪問(wèn)代碼;·由認(rèn)證實(shí)體有條件地根據(jù)所提供的認(rèn)證訪問(wèn)代碼來(lái)更新內(nèi)部狀態(tài); 限制訪問(wèn)代碼λ ε [Ym; YJ的認(rèn)證,即在另一個(gè)訪問(wèn)代碼考慮到第一訪問(wèn)代碼沒有被認(rèn)證實(shí)體所接收的情況,而立即產(chǎn)生。這一范圍內(nèi)的裝置有可能在持有者單一鍵出錯(cuò)的情況中避免任何去同步,也就是 當(dāng)持有者提示認(rèn)證裝置如果這樣的選擇存在,則不傳輸所產(chǎn)生的訪問(wèn)代碼; 對(duì)于需要認(rèn)證的服務(wù),產(chǎn)生的訪問(wèn)代碼或者持有者的標(biāo)識(shí)符的不正確傳輸。在這些情況下,認(rèn)證實(shí)體接收非訪問(wèn)代碼或不認(rèn)為其是由持有者發(fā)出; 對(duì)于選擇B或C的使用,不正確的個(gè)人代碼的輸入; 訪問(wèn)代碼的超時(shí)傳輸; 不正確選擇的使用。在由多次鍵入錯(cuò)誤導(dǎo)致去同步的情況中,重新同步在最壞的情況下通過(guò)持有者做出的第二次正確認(rèn)證嘗試來(lái)保證。這一范圍內(nèi)的裝置有可能在另一方面避免由于訪問(wèn)嘗試而引起的任何去同步 如果攻擊者具有認(rèn)證裝置或者復(fù)制品,但是沒有持有者的個(gè)人密鑰或持有者的認(rèn)證客戶端,包括對(duì)選擇A而言,因?yàn)槿绻x擇A的認(rèn)證成功,則數(shù)據(jù)堆棧π不被清空;以及此外; 如果攻擊者不具有認(rèn)證裝置。然而,可以理解的是,在認(rèn)證實(shí)體中,防止攻擊可能去同步和保護(hù)是指用于核實(shí)訪問(wèn)代碼的算法為了考慮這些風(fēng)險(xiǎn)而進(jìn)行了修改。χ、η、λ在他們各自定義組合中以同中心算法循環(huán)變化(χ變換最大,然后是η,接著是λ)·χ示出訪問(wèn)代碼產(chǎn)生的選擇,如果訪問(wèn)代碼已經(jīng)由認(rèn)證客戶端傳輸,則仍為選擇C,否則持續(xù)為B、A和C; 對(duì)于存儲(chǔ)在π中的各個(gè)數(shù)值t、,n而言,Attn = tt_t、,n的索引η由最近存儲(chǔ)的數(shù)值開始(當(dāng)前指定為ttMf);· λ為在下述中連續(xù)為正或零整數(shù)■ [ σ +λ (Δ ttn) - α ; σ + λ ( Δ ttn) + α +1]■選擇 B 和 C 的[Ym ; ΥΜ]■僅當(dāng)在訪問(wèn)代碼確認(rèn)可信的前兩次認(rèn)證嘗試之一的過(guò)程中已經(jīng)對(duì)ttref進(jìn)行了校正時(shí),[σ + λ ( Δ ttn) + α +2 ; σ + λ ( Δ ttn) + β ]■ [ σ +λ (Δ ttn) - β ; σ +λ (Δ ttn)-α -1]盡管較為復(fù)雜,但是,由認(rèn)證實(shí)體做出的計(jì)算數(shù)值實(shí)際上仍對(duì)認(rèn)證裝置的正常使用有很大的限制 匪u的1至3次計(jì)算用于確定產(chǎn)生訪問(wèn)代碼所使用的選擇X,因?yàn)楫?dāng)發(fā)現(xiàn)與^1, ,匹配,則不考慮隨后的選擇;·ΜΜ2,χ,η,λ的1至2α+1次計(jì)算用于確定λ的校正數(shù)值(參數(shù)選擇例如可以為 α = 1或者因此相關(guān))。計(jì)算可以為更多次數(shù)的 當(dāng)訪問(wèn)代碼的輸入超時(shí)直至ΜΜ2,χ,η,λ的附加計(jì)算,即典型的參數(shù)選擇為 2 ; 如果由攻擊者使用認(rèn)證裝置來(lái)產(chǎn)生具有選擇A的連續(xù)訪問(wèn)代碼直至 Oa+l)*SeUilA的附加計(jì)算,其中seuilA是認(rèn)證實(shí)體所接受的選擇A產(chǎn)生的連續(xù)訪問(wèn)代碼的最大數(shù)值; 如果在認(rèn)證裝置被盜后的攻擊嘗試,或如果由持有者不正確地輸入個(gè)人密鑰代碼直至Oa+l)*(Seuil。。deA+SeUil。。deB)的附加計(jì)算,或如果用戶(攻擊者或持有者) 還具有持有者的認(rèn)證客戶端時(shí),則甚至可達(dá)(2 α +l)*(seuilcodeA+seuilcodeB+seuiIcodec) 0 SeUil。。M表示在鎖定該選擇使用前的認(rèn)證實(shí)體可接受的連續(xù)錯(cuò)誤(在選擇χ中)的最大數(shù)值。當(dāng)形成累加時(shí),則這些數(shù)值相乘,但是因?yàn)檫@些數(shù)值是相互獨(dú)立的,這樣累加的發(fā)生概率較低。在任何情況下,由具有持有者認(rèn)證裝置的攻擊所直接引起的附加計(jì)算唯一原因?yàn)槠湓谧顗牡那闆r中導(dǎo)致執(zhí)行Oa+l)*(SeUil。。deA+SeUil。。deB)的附加計(jì)算,并且如果大小設(shè)置正確,則難以對(duì)認(rèn)證系統(tǒng)拒絕的服務(wù)形成攻擊,這正是本發(fā)明的目的。在這些循環(huán)中,執(zhí)行下述步驟· CODE選取適用選擇A的數(shù)值e,并且適用選擇B和C的密鑰哈希數(shù)值(hash value)H (cc)?!?(MMljx ;MM2jx ;rrandx)的數(shù)值通過(guò)對(duì)訪問(wèn)代碼使用函數(shù)^pari5x進(jìn)行計(jì)算。當(dāng)訪問(wèn)代碼是由認(rèn)證實(shí)體通過(guò)認(rèn)證客戶端獲得的,則函數(shù)s印are。提供匪,i和匪,2 和MM2 然后分別根據(jù)MM’工和MM’ 2通過(guò)使用非對(duì)稱加密方法和公共密鑰pK3或?qū)ΨQ密鑰Κ3進(jìn)行計(jì)算。 表示為匪,u的整數(shù)如同Ex (kk ;rrandx)進(jìn)行計(jì)算;眷核實(shí)匪^x的有效性· seuil在Seuilmin處進(jìn)行初始化; 如果tt_ttlast < seuil并且訪問(wèn)代碼還沒有通過(guò)認(rèn)證客戶端進(jìn)行傳輸, 如果對(duì)選擇χ而言匪,u和匪u相等,并且randx還沒有被用于該選擇,則 erreurM1設(shè)置為0,seuil設(shè)置為Seuilmin,ttlast設(shè)置為tt,tt被加入數(shù)據(jù)堆棧^。對(duì)堆棧增加tt通過(guò)避免與認(rèn)證實(shí)體相關(guān)認(rèn)證裝置的任何去同步限制持有者對(duì)該機(jī)制的可能影響; 否則,不對(duì)erreurM1進(jìn)行加值,且如果erreurM1彡seuilM1,則seuil設(shè)置為實(shí)施例所允許的最大數(shù)值; 在任何情況中,拒絕認(rèn)證以及停止核實(shí)訪問(wèn)代碼的操作。該機(jī)制旨在如果自最后訪問(wèn)代碼檢測(cè)開始的時(shí)間小于seuil時(shí),在沒有檢測(cè)任何訪問(wèn)代碼的情況下通過(guò)拒絕來(lái)避免在訪問(wèn)代碼上強(qiáng)制執(zhí)行的攻擊。 如果tt_ttlast彡seuil或者訪問(wèn)代碼已經(jīng)通過(guò)認(rèn)證客戶端傳輸 如果對(duì)于選擇χ而言匪,i, x和^1, x相等,并且randx還沒有用于該選擇,則 erreurM1設(shè)置為0,seuil設(shè)置為Seuilmin,ttlast設(shè)置為tt,訪問(wèn)代碼的認(rèn)證操作將在下文闡述; 否則,不對(duì)erreui~M1進(jìn)行加值,拒絕認(rèn)證,停止操作,并且如果 erreurM1彡seuilmaxM1,則seuil設(shè)置為由實(shí)施例允許的最大數(shù)值。 如果對(duì)應(yīng)選擇A的索引χ和erreur。。deA的數(shù)值大于seuil。。deA,則停止訪問(wèn)代碼的核實(shí)操作,拒絕認(rèn)證; 如果對(duì)應(yīng)選擇B的索引χ和erreur。。deB的數(shù)值大于seuil。。deB,則停止訪問(wèn)代碼的核實(shí)操作,拒絕認(rèn)證; 如果對(duì)應(yīng)于選擇C的索引χ和訪問(wèn)代碼已經(jīng)通過(guò)認(rèn)證客戶端提供,并且 erreurcodeC的數(shù)值大于seuil。。-,則停止訪問(wèn)代碼的核實(shí)操作,拒絕認(rèn)證; 所述(iinew ;Jjnew ;kknew)采用上述 Fx (jj ;kk ;Kl ;code ;SN() ;rrandx)數(shù)值進(jìn)行計(jì)算(X的各個(gè)新的數(shù)值); 標(biāo)記為匪,2,x,n,A的數(shù)值如同(^iinew ;JJnew ;kknew ; λ )進(jìn)行計(jì)算。 如果匪’ 2,χ,η,λ和MM2,χ相等,則訪問(wèn)代碼對(duì)選擇X,參數(shù)η和λ是可信的,并且在選擇X的協(xié)助下,對(duì)其進(jìn)行存儲(chǔ),或者存儲(chǔ)字randx。其他選擇和參數(shù)的分析不再繼續(xù)。在更新內(nèi)部狀態(tài)和下述步驟后終止操作 以數(shù)值(iinew ;Jjnew ;kknew)來(lái)更新(ii ;jj ;kk); 除了選擇A以外清空數(shù)據(jù)堆棧; 對(duì)于對(duì)應(yīng)選擇A的索引χ而言,erreur。。deA設(shè)置為0 ; 對(duì)于對(duì)應(yīng)選擇B的索引χ而言,erreur。。deA和erreur。。deB設(shè)置為0 ; 對(duì)于對(duì)應(yīng)選擇C的索引χ而言,并且如果訪問(wèn)代碼已經(jīng)通過(guò)認(rèn)證客戶端提供,則 erreurcodeA> erreurcodeC 和 Θη·Θ ιι·Μ(ω 設(shè)置為 0 ; 如果χ不對(duì)應(yīng)于所期望的選擇,則拒絕認(rèn)證并且僅執(zhí)行下述檢測(cè)參如果λ在[σ+λ (Attn)-α ; σ+λ (Attn) + a+l]中,或?qū)τ谶x擇B或C而言在[Ym ; Ym]中,則接受認(rèn)證,并且不進(jìn)行下述的檢測(cè);參如果λ在[σ+λ (Attn) + a+2 ;σ+λ (Δ η) + β]中并且ttref校正在認(rèn)證代碼被認(rèn)為可信的兩次先前的認(rèn)證嘗試中的一次過(guò)程中完成,則接受認(rèn)證,并且不進(jìn)行下述的檢測(cè);參如果λ 在[σ + λ ( Δ ttn) - β ; σ + λ ( Δ ttn) _ a -1]中,則拒絕認(rèn)證并且 ttref 通過(guò)數(shù)值tt+(a-p). δ2更新(包括π)。 如果匪’ Iuj和匪^不相等,算法循環(huán)由λ、η、χ的其他數(shù)值繼續(xù)。如果不能獲得相等的情況,則訪問(wèn)代碼是不可信的并且拒絕認(rèn)證。通過(guò)下述方法更新內(nèi)部狀態(tài),以終止訪問(wèn)代碼的認(rèn)證操作 僅對(duì)于對(duì)應(yīng)選擇B的索引X,以數(shù)值(iinew ;Jjnew ;kknew)來(lái)更新(ii ; jj ;kk); 將tt加入數(shù)據(jù)堆棧中; 對(duì)于對(duì)應(yīng)選擇A的索引X,將erreur。。deA增加一個(gè)單位; 對(duì)于對(duì)應(yīng)選擇B的索引X,將erreur。。deB增加一個(gè)單位; 對(duì)于對(duì)應(yīng)選擇C的索引X,并且如果訪問(wèn)代碼已經(jīng)通過(guò)認(rèn)證客戶端應(yīng)用,則將 erreur。。fejf加一個(gè)單位。 如果和^1, x相等,但MM2不會(huì)等于MM2, χ, η, λ,則訪問(wèn)代碼無(wú)效,但是在某些情況中有一更新內(nèi)部狀態(tài)ii、jj和kk的數(shù)值。在選擇A的情況中,這樣表示沒有風(fēng)險(xiǎn)或數(shù)值,因此不執(zhí)行更新。在選擇B的情況中,該更新表示 安全協(xié)議沒有安全性風(fēng)險(xiǎn)希望與下一認(rèn)證步驟同步的攻擊實(shí)際上將必須提供準(zhǔn)確的個(gè)人代碼,不論是否執(zhí)行更新; 沒有特別的去同步的風(fēng)險(xiǎn); 沒有對(duì)個(gè)人代碼強(qiáng)制攻擊的風(fēng)險(xiǎn)如果由內(nèi)部狀態(tài)更新將導(dǎo)致這樣的情況,在下一個(gè)認(rèn)證嘗試的過(guò)程中,使得MM1和MM1, x不再相等(理論上,由“多次迭代”的攻擊是可能的),但是MM1既不取決于ii也不取決jj,它們是僅為選擇B所更新的兩個(gè)內(nèi)部狀態(tài); 具有優(yōu)勢(shì),因?yàn)闋顟B(tài)jj根據(jù)H(C)進(jìn)行更新,則成功獲得認(rèn)證裝置(或者甚至對(duì)其進(jìn)行逆向工程)的攻擊者不再具有對(duì)于選擇A的成功認(rèn)證,因?yàn)槠渲辽儆幸淮螄L試,如果他不知道持有者的密鑰,那么這樣通過(guò)選擇B的情況就一定不會(huì)成功。在選擇C的情況中,分析稍微有些不同,并且導(dǎo)致不更新內(nèi)部狀態(tài)ii、jj、kk。特別是,在這類更新之后,如果選擇A或B由攻擊者使用,則MM1和^1, x不再相等(因?yàn)槭莐的公式),其中理論上允許對(duì)個(gè)人密鑰代碼進(jìn)行“多次迭代”強(qiáng)行實(shí)施的攻擊,并且不能被認(rèn)證實(shí)體檢測(cè)到。如果滿足下述3個(gè)條件,則訪問(wèn)代碼可被知道它的攻擊者使用-持有者之前沒有對(duì)其使用過(guò);-攻擊者在訪問(wèn)代碼有效期之前或在上述已經(jīng)選擇為任意大小的偽周期之后的核實(shí)過(guò)程中使用;-同時(shí),持有者沒有對(duì)產(chǎn)生大于由攻擊者所更新的輸入訪問(wèn)代碼的更多內(nèi)部狀態(tài)的選擇輸入訪問(wèn)代碼。除了認(rèn)證裝置被盜的情況以外,這還需要攻擊者監(jiān)聽認(rèn)證信道,并且在持有者嘗試前執(zhí)行到達(dá)認(rèn)證實(shí)體的攻擊。如果持有者的嘗試沒有被禁止或不正確的導(dǎo)向,則攻擊只能通過(guò)迅速代替持有者的嘗試來(lái)執(zhí)行因此,在一個(gè)實(shí)施例的情況中,認(rèn)證實(shí)體必須知道怎樣檢測(cè),以及拒絕對(duì)同一持有者通過(guò)同一訪問(wèn)代碼幾乎同時(shí)的認(rèn)證請(qǐng)求。因此,上述能有效處理技術(shù)問(wèn)題的系統(tǒng)和協(xié)議可以對(duì)它們進(jìn)行設(shè)置,它們?cè)试S 一種對(duì)與持有者完全屏蔽潛在復(fù)雜性的使用,特別注意的是,它能維持內(nèi)部狀態(tài)的同步并且更新這些內(nèi)部狀態(tài); —種強(qiáng)力認(rèn)證,其既不使用保護(hù)認(rèn)證裝置密鑰數(shù)據(jù)的物理裝置(例如智能卡), 也不使用將信息從認(rèn)證實(shí)體傳輸至認(rèn)證裝置的技術(shù)裝置,還不需要在認(rèn)證裝置中使用穩(wěn)定的時(shí)鐘。本發(fā)明已經(jīng)參考附圖和上文作了詳細(xì)的闡述。上文中的闡述必須視為作為一種說(shuō)明,并且給出了實(shí)施例,并且本發(fā)明不限制于上述說(shuō)明。許多變化實(shí)施例都是可能的。在第一變化例中,系統(tǒng)包括操作選擇B相似的選擇B’。在k的去同步情況中,不可能要求用戶使用選擇C,因?yàn)樗荒芡瓿蛇@樣的操作并且“屏蔽”方法也不能完成這樣的操作,因?yàn)檫@必須能區(qū)分出認(rèn)證實(shí)體上的多種選擇。然后,由認(rèn)證裝置和認(rèn)證實(shí)體進(jìn)行類似于 C選擇來(lái)執(zhí)行選擇B’,特別是對(duì)變量的更新,但是作為選擇B來(lái)使用,即通過(guò)持有者輸入密鑰代碼而不是通過(guò)認(rèn)證客戶端輸入密鑰代碼的情況。在選擇B認(rèn)證失敗的情況下,如果認(rèn)證裝置因此獲得信息,則強(qiáng)制執(zhí)行選擇B’。選擇B’還用于強(qiáng)制保證內(nèi)部狀態(tài)k的最小更新速度。此外,認(rèn)證實(shí)體檢測(cè)選擇B’的合理使用。在第二變化例中,用于計(jì)算字M2的函數(shù)&還是沒有更新初始狀態(tài)的函數(shù)。更具體的說(shuō),Dj 的函數(shù)(除了 inew,Jnew 和 knew 以外);Uk 的函數(shù)(除了 inew,Jnew 和 knew 以外);· Gc 為 j 和 k 的函數(shù)(除了 inew,Jnew 和 knew 以外)。該變化例的目的在于用戶個(gè)人密鑰代碼不能成為強(qiáng)制攻擊的目標(biāo),即使在攻擊者實(shí)施認(rèn)證裝置的逆向工程的情況下。我們可以具體假設(shè),該逆向工程已經(jīng)開始進(jìn)行,因此攻擊者在給定時(shí)刻清楚地獲知I、SN和(i、j、k)。如果攻擊者接著嘗試獲得由持有者通過(guò)選擇C計(jì)算的有效訪問(wèn)代碼,那么在理論上攻擊者可以很容易實(shí)現(xiàn)對(duì)持有者個(gè)人密鑰代碼的強(qiáng)制攻擊,因?yàn)檫x擇的訪問(wèn)代碼僅基于K1和SN(可由逆向工程獲得),P (At)(它可對(duì)其作一些假設(shè))以及H (C)。攻擊包括嘗試通過(guò)改變c和P (At)來(lái)重新產(chǎn)生訪問(wèn)代碼的數(shù)值而不再需要認(rèn)證實(shí)體的傳輸,并因此不需要后者檢測(cè)的可能。如果,另一方面,不論所使用的選擇如何,訪問(wèn)代碼是在訪問(wèn)代碼中的一個(gè)或多個(gè)沒有傳輸?shù)膬?nèi)部狀態(tài)的函數(shù),并且不僅是取決于逆向工程能夠訪問(wèn)的常數(shù)數(shù)值,而且還是攻擊者在他執(zhí)行強(qiáng)制攻擊時(shí)必須考慮的常數(shù)數(shù)值。在一個(gè)實(shí)際的實(shí)施例中,由個(gè)人密鑰代碼可能數(shù)值所產(chǎn)生兩個(gè)內(nèi)部狀態(tài)的可能數(shù)值遠(yuǎn)大于(通常大于2~50)可能的訪問(wèn)代碼(可能不包括字rancU的數(shù)值,這就是說(shuō),強(qiáng)制攻擊將為所有可能的個(gè)人密鑰代碼數(shù)值提供多個(gè)結(jié)果(內(nèi)部狀態(tài)的數(shù)值以及P (ΔΟ的偽(plausible)數(shù)值),因此使得攻擊者難以區(qū)分該數(shù)值。實(shí)際上,如果攻擊者假設(shè)攻擊者已經(jīng)獲得的訪問(wèn)代碼正是在逆向工程操作后所產(chǎn)生的,也就是說(shuō),通過(guò)改變字randx(小于未知的內(nèi)部狀態(tài))來(lái)實(shí)現(xiàn)攻擊;在該變化例的典型實(shí)施方法中,在逆向工程后產(chǎn)生訪問(wèn)代碼的2至3個(gè)步驟之后,個(gè)人密鑰代碼變得難以區(qū)分,強(qiáng)制攻擊產(chǎn)生每個(gè)個(gè)人密鑰代碼的可能數(shù)值。如果所使用的函數(shù)Fx是“充分映射的”(sufficiently injective),即使是從第一步驟開始也有相當(dāng)?shù)目赡?,?qiáng)制攻擊可由攻擊者產(chǎn)生很多能夠直接使用的結(jié)果(通常5個(gè))。因此,僅可能保留的強(qiáng)制攻擊的可能性包括在逆向工程之后,或相同的在黑客截取在逆向工程和強(qiáng)制攻擊之間所產(chǎn)生的所有訪問(wèn)代碼(字randx),攻擊者攔截由持有者計(jì)算的第一訪問(wèn)代碼,各種這類情況都是在技術(shù)上可行的,但不是非常的現(xiàn)實(shí)。在該第二變化例中,沒有更新的內(nèi)部狀態(tài)(i、j、k)由內(nèi)部狀態(tài)h在foe的計(jì)算過(guò)程中替換。該變化例的目的在于降低對(duì)具體可能發(fā)生在第二變化例中的去同步狀況的敏感度,同時(shí)提供如同第二變化例的相同安全性的優(yōu)勢(shì)。為此目的,在步驟η中對(duì)h的更新籍助于單向函數(shù)F通過(guò)下述方法來(lái)實(shí)施hnew = F (h ;randn_nl),式中randn_nl為步驟Ii-Ii1所產(chǎn)生的隨機(jī)密鑰,其中Ii1必須為正整數(shù)。這樣的更新條件也是根據(jù)認(rèn)證裝置沒有在步驟H-Ii1所產(chǎn)生的不傳輸?shù)脑L問(wèn)代碼的直接或間接的指示。在一個(gè)相反的情況下,hnew = h,不更新內(nèi)部狀態(tài)。在這方面,服務(wù)器必須在Ii1個(gè)步驟中存儲(chǔ)密鑰數(shù)值,并且在有可能的Ii12數(shù)值中檢測(cè)的數(shù)值,使之有可能解釋已傳輸?shù)拇a。因此,該變化例在某些情況中增加了有效代碼的數(shù)值,并且在實(shí)施例中,必須分析代碼的長(zhǎng)度能否滿足保證所需安全性的等級(jí)。該變化例的另一個(gè)優(yōu)點(diǎn)涉及選擇不重新執(zhí)行直接檢測(cè)的選擇C或B’,由通過(guò)為這些選擇增加rand 的重新使用的周期進(jìn)行簡(jiǎn)單的最小化,在實(shí)踐中,h不是周期性的。在該第二變化例中的第二種變化例中,內(nèi)部狀態(tài)h和內(nèi)部狀態(tài)k只是僅有的一種狀態(tài),因此k籍助于函數(shù)f而不是函數(shù)Fx來(lái)進(jìn)行更新。在第三變化例中,認(rèn)證裝置可以產(chǎn)生專用于服務(wù)s的訪問(wèn)代碼并且僅對(duì)后者認(rèn)證有效,或者用于所有服務(wù)且不需要專用訪問(wèn)代碼的有效通用的訪問(wèn)代碼。整數(shù)ms可通過(guò)如下進(jìn)行定義或者計(jì)算 常數(shù)e,如果持有者已經(jīng)做出了通用訪問(wèn)代碼的默認(rèn)選擇,則該常數(shù)可以省略; 整數(shù)Φ3,如果持有者已經(jīng)選擇了專用于服務(wù)s的訪問(wèn)代碼。在這樣的變化例中,用于核實(shí)認(rèn)證實(shí)體的算法包括基于隊(duì)的可能數(shù)值的在選擇循環(huán)與時(shí)間間隙循環(huán)之間的附加中間循環(huán),其中s為表示使用認(rèn)證系統(tǒng)服務(wù)的索引,通過(guò)能夠產(chǎn)生當(dāng)前已分析的訪問(wèn)代碼的服務(wù)開始,即e,Φ3,…。因此,在服務(wù)選擇存在錯(cuò)誤的情況中,計(jì)算的數(shù)值可以增加至個(gè)附加的計(jì)算,在這種情況中必須提供專用的訪問(wèn)代碼,S為考慮了持有者的這類服務(wù)的數(shù)值。在已經(jīng)核實(shí)M,i, x和Μ,2, x有效的情況后,如果s不對(duì)應(yīng)所產(chǎn)生訪問(wèn)代碼的服務(wù), 則拒絕該認(rèn)證,但是認(rèn)證實(shí)體如同認(rèn)證過(guò)程已經(jīng)正確執(zhí)行一樣更新其內(nèi)部狀態(tài),使得與認(rèn)證裝置保持同步。值得注意的是,如果整數(shù)ms由函數(shù)&使用,而不是由函數(shù)Fx使用。在第四變化例中,對(duì)于專用服務(wù)而言,認(rèn)證實(shí)體為其提供了零時(shí)代碼,專用于該服務(wù)以及持有者的認(rèn)證裝置,持有者可將其與在提供訪問(wèn)代碼之前顯示在持有者認(rèn)證裝置上的代碼進(jìn)行比較。認(rèn)證實(shí)體計(jì)算諸如Δ tt,其中tt表示由認(rèn)證實(shí)體的內(nèi)部時(shí)鐘測(cè)量的數(shù)值,以及ttMf為在數(shù)據(jù)堆棧π中最新存儲(chǔ)的數(shù)值。提供給持有者用于服務(wù)s的相互認(rèn)證代碼如同D(jj ;kk ;SN ;ms ; μ (Att))進(jìn)行計(jì)算。然后,認(rèn)證裝置可以顯示必須精確重新產(chǎn)生的代碼,其由請(qǐng)求認(rèn)證服務(wù)s來(lái)提供, 值得注意的是,當(dāng)s請(qǐng)求專用訪問(wèn)代碼時(shí),使得認(rèn)證裝置的持有者能夠確定他是由s授權(quán)的并且沒有尋求模仿S服務(wù)的。為此目的,在并行于認(rèn)證實(shí)體計(jì)算的方法,計(jì)算諸如t_tref的Δ t,其中t表示由認(rèn)證裝置內(nèi)部時(shí)鐘所測(cè)量的數(shù)值,并且由用于服務(wù)s的認(rèn)證裝置顯示例如D(j ;k;Kl ;SNO ; ms;U (At))的相互認(rèn)證代碼。D為單向函數(shù)。μ為所定義的At的編碼函數(shù),因此μ (At)為在[Δ t ; Δ t+n δ Μ]間隙中q. η δ Μ+ δ ‘類型的特有數(shù)值,其中· q為正或零整數(shù)數(shù)值;· η為在系統(tǒng)設(shè)計(jì)時(shí)所選擇的正或零的數(shù)值;· δ M = Qval+Pval,δ m = Qmin+Pmin,δ Q = Qval-Qmin,δ ρ = Pval-Pmin ;· 0彡δ ' <ηδΜ為在系統(tǒng)設(shè)計(jì)時(shí)任意選擇的;^Qmin為在由認(rèn)證實(shí)體計(jì)算相互認(rèn)證代碼時(shí)間與由認(rèn)證裝置計(jì)算互相認(rèn)證代碼時(shí)間之間可接受的最小時(shí)間。如果接受持有者可以在從服務(wù)s處請(qǐng)求相互認(rèn)證代碼之前在認(rèn)證裝置上顯示相互認(rèn)證代碼,則如果必要的話Qmin可以為負(fù)數(shù)。在時(shí)間Qmin之前,相互認(rèn)證代碼可以不為正確數(shù)值;· Qval為在由認(rèn)證實(shí)體計(jì)算相互認(rèn)證代碼的時(shí)間與由認(rèn)證裝置計(jì)算互相認(rèn)證代碼時(shí)間之間可接受的最大時(shí)間。在時(shí)間Qval之后,相互認(rèn)證代碼可以不為正確數(shù)值;· Pval為訪問(wèn)代碼的最小有效時(shí)間;· Pfflin為用于傳輸由認(rèn)證裝置產(chǎn)生的訪問(wèn)代碼的最小時(shí)間。Pval和Pmin已經(jīng)在時(shí)間間隔的管理的內(nèi)容中闡述。這里ttref~tref= φ+φ0禾口t-tt = -φ+φ”式中φ0ε [Pmin; Pvat],φ^ [Qmin; Qval],并且φ為任意差值且假設(shè)為常數(shù),但是可以偶爾在認(rèn)證實(shí)體和認(rèn)證裝置的時(shí)鐘之間變化。由此,我們可推導(dǎo)出 At-Att = (p0+(pt,所以 At-Att ε [ δ m ; δ J 0 對(duì)于給定的(pot= cp0+(pt,
μ (Att)與μ (At)不相同的可能性P(CPot)等于φο/ηδΜ。假設(shè)仉和恥在它們各自的定義域中平均的分布,則μ (Att)和μ (At)不相同的可能性等于在P(Cp0t)/(5P^Q)的[Pmin ; Pval] x[Qfflin ;Qval]的整數(shù),即(1+δω/δΜ)/2η。已經(jīng)增加η的選擇提高了相互認(rèn)證代碼正確的概率;其還可以增加該碼為常數(shù)的周期。這不能構(gòu)成一個(gè)確實(shí)的問(wèn)題,因?yàn)?,一方面,其包含用于獲得大于使得顯示的與提供的相互認(rèn)證代碼一致的0. 95概率的幾分鐘;另一方面,因?yàn)槟7聅的服務(wù)不能預(yù)先獲知持有者將在幾分鐘的特定時(shí)間段中嘗試進(jìn)行認(rèn)證。一種處理可能和不確定結(jié)果的改進(jìn)實(shí)施例包括諸如訪問(wèn)代碼的相互認(rèn)證代碼,其包括隨機(jī)(“質(zhì)疑”)部分,并且其由持有者在不一定接受它的認(rèn)證裝置上輸入。這種方法是可靠的,但是對(duì)于持有者而言較復(fù)雜,首先要求在認(rèn)證裝置上進(jìn)行輸入,其次進(jìn)行請(qǐng)求認(rèn)證的服務(wù),對(duì)于消費(fèi)者的應(yīng)用而言可能過(guò)于復(fù)雜。當(dāng)由服務(wù)s提供并經(jīng)認(rèn)證實(shí)體顯示的相互認(rèn)證代碼是一致時(shí),持有者可以輸入允許其進(jìn)行自身與服務(wù)s確認(rèn)的訪問(wèn)代碼。當(dāng)不是這樣的情況(概率小于(1+δω/δΜ)/2η或認(rèn)證裝置和認(rèn)證實(shí)體的去同步)時(shí),持有者可以在兩者之間進(jìn)行選擇 “刷新”由服務(wù)提供且由認(rèn)證裝置顯示的代碼。新的代碼一方面通過(guò)反轉(zhuǎn)δ, 的“相位”另一方面如同用于計(jì)算At和Att的參考時(shí)間進(jìn)行計(jì)算和提供/顯示,第一相互認(rèn)證代碼的計(jì)算瞬間,因?yàn)閰⒖紩r(shí)間在代碼新刷新的情況下沒有變化。這樣的選擇可以解決在認(rèn)證裝置和認(rèn)證實(shí)體之間At去同步的情況,并且甚至當(dāng)不是在去同步的情況下,μ (Att)和μ (At)在這樣的情況中是不同的。在后一種情況中,可能會(huì)存在著概率 (1+δ ω/δ Μ)/2η的問(wèn)題,因?yàn)锳t和Att已經(jīng)進(jìn)行了更新。一個(gè)新的刷新操作(變化相位但是不再變化參考時(shí)間)必然將解決這個(gè)問(wèn)題;這個(gè)操作在一方面沒有解決在認(rèn)證裝置和認(rèn)證實(shí)體之間內(nèi)部狀態(tài)(j、k或δ,)去同步的情況,如果在提供/顯示的認(rèn)證代碼保持連
0續(xù)刷新的時(shí)間,那么持有者必須依賴下面的選擇在第一刷新后,這些代碼在兩個(gè)數(shù)值間交替; 獲得由認(rèn)證裝置顯示的偽訪問(wèn)代碼,由與選擇B’相似的B”產(chǎn)生,使得能夠執(zhí)行連續(xù)的認(rèn)證,但是在認(rèn)證裝置和認(rèn)證實(shí)體之間的內(nèi)部狀態(tài)進(jìn)行重新同步(例如,S ’與 rancV的奇偶校驗(yàn)進(jìn)行重新同步,同時(shí)在持有者個(gè)人密鑰正確輸入的條件下,At、j和k通過(guò)認(rèn)證協(xié)議的選擇B”重新同步),并且因此使得能夠提供/顯示一致的相互認(rèn)證代碼。由認(rèn)證實(shí)體考慮的B”除了在可信的代碼的情況中接受認(rèn)證的確定以外,在B’的所有其他情況下都是一致的。在第五變化例中,認(rèn)證裝置能夠顯示·由持有者輸入?yún)?shù)的函數(shù)代碼; 內(nèi)部狀態(tài)i、j、k的函數(shù)代碼;· SNO的函數(shù)代碼; 密鑰Kl的函數(shù)代碼,甚至是如果由持有者再次輸入情況下的H(C)的函數(shù)代碼。所述代碼具有不同的函數(shù)和顯示類型,顯示類型本身能夠從包含由用戶輸入的參數(shù)信息項(xiàng)的特性預(yù)先確定的多種形式中進(jìn)行選擇,或者從后者的計(jì)算中獲得。例如,在與服務(wù)成功的認(rèn)證之后,為了保護(hù)防止針對(duì)可能已經(jīng)成功但沒有監(jiān)測(cè)到的“中間人”攻擊的特別敏感的操作,為持有者提供IP地址且其預(yù)先已經(jīng)進(jìn)行編碼并以掩碼的特性進(jìn)行變化。這樣的掩碼由認(rèn)證實(shí)體提供,并且為內(nèi)部狀態(tài)的單向函數(shù),并專用于持有者和持有者的認(rèn)證裝置。然后,認(rèn)證裝置“清晰”地在持有者顯示器的瀏覽器中必須輸入的IP地址,以能夠繼續(xù)進(jìn)行操作,一個(gè)新的認(rèn)證可能由服務(wù)來(lái)請(qǐng)求,因?yàn)樗且粋€(gè)先進(jìn)行的會(huì)話。認(rèn)證裝置在傳輸信息不可能會(huì)被攻擊者攔截的條件下,具有允許其計(jì)算掩碼或其逆變換的所有要素,并因此將其應(yīng)用于已輸入的參數(shù)中,以便獲得原始的信息。另外,如果 “中間人”攻擊是較為普遍并且影響到了訪問(wèn)提供者的路由而不僅是由持有者使用的“DNS” 緩存,則由認(rèn)證裝置顯示的多功能代碼可以用于執(zhí)行在持有者網(wǎng)絡(luò)瀏覽器與服務(wù)提供商網(wǎng)站之間的會(huì)話加密。在第六變化例中,存儲(chǔ)在認(rèn)證客戶端中的密鑰K3 (或者密鑰對(duì)pK3/sK3)籍助于認(rèn)證實(shí)體獲知的密鑰的特性進(jìn)行加密,在各個(gè)認(rèn)證客戶端的成功認(rèn)證中進(jìn)行更新,并且僅當(dāng)已傳輸?shù)脑L問(wèn)代碼(通常由選擇C產(chǎn)生)正確時(shí),將其提供至認(rèn)證客戶端。需要注意的是,所示出的實(shí)施例依賴于對(duì)訪問(wèn)代碼透明的傳輸信道輸入數(shù)據(jù)項(xiàng)用于在其初始狀態(tài)中的接收,并且進(jìn)行傳輸?shù)耐瑫r(shí)不考慮其可能執(zhí)行的變換。本領(lǐng)域的技術(shù)人員可以簡(jiǎn)單地將該實(shí)施例用于半透明的信道中,例如http協(xié)議的http摘要認(rèn)證模式的使用。在權(quán)利要求中,“包括”一字不排除其他要素,且不定冠詞“一個(gè)/ 一”不排除多個(gè)。
權(quán)利要求
1.一種用于認(rèn)證的用戶的系統(tǒng),包括具有認(rèn)證實(shí)體(1)的認(rèn)證裝置(3),所述認(rèn)證裝置包括用于存儲(chǔ)至少一個(gè)狀態(tài)變量的裝置(11),以及可在用戶請(qǐng)求下激勵(lì)驅(qū)動(dòng)的一次性訪問(wèn)代碼的發(fā)生器O),所述訪問(wèn)代碼包括至少一個(gè)不可預(yù)測(cè)的部分并且傳輸至用于核實(shí)的認(rèn)證實(shí)體,所述核實(shí)使用所述認(rèn)證實(shí)體來(lái)認(rèn)證用戶,其特征在于 所述狀態(tài)變量以隨機(jī)方法由所述認(rèn)證裝置主動(dòng)地在各個(gè)新訪問(wèn)代碼產(chǎn)生前執(zhí)行系統(tǒng)更新; 一旦所述狀態(tài)變量已經(jīng)更新,所述發(fā)生器適用于通過(guò)所述至少一個(gè)狀態(tài)變量來(lái)計(jì)算所述訪問(wèn)代碼;以及 所述認(rèn)證實(shí)體設(shè)置成通過(guò)使用所述認(rèn)證實(shí)體預(yù)先獲知的信息和由已傳輸訪問(wèn)代碼表示的不可預(yù)測(cè)部分,在所述訪問(wèn)代碼的至少部分核實(shí)中,來(lái)修改至少一個(gè)內(nèi)部變量的數(shù)值。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述認(rèn)證裝置包括至少三個(gè)狀態(tài)變量,并且所述認(rèn)證實(shí)體包括一一對(duì)應(yīng)于認(rèn)證裝置狀態(tài)變量的同一和相同數(shù)量的內(nèi)部狀態(tài)變量,以及所述系統(tǒng)包括第一、第二和第三認(rèn)證層級(jí),各個(gè)認(rèn)證層級(jí)使用不同方法,以便更新至少三個(gè)狀態(tài)變量中的至少一個(gè),所述的三種方法在認(rèn)證裝置和認(rèn)證實(shí)體中所共有。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于 在第一認(rèn)證層級(jí)中,至少三個(gè)狀態(tài)變量之中的一個(gè),稱為第一狀態(tài)變量,由第一單向函數(shù)(U進(jìn)行更新,所述第一單向函數(shù)(Fu)具有作為輸入?yún)?shù)的其它狀態(tài)變量,在每個(gè)訪問(wèn)代碼產(chǎn)生之前由認(rèn)證裝置產(chǎn)生至少一個(gè)專用于認(rèn)證裝置的密鑰和一個(gè)隨機(jī)密鑰; 在第二認(rèn)證層級(jí)中,在至少三個(gè)狀態(tài)變量之中的所述第一狀態(tài)變量和第二狀態(tài)變量由第一單向函數(shù)O^1, F2.2)分別進(jìn)行更新,所述單向函數(shù)具有作為輸入?yún)?shù)的其它狀態(tài)變量,至少一個(gè)專用于認(rèn)證裝置的密鑰、隨機(jī)密鑰、和在認(rèn)證裝置根據(jù)該第二層級(jí)產(chǎn)生各個(gè)訪問(wèn)代碼之前由用戶輸入的信息項(xiàng)、以及在認(rèn)證實(shí)體上專用于用戶的密鑰代碼; 在第三認(rèn)證層級(jí)中,所述至少三個(gè)狀態(tài)變量由第一單向函數(shù)(Fu,F(xiàn)3.2,F(xiàn),3)分別進(jìn)行更新,所述第一單向函數(shù)(Fu,F(xiàn),2, F,3)具有作為輸入?yún)?shù)的至少一個(gè)專用于認(rèn)證裝置的密鑰、隨機(jī)密鑰、在認(rèn)證裝置根據(jù)第三層級(jí)所產(chǎn)生的各個(gè)訪問(wèn)代碼之前由用戶輸入的信息項(xiàng),以及在認(rèn)證實(shí)體上專用于用戶的密鑰。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,在所述第一認(rèn)證層級(jí)中,由認(rèn)證裝置產(chǎn)生的隨機(jī)密鑰不能重新使用同一和相同的數(shù)值,同時(shí)第二或第三層級(jí)不能被認(rèn)證裝置使用, 并且在第二層級(jí)中,所述隨機(jī)密鑰不能重新使用相同的數(shù)值,同時(shí)第三層級(jí)不能被認(rèn)證裝置使用。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述認(rèn)證裝置選擇必須根據(jù)至少一個(gè)法則確定特性的法則集合進(jìn)行使用的認(rèn)證層級(jí),所述法則表現(xiàn)出,如果認(rèn)證裝置具有諸如用戶明確選擇的信息的直接項(xiàng),或諸如在足夠接近的時(shí)間里由用戶重復(fù)使用的認(rèn)證裝置的信息非直接項(xiàng),且至少可以滿足先前產(chǎn)生的訪問(wèn)代碼沒有被認(rèn)證實(shí)體認(rèn)為是有效的,那么如果該要求的層級(jí)還不是第三層級(jí)時(shí),則必須使用其它更高要求的認(rèn)證層級(jí)。
6.根據(jù)權(quán)利要求3至5中任一所述的系統(tǒng),其特征在于,所述發(fā)生器包括用于各個(gè)認(rèn)證層級(jí)根據(jù)第二單向函數(shù)(Gx)產(chǎn)生第一數(shù)值(MM2,x)的裝置,所述第二單向函數(shù)( )的輸入?yún)?shù)包括至少一個(gè)已更新的狀態(tài)變量。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述發(fā)生器包括適用各個(gè)認(rèn)證層級(jí)的 第三單向函數(shù)(Ex),用于產(chǎn)生第二數(shù)值(MM1J并且包括作為輸入?yún)?shù)的 認(rèn)證裝置的密鑰 隨機(jī)數(shù)值 一個(gè)具有逆向函數(shù)的函數(shù),用于將由第二和第三函數(shù)(Gx,Ex)產(chǎn)生的第一和第二數(shù)值與由認(rèn)證裝置產(chǎn)生的隨機(jī)密鑰相疊加,所述疊加數(shù)值表示訪問(wèn)代碼并且逆向函數(shù)適用于允許認(rèn)證實(shí)體根據(jù)訪問(wèn)代碼獲得第一數(shù)值、第二數(shù)值和的隨機(jī)密鑰。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述認(rèn)證實(shí)體適用于以不同的方法核實(shí)第二數(shù)值(MM1J的有效性和第一數(shù)值(MM2,x)的有效性。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,在有效性的核實(shí)過(guò)程中,所述認(rèn)證實(shí)體更新內(nèi)部狀態(tài)。
10.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述認(rèn)證裝置和所述認(rèn)證實(shí)體各自具有至少一個(gè)相互對(duì)應(yīng)且與第一和第二狀態(tài)變量不同的狀態(tài)變量,并且所述狀態(tài)變量籍助于單向函數(shù)的特性進(jìn)行更新,所述單向函數(shù)是例如該狀態(tài)變量的當(dāng)前數(shù)值和在由所述發(fā)生器產(chǎn)生訪問(wèn)代碼的先前步驟中由所述認(rèn)證裝置產(chǎn)生的隨機(jī)密鑰的函數(shù)。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述認(rèn)證裝置和認(rèn)證實(shí)體各自包括時(shí)鐘和用于產(chǎn)生第一數(shù)值(MM2,x)的裝置,所述裝置適用于使用認(rèn)證裝置獲知的參考時(shí)間的確切數(shù)值與認(rèn)證裝置時(shí)鐘的當(dāng)前之間間隙的函數(shù),并且僅當(dāng)認(rèn)證實(shí)體在該認(rèn)證實(shí)體獲知一個(gè)或多個(gè)參考時(shí)間的確切數(shù)值對(duì)應(yīng)的確定時(shí)間間隔中接收到的訪問(wèn)代碼,所述認(rèn)證實(shí)體適用于的訪問(wèn)代碼的核實(shí),并且當(dāng)?shù)诙?shù)值(MM1J有效時(shí),用于更新其本身的一個(gè)或多個(gè)參考時(shí)間的測(cè)試。
12.根據(jù)上述任一權(quán)利要求所述的系統(tǒng),其特特征在于,由于所述系統(tǒng)允許對(duì)多個(gè)服務(wù)的用戶的認(rèn)證,訪問(wèn)代碼由認(rèn)證裝置使用專用于特定服務(wù)的代碼來(lái)產(chǎn)生,使得通過(guò)認(rèn)證實(shí)體對(duì)其的核實(shí)過(guò)程僅對(duì)所述服務(wù)進(jìn)行訪問(wèn)。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述認(rèn)證裝置適用于通過(guò)使用至少一個(gè)專用于服務(wù)、專用于認(rèn)證裝置和時(shí)間間隙的代碼來(lái)計(jì)算第一訪問(wèn)代碼,以及認(rèn)證實(shí)體適用于計(jì)算專用于服務(wù)、專用于認(rèn)證裝置的第二訪問(wèn)代碼,并將其傳輸至用戶,使得用戶可以將其與第一訪問(wèn)代碼進(jìn)行比較,并且因此識(shí)別所確定的服務(wù),僅當(dāng)由認(rèn)證裝置計(jì)算第一訪問(wèn)代碼在相對(duì)于由認(rèn)證實(shí)體計(jì)算第二密鑰代碼的時(shí)間的確定時(shí)間間隔中執(zhí)行并且所述專用于使用服務(wù)和認(rèn)證裝置的代碼都是相同時(shí),則所述第一和第二訪問(wèn)代碼是一致的。
14.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,還包括認(rèn)證客戶端(5),所述認(rèn)證客戶包括密鑰以及適用于根據(jù)由認(rèn)證裝置產(chǎn)生的訪問(wèn)代碼來(lái)產(chǎn)生第二訪問(wèn)代碼,所述第二訪問(wèn)代碼適用于認(rèn)證具有認(rèn)證實(shí)體的用戶。
全文摘要
本發(fā)明涉及用于用戶的系統(tǒng),用處理在認(rèn)證實(shí)體(1)上認(rèn)證的裝置(3),所述認(rèn)證裝置包括用于存儲(chǔ)至少一個(gè)狀態(tài)變量的裝置(11)和根據(jù)用戶請(qǐng)求激發(fā)驅(qū)動(dòng)的一次性使用的訪問(wèn)代碼發(fā)生器(2),所述訪問(wèn)代碼包括至少一個(gè)不可預(yù)測(cè)部分并傳輸至認(rèn)證實(shí)體進(jìn)行核實(shí),所述核實(shí)在認(rèn)證實(shí)體中認(rèn)證用戶,其特征在于,狀態(tài)變量以隨機(jī)的方法通過(guò)并且根據(jù)認(rèn)證裝置的激勵(lì)驅(qū)動(dòng)在任何新的訪問(wèn)代碼產(chǎn)生之前進(jìn)行系統(tǒng)性的更新;其中一旦其被更新,則發(fā)生器用于使用狀態(tài)變量來(lái)計(jì)算訪問(wèn)代碼;認(rèn)證實(shí)體用于在訪問(wèn)代碼至少部分核實(shí)期間通過(guò)使用認(rèn)證實(shí)體先前獲知的信息和由傳輸?shù)脑L問(wèn)代碼表示的不可預(yù)測(cè)部分來(lái)修改至少一個(gè)內(nèi)部狀態(tài)變量的數(shù)值。
文檔編號(hào)H04L9/32GK102187619SQ200980141641
公開日2011年9月14日 申請(qǐng)日期2009年10月6日 優(yōu)先權(quán)日2008年10月15日
發(fā)明者迪迪埃·佩羅特 申請(qǐng)人:英-韋博技術(shù)公司