TW202347153A - 有時間限之金鑰導出 - Google Patents

有時間限之金鑰導出 Download PDF

Info

Publication number
TW202347153A
TW202347153A TW111134868A TW111134868A TW202347153A TW 202347153 A TW202347153 A TW 202347153A TW 111134868 A TW111134868 A TW 111134868A TW 111134868 A TW111134868 A TW 111134868A TW 202347153 A TW202347153 A TW 202347153A
Authority
TW
Taiwan
Prior art keywords
key
value
counter
time
control value
Prior art date
Application number
TW111134868A
Other languages
English (en)
Inventor
珍妮絲 丹尼斯維斯基
保羅 德默特 克勞利
Original Assignee
美商谷歌有限責任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商谷歌有限責任公司 filed Critical 美商谷歌有限責任公司
Publication of TW202347153A publication Critical patent/TW202347153A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Lock And Its Accessories (AREA)
  • Storage Device Security (AREA)

Abstract

本發明揭示用於有時間限之金鑰導出之包含經編碼於電腦儲存媒體上之電腦程式的方法、系統及設備。在一些實施方案中,一模組接收提供一金鑰識別符並獲得指示一未來時間之一控制值之一請求。該模組獲得指示一第一時間之一計數器值,其中該計數器值係基於一計數器之一當前狀態,且其中該計數器經組態以依一預定頻率更新該計數器之該狀態。該模組基於比較指示該未來時間之該控制值與指示該第一時間之該計數器值來產生一比較結果。該模組基於該金鑰識別符、該控制值、該比較結果及一經儲存隨機數來產生一金鑰,且該模組回應於該請求而提供該金鑰。

Description

有時間限之金鑰導出
可使用基於硬體或基於軟體之引擎來產生用於密碼學之金鑰。金鑰可包含在應用於具有一適當功能之資料時對資料加密或解密之字母數字符號或位元。相較於原始未加密資料,經加密資料可能無法辨識。可用一解密金鑰對經加密資料解密。加密及解密可使用相同金鑰(如在對稱金鑰密碼學中)或不同金鑰(如在公開金鑰私密金鑰密碼學中)。
在一些實施方案中,一電腦系統包含經組態以產生密碼金鑰並對該等金鑰強制執行時間限制之一安全模組。在產生一金鑰之後,該安全模組容許再次獲得金鑰,但應用限制何時可再次獲得金鑰之時間約束。安全模組可容許產生許多不同金鑰且可針對各自金鑰強制執行不同的客製化之時間限制。安全模組可經組態使得,在滿足一金鑰之時間限制時,安全模組可重複地產生及提供相同金鑰。然而,當未滿足時間限制時(例如,在達到一金鑰之一到期時間之後),無法獲得原始金鑰。例如,若未滿足時間限制,則嘗試自安全模組獲得金鑰將導致不匹配原始金鑰之一新金鑰。
安全模組可用於產生金鑰並對獲得該等金鑰強制執行時間約束,而無需儲存金鑰或對應時間約束。此使安全模組能夠產生非常大量的唯一金鑰,其中僅最少量之狀態資訊儲存於安全模組中。此係一顯著優點,因為安全模組不需要包含用於金鑰儲存之記憶體且亦不需要追蹤所產生之金鑰及其等之對應時間約束。安全模組可經組態以在請求金鑰時重新產生各金鑰,而非儲存所產生之金鑰。只要滿足時間約束,提供相同輸入集便導致產生相同金鑰。
當產生一金鑰時,安全模組將一輸入集(例如,一金鑰導出上下文)作為輸入提供至一金鑰導出函數。此輸入集包含金鑰之一識別符及表示金鑰之時間限制之一值。安全模組亦判定是否已達到時間限制並將結果包含於輸入集中。例如,安全模組比較來自一內部計數器之一計數器值與表示金鑰之時間限制之一經接收控制值,且比較結果係被包含於提供至金鑰導出函數之輸入集中。因為金鑰導出程序使用比較結果作為一輸入,因此比較結果之一變化(例如,歸因於經過金鑰之一到期時間)將產生不同於最初獲得之一金鑰。因此,一旦達到一到期時間,安全模組便有效地「忘記」原始金鑰且原始金鑰無法再次由安全模組產生或自安全模組獲得。
安全模組可將各種類型之時間約束應用於金鑰之產生。作為一實例,一金鑰之時間約束可設定一到期時間,使得該金鑰可在達到該到期時間之前而非之後再次產生。作為另一實例,一金鑰之時間約束可阻止該金鑰之產生直至一預定時間為止,但容許之後產生該金鑰。此模式可提供「時間保險庫(vault)」或時間鎖定功能性,其中僅一旦達到預定時間便獲得存取。
安全模組可經組態以回應於來自一作業系統、應用程式、軟體或硬體模組或另一請求方之請求而提供金鑰。針對一金鑰之一請求可包含識別該金鑰之金鑰識別符。請求亦可包含一控制值,該控制值指示在其之後不再能夠再次產生金鑰之一到期時間或在其之前不能再次產生金鑰之存取時間。安全模組可處理金鑰識別符及控制值,包含比較控制值與來自安全模組之一計數器之一計數器值,以產生唯一地識別待產生之金鑰之一輸入資料集。安全模組接著可使用該輸入資料集來產生所請求之金鑰。安全模組可向請求者提供金鑰以用於後續密碼操作(諸如加密或解密)。
安全模組可提供限制其中可獲得金鑰之時間範圍之能力,且可以高於其他方法之效率及安全性來這麼做。例如,一些傳統金鑰導出方法使用儲存許多作用中或非作用中的金鑰之一金鑰儲存器。該金鑰儲存器需要足以儲存全部所需金鑰之儲存資源。相比而言,本文中描述之程序容許一裝置維持受時間限制之一組作用中或非作用中的金鑰,而無需儲存金鑰。代替性地,請求金鑰之實體儲存金鑰識別符及表示時間限制之控制值。由於金鑰係藉由由請求方所提供之識別資訊及控制值產生,因此產生金鑰之安全模組不需要儲存任何金鑰或存取儲存金鑰之一儲存組件。以此方式,循環中之金鑰數目不受儲存要求限制。安全性亦改良,此係因為不存在在未經授權的情況下可由一攻擊者潛在地存取之經儲存金鑰。
為獲得一金鑰,一實體(諸如一請求方)可提供一識別符及一控制值。安全模組可基於識別符及控制值執行操作(如下文進一步論述),以產生一對應金鑰。安全模組可經組態以在各種不同模式中操作以產生具有不同類型之時間約束之金鑰。例如,在一種模式中產生之金鑰可設定一到期時間,因此可在該到期時間之前產生金鑰,但安全模組在到期時間之後「忘記」金鑰且金鑰變得不可恢復。作為另一實例,可使用其中在最初產生金鑰之後,在一預定未來存取時間之前不能再次產生金鑰之一模式來產生金鑰。實際上,金鑰被保全於一時間鎖定之「保險庫」中,且在存取時間發生之後,該「保險庫」打開且可再次產生金鑰。存取或到期之時間可由所使用之控制值定義。
本文中所描述之技術可用於對存取控制資訊提供強大的、基於時間之保護。許多系統使用結合一鎖定畫面知識因素之金鑰。例如,一些密碼金鑰可僅在使用者呈現鎖定畫面知識因素(LSKF) (諸如一個人識別碼(PIN)、圖案或密碼(password) )之後產生。然而,對授權強制執行時間限制通常係使用可能容易被規避或攻擊之軟體政策或性質來完成。為對存取控制提供更強的時間限制的強制執行,可在使用一有時間限之金鑰(例如,使用本文中論述之有時間限之導出程序產生之一金鑰)首次對存取符記加密之後快取結合LSKF之金鑰及授權符記。由於金鑰產生經受一時間約束,因此在達到到期時間(例如,一預定時間,諸如在鍵入LKSF之後一小時)之後,不再能夠再次產生金鑰。此可強制執行所要授權時間限制並迫使在到期時間之後重新鍵入LKSF以授權新存取。在到期時間之後,應用程式將無法獲得有時間限之金鑰,且因此在到期時間之前尚未獲得有時間限之金鑰之任何應用程式將無法對來自快取區之經加密授權符記解密並使用。
本說明書中描述之標的物之一新穎態樣體現於一種方法中,該方法包含:接收提供一金鑰識別符之一請求;獲得指示一未來時間之一控制值;獲得指示一第一時間之一計數器值,其中該計數器值係基於一計數器之一當前狀態,其中該計數器經組態以依一預定頻率更新該計數器之該狀態;基於比較指示該未來時間之該控制值與指示該第一時間之該計數器值來產生一比較結果;基於該金鑰識別符、該控制值、該比較結果及一經儲存隨機數產生一金鑰;及回應於該請求提供該金鑰。
此態樣及其他態樣之其他實施方案包含經組態以執行方法之動作之對應系統、設備及編碼於電腦儲存裝置上之電腦程式。一或多個電腦之一系統可憑藉安裝於該系統上之在操作中引起該系統執行該等動作之軟體、韌體、硬體或其等之組合而如此組態。一或多個電腦程式可憑藉具有在藉由資料處理設備執行時引起該設備執行該等動作之指令而如此組態。
前述實施例及其他實施例可各視需要包含單獨或組合之以下特徵之一或多者。例如,在一些實施方案中,至少獲得計數器值、產生比較結果及產生金鑰係由一安全硬體模組執行。
在一些實施方案中,至少獲得計數器值、產生比較結果及產生金鑰係由一行動裝置之一系統單晶片之一安全硬體模組執行。
在一些實施方案中,在接收時戳之前,動作包含提供(i)來自基於硬體之計數器之一計數器值及(ii)計數器值頻率。
在一些實施方案中,經儲存隨機數係由一基於硬體之隨機數產生器產生。
在一些實施方案中,動作包含偵測計數器之一操縱;且回應於偵測到計數器之該操縱,用自基於硬體之隨機數產生器獲得之一新隨機數替換經儲存隨機數。
在一些實施方案中,動作包含偵測計數器之一溢位;且回應於偵測到計數器之該溢位,用自基於硬體之隨機數產生器獲得之一新隨機數替換經儲存隨機數。
在一些實施方案中,預定頻率係基於一時脈信號之一頻率;且動作包含偵測該時脈信號之該頻率之一變化;且回應於偵測到該時脈信號之該頻率之該變化,用自基於硬體之隨機數產生器獲得之一新隨機數替換經儲存隨機數。
在一些實施方案中,在產生金鑰之後且在回應於請求提供金鑰之前,動作包含在產生金鑰之後,基於計數器之一狀態自計數器獲得一第二計數器值;判定該第二計數器值滿足指定相對於控制值之一關係之一預定條件;且其中回應於請求提供金鑰係回應於判定第二計數器值滿足該預定條件而執行。
在一些實施方案中,判定第二計數器值滿足預定條件包含判定第二計數器值表示在由控制值表示之未來時間之前的一時間。
在一些實施方案中,控制值係表示計數器在未來時間將達到之一值之一未來計數器值。
在一些實施方案中,控制值指定在由計數器達到時,不容許基於金鑰識別符及控制值進一步產生金鑰之一計數器值。
在一些實施方案中,動作包含操作一安全硬體模組,該安全硬體模組經組態以(i)回應於接收到控制值及金鑰識別符而使金鑰能夠在未來時間之前再次產生及(ii)不容許在未來時間之後產生金鑰。
在一些實施方案中,計數器值係一第一計數器值且金鑰係一第一金鑰;安全硬體模組經組態以藉由回應於接收到控制值及金鑰識別符而提供不同於該第一金鑰之一第二金鑰而不容許在未來時間之後產生該第一金鑰;且基於比較一第二計數器值與控制值之一比較結果不同於比較第一計數器值與控制值之比較結果,該第二金鑰經產生為不同於該第一金鑰。
在一些實施方案中,金鑰係一第一金鑰,且比較結果係一第一比較結果;且動作包含,在產生第一金鑰之後,接收與金鑰識別符及控制值相關聯之一第二請求;基於計數器之一狀態獲得一第二計數器值,該第二計數器值指示在第一時間之後且在由控制值指示之未來時間之前的一第二時間;基於比較指示未來時間之控制值與指示第二時間之第二計數器值來產生一第二比較結果,其中該第二比較結果係與第一比較結果相同;及基於金鑰識別符、控制值、第二比較結果及經儲存隨機數產生一第二金鑰,其中該第二金鑰係與第一金鑰相同。
在一些實施方案中,金鑰係一第一金鑰,且比較結果係一第一比較結果;且動作包含,在產生第一金鑰之後,接收與金鑰識別符及控制值相關聯之一第二請求;基於計數器之一狀態獲得一第二計數器值,該第二計數器值指示在由控制值指示之未來時間之後的一第二時間;基於比較指示未來時間之控制值與指示第二時間之第二計數器值來產生一第二比較結果,其中該第二比較結果不同於第一比較結果;及基於金鑰識別符、控制值、第二比較結果及經儲存隨機數產生一第二金鑰,其中該第二金鑰不同於第一金鑰。
在一些實施方案中,獲得控制值包含接收指示未來時間或達到未來時間之前之一時間量之一時間值;及判定將在未來時間達到之一未來計數器值作為控制值,該未來計數器值基於來自計數器之一當前計數器值、該時間值及預定頻率來判定。
在一些實施方案中,動作包含,在提供金鑰之後,不容許進一步產生金鑰,直至達到未來時間為止。
在一些實施方案中,動作包含基於比較結果判定一保險庫上下文值,其中比較結果係用於自一保險庫計數器值及一輸入保險庫上下文值當中選擇該保險庫上下文值;且產生金鑰涉及將一金鑰導出函數應用於包含金鑰識別符、控制值、比較結果、經儲存隨機數及保險庫上下文值之一值集。
在一些實施方案中,動作包含提供保險庫上下文值。在一些實施方案中,動作包含獲得經組態以自用於產生金鑰之多個模式當中進行選擇之一模式選擇值,該多個模式包含(i)不容許在未來時間之後進一步產生金鑰之一第一模式及(ii)不容許在未來時間之前進一步產生金鑰之一第二模式;且產生金鑰涉及將一金鑰導出函數應用於包含金鑰識別符、控制值、比較結果、經儲存隨機數及模式選擇值之一值集。
本說明書中描述之標的物之一新穎態樣體現於一種用於產生密碼金鑰之硬體模組中,該硬體模組包含:一輸入介面,其經組態以接收(i)表示一時間之一控制值及(ii)一金鑰識別符;一隨機數產生器及經組態以儲存由該隨機數產生器產生之一隨機數之一記憶體元件;一計數器,其經組態以基於一時脈信號單調變化;一比較器,其經組態以基於該控制值與來自該計數器之一計數器值之一比較來產生一比較結果;及金鑰導出電路系統,其經組態以基於該金鑰識別符、該控制值、該比較結果及儲存於該記憶體元件中之一隨機數產生一金鑰。
在一些實施方案中,硬體模組回應於接收到控制值及金鑰識別符而使金鑰能夠在未來時間之前再次產生,且硬體模組不容許在由控制值表示之時間之後產生金鑰。
在一些實施方案中,硬體模組限制其中可再次產生金鑰之一時間週期,且控制值表示設定該時間週期到期之一未來時間之一未來計數器值。
在一些實施方案中,硬體模組限制其中可再次產生金鑰之一時間週期,且控制值表示設定該時間週期開始之一未來時間之一未來計數器值。
在一些實施方案中,硬體模組經組態以判定來自計數器之計數器值是否具有相對於控制值之一預定關係;且硬體模組經組態以取決於來自計數器之計數器值是否具有相對於控制值之該預定關係而選擇性地輸出金鑰。
在一些實施方案中,硬體模組經組態以在產生金鑰之後基於計數器之一狀態來判定一第二計數器值及判定該第二計數器值是否具有相對於控制值之一預定關係;且硬體模組經組態以(i)若第二計數器值具有相對於控制值之該預定關係則輸出金鑰且(ii)若第二計數器值不具有相對於控制值之預定關係則阻止金鑰之輸出。
在一些實施方案中,硬體模組經組態以偵測時脈信號之更改及回應於偵測到時脈信號之更改而用來自隨機數產生器之一新隨機數替換儲存於記憶體元件中之隨機數。
在一些實施方案中,硬體模組經組態以偵測計數器之溢位及回應於偵測到計數器之溢位而用來自隨機數產生器之一新隨機數替換儲存於記憶體元件中之隨機數。
在一些實施方案中,硬體模組經組態以自計數器輸出計數器值。
在一些實施方案中,使硬體模組能夠產生多個不同金鑰並針對重新產生各自金鑰之能力強制執行分開指定之到期時間,而無需儲存金鑰及無需儲存到期時間。
在一些實施方案中,輸入介面經組態以接收一輸入上下文值;硬體模組經組態以基於比較結果判定一上下文值,其中比較結果係用於自(i)來自一第二計數器之一計數器值及(i)該輸入上下文值當中選擇該上下文值;且金鑰導出電路系統經組態以將金鑰導出函數應用於包含金鑰識別符、控制值、比較結果、經儲存隨機數及經判定之上下文值之一值集。
在一些實施方案中,硬體模組經組態以提供經判定之上下文值作為硬體模組之一輸出。
在一些實施方案中,輸入介面經組態以接收識別自用於產生金鑰之多個模式當中選擇之一模式之一模式選擇值,該多個模式包含(i)不容許在未來時間之後進一步產生金鑰之一第一模式及(ii)不容許在未來時間之前進一步產生金鑰之一第二模式;且金鑰導出電路系統經組態以將金鑰導出函數應用於包含金鑰識別符、控制值、比較結果、經儲存隨機數及模式選擇值之一值集。
在一些實施方案中,硬體模組經組態以對模式選擇值及比較結果執行一運算,且金鑰導出電路系統在產生金鑰時使用該運算之一結果。
在一些實施方案中,該運算係一互斥或(exclusive OR)運算。
在一些實施方案中,硬體模組包含經組態以自多個輸入值當中進行選擇以向金鑰導出電路系統提供一上下文值之一多工器;該多個輸入值包含一預定值、一輸入上下文值及來自一第二計數器之一計數器值;該多工器經組態以基於模式選擇值及比較結果自多個輸入值當中選擇上下文值;且由多工器選擇之上下文值係被包含於金鑰導出電路系統對其應用金鑰導出函數以產生金鑰之值集中。
在一些實施方案中,硬體模組包含經組態以回應於自安全硬體模組讀取所產生之金鑰而更改其經儲存值之一第二計數器;硬體模組經組態以在產生金鑰時使用來自該第二計數器之計數器值,使得在自硬體模組讀取所產生之金鑰之後,硬體模組阻止進一步產生金鑰,直至達到由控制值表示之時間為止。
本發明之一或多項實施例之細節係在附圖及下文描述中闡述。將自描述、圖式及發明申請專利範圍明白本發明之其他特徵及優點。
圖1係展示用於有時間限之金鑰導出之一系統100之一實例的一圖式。系統100包含由使用者102操作之一裝置104。裝置104可為一運算裝置,諸如一膝上型電腦、一桌上型電腦、一伺服器電腦、一平板電腦、一智慧型電話、一智慧型手錶、一智慧型揚聲器、一導航裝置、一電視機、一電器、一娛樂裝置等。裝置104包含經組態以產生密碼金鑰並對其中可獲得金鑰之時間範圍進行限制之一安全模組108。安全模組108可經實施為一積體電路之一模組,諸如一系統單晶片(SoC)、中央處理單元、晶片組或可信賴平台模組。在一些實施方案中,安全模組108在裝置104之一可信賴執行環境(TEE)內操作。
圖1展示標記為階段(A)至(C)之一系列操作及資料流。簡言之,在裝置104上運行之兩個軟體模組(一第一應用程式106及一第二應用程式118)各與安全模組108互動以自安全模組108獲得一金鑰。第一應用程式106在一預定到期時間之前請求該金鑰且因此接收所要金鑰116。相比而言,第二應用程式118在預定到期時間之後請求金鑰且因此接收到一不同金鑰120。此演示安全模組108如何對金鑰之產生強制執行時間限制,使得在到期時間之後不再能夠自安全模組108獲得原始金鑰116。
在階段(A),第一應用程式106與安全模組108互動以獲得一金鑰116。為在此實例中請求一金鑰,應用程式提供兩個項:(1)一上下文,其用作待產生之金鑰之一識別符,及(2)一控制值,其指定產生金鑰之一時間限制之一時間(例如,一到期時間)。安全模組108使用此兩個項以及其他資料來產生金鑰。
為強制執行時間限制,安全模組108包含基於一時脈信號定期更新之一單調計數器。控制值可指定一到期時間作為計數器在所要到期時間達到之一值。為使應用程式能夠判定控制值並設定金鑰之客製到期時間,安全模組108經組態以提供當前計數器值作為一輸出。此處,安全模組108提供指示計數器之當前值之一計數器值110。在一些實施方案中,安全模組108回應於來自第一應用程式106針對計數器值110之一請求而提供計數器值110。在其他實施方案中,安全模組108可使計數器值110在一暫存器、記憶體或其他元件中可用,使得第一應用程式106或另一元件可簡單地讀取計數器之當前值。
應用程式106產生並發送針對包含一上下文112及一控制值114之一金鑰之一請求。上下文112係識別待產生之金鑰之一金鑰識別符。上下文112可指示金鑰之目的或正在產生之金鑰之類型,且用於將金鑰與可能具有相同到期時間之其他金鑰進行區分。上下文112可表示為文字、數字或呈任何其他適當形式。
應用程式106判定控制值114以設定在其之後不再能夠產生金鑰之一所要到期時間。該到期時間可經指定為安全模組中之計數器之一未來值,例如,指定為在所要到期時間將出現之計數器值。例如,應用程式106可使用來自安全模組之當前計數器值110並向其添加一偏移以獲得控制值114。偏移之值係基於所要到期時間及計數器遞增之速率來判定。例如,若計數器每時脈週期遞增,則可藉由將時脈頻率(例如,每秒週期數)乘以到期應發生之未來秒數來判定偏移。
例如,為運算控制值114,第一應用程式106可判定一當前時間與一所要未來到期時間之間的一時間量。第一應用程式106可基於產生計數器值110之一時脈之一時脈頻率來判定自當前時間直至到期時間為止將發生之時脈週期之一數目及因此計數器增量。例如,若一到期時間係未來1小時且計數器以每秒一次之一速率更新,則可藉由將當前計數器值110與1小時內發生之遞增次數相加在一起(例如,3600,對於3600秒乘以1 Hz之一計數器更新頻率)來判定控制值114。
安全模組108在一第一時間(在圖中標記為「時間1」)接收第一應用程式針對一金鑰之請求。安全模組108自請求獲得上下文112及控制值114。作為產生所請求金鑰之部分,安全模組108執行經接收之控制值114與安全模組108內之計數器之當前狀態之間的一比較。此經表示為第一比較115且結果指示是否已達到由控制值114表示之到期時間。例如,比較結果可為「0」以指示當前計數器值仍小於控制值114。安全模組108在安全模組108提供至一金鑰導出函數以產生所請求金鑰(在此情況下,其係金鑰116)之輸入集中使用控制值114及比較結果。將比較結果包含於用於金鑰導出之輸入集中確保金鑰116僅可在到期時間之前產生。在到期時間之後,比較結果將為不同的(例如,「1」而非「0」),從而導致不同於金鑰116之一金鑰。
在圖1之實例中,安全模組108回應於獲得上下文112及控制值114而提供第一金鑰116。關於產生金鑰之程序之細節係在下文參考下圖(包含圖2至圖3)進一步論述。
在一些實施方案中,第一金鑰116係可用於對資料加密或解密之一密碼金鑰。例如,使用者102或應用程式106可在將經加密資料發送至資料儲存器、裝置104之一程序或模組或另一裝置之前引起第一金鑰116對資料加密。為使另一模組能夠獲得第一金鑰116並對資料解密,可將上下文112及控制值114提供至該另一模組,因此其亦可自安全模組108請求並獲得第一金鑰116。在一些實施方案中,上下文112及控制值114係以已使用另一模組已知之另一加密金鑰加密之一經加密形式發送。例如,一模組可對包含上下文112及控制值114之資料解密且接著將上下文112及控制值114提供至安全模組108以獲得用以對用第一金鑰116加密之資料解密之一金鑰。
在階段(B),第一應用程式106向第二應用程式118提供資訊,該資訊使第二應用程式118能夠經受對產生第一金鑰116之時間約束而自安全模組108獲得第一金鑰116。如所繪示,第一應用程式106將上下文112及控制值114提供至第二應用程式118。在一些實施方案中,除了可用第一金鑰116加密之其他資料之外,第一應用程式106亦向第二應用程式118提供上下文112及控制值114。在一些實施方案中,自第一應用程式106發送至第二應用程式118之一資料封包包含使用不同於第一金鑰116之一加密金鑰加密之上下文112及控制值114。在此情況下,第二應用程式118可對包含上下文112及控制值114之該資料封包解密並使用此等值來自安全模組108請求第一金鑰116。
在階段(C),第二應用程式118嘗試自安全模組108獲得第一金鑰116。然而,由於已達到對產生第一金鑰116之時間限制,因此安全模組108不再允許產生第一金鑰116。第二應用程式118在標記為「時間2」之一第二時間向安全模組108發送一請求。在該實例中,此時間係在時間1之後且亦係在由控制值114指定之到期時間之後。由第二應用程式118發送之請求向安全模組108提供第一應用程式106在最初獲得第一金鑰116時使用之相同上下文112及相同控制值114。若第二時間在到期時間之前,如在最初產生第一金鑰116時之情況,則安全模組108將產生經提供至第一應用程式106之相同的第一金鑰116。然而,由於第二時間係在到期時間之後,故用於產生金鑰之值集係不同的,且因此安全模組108產生不同於第一金鑰116之一第二金鑰120。
作為對來自第二應用程式118之請求之回應的部分,安全模組108執行一第二比較119,以判定當前時間是否在金鑰的到期時間之前。例如,安全模組108獲得指示內部計數器之值之一當前計數器值。安全模組108比較當前時脈值與控制值114。比較結果(例如,「1」)指示計數器值大於控制值114,且因此當前時間係在到期時間之後。歸因於時序,比較119之結果(「1」)不同於較早比較115之結果(「0」)。比較119的結果係被包含在用於回應於來自第二應用程式118之請求而產生一金鑰的輸入集中,且因此安全模組產生不同於金鑰116的金鑰120,即使金鑰116、120兩者係基於相同上下文112及控制值114而產生亦係如此。藉由在時間限制到期之後產生一不同金鑰120,安全模組108確保強制執行對第一金鑰116之產生的時間限制。
上文圖1之論述描述針對產生第一金鑰116之能力設定一到期時間,但可設定其他類型之時間約束。例如,安全模組108可在一時間保險庫模式中操作,於該時間保險庫模式中,第一金鑰116可被產生一次,但不能被再次產生,直至已經過一特定時間(例如,一存取時間)為止。在此情況下,第一金鑰116可表示產生之初始金鑰,且第二金鑰120可表示在預定存取時間之前請求之一金鑰。因此,在時間保險庫模式中,安全模組108可阻止請求模組獲得金鑰,直至存取時間為止,且在存取時間之後,第一金鑰116變得可用。
在一些實施方案中,被描述為由第一應用程式106或第二應用程式118執行之操作係由裝置104之另一程序或組件執行。例如,可藉由一作業系統、並非一應用程式之一軟體模組、與安全模組108在相同積體電路或一不同積體電路上之一硬體模組等來提供獲得金鑰之請求。
圖2A係展示用於產生具有一到期時間之一金鑰之一系統200之一實例的一圖式。系統200包含安全模組108且進一步詳細展示裝置104中之安全模組108之操作及安全模組108與應用程式或其他模組之互動。安全模組108可經實施為一系統單晶片(SoC)或裝置104之另一積體電路之部分。安全模組108包含一比較器214、一時脈計數器216、一時脈監測模組218、一隨機數產生器220、一溢位監測模組222、一金鑰輸入暫存器213、一金鑰導出引擎232及驗證引擎234。系統200亦包含一控制值引擎210及一應用程式212。
在一些實施方案中,安全模組108係一電腦或其他電子裝置之一硬體元件。例如,安全模組108可使用一或多個積體電路實施。安全模組108可在防篡改以避免對金鑰產生程序之外部干擾之安全硬體中實施。
圖2A之實例展示安全模組108產生一金鑰,該金鑰在可獲得金鑰之時間範圍上具有一客製時間約束。作為概述,安全模組108自一實體(諸如應用程式212)獲得資料,以產生金鑰輸入暫存器213中之值。安全模組108接著將金鑰輸入暫存器213中之資料發送至金鑰導出引擎232,該金鑰導出引擎232將一金鑰導出函數應用於該資料以產生一金鑰236。在一些實施方案中,金鑰236係由如項238中展示之一或多個字母數字符號表示。金鑰導出引擎232 (例如)回應於來自應用程式212之產生金鑰之請求提供金鑰236作為輸出240。一般而言,系統200可產生金鑰並將其提供至任何實體(包含程序或裝置)。
安全模組108經組態以基於金鑰輸入暫存器213中之值產生金鑰。改變金鑰輸入暫存器213中之任何值改變將產生之所得金鑰。在圖2A之實例中,兩個值(使用者上下文226及控制值228)係由正請求一金鑰之應用程式212自安全模組外部提供。兩個其他值(一隨機數224及一比較結果230)係在安全模組108內產生且不能由外部模組更改。金鑰輸入暫存器213之內容一起形成作為金鑰導出引擎232用於產生一金鑰之源資料或種子資料之整體金鑰導出函數(KDF)上下文。安全模組108可經組態以隨時間持續使用相同金鑰導出函數,使得在重複提供相同KDF上下文時,產生相同金鑰。
安全模組108包含呈一隨機數產生器220之形式之一熵源。隨機數產生器220產生儲存於金鑰輸入暫存器213中之一隨機數224。隨機數224未用各金鑰請求替換,且代替性地隨時間被維持且被重用於許多金鑰請求,除非發生特定條件來改變儲存之隨機數。由於隨機數224係產生之所有金鑰之KDF上下文之部分,因此經儲存隨機數224之一變化不可逆地使所有先前金鑰不可擷取。因此,經儲存隨機數224之值通常僅回應於期望使先前金鑰不可擷取之事件(諸如裝置104之各功率週期、裝置104之手動重設、時脈計數器216之溢位或時脈信號之一變化(例如,時脈信號之減速或停止,此可影響用於強制執行時間約束之時間之量測))而改變或初始化。隨機數224係金鑰產生程序之一重要且敏感的部分,且因此防止其洩漏及操縱,例如,防止小故障及透過電源或時序側通道之存取或操縱。
安全模組108使用一時脈信號來計量時間流逝並強制執行時間限制。此時脈信號通常由一外部源(諸如包含安全模組108之SoC或積體電路之一時脈產生模組)提供。為追蹤時間流逝,安全模組108使用時脈計數器216來回應於時脈信號之脈衝而單調地改變狀態。例如,時脈計數器216可為經組態以在各時脈週期(例如,針對時脈信號之各上升邊緣)遞增一經儲存值之一數位計數器。當然,可使用其他變動。例如,時脈計數器216可經組態以遞減計數器值而非遞增計數器值。作為另一實例,時脈計數器216可經組態以在已發生一定數目個時脈週期之後(例如,每10個週期、每100個週期等)而非在每個週期內調整經儲存值。
由於安全模組108依靠時脈信號及時脈計數器216來追蹤時間流逝,因此安全模組108可包含用以偵測及回應於干擾此時間追蹤之條件之元件。例如,一時脈監測模組218可偵測時脈信號之變動(例如,時脈頻率之變化或時脈之停止)且作為回應可觸發隨機數產生器220用一新隨機數替換經儲存隨機數224。類似地,一溢位監測模組222可偵測時脈計數器216之溢位且作為回應可觸發隨機數產生器220用一新隨機數替換經儲存隨機數224。經儲存隨機數之此等變化使所有先前產生之金鑰不可擷取,以避免在適當時間限制之外獲得任何金鑰的可能性。下文進一步論述監測模組218、222。
為請求一金鑰,應用程式212將一使用者上下文226及一控制值228提供至安全模組108。此兩個值唯一地識別所要之金鑰且使安全模組108能夠產生所要金鑰,只要滿足金鑰之時間約束且隨機數224不改變。使用者上下文226係可指定金鑰或其目的之一金鑰識別符。在一些實施方案中,使用者上下文226可為由最初請求創建金鑰之應用程式選擇之經受一大小限制之一任意值。
控制值228指定待應用於金鑰之一時間限制。在圖2A之實例中,安全模組108經組態使得控制值228指定在其之後不再能夠產生金鑰之一到期時間。此到期時間可由正請求產生金鑰之應用程式212選擇。使用控制值,安全模組108容許針對由安全模組產生之各金鑰指定一分開的、客製定義之到期時間。第一次產生一金鑰時,可要求控制值228為未來之一時間,使得在初始金鑰產生之前未達到到期時間。
控制值228可相對於安全模組108中之時脈計數器216之狀態指定到期時間。例如,控制值228可為表示到期時間之一時戳,特定言之,用於在其之後將不再允許產生金鑰之一未來時間之一時戳。為使應用程式或其他模組能夠判定控制值,安全模組108容許在安全模組108之外讀取計數器值。因此,當前計數器值用作自其指定未來時間之基值或參考。當請求一新金鑰時,計數器值204連同一已知時脈頻率208或計數器更新頻率可用於將控制值228設定為一所要到期時間。
在一些實施方案中,提供一控制值引擎210以產生表示所要到期時間之控制值。例如,應用程式212可將一所要到期時間206提供至控制值引擎210,且控制值引擎210可返回表示到期時間206之一控制值228。控制值引擎210用於產生一控制值228之資料集包含來自時脈計數器216之當前時脈計數器值204、由應用程式212指定之到期時間206,及指示時脈計數器216更新之速率之一時脈頻率208。在一些實施方案中,控制值引擎210自安全模組108獲得時脈頻率208。例如,除了時脈頻率208之外,安全模組108亦可提供時脈計數器值204。如上文所論述,時脈計數器216基於時脈頻率208單調地改變(例如,持續遞增或持續遞減)其值。
基於資料202,控制值引擎210產生控制值228。到期時間216可表示為一特定時間(例如,下午1:02,以一所要位準之精度)或表示為一偏移(例如,未來1小時)。在一些實施方案中,控制值引擎210判定一當前時間與到期時間206之間的一時間差。例如,控制值引擎210可自裝置104之一本地時間服務獲得一當前時間。控制值引擎210可運算當前時間與到期時間206之間的一差。基於時脈頻率208,控制值引擎210可運算在自當前時間至到期時間206之時間週期內將發生之遞增次數。控制值引擎210可將該遞增次數加至當前時脈計數器值204以產生指示將在到期時間206出現之時脈計數器216之未來值的控制值228。控制值引擎210將控制值228提供至應用程式212。
在應用程式212將控制值228及使用者上下文226提供至安全模組108之後,安全模組108填入金鑰輸入暫存器213之內容。控制值228及使用者上下文226可被直接包含於金鑰輸入暫存器213中。然而,此並非必需的,且在一些實施方案中,安全模組108可產生由應用程式212提供之使用者上下文之一經修改版本。例如,安全模組108可應用規則來調整由應用程式212提供之使用者上下文之一或多個值以產生儲存於金鑰輸入暫存器213中之使用者上下文226。調整可包含用以使使用者上下文符合一特定格式以包含於金鑰輸入暫存器213中之調整,諸如調整資料格式、截斷資料或添加填補值以擬合一所要資料大小等。若進行任何調整,則其等以一可重複方式完成,使得相同輸入使用者上下文每次在金鑰輸入暫存器213中產生相同使用者上下文。
安全模組108亦判定一比較結果230以包含於金鑰輸入暫存器213中。比較結果230指示當前時脈計數器值是否超過控制值。實際上,此核實當前時間是否在到期時間206之後。為執行比較,安全模組108將控制值228及當前計數器值提供至比較器214。比較器214實施一布林(Boolean)比較功能。例如,比較器214可執行一小於比較、一小於或等於比較、一大於比較或一大於或等於比較。所使用之特定比較(例如,小於對大於)在此並不重要,只要使用相同比較功能且比較結果在到期時間之後改變。
比較器214基於控制值228與來自時脈計數器216之計數器值之一比較產生一比較結果320。在一些實施方案中,比較結果230包含一或多個位元。例如,比較結果230可為指示來自比較器214之一比較結果之一單個位元。例如,可針對到期時間之前之比較結果提供一「0」值,且可提供一「1」值作為到期時間之後之比較結果。比較結果230完成金鑰輸入暫存器213中之資料集。
安全模組108將金鑰輸入暫存器213中之資料集(例如,經儲存隨機數224、使用者上下文226、控制值228及比較結果230)作為輸入提供至金鑰導出引擎232。金鑰導出引擎232可為安全模組108之一組件。
金鑰導出引擎232產生金鑰236。在一些實施方案中,金鑰導出引擎232基於Rivest-Shamir-Adleman (RSA)方案產生金鑰236。在一些實施方案中,金鑰導出引擎232基於一或多個安全散列演算法(SHA) (例如,SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256)產生金鑰236。
金鑰導出引擎232基於金鑰輸入暫存器213中之輸入集產生金鑰236,使得金鑰輸入暫存器213之內容之任何變化將改變產生之所得金鑰,但金鑰輸入暫存器213之相同內容將產生相同金鑰236。即,若一實體(例如,應用程式212或另一應用程式、程序或裝置)將使用者上下文226及控制值228提供至安全模組108且滿足金鑰產生之時間條件,則該實體可獲得應用程式212獲得之相同金鑰236。
安全模組108將金鑰236作為輸出240提供至應用程式212。一般而言,可使安全模組108可用於各種實體之任一者以提供上下文值及控制值以自安全模組108獲得金鑰。因此,安全模組108可為許多不同硬體模組及軟體模組提供獲得金鑰之一金鑰產生服務,其中各金鑰具有其自身客製定義之到期時間。
在一些實施方案中,安全模組108包含核實滿足一或多個條件之一驗證引擎234。例如,期望安全模組108至少在請求一金鑰之第一例項中確保該金鑰之時間限制在產生金鑰之前尚未到期。特定言之,期望確保產生具有仍小於控制值228之一計數器值之金鑰,使得金鑰產生係基於指示尚未達到到期時間之一比較結果230。否則,若用於創建原始金鑰之比較結果230展示到期時間已經過,則全部未來金鑰請求將產生相同金鑰,而無關於其等發生在多遠之未來。實際上,在由控制值228設定之到期時間之後之一時間產生一金鑰將創建將永不到期之一金鑰。若一應用程式或模組預期強制執行一時間限制,但實際上無時間限制限制金鑰之未來產生,則此行為將為非預期及非所要的。
為確認所產生金鑰係有效地產生,具有仍在未來之一到期時間,驗證引擎234可自時脈計數器216獲得一計數器值。例如,驗證引擎234可獲得表示在金鑰導出引擎232已導出金鑰236之後計數器216之狀態之一計數器值。驗證引擎234接著比較所獲得之計數器值與控制值228,以確保即使在產生金鑰236之後,當前計數器值仍小於控制值228 (例如,計數器值尚未遞增至其達到或超過控制值228之程度)。驗證引擎234可使用其他技術來判定金鑰236係基於一未來到期時間而非一不適當的過去時間來正確產生。例如,驗證引擎234可核實用於產生比較結果230之計數器值小於控制值228或驗證引擎234可核實比較結果230自身以確認其展示計數器尚未達到控制值228。
在一些實施方案中,驗證引擎234可核實一或多個其他條件,諸如來自時脈計數器216之計數器值與控制值228之間的一差是否滿足一臨限值。例如,驗證引擎234可運算計數器值與控制值228之間的一差值。驗證引擎234可比較該差值與一臨限值。該臨限值可表示用於金鑰再生之一最小時間量。例如,可將臨限值設定為在金鑰產生與相關聯於金鑰之後續到期時間之間需要最小5秒。
若驗證引擎234判定未滿足適當條件,則驗證引擎234可發送指示問題之一信號或訊息(例如,一旗標、一錯誤、一異常等)。例如,若到期時間發生在產生金鑰之前,則驗證引擎234可告知應用程式212金鑰將不強制執行一未來到期,或金鑰並非輸入值請求之金鑰之版本。以一類似方式,若到期時間將在自金鑰產生起之一最小時間量內發生,則驗證引擎234可類似地向應用程式212指示此。在一些實施方案中,若不滿足由驗證引擎234核實之條件,則驗證引擎234可阻止所產生之金鑰之輸出。在產生期望對其強制執行一未來到期時間之一時間限制之一原始金鑰之情況下,阻止金鑰之輸出對於避免應用程式212接收未對其應用時間限制之一金鑰可為有用的。若來自應用程式212之請求或安全模組108之操作模式使得需要應用一未來時間約束,則安全模組108可向應用程式112指示需要指示一較晚到期時間之一不同控制值。
如上文所論述,安全模組108透過對時脈計數器216中之值之定期變化依靠具有一一致頻率之一時脈信號來計量時間流逝。若時脈信號減速或停止,或若時脈計數器溢位,則可潛在地規避對金鑰產生強制執行時間條件。為防止此,時脈監測模組218及溢位監測模組222執行監測以偵測干擾強制執行時間限制之條件且若彼等條件發生則觸發經儲存隨機數224之替換。
時脈監測模組218監測由安全模組接收之時脈信號以確保時脈頻率保持充分一致(例如,具有一預定容限)。若偵測到時脈頻率之一顯著降低,則時脈監測模組218藉由觸發隨機數提供一新隨機數以替換經儲存隨機數224來引起所有先前金鑰變得不可擷取。如此做係因為時脈頻率之一非預期或未經管理之變化將更改安全模組對時間流逝之偵測且因此可允許在針對金鑰設定之有限時間之外產生金鑰。
溢位監測模組222偵測時脈計數器216之溢位並對此作出回應。在一些實施方案中,時脈計數器216獲得來自時脈計數器216之計數器值且偵測溢位何時發生(例如,值在超過計數器216之最大值之後何時反轉為零)。另外或作為替代,溢位監測模組222可獲得由時脈計數器216發送之指示時脈計數器216已溢位之一溢位旗標(例如,一信號或一事件通知)。
在一些實施方案中,溢位監測模組222週期性地獲得計數器值。溢位監測模組222可經組態以基於所獲得之計數器值來偵測時脈計數器216之一溢位。例如,時脈監測模組218可比較自時脈計數器216獲得之計數器值與指示在發生時脈計數器216之一溢位之後之一計數器值之一值的一溢位值。在一些實施方案中,時脈計數器216以0開始且遞增直至溢位再次以0開始計數。在一些實施方案中,時脈計數器216以另一值開始且遞增或遞減,直至再次達到初始值。溢位監測模組222可藉由比較自計數器值216獲得之一或多個計數器值與相關聯於溢位之值(諸如一初始計數器值)來偵測溢位。
當溢位監測模組222偵測到溢位時,其發送一信號以指示隨機數產生器220產生一新隨機數以替換經儲存隨機數224。此變化使得使用先前經儲存隨機數224產生之所有金鑰變得不可恢復。如此做係因為在計數器216溢位之後,計數器值與先前所產生之金鑰之各自控制值之比較將不再係是否滿足時間約束之準確指示。因此,透過溢位或其他方式重設時脈計數器216之值導致整體重設金鑰產生,使得相對於計數器216之新狀態正確判斷時間約束。
在一些實施方案中,隨機數產生器220係一基於硬體之隨機數產生器(HRNG)。例如,隨機數產生器220可產生依據一或多個物理環境屬性(例如,溫度、電雜訊等)而變化之一隨機數,諸如隨機數224。物理環境屬性可包含隨機數產生器220內之電荷之狀態。一基於硬體之隨機數產生器藉由幫助確保各方不容易能夠模型化隨機數產生器220之狀態以判定一對應所產生隨機數來提供安全性。在一些實施方案中,隨機數產生器220包含一或多個偽隨機數產生器(PRNG)。例如,隨機數產生器220可包含經組態以僅基於隨機數產生器220之所產生之隨機數輸出來產生難以模型化之一隨機數的一或多個函數。
圖2A之實例展示一實施方案,其中可使用相同使用者上下文226及控制值228重複地產生一金鑰,直至到期時間206,或直至改變經儲存隨機數224之一較早事件(例如,裝置104之重設、時脈信號之操縱,或時脈計數器216之溢位)。在到期時間206或對經儲存隨機數224之任何改變之前,任何實體可將使用者上下文226及控制值228提供至安全模組108以產生相同金鑰236。在到期時間206之後,至少提供至金鑰輸入暫存器213之比較結果230將已改變,且因此所得金鑰亦將改變。如所論述,金鑰導出引擎232可經組態使得輸入之一變化引發輸出之一大變化。比較結果230之一變化將意謂,即使在一實體提供相同使用者上下文226及控制值228時,比較結果230仍將為不同的,此意謂不能再次產生金鑰236。在到期時間之後,原始金鑰236保持可由在到期時間之前已獲得金鑰236之應用程式或模組使用。然而,在到期時間之後自安全模組108獲得金鑰236之任何嘗試都將為不成功的。
圖2B係展示用於產生具有一到期時間之一金鑰之一實例性系統250的一圖式。類似於系統200,系統250包含產生待用於密碼操作中之一金鑰236之一安全模組108,且安全模組108設定在其之後不再能夠再次產生金鑰236之一到期時間。然而,在產生金鑰236時,系統250中之安全模組108向金鑰導出函數232提供一不同資料組合(相較於圖2A中使用之資料組合)。系統250將金鑰導出上下文儲存於其中儲存一金鑰252而非經儲存隨機數224之一金鑰輸入暫存器251 (而非金鑰輸入暫存器213)中。為改良安全性,金鑰252可基於定期且頻繁地(諸如每分鐘、每五分鐘等)更新之一經儲存金鑰258。
金鑰252係由一迭代金鑰引擎256設定且定期更新,而非由隨機數產生器220設定。由於金鑰252不僅僅依靠一隨機數產生器,因此系統250可更能適應隨機數產生器被破解。例如,在系統250中,一攻擊者將不得不破解(例如,獲得控制)隨機數產生器254及迭代金鑰引擎256兩者以便破解使用金鑰輸入暫存器251中之值產生之金鑰的安全性。
安全模組108按規則間隔改變經儲存金鑰258之值。每次改變係藉由獲取經儲存金鑰258之當前值並透過一金鑰導出函數運行其一次以產生替換先前值之一新的經儲存金鑰258來進行。因此,在正常操作中(例如,不具有一裝置重設或篡改以觸發一新隨機數替換經儲存金鑰258),當前經儲存金鑰258係自一個之前金鑰導出,該之前金鑰自身係自一個之前金鑰導出等等。此機制透過一系列經儲存金鑰258隨時間提供一漸進、單調前進。一經儲存金鑰258之未來值可經導出,但經儲存金鑰258之過去值不能被導出,此係因為其等未經儲存且不能容易地自當前經儲存金鑰258判定。給定經儲存金鑰258之當前值,可藉由迭代地運行金鑰導出函數適當次數來計算將在未來一特定時間存在之經儲存金鑰258之值。
當安全模組108產生一金鑰236時,在金鑰輸入暫存器251中用於金鑰252之值係基於經儲存金鑰258之最新值來設定。然而,經儲存金鑰258不一定直接用作金鑰252之值。實情係,迭代金鑰引擎256以經儲存金鑰258之當前值開始且執行可變數目個金鑰導出週期以達到用於金鑰252之值。當執行多個金鑰導出週期時,在第一金鑰導出週期中,經儲存金鑰258係至金鑰導出程序之輸入,接著在各後續週期中,迭代金鑰引擎256再次透過金鑰導出函數運行先前週期之金鑰輸出。針對各金鑰導出週期使用相同金鑰導出函數,從而使得若使用相同起始輸入且若執行相同數目個金鑰導出週期,則可重複地產生相同最終結果。為產生金鑰252而執行之金鑰導出週期之數目係基於指定金鑰236之產生之到期時間之控制值228來判定。當安全模組108產生金鑰236時,迭代金鑰引擎256將金鑰252設定為將在到期時間存在之經儲存金鑰258之值。此樣,在由控制值228設定之到期時間之前之任何時間點,迭代金鑰引擎256可重新創建將在到期時間存在之相同經儲存金鑰258,且因此正確地產生金鑰236。
進一步詳細地,迭代金鑰引擎256存取一經儲存金鑰258。經儲存金鑰258最初被設定為由隨機數產生器254產生之一隨機數。經儲存金鑰258係在裝置重設、偵測到篡改(例如,時脈信號之變動)或計數器值204之完全溢位時用一隨機數替換。迭代金鑰引擎256 (例如)回應於偵測到時脈計數器值204之一部分之溢位而週期性地更新經儲存金鑰258。迭代金鑰引擎256可回應於偵測到計數器值204之僅一部分之溢位(例如,一中間位元之一變化,諸如時脈計數器值204之32個位元中之7個最低有效位元返回至零)而頻繁得多地更新經儲存金鑰258,而非等待整個計數器值完全溢位(例如,最高有效位元之反轉,或若使用一32位元計數器值,則所有32個位元返回至零)。可選擇用以監測改變或溢位之一或多個位元以觸發以一所要間隔(例如,每30秒、1分鐘、5分鐘等)更新經儲存金鑰258。
為回應於一請求而產生金鑰236,迭代金鑰引擎256基於經儲存金鑰258、時脈計數器值204及控制值228設定金鑰252之值。迭代金鑰引擎256對經儲存金鑰258迭代地應用一金鑰導出函數以產生金鑰252。例如,迭代金鑰引擎256可比較時脈計數器值204與控制值228以判定自對應於當前時脈計數器值204之時間至對應於控制值228之時間將發生之部分溢位(例如,計數器值204之一預定最低有效部分之溢位)之次數。
對於各部分溢位(例如,最低有效部分之溢位),迭代金鑰引擎256可執行應用一金鑰導出函數之迭代。金鑰導出函數可為一散列函數或確定性地將一輸入值映射至一輸出值之其他函數。應用一金鑰導出函數之一迭代可包含獲得一輸入值並對該輸入值應用一金鑰導出函數以產生一輸出。第一迭代可使用經儲存金鑰258作為輸入值。後續迭代可使用先前迭代之輸出作為輸入。在迭代金鑰引擎256執行對應於自對應於時脈計數器值204之時間至對應於控制值228之時間將發生之溢位之經判定次數之迭代次數之後,最後迭代之輸出被用作金鑰252。
在一實例性情境中,考量其中每分鐘更新一次經儲存金鑰258之一實施方案。各更新遞增經儲存金鑰258之版本,例如,最初版本0,在一個更新週期之後版本1,在兩個更新週期之後版本2等。應用程式212在一第一時間(例如,下午1:10)在針對金鑰236之一第一請求中提供使用者上下文226及控制值228。用於金鑰236之控制值228指定未來10分鐘之一時間(例如,下午1:20),在此之後經儲存金鑰258將已透過定期、每分鐘更新被更新十次。在第一時間,時脈計數器值204係一第一時脈值,且迭代金鑰引擎256基於第一時脈計數器值與控制值228之間的差判定自第一時間(例如,下午1:10)至對應於控制值228之到期時間(例如,下午1:20)將發生10次溢位。迭代金鑰引擎256接著藉由執行10個金鑰導出週期來產生金鑰252,其中第二及後續週期各作用於先前週期之輸出,如上文所描述。為產生原始且真實的金鑰236,金鑰252 (例如,金鑰版本10)係對在第一時間(例如,下午1:10)存在之經儲存金鑰258 (例如,版本0)之值迭代地應用金鑰導出函數10次的結果。
在一第二時間(諸如下午1:12),應用程式212或另一應用程式可在針對金鑰236之一第二請求中提供使用者上下文226及控制值228。在第一時間與第二時間之間,表示時脈計數器值204之經判定數目個位元已溢位兩次。回應於各溢位,迭代金鑰引擎256已藉由對經儲存金鑰258執行金鑰導出函數且接著用金鑰導出函數之輸出替換先前經儲存金鑰258來更新經儲存金鑰258。在第二時間,經儲存金鑰258自原始金鑰請求以來已被更新,從而導致金鑰版本2作為經儲存金鑰258之值。儘管安全模組108未儲存關於原始金鑰之任何狀態資訊,但迭代金鑰引擎258仍可基於當前時間與到期時間之間的差(例如,自時脈計數器值204及控制值228)來判定金鑰252之正確值。
在第二時間(例如,下午1:12),時脈計數器值204已增加至一第二時脈值,且此時之經儲存金鑰258係版本2。迭代金鑰引擎256基於該第二時脈值與控制值228之間的差來判定自第二時間至由控制值228指定的時間將發生8次溢位。迭代金鑰引擎256接著藉由對經儲存金鑰258 (例如,版本2)執行8個金鑰導出週期來產生金鑰252。當前經儲存金鑰258 (例如,版本2)具有已被併入其中之兩個金鑰導出週期的效應。對版本2金鑰應用8個進一步金鑰導出週期將達到藉由對版本0金鑰應用10個金鑰導出週期達成之相同結果(例如,版本10)。因此,在第二時間產生之金鑰252與在第一時間產生之金鑰252為相同值。在使用相同金鑰252的情況下,只要金鑰輸入暫存器251之其他內容(例如,使用者上下文226、控制值228及比較結果230)與在對第一請求作出回應時使用的相同,系統250就將在第二時間(例如,下午1:12)產生在第一時間(例如,下午1:10)產生的相同金鑰236。以此方式,金鑰(諸如金鑰236)可用於密碼操作中,且其導出可以與針對系統200所論述相同的方式有時間限。
仍繼續實例,可在到期時間之後(諸如在下午1:21)接收針對相同金鑰236之一第三請求。此時,回應於第一及第二請求,經儲存金鑰258已被更新超過用作金鑰252之值以產生原始金鑰236。例如,在下午1:21,經儲存金鑰238之值將為版本11,其中先前版本10係用於產生真實的原始金鑰236。由於經儲存金鑰258係在未儲存先前版本的情況下隨時間漸進地更新,因此不可能獲得經儲存金鑰258之先前版本。因此,在此實例中,在由控制值228設定之到期時間之後的一分鐘內,歸因於產生原始金鑰236之金鑰252 (例如,版本10)之正確值的不可用性,原始金鑰236變得不可恢復。除了一旦達到到期時間其值亦改變之比較結果230的變化之外,此機制進一步加強到期時間之強制執行。
在圖2B之實例中,控制值引擎210、應用程式212、比較器214、時脈計數器216、時脈監測模組218、金鑰導出引擎232及驗證引擎234如圖2A中描述般操作。隨機數產生器254可與隨機數產生器220相同,惟隨機數產生器254設定經儲存金鑰258而非隨機數產生器220設定隨機數224除外。類似地,溢位監測模組255可執行針對溢位監測模組222描述之功能,惟溢位監測模組255另外判定如下文所論述之一第二類型的溢位(例如,表示計數器值204中之位元之一最低有效子集之溢位的部分溢位)除外。
圖2C更詳細地展示實例性系統250之迭代金鑰引擎256的操作。如所論述,迭代金鑰引擎256更新經儲存金鑰258並且將金鑰250設定於金鑰輸入暫存器251中。迭代金鑰引擎256包含一金鑰導出引擎260。金鑰導出引擎260將一金鑰導出函數應用於一輸入值以產生一輸出值。
在其中迭代金鑰引擎256更新經儲存金鑰258之情況下,金鑰迭代金鑰引擎自溢位監測模組255獲得輸入。溢位監測模組255可偵測時脈計數器216之不同類型之溢位並對其等作出回應,此可觸發安全模組108中之不同動作。
一第一類型之溢位可為時脈計數器值204之一完全溢位,例如,其中在超過計數器216之最大值之後所有位元反轉為零。此可被偵測為在計數器單調地遞增時最高有效位元之自「1」至「0」之變化。溢位監測模組255可回應於如針對系統200之溢位監測模組222論述之第一類型之溢位而產生一信號並將該信號發送至隨機數產生器254。安全模組108可經組態以藉由引起隨機數產生器254產生一隨機數並將該所產生之隨機數設定為新的經儲存金鑰258,從而替換經儲存金鑰258之先前值來對此信號作出回應。
一第二類型之溢位可為一部分溢位,其中僅時脈計數器值中之一位元子集溢位。可針對溢位監測時脈計數器值之一預定部分以表示時脈計數器值204中之一組最低有效位元之溢位。例如,若時脈計數器值204係一32位元值,則此第二類型之溢位可為最低有效部分中之預定數目個位元(例如,最低有效的10個位元、8個位元或預先選擇之任何適當數目個)之溢位。此可被偵測為一中間位元之一變化(例如,第11位元之自「1」至「0」之一變化)或一組位元(例如,位元1至10)中之全零。一般而言,第二類型之溢位(例如,部分或中間溢位)可在第一類型之溢位(例如,最高有效位元之溢位)之間發生多次。
回應於溢位監測模組255偵測到第二類型之溢位(例如,藉由監測時脈計數器216),溢位監測模組255可產生一信號並將該信號發送至金鑰導出引擎260。金鑰導出引擎260可經組態以藉由獲得當前經儲存金鑰258,對經儲存金鑰258應用一金鑰導出函數以產生一臨時金鑰262及用新產生之臨時金鑰262替換經儲存金鑰258來對此信號作出回應。
迭代金鑰引擎256亦用於設定金鑰輸入暫存器251之金鑰252。在此情況下,迭代金鑰引擎256獲得控制值228及當前時脈計數器值204。一週期計數引擎264判定將在由當前時脈計數器值204表示之時間與由控制值228表示之時間之間發生的第二類型之溢位(例如,最低有效部分中之溢位)之一次數。接著將第二類型之溢位之此次數設定為為產生金鑰252而執行之金鑰導出週期之數目。在一些實施方案中,判定第二類型之溢位之次數包含判定控制值228與時脈計數器值204之間的一差。例如,時脈計數器值204可使用16個位元來表示,且一第二類型之溢位包含最低有效的10個位元反轉為0。週期計數引擎264可判定控制值228之最高有效的6個位元與時脈計數器值204之最高有效的6個位元之間的差。最高有效部分之值之間的差(例如,當忽略最低有效部分時,控制值228超過當前時脈計數器值204之量)可經設定為設定待執行之金鑰導出週期之數目之金鑰週期計數266。金鑰週期計數266表示直至由控制值228設定之時間為止將發生之第二類型之溢位之次數且係控制應用待執行之金鑰導出函數以產生輸入暫存器251之金鑰252之迭代之次數的一參數。
在圖2C之實例中,金鑰週期計數266係控制透過應用金鑰導出引擎260之一金鑰導出函數進行迭代之次數之一值。作為一實例,週期迭代引擎264可判定在對應於時脈計數器值204之一時間與對應於控制值228之一時間之間將發生四次第二類型之溢位。迭代金鑰引擎256可產生金鑰250作為四次應用一金鑰導出函數之輸出。在四次迭代之第一次中,金鑰導出引擎260獲得當前經儲存金鑰258並應用一金鑰導出函數以產生一臨時金鑰262a作為輸出。金鑰導出引擎260接著執行剩餘迭代,每次使用在先前迭代中產生之臨時金鑰262a作為至金鑰導出函數之一輸入以產生一新的臨時金鑰262a作為輸出。使用金鑰導出函數之輸出作為至金鑰導出函數之輸入之程序繼續進行由金鑰週期計數266指定之多次迭代。金鑰導出引擎260提供來自最後迭代之輸出作為金鑰輸入暫存器251之金鑰252。
可進行迭代金鑰引擎256之操作之變動。例如,迭代金鑰引擎256可每隔一個第二類型之溢位更新經儲存金鑰258,而非針對每個第二類型之溢位更新經儲存金鑰258。為適應此,週期迭代引擎264可將金鑰週期計數266判定為在時脈計數器值204與控制值228之間的時間週期中將發生之經判定第二類型之溢位的一半。其他功能及更新排程可用於基於表示時脈計數器值204之位元之溢位來更新經儲存金鑰258並適當地判定金鑰週期計數266。
金鑰導出引擎260可包含將一輸入值映射至一輸出值之一散列函數。在一些實施方案中,金鑰導出引擎260使用與金鑰導出引擎232相同之金鑰導出函數或可甚至為金鑰導出引擎232自身。
圖3係展示用於有時間限之金鑰產生之一系統300之一實例的一圖式。在此實例中,安全模組108具有一不同組態以能夠支援多個模式中之操作。在一種模式中,可視需要以上文針對圖2A論述之方式再次多次產生一所產生金鑰直至一到期時間為止。在一第二模式(一「時間保險庫」模式)中,一所產生之金鑰被提供一次且接著不能再次產生,直至一存取時間為止。在一金鑰之初始產生之後,該金鑰象徵性地保持鎖定於保險庫中且僅能夠在存取時間之後自安全模組108再次獲得。圖3之實例展示在時間保險庫模式中使用之安全模組108。
安全模組108包含圖2A中所展示之許多組件,例如,時脈監測模組218、隨機數產生器220、溢位監測模組222、比較器214及時脈計數器216。圖3中所展示之實施方案,安全模組108另外包含一AND運算子308、一多工器310及一保險庫計數器312。安全模組108包含經組態以儲存比圖2A之金鑰輸入暫存器213更多之值之一金鑰輸入暫存器314。系統300包含幫助產生控制值之控制值引擎210及產生並為安全模組108提供輸入以產生一金鑰320之應用程式212。
在圖3之實例中,儲存於金鑰輸入暫存器中之金鑰導出上下文包含一隨機數224、一使用者上下文226、一控制值315、一狀態遮罩317、一運算結果318及一保險庫上下文316。在此等項中,使用者上下文226、控制值315及狀態遮罩317係由請求金鑰之應用程式212提供。隨機數224係由隨機數產生器220產生之一秘密的經儲存隨機數。如上文所論述,隨機數224持續存在且跨多個金鑰重新使用,除非發生特定條件之一者以觸發隨機數224被一新隨機數替換。運算結果318及保險庫上下文316係由安全模組108判定且在下文進一步論述。在保險庫上下文之情況下,應用程式212提供安全模組108在特定條件下使用之一輸入保險庫上下文。
當應用程式212請求一金鑰時,應用程式212可自安全模組之多種操作模式當中進行選擇。例如,應用程式212設定狀態遮罩317 (亦被稱為「SM」)之值以指示是否對產生一金鑰應用一到期時間(例如,設定可產生金鑰之最遲時間)或應用一「時間保險庫」限制(例如,設定可產生金鑰之最早時間)。因此,狀態遮罩317具有選擇將對金鑰強制執行之時間限制之類型之效應。「0」之一狀態遮罩317值選擇一時間保險庫限制,且「1」之一狀態遮罩317值選擇用於產生金鑰之一到期條件。狀態遮罩317自身係用於金鑰導出函數上下文中之一值,且因此狀態遮罩317之不同值將導致產生不同金鑰。又,由於模式選擇及時間限制係金鑰產生程序之一結果,因此安全模組108無需評估狀態遮罩317並執行其他操作以選擇或切換模式。代替性地,用所展示之邏輯簡單地實行金鑰產生具有強制執行適當類型之限制之效應,如下文所論述。
為判定提供至安全模組108之控制值315,應用程式212可與控制值引擎210互動以獲得指定一未來時間之一控制值315。如同圖2A之實例,控制值315可為一時戳或指示一時間之值。然而,使用此時間應用之時間限制之類型取決於由狀態遮罩317選擇之模式而改變。若狀態遮罩317經設定為「1」,則控制值315將設定金鑰產生之一到期時間。若狀態遮罩317經設定為「0」,則控制值315表示金鑰之進一步產生變得可用之時間。
應用程式212可向控制值引擎210提供指示應容許進一步產生金鑰之一時間(例如,一存取時間304)之資料。控制值引擎210使用存取時間304連同時脈頻率208及一時脈計數器值204 (指示時脈計數器216之當前值)來產生表示存取時間304之控制值315。如針對圖2A論述,控制值315可將所要時間編碼或指定為將在所要時間出現之時脈計數器216之一未來值。類似於圖2A中之控制值228之產生,控制值引擎210可運算一當前時間與存取時間304之間的一差。控制值引擎210可運算自當前時間至存取時間304將發生之時脈計數器216之遞增次數。控制值引擎210可將經運算之遞增次數加至時脈計數器值204以產生指示存取時間304之控制值315。用於在一控制值中指定一時間之相同技術可用於到期模式或時間保險庫模式,但安全模組108可取決於用狀態遮罩317選擇之模式基於經指定時間應用一不同時間限制。
應用程式212可如參考圖2A所描述提供使用者上下文226。換言之,使用者上下文226可為識別金鑰或其目的之一金鑰識別符且可為預定大小約束內之任何值。
應用程式212亦可提供一輸入保險庫上下文307值。輸入保險庫上下文307值在金鑰320之初始產生中並未使用,但需要一適當值以在未來重新創建金鑰320。實際上,輸入保險庫上下文307係解鎖保險庫以容許再次產生一先前產生之金鑰之一值。如下文進一步論述,為重新產生一先前產生之金鑰:(1)必須滿足時間約束以使輸入保險庫上下文307能夠被傳遞至金鑰輸入暫存器314中,及(2)輸入保險庫上下文307之值必須匹配用於先前產生金鑰之保險庫上下文值。
當安全模組108接收來自應用程式212之針對一金鑰之請求時,安全模組108將使用者上下文226、控制值315及狀態遮罩317直接提供至金鑰輸入暫存器314。金鑰輸入暫存器314中之隨機數224係如上文所論述之一先前產生及儲存之隨機數。安全模組108接著針對金鑰輸入暫存器314、運算結果318及保險庫上下文316產生剩餘兩個值。運算結果318係用於強制執行到期模式之時間約束,且保險庫上下文316係用於強制執行時間保險庫模式之時間約束。運算結果318及保險庫上下文316兩者之值可受一比較結果CMP影響,該比較結果CMP指示時脈計數器216之當前計數器值是否大於經接收之控制值315。
安全模組108藉由首先產生比較結果CMP (例如,繪示為圖2A中之比較結果230)來判定運算結果318。安全模組108將控制值315提供至比較器214且如參考圖2A所論述,比較器214比較控制值315與時脈計數器216之一當前值。安全模組108使用一AND運算子308來取決於由狀態遮罩317選擇之模式選擇性地傳遞比較結果CMP或狀態遮罩317,來代替將比較結果CMP包含於金鑰輸入暫存器314中。
若狀態遮罩317具有一「1」值,則選擇到期模式且將AND運算子308應用於狀態遮罩317及比較結果CMP之結果將為比較結果CMP自身。此容許參考圖2A所論述之時間限制。在到期模式中,運算結果318係比較結果CMP,且在時脈計數器216之計數器值小於控制值315時最初產生金鑰,具有「0」之一比較結果CMP。在到期時間之後,比較結果CMP改變為「1」 (例如,因為計數器值大於控制值315),且因此所得金鑰將不再匹配原始金鑰,從而使原始金鑰在到期時間之後變得不可恢復。
另一方面,若狀態遮罩317具有一「0」值,則選擇時間保險庫模式,且運算結果318將始終為「0」。無關於比較結果CMP如何,將AND運算子308應用於比較結果CMP及零值狀態遮罩317之結果將為零。安全模組108之此態樣維持運算結果318針對時間保險庫模式一致,因此保險庫上下文316而非運算結果318強制執行時間約束。
安全模組108使用多工器310及保險庫計數器312產生保險庫上下文316。安全模組108經組態使得在到期模式中,保險庫上下文持續為相同值,例如,保險庫上下文316之各位元之一零值。對於時間保險庫模式,保險庫上下文316改變,具有自保險庫計數器312及輸入保險庫上下文307之值當中選擇之一值。
在所繪示之實例中,多工器310具有四個輸入、兩條選擇線及一個輸出。輸入及輸出足夠寬以用於多位元值,諸如各支援8位元、16位元、32位元等之值。輸入及輸出之位元寬度可與保險庫計數器312之最大值之位元寬度相同。兩條選擇線各接收單位元值,在此情況下,分別為(1)來自比較器214之比較結果CMP及(2)選擇待使用之金鑰產生模式之狀態遮罩SM。當狀態遮罩SM具有一「1」值(到期模式)時,多工器310選擇零作為輸出以提供為保險庫上下文316,而無關於比較結果CMP之值如何。當狀態遮罩SM具有一「0」值(時間保險庫模式)時,多工器310自輸入保險庫上下文307與保險庫計數器312之值之間進行選擇。
保險庫計數器312提供每次自保險庫計數器312讀取一值時改變之一單調變化之值(例如,僅遞增)。保險庫計數器312可經組態為以零初始化且具有在每次讀取計數器值時遞增之計數器值。例如,安全模組108可讀取保險庫計數器312以將保險庫計數器值提供至多工器310。保險庫計數器312在每次讀取之後遞增計數器值。例如,若保險庫計數器312最初具有一零值,則將提供一零值用於產生一第一金鑰。對於下一金鑰請求,保險庫計數器值將為一,已歸因於在產生較早金鑰時讀取保險庫計數器312之程序而遞增。
多工器310經配置以在狀態遮罩SM係「0」 (例如,選擇時間保險庫模式)時且在比較結果係「0」 (例如,尚未達到存取時間,因此保險庫保持鎖定)時選擇保險庫計數器值作為輸出。在一特定金鑰之第一次產生時,雖然尚未達到存取時間,但在保險庫上下文316為自保險庫計數器312獲得之任何值的情況下產生金鑰。讀取值計數器312之動作藉由遞增經儲存值來改變保險庫計數器312之狀態。因此,在存取時間之前針對同一金鑰之一後續請求將產生使用遞增之值計數器值而非先前使用之保險庫計數器值之一金鑰,且因此將不產生原始金鑰。只要當前時間仍在存取時間之前(例如,比較結果CMP係「0」,指示時脈計數器值小於控制值315),當前保險庫計數器值就將用於保險庫上下文312且該值將不同於獲得原始金鑰所需之一個值。因此,所有各方被鎖定無法在金鑰之存取時間之前產生一先前金鑰。
一旦達到一特定金鑰之存取時間,保險庫計數器值就不再被提供為保險庫上下文316。當比較結果CMP係「1」時,多工器310自應用程式212選擇輸入保險庫上下文307作為保險庫上下文316,而非自保險庫計數器312選擇保險庫計數器值。若應用程式212提供正確的輸入保險庫上下文307值(例如,用於產生原始金鑰之保險庫上下文值),則應用程式可使安全模組108再一次創建原始金鑰。此操作有效地解鎖保險庫並在達到存取時間之後實現一先前金鑰之產生。
一旦設定金鑰輸入暫存器314中之值,安全模組就將整個值集作為輸入提供至金鑰導出引擎232。如參考圖2A所論述,金鑰導出引擎232將一金鑰導出函數應用於金鑰輸入暫存器314之內容以產生一金鑰(在此情況下,金鑰320)。金鑰320可由一或多個字母數字符號、位元或另一適當表示來表示。安全模組108將包含金鑰320之輸出324提供至一實體或程序(諸如請求金鑰之應用程式212)。
為促進一金鑰之未來產生,安全模組108可提供用於產生一金鑰之保險庫上下文316作為一輸出。例如,當產生金鑰320時,安全模組108亦可提供在產生金鑰320時使用之保險庫上下文316之值。為重新產生在時間保險庫模式中產生之一金鑰,該金鑰之保險庫上下文316需要被知道且與針對金鑰之請求一起提供至安全模組108。安全模組108將保險庫上下文316之值提供至應用程式212,因此應用程式212可將該值轉送至另一應用程式或模組或因此應用程式212可視需要再次重新產生金鑰320。總而言之,對於亦產生金鑰320之另一應用程式或模組,該另一應用程式或模組將需要針對金鑰320提供使用者上下文226、控制值315、狀態遮罩317值及保險庫上下文316。
若在存取時間304之前請求金鑰320之後續產生,則金鑰輸入暫存器314中之值將包含與在最初產生金鑰320時存在之保險庫上下文316不匹配之一保險庫上下文316。即使提供正確的保險庫上下文316作為一輸入保險庫上下文307,則多工器310將選擇來自保險庫計數器312之保險庫計數器值用作保險庫上下文316,而非與請求一起提供之任何輸入保險庫上下文307。因此,產生之金鑰將不匹配金鑰320,且將不能夠再次產生金鑰320直至由控制值315指定之存取時間304為止。
在時間保險庫模式中,安全模組108依靠保險庫計數器312持續增加其狀態,使得不重複先前計數器值。因此,安全模組108可經組態以在保險庫計數器經重新初始化或經歷溢位時觸發用來自隨機數產生器220之一新產生之隨機數替換隨機數224。例如,溢位監測模組222可經組態以監測保險庫計數器312以及時脈計數器216中之溢位,且可經組態以回應於任一計數器經歷溢位或不當操縱而用一新隨機數替換經儲存隨機數224。
在一些實施方案中,保險庫上下文316之輸出324可用於判定是否如預期般產生一金鑰。例如,當重新產生一先前金鑰時,一使用者、實體或程序(諸如應用程式212)可自輸出324獲得保險庫上下文316並與用於所要金鑰之一已知保險庫上下文316比較。若輸出保險庫上下文與金鑰320之已知保險庫上下文不匹配,則金鑰請求者可判定尚未滿足存取條件且經接收金鑰並非所要金鑰320。應用程式212接著可基於比較所提供之保險庫上下文與保險庫上下文316來決定是否將金鑰用於密碼操作(諸如資料之加密或解密)。
已描述許多實施方案。然而,將理解,在不脫離本發明之精神及範疇的情況下可進行各種修改。例如,可使用上文展示之各種形式之流程,其中對步驟進行重新排序、添加或移除。
可在數位電子電路系統中,或在電腦軟體、韌體或硬體(包含本說明書中所揭示之結構及其等之結構等效物)或其等之一或多者之組合中實施本說明書中所描述之本發明之實施例及所有功能操作。本發明之實施例可經實施為一或多個電腦程式產品,例如,在一電腦可讀媒體上編碼以藉由資料處理設備執行或控制資料處理設備之操作之電腦程式指令之一或多個模組。電腦可讀媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一記憶體裝置、實現一機器可讀傳播信號之一物質組合物,或其等之一或多者之一組合。術語「資料處理設備」涵蓋用於處理資料之所有設備、裝置及機器,藉由實例,包含一可程式化處理器、一電腦或多個處理器或電腦。除硬體之外,設備亦可包含針對所討論之電腦程式創建一執行環境之程式碼,例如,構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合的程式碼。一傳播信號係一人工產生之信號,例如,經產生以編碼資訊以用於傳輸至合適接收器設備之一機器產生之電、光學或電磁信號。
可以任何形式之程式設計語言(包含編譯或解譯語言)撰寫一電腦程式(亦被稱為一程式、軟體、軟體應用程式、指令檔或程式碼),且其可以任何形式部署,包含作為一獨立程式或作為一模組、組件、副常式或適用於一運算環境中之其他單元。一電腦程式不一定對應於一檔案系統中之一檔案。一程式可儲存於保存其他程式或資料(例如,儲存於一標記語言文件中之一或多個指令檔)之一檔案之一部分中、專用於所討論之程式之一單一檔案中或多個協調檔案(例如,儲存程式碼之一或多個模組、子程式或部分的檔案)中。一電腦程式可經部署以在一個電腦上或在定位於一個位點處或跨多個位點分佈且藉由一通信網路互連之多個電腦上執行。
可藉由執行一或多個電腦程式以藉由對輸入資料進行操作及產生輸出而執行功能之一或多個可程式化處理器來執行本說明書中所描述之程序及邏輯流程。亦可藉由專用邏輯電路系統(例如,一FPGA (場可程式化閘陣列)或一ASIC (特定應用積體電路))來執行該等程序及邏輯流程,且設備亦可經實施為該專用邏輯電路系統。
適用於一電腦程式之執行之處理器包含(藉由實例)通用微處理器及專用微處理器兩者以及任何種類之數位電腦之任一或多個處理器。一般而言,一處理器將接收來自一唯讀記憶體或一隨機存取記憶體或兩者之指令及資料。一電腦之基本元件係用於執行指令之一處理器及用於儲存指令及資料之一或多個記憶體裝置。一般而言,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或光碟),或可操作耦合以接收來自該一或多個大容量儲存裝置之資料或將資料傳送至該一或多個大容量儲存裝置,或兩者。然而,一電腦不需要具有此等裝置。此外,一電腦可嵌入於另一裝置中,例如,一平板電腦、一行動電話、一個人數位助理(PDA)、一行動音訊播放器、一全球定位系統(GPS)接收器等等。適用於儲存電腦程式指令及資料之電腦可讀媒體包含所有形式之非揮發性記憶體、媒體及記憶體裝置,藉由實例包含:半導體記憶體裝置,例如,EPROM、EEPROM、及快閃記憶體裝置;磁碟,例如,內部硬碟或可抽換式磁碟;磁光碟;及CD ROM及DVD-ROM光碟。處理器及記憶體可藉由專用邏輯電路系統增補或併入專用邏輯電路系統中。
為提供與一使用者之互動,可在一電腦上實施本發明之實施例,該電腦具有用於向該使用者顯示資訊之一顯示裝置(例如,一CRT (陰極射線管)或LCD (液晶顯示器)監視器)及該使用者可藉由其提供輸入至該電腦之一鍵盤及一指標裝置(例如,一滑鼠或一軌跡球)。其他種類之裝置亦可用於提供與一使用者之互動;例如,提供給該使用者之回饋可為任何形式之感覺回饋,例如,視覺回饋、聽覺回饋或觸覺回饋;且來自該使用者之輸入可以任何形式接收,包含聲音、語音或觸覺輸入。
可在一運算系統中實施本發明之實施例,該運算系統包含一後端組件(例如,作為一資料伺服器),或包含一中介軟體組件(例如,一應用程式伺服器),或包含一前端組件(例如,具有一使用者可透過其與本發明之一實施方案互動之一圖形使用者介面或一網頁瀏覽器之一用戶端電腦),或一或多個此等後端、中介軟體或前端組件之任何組合。該系統之該等組件可藉由數位資料通信之任何形式或媒體(例如,一通信網路)互連。通信網路之實例包含一區域網路(「LAN」)及一廣域網路(「WAN」),例如,網際網路。
運算系統可包含用戶端及伺服器。一用戶端及伺服器一般彼此遠離且通常透過一通信網路互動。用戶端與伺服器之關係憑藉運行於各自電腦上及彼此具有一用戶端-伺服器關係之電腦程式而發生。
雖然本說明書含有許多細節,但此等不應被解釋為限制本發明或可主張之內容之範疇,而是被解釋為描述可特定於本發明之特定實施例之特徵。本說明書中在分開的實施例之背景內容中所描述之特定特徵亦可組合實施於一單個實施例中。相反地,在一單個實施例之背景內容中描述之各種特徵亦可分開地實施於多個實施例中或以任何合適子組合實施。此外,儘管特徵在上文可被描述為依特定組合起作用且甚至最初如此主張,然來自一所主張之組合之一或多個特徵在一些情況中可自該組合免除,且該所主張之組合可係關於一子組合或一子組合之變型。
類似地,雖然在圖式中依一特定順序描繪操作,但此不應被理解為需要依所展示之特定順序或依循序順序來執行此等操作或需要執行所有經繪示之操作以達成所要結果。在特定境況中,多任務處理及平行處理可為有利的。此外,上文所描述之實施例中之各種系統組件之分離不應被理解為在所有實施例中需要此分離,且應理解,所描述之程式組件及系統可大體上一起整合於一單個軟體產品中或封裝至多個軟體產品中。
在其中提及一HTML檔案之各例項中,可代替其他檔案類型或格式。例如,一HTML檔案可由一XML、JSON、純文字或其他類型之檔案替換。此外,在提及一表或散列表之情況下,可使用其他資料結構(諸如試算表、關係資料庫或結構檔案)。
已描述本發明之特定實施例。其他實施例係在以下發明申請專利範圍之範疇內。例如,發明申請專利範圍中所敘述之步驟可依一不同順序執行且仍達成所要結果。
100:系統 102:使用者 104:裝置 106:第一應用程式 108:安全模組 110:計數器值 112:上下文 114:控制值 115:第一比較 116:金鑰/第一金鑰 118:第二應用程式 119:第二比較 120:金鑰/第二金鑰 200:系統 202:資料 204:計數器值/當前時脈計數器值 206:到期時間 208:時脈頻率 210:控制值引擎 212:應用程式 213:金鑰輸入暫存器 214:比較器 216:時脈計數器 218:時脈監測模組 220:隨機數產生器 222:溢位監測模組 224:隨機數 226:使用者上下文 228:控制值 230:比較結果 232:金鑰導出引擎/金鑰導出函數 234:驗證引擎 236:金鑰/原始金鑰 238:項 240:輸出 250:系統 251:金鑰輸入暫存器 252:金鑰 254:隨機數產生器 255:溢位監測模組 256:迭代金鑰引擎 258:經儲存金鑰 260:金鑰導出引擎 262:臨時金鑰 262a:臨時金鑰 264:週期計數引擎 266:金鑰週期計數 300:系統 304:存取時間 307:輸入保險庫上下文 308:AND運算子 310:多工器 312:保險庫計數器 314:金鑰輸入暫存器 315:控制值 316:保險庫上下文 317:狀態遮罩 318:運算結果 320:金鑰 324:輸出
圖1係展示用於有時間限之金鑰導出之一系統之一實例的一圖式。
圖2A係展示可用於執行有時間限之金鑰導出之一安全模組之一實例的一圖式。
圖2B係展示可用於執行有時間限之金鑰導出之一安全模組之一第二實例的一圖式。
圖2C係展示用於執行有時間限之金鑰導出之一迭代金鑰引擎之一實例的一圖式。
圖3係展示可用於執行有時間限之金鑰導出之一安全模組之一第三實例的圖式。
各種圖式中之相同元件符號及名稱指示相同元件。
100:系統
102:使用者
104:裝置
106:第一應用程式
108:安全模組
110:計數器值
112:上下文
114:控制值
115:第一比較
116:金鑰/第一金鑰
118:第二應用程式
119:第二比較
120:金鑰/第二金鑰

Claims (38)

  1. 一種方法,其包括: 接收提供一金鑰識別符之一請求; 獲得指示一未來時間之一控制值; 獲得指示一第一時間之一計數器值,其中該計數器值係基於一計數器之一當前狀態,其中該計數器經組態以依一預定頻率來更新該計數器之該狀態; 基於比較指示該未來時間之該控制值與指示該第一時間之該計數器值來產生一比較結果; 基於該金鑰識別符、該控制值、該比較結果及一經儲存隨機數來產生一金鑰;及 回應於該請求而提供該金鑰。
  2. 如請求項1之方法,其中至少獲得該計數器值、產生該比較結果及產生該金鑰係由一安全硬體模組執行。
  3. 如請求項1至2中任一項之方法,其中至少獲得該計數器值、產生該比較結果及產生該金鑰係由一行動裝置之一系統單晶片之一安全硬體模組執行。
  4. 如請求項1至2中任一項之方法,其包括,在接收時戳之前: 提供(i)來自該基於硬體之計數器之一計數器值及(ii)該計數器值頻率。
  5. 如請求項1至2中任一項之方法,其中該經儲存隨機數係由一基於硬體之隨機數產生器產生。
  6. 如請求項5之方法,其包括: 偵測該計數器之一操縱;及 回應於偵測到該計數器之該操縱,用自該基於硬體之隨機數產生器獲得之一新隨機數替換該經儲存隨機數。
  7. 如請求項5之方法,其包括: 偵測該計數器之一溢位;及 回應於偵測到該計數器之該溢位,用自該基於硬體之隨機數產生器獲得之一新隨機數替換該經儲存隨機數。
  8. 如請求項5之方法,其中該預定頻率係基於一時脈信號之一頻率;且 其中該方法包括: 偵測該時脈信號之該頻率之一變化;及 回應於偵測到該時脈信號之該頻率之該變化,用自該基於硬體之隨機數產生器獲得之一新隨機數替換該經儲存隨機數。
  9. 如請求項1至2中任一項之方法,其包括,在產生該金鑰之後且在回應於該請求提供該金鑰之前: 在產生該金鑰之後,基於該計數器之一狀態自該計數器獲得一第二計數器值; 判定該第二計數器值滿足指定相對於該控制值之一關係之一預定條件;且 其中回應於該請求提供該金鑰係回應於判定該第二計數器值滿足該預定條件而執行。
  10. 如請求項9之方法,其中判定該第二計數器值滿足該預定條件包括判定該第二計數器值表示在由該控制值表示之該未來時間之前的一時間。
  11. 如請求項1至2中任一項之方法,其中該控制值係表示該計數器在該未來時間將達到之一值之一未來計數器值。
  12. 如請求項1至2中任一項之方法,其中該控制值指定在由該計數器達到時,不容許基於該金鑰識別符及該控制值進一步產生該金鑰之一計數器值。
  13. 如請求項1至2中任一項之方法,其包括操作一安全硬體模組,該安全硬體模組經組態以(i)回應於接收到該控制值及該金鑰識別符使該金鑰能夠在該未來時間之前再次被產生,及(ii)不容許在該未來時間之後產生該金鑰。
  14. 如請求項13之方法,其中該計數器值係一第一計數器值且該金鑰係一第一金鑰; 其中該安全硬體模組經組態以藉由回應於接收到該控制值及金鑰識別符提供不同於該第一金鑰之一第二金鑰而不容許在該未來時間之後產生該第一金鑰;且 其中基於比較一第二計數器值與該控制值之一比較結果不同於比較該第一計數器值與該控制值之該比較結果,該第二金鑰經產生為不同於該第一金鑰。
  15. 如請求項1至2中任一項之方法,其中該金鑰係一第一金鑰,且其中該比較結果係一第一比較結果;且 其中該方法進一步包括,在產生該第一金鑰之後: 接收與該金鑰識別符及該控制值相關聯之一第二請求; 基於該計數器之一狀態來獲得一第二計數器值,該第二計數器值指示在該第一時間之後且在由該控制值指示之該未來時間之前的一第二時間; 基於比較指示該未來時間之該控制值與指示該第二時間之該第二計數器值來產生一第二比較結果,其中該第二比較結果係與該第一比較結果相同;及 基於該金鑰識別符、該控制值、該第二比較結果及該經儲存隨機數來產生一第二金鑰,其中該第二金鑰係與該第一金鑰相同。
  16. 如請求項1至2中任一項之方法,其中該金鑰係一第一金鑰,且其中該比較結果係一第一比較結果;且 其中該方法進一步包括,在產生該第一金鑰之後: 接收與該金鑰識別符及該控制值相關聯之一第二請求; 基於該計數器之一狀態來獲得一第二計數器值,該第二計數器值指示在由該控制值指示之該未來時間之後的一第二時間; 基於比較指示該未來時間之該控制值與指示該第二時間之該第二計數器值來產生一第二比較結果,其中該第二比較結果不同於該第一比較結果;及 基於該金鑰識別符、該控制值、該第二比較結果及該經儲存隨機數來產生一第二金鑰,其中該第二金鑰不同於該第一金鑰。
  17. 如請求項1至2中任一項之方法,其中獲得該控制值包括: 接收指示該未來時間或在達到該未來時間之前之一時間量的一時間值;及 判定將在該未來時間達到之一未來計數器值作為該控制值,該未來計數器值係基於來自該計數器之一當前計數器值、該時間值及該預定頻率來判定。
  18. 如請求項1至2中任一項之方法,進一步包括,在提供該金鑰之後,不容許進一步產生該金鑰,直至達到該未來時間為止。
  19. 如請求項1至2中任一項之方法,進一步包括: 基於該比較結果來判定一保險庫上下文值,其中該比較結果係用於自一保險庫計數器值及一輸入保險庫上下文值當中選擇該保險庫上下文值;且 其中產生該金鑰涉及將一金鑰導出函數應用於包括該金鑰識別符、該控制值、該比較結果、該經儲存隨機數及該保險庫上下文值之一值集。
  20. 如請求項1至2中任一項之方法,進一步包括提供該保險庫上下文值。
  21. 如請求項1至2中任一項之方法,其包括獲得經組態以自用於產生金鑰之多個模式當中進行選擇之一模式選擇值,該多個模式包括(i)不容許在該未來時間之後進一步產生該金鑰之一第一模式,及(ii)不容許在該未來時間之前進一步產生該金鑰之一第二模式;且 其中產生該金鑰涉及將一金鑰導出函數應用於包括該金鑰識別符、該控制值、該比較結果、該經儲存隨機數及該模式選擇值之一值集。
  22. 一種用於產生密碼金鑰之硬體模組,該硬體模組包括: 一輸入介面,其經組態以接收(i)表示一時間之一控制值及(ii)一金鑰識別符; 一隨機數產生器及經組態以儲存由該隨機數產生器產生之一隨機數之一記憶體元件; 一計數器,其經組態以基於一時脈信號單調變化; 一比較器,其經組態以基於該控制值與來自該計數器之一計數器值之一比較來產生一比較結果;及 金鑰導出電路系統,其經組態以基於該金鑰識別符、該控制值、該比較結果及經儲存於該記憶體元件中之一隨機數來產生一金鑰。
  23. 如請求項22之硬體模組,其中該硬體模組回應於接收到該控制值及該金鑰識別符而使該金鑰能夠在該未來時間之前再次被產生,且其中該硬體模組不容許在由該控制值表示之該時間之後產生該金鑰。
  24. 如請求項22至23中任一項之硬體模組,其中該硬體模組限制其中能夠再次產生該金鑰之一時間週期,且其中該控制值表示設定該時間週期到期之一未來時間之一未來計數器值。
  25. 如請求項22至23中任一項之硬體模組,其中該硬體模組限制其中能夠再次產生該金鑰之一時間週期,且其中該控制值表示設定該時間週期開始之一未來時間之一未來計數器值。
  26. 如請求項22至23中任一項之硬體模組,其中該硬體模組經組態以判定來自該計數器之該計數器值是否具有相對於該控制值之一預定關係;且 其中該硬體模組經組態以取決於來自該計數器之該計數器值是否具有相對於該控制值之該預定關係而選擇性地輸出該金鑰。
  27. 如請求項22至23中任一項之硬體模組,其中該硬體模組經組態以在產生該金鑰之後,基於該計數器之一狀態來判定一第二計數器值及判定該第二計數器值是否具有相對於該控制值之一預定關係;且 其中該硬體模組經組態以(i)若該第二計數器值具有相對於該控制值之該預定關係則輸出該金鑰,且(ii)若該第二計數器值不具有相對於該控制值之該預定關係則阻止該金鑰之輸出。
  28. 如請求項22至23中任一項之硬體模組,其中該硬體模組經組態以偵測該時脈信號之更改及回應於偵測到該時脈信號之更改而用來自該隨機數產生器之一新隨機數替換經儲存於該記憶體元件中之該隨機數。
  29. 如請求項22至23中任一項之硬體模組,其中該硬體模組經組態以偵測該計數器之溢位及回應於偵測到該計數器之溢位而用來自該隨機數產生器之一新隨機數替換經儲存於該記憶體元件中之該隨機數。
  30. 如請求項22至23中任一項之硬體模組,其中該硬體模組經組態以自該計數器輸出計數器值。
  31. 如請求項22至23中任一項之硬體模組,其中使該硬體模組能夠產生多個不同金鑰並針對重新產生該等各自金鑰之能力強制執行分開指定之到期時間,而無需儲存該等金鑰及無需儲存該等到期時間。
  32. 如請求項22至23中任一項之硬體模組,其中該輸入介面經組態以接收一輸入上下文值; 其中該硬體模組經組態以基於該比較結果來判定一上下文值,其中該比較結果係用於自(i)來自一第二計數器之一計數器值及(i)該輸入上下文值當中選擇該上下文值;且 其中該金鑰導出電路系統經組態以將該金鑰導出函數應用於包括該金鑰識別符、該控制值、該比較結果、該經儲存隨機數及該經判定之上下文值之一值集。
  33. 如請求項32之硬體模組,其中該硬體模組經組態以提供該經判定之上下文值作為該硬體模組之一輸出。
  34. 如請求項22至23中任一項之硬體模組,其中該輸入介面經組態以接收識別自用於產生金鑰之多個模式當中選擇之一模式之一模式選擇值,該多個模式包括(i)不容許在該未來時間之後進一步產生該金鑰之一第一模式及(ii)不容許在該未來時間之前進一步產生該金鑰之一第二模式;且 其中該金鑰導出電路系統經組態以將該金鑰導出函數應用於包括該金鑰識別符、該控制值、該比較結果、該經儲存隨機數及該模式選擇值之一值集。
  35. 如請求項34之硬體模組,其中該硬體模組經組態以對該模式選擇值及該比較結果執行一運算,且其中該金鑰導出電路系統在產生該金鑰時使用該運算之一結果。
  36. 如請求項35之硬體模組,其中該運算係一互斥或運算。
  37. 如請求項34之硬體模組,進一步包括經組態以自多個輸入值當中選擇以向該金鑰導出電路系統提供一上下文值之一多工器; 其中該多個輸入值包括一預定值、一輸入上下文值及來自一第二計數器之一計數器值; 其中該多工器經組態以基於該模式選擇值及該比較結果,自該多個輸入值當中選擇該上下文值;且 其中由該多工器選擇之該上下文值係被包含於該金鑰導出電路系統對其應用該金鑰導出函數以產生該金鑰之該值集中。
  38. 如請求項22至23中任一項之硬體模組,其包括經組態以回應於自該安全硬體模組讀取該所產生之金鑰而更改其經儲存值之一第二計數器; 其中該硬體模組經組態以在產生金鑰時使用來自該第二計數器之計數器值,使得在自該硬體模組讀取該所產生之金鑰之後,該硬體模組阻止進一步產生該金鑰,直至達到由該控制值表示之該時間為止。
TW111134868A 2022-05-25 2022-09-15 有時間限之金鑰導出 TW202347153A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2022/072555 WO2023229649A1 (en) 2022-05-25 2022-05-25 Time-limited key derivation
WOPCT/US22/72555 2022-05-25

Publications (1)

Publication Number Publication Date
TW202347153A true TW202347153A (zh) 2023-12-01

Family

ID=82482976

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111134868A TW202347153A (zh) 2022-05-25 2022-09-15 有時間限之金鑰導出

Country Status (2)

Country Link
TW (1) TW202347153A (zh)
WO (1) WO2023229649A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745390B1 (en) * 2013-11-13 2014-06-03 Google Inc. Mutual authentication and key exchange for inter-application communication
US11438155B2 (en) * 2017-01-24 2022-09-06 Microsoft Technology Licensing, Llc Key vault enclave
EP3704829B8 (en) * 2017-10-31 2023-04-05 Visa International Service Association Cryptographic key generation system and method
US11347882B2 (en) * 2020-06-02 2022-05-31 Huawei Technologies Co., Ltd. Methods and systems for secure data sharing with granular access control

Also Published As

Publication number Publication date
WO2023229649A1 (en) 2023-11-30

Similar Documents

Publication Publication Date Title
EP0635790B1 (en) Client/server based secure timekeeping system
CN112042151B (zh) 使用单调计数器的机密密钥的安全分发
US10503880B2 (en) Method and apparatus for limiting access to data by process or computer function with stateless encryption
TWI620087B (zh) 驗證伺服器、驗證方法及其電腦程式產品
US7949877B2 (en) Rights enforcement and usage reporting on a client device
US8938625B2 (en) Systems and methods for securing cryptographic data using timestamps
US20200153808A1 (en) Method and System for an Efficient Shared-Derived Secret Provisioning Mechanism
US8688588B2 (en) Method for improving accuracy of a time estimate used in digital rights management (DRM) license validation
US20080307508A1 (en) Method for using time from a trusted host device
US20130004142A1 (en) Systems and methods for device authentication including timestamp validation
US20080304364A1 (en) Memory device with circuitry for improving accuracy of a time estimate
US20080307495A1 (en) Memory device with circuitry for improving accuracy of a time estimate used in digital rights management (DRM) license validation
US20080306710A1 (en) Method for improving accuracy of a time estimate from a memory device
US20080307507A1 (en) Memory device using time from a trusted host device
KR20180048592A (ko) 하드웨어 모듈의 인증 및 ip 라이센싱을 위한 시스템 및 방법
US11562050B2 (en) System and method for licensing and for measuring use of an IP block
TW202347153A (zh) 有時間限之金鑰導出
EP2156353A1 (en) Memory device with circuitry for improving accuracy of a time estimate used in digital rights management (drm) license validation and method for use therewith
WO2008154309A1 (en) Memory device using the time from a trusted host device and method for use therewith
US20050265126A1 (en) Random number initial value generation device and method, random number initial value generation program
US11334881B2 (en) Security tool
CN109981547B (zh) 一种基于区块链的物流传输方法及装置
EP2156355A1 (en) Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity and method for use therewith
WO2008154307A2 (en) Memory device with circuitry for improving accuracy of a time estimate and method for use therewith
Module Network Security Services (NSS) Cryptographic Module (Basic ECC) Version 3.12. 4