新四季網

用於通用密鑰導出函數支持的安全接口的製作方法

2023-08-09 13:00:16

專利名稱:用於通用密鑰導出函數支持的安全接口的製作方法
技術領域:
本發明主要涉及密碼系統領域。更確切地說,本發明涉及提供通 用密鑰導出函數支持。
背景技術:
Diffie-Hellman (DH)密鑰協定是密碼系統方面的基本發展。該協 定是公鑰密碼系統的第 一個可使用的方法,使密鑰分配可行而不預先 確定密碼。
在DH密鑰協定最簡單的形式中,每一方有各自的私鑰x, y,可 從私鑰分別導出公鑰ax, ay。通過交換公鑰,每一方可以通過聯合私 鑰和公鑰計算出共享加密密鑰axy。用以從私鑰導出公鑰的函數是單 向函數,該單向函數可以相對簡單地計算出公鑰,但不能從公鑰中提 取私鑰。這類函數基於因式分解大數字或有限域上離散對數問題的困 難性,其中的大數字是兩個大質數的積。
現今Diffie-Hdlman (DH)密鑰協定在廣泛使用中。IPSec協議使用 DH密鑰協定,並且IPSec用在大部分虛擬專用網絡(VPNs)中,大 部分公司使用該虛擬專用網絡以允許員工與公司網絡遠程連接,以及 用於通過開放的網際網路連接分立辦公處所。
Diffie-Hellman (DH)密鑰協定還是傳輸層安全(TLS )協議中NIST 推薦的選項。該TSL協議是SSL協議的接繼者。現今這些協議廣泛 用於保護敏感網絡通信,例如網上銀行業務。
靜態DH密鑰協定是DH密鑰協定的變體,其中一個私鑰是靜態 的,這意味著該靜態私鑰是將多次使用的長期密鑰。
由於私鑰的敏感性,尤其在它被多次使用的情況下,私鑰通常設 置於私鑰模塊中,私鑰模塊是包括私鑰操作的執行(implementation )。 通常,此類模塊包括防止提取私鑰的措施,以及在更加有限的程度上
防止濫用私鑰操作的措施。例如,這些模塊可在專用硬體中執行,這 些專用硬體不允許加載惡意軟體,如病毒、蠕蟲和特洛伊木馬。通常, 實現此類防幹擾措施代價昂貴。因而,為了降低成本,這些模塊通常 設計為具有最小功能。那樣,只有最少量的功能需要防幹預保護。
作為簡單實例,模塊是智慧卡。該智慧卡由用戶擁有。假如該用 戶希望從某遠程計算機與諸如家用計算機的目的站安全連接。用戶將 智慧卡放入與遠程計算機相連的智慧卡閱讀器。而後與家用計算機進 行連接。該家用計算機通過發送口令鑑別用戶。遠程計算機向智慧卡 轉送口令。智慧卡籤署口令,然後將其發送回家用計算機。家用計算 機驗證該口令並而後經過遠程計算機向用戶提供必要的入口 。這樣允 許用戶四處移動到不同的遠程計算機。然而,這些遠程計算機應該不
能夠/人智慧卡提取用戶的私鑰。也就是"i兌,當用戶將智慧卡留在閱讀 器中時,他們應該只能夠與家用計算機連接。(為實現這一點,需要 比簡單口令和應答更複雜的方法。反之,智慧卡可能需要執行常規的
通信鑑別或甚至所有通信的加密和解密。)
為了進一步提高安全性,常常指定密鑰導出函數(KDF),該函
數是應用於原始DH共享加密的單向函數。 一些標準規定將一個KDF 與DH密鑰協定一起使用。然而,不同的標準推薦不同的KDF。例如, ANSI指定幾個不同的KDF, IEEE同樣,SSL和TLS也同樣,而IPSec 又不同。
下面提供支持兩個標準化密鑰導出函數的詳細資料的筒化說明。 這兩個函數是ANSIX9.63密鑰導出函數和TLS密鑰導出函數。
如下計算ANSI X9.63密鑰導出。輸入有三部分。第一輸入部分 是Z,它是私鑰模塊和如上面簡單實例中的家用計算機這樣的目的站 之間共享的加密值。這個共享加密值Z不被透露給任何網關 (gateway),例如上面實例中遠程計算機。第二輸入部分是整型密鑰 ^to/e",它是將被生成的密鑰數據的字節長度。可選的第三輸入部分 是字節串(octet string) 57^"d/w/o,它由一些共享數據組成,這些數 據由共享上述共享加密值Z的實體共享。而且,57^r^//M/o還可^皮任
選地給定抽象語法符號一 (ASN.l)編碼,它包括5個字^::算法標 識符、用於兩個實體中每一個的可選標識符、可選公共共享信息和可 選私用共享信息。然後如下基於這個輸入進行KFD求值。
ANSI X9.63密鑰導出函數的最初幾步是對輸入長度和理想的輸 出長度^y&to/e"做出的某些一致性檢驗。然後對4位元組(4-octet) 整型計數器_/賦初值1。如下計算一系列的散列值(hash values): SHA隱1 (Zfll [67wrW/"/o]),其中H表示串聯(concatenation),而[〗表 示加方括號的輸入是可選的。這些輸出的數量,視^y^to/ew而定。 這些散列值被串聯而形成字節串〖'=《/ II〖2 II ... II &。通過取走最左 邊的一)^/ato/ew字節字節串被刪節為短型字節串〖。
在TLS標準中,密鑰導出函數被稱為偽隨機函數(PRF)。該TLS PRF的構造完全不同於ANSI X9.63 KDF,按如下給出。該構造利用 輔助構造HMAC,先描述該輔助構造。
HMAC構造可基於任何散列函數(hashfiinction)構造。當HMAC 結構與散列函數例如MD5和SHA-1 —起使用時,那麼結果函數 (resulting function)被標記為HMAC-Hash,其中Hash是散列函數的 名稱。TLS PRF使用HMAC-SHA-1和HMAC-MD5。 HMAC的通用 形式,即HMAC-Hash,如下運算。
向HMAC輸入的是加密密鑰〖和消息M。輸出是標籤r。 HMAC 標籤計算為r=Hash((C+iO||Hash((D+iO||M)),其中||表示串聯,+ 表示熟知的按位異或(XOR)運算,而C和D是如由HMAC算法確定 的常量位串。更確切地說,用0位填補密鑰〖直到密鑰K的長度與C 和"的長度匹配,但如果〖長於C和D,在這種情況下,K替換為 密鑰的散列。這表示為
T=HMAC-Hash M).
函數HMAC-Hash用在TLS PRF的另一個輔助通用散列構造 (Hash-generic construction)中,稱為P_Hash, 構造如下
PHash ( Z, seed ) = HMAC醒Hash ( Z, A(l) || seed ) || HMAC-Hash (Z, A(2) II seed) || HMAC-Hash (Z, A(3) || seed) ||...
其中ll表示串聯,而A定義如下formula see original document page 6
P—Hash可按需要的次數多次迭代從而產生必需的數據量。當 HMAC標籤的結果串聯比所需的數據量長時,如同ANSIX9.63那樣, 使用最後(最右端)字節的截斷(truncation )。
TLS PRF定義如下
formula see original document page 6
照常,其中+表示異或,而H表示串聯。值S1和S2通過將字節串加密 值Z劃分為兩半得到,左半部分為Sl,而右半部分S2,作為大加密 值的左半部分有奇數個字節(octets )。
因為當SHA-1輸出為20位元組時,由該算法規定的MD5輸出是 16位元組,所以與函數P—SHA-1相比,P—MD5通常使用更多的迭代。
在TLS協議中廣泛使用TLS PRF。例如,其用於從預主加密值 (pre誦master secret)導出主力口密Y直(master secret ),而其還用於乂人主力口 密鑰導出加密密鑰,等等。
有關KDF的標準之間的不協調導致模塊執行者或者支持無KDF 的DH密鑰協定,或者只支持有限數量的KDF。
標準的公鑰密碼標準(PKCS) #11:密碼令牌接口 (cryptoki)為 令牌例如智慧卡提供接口,智慧卡是一類私鑰模塊。在這個標準中, 支持數個KDF,但所提供的接口通常不是對KDF可變通的。標準FIPS 140-2也規定對私鑰模塊的要求。其明確要求諸如原始DH共享加密 值的密碼值不脫離私鑰模塊的安全邊界,但它沒有為密鑰導出提供準 確的機制(mechanism )。
發明人已發現不適當的再利用靜態DH私鑰可最終導致由對手復 原私鑰。更確切地說,當不應用密鑰導出函數(KDF)使用通過靜態 DH密鑰協定建立的共享密鑰時,對手可在建立以及^^用多個不同共 享密鑰的情況下發起攻擊,從而復原該靜態DH私鑰。
發明人最近的發現意味著無KDF而執行DH的選項有安全風險。支持數量減少的KDF可能功能太有限例如,其僅為了使用新的應
用標準而要求硬體更新。
由於標準對密鑰導出函數沒有達成協議,用於執行DH私鑰操作 的模塊必須設法支持多個不同KDF標準。 一個方法是該模塊執行所 有KDF算法,因為該模塊必須支持多個不同的KDF所以這樣可能代 價很高,並且因為當出現新的KDF時該模塊不能支持它們所以又很 有限。相對的方法是該模塊提供通向原始DH私鑰操作的無保護入口 , 並且讓使用該模塊的應用程式應用KDF。然而,這樣致使私鑰易受最 近發現的攻擊的損壞。
本發明的目的是消除或減輕以上缺點。

發明內容
一般而言,本發明準許模塊執行部分KDF算法,如同使用該模 塊的應用程式所指明的那樣。這樣使模塊免於對每一所需的KDF執 行整個KDF。反之,僅執行大部分KDF公用的可重複使用部分。而 且,當需要新的KDF時,如果它們建立在模塊已執行的KDF部分之 上,該模塊能夠支持它們。
這種情況下,在該模塊上不準許通向靜態DH私鑰操作的原始入 口 (raw access),因為這樣通常往往有太多的安全風險。反而,該模 塊提供足夠靈活的接口以支持所有現有的重要KDF以及所有可預測 到的KDF。通過在安全私鑰才莫塊上執行現有的和可預測到的KDF的 公用部分實現這一點。現今的大部分KDF基於散列函數構造。適宜 地,大多數私鑰模塊需要執行至少一個散列函數。這一點對於防幹擾 考慮也很重要,因為散列函數對許多諸如數字籤名這樣的算法的安全 性來說是至關重要的。
另夕卜,模塊還可僅提供通向SHA-1的壓縮函數的入口。該應用程 序僅通過增加一些必要的填充和做一些適當的連結即可使用這個壓 縮函數計算SHA-1。這進一步筒化了該執行模塊並且還使其更加靈 活。例如,某些附加的靈活性是一定的ANSI確定性隨機數發生器使用SHA-1的壓縮函數而不是整個SHA-1函數。更一般地說,隨機數
的產生,諸如密鑰導出,通常涉及基於安全和非安全輸入混合的散列
函數評估的組合。因而本發明不只限於支持多個KDF,其還支持多個 確定性隨機數發生器。
為了更大的靈活性,模塊可支持更基本的操作,例如SHA-1壓縮 函數的一些子操作。然而,,看起來不可能將這些子操作再用於除 SHA-1壓縮函數外的某些目的。而且,這些單個子搮:作不提供SHA-1 的完全安全性,因而可能將模塊上的加密值暴露給應用程式 (application),這將糹皮避免。然而,對於這個原則的例外是兩對新散 列函數SHA-384和SHA-512對,以及SHA-224和SHA-256對。這 些對中每一對有很多公共部分並且實質上能夠用單個公共函數執行。 應用程式將只對公共函數進行輸入和輸出從而獲得期望的散列函數。
在TLS密鑰導出情況下,TLS術語中稱為偽隨機函數(PRF), 使用兩個散列函數。 一個是SHA-1而另 一個是MD5。為了將PRF-TLS 應用於加密值Z,該加密值被分為兩半,Sl和S2。而後基於MD5 的PRF應用於Sl,而基於SHA1的函數應用於S2。為了使模塊免予 既執行MD5又執行SHA1,可能非常昂貴,該模塊可改為提供一種 機制,將Sl暴露給應用程式而將S2保持在模塊中。該模塊可在S2 上執行SHA1計算並且應用程式可在Sl上執行MD5計算。
儘管無法預計除了 TLS中的KDF會不會有任何其他KDF會以這 種方式分割加密值,但往往很難預言標準走哪條路。因而對於模塊來 說支持分割加密值的通用方法可能有用。用於該模塊的接口因而包括 一種才幾制(mechanism),由此應用程式可i青求-使部分加密佳乂^開。以 這樣一種方式執行該模塊,使得足夠的加密值保持安全,並且該應用 程序不能對加密值的不同部分進行多次請求。
因為新標準不斷出現,並且由於標準不時重新i殳計KDF和隨才幾 數發生器,所以硬體模塊的靈活的並且安全的接口為延伸該模塊的可 用性提供了極高的價值。否則該模塊有變得過時太快的風險。


現在將參照附圖僅通過實例描述本發明實施例,其中
圖l是一結構圖,示出了用戶設備和用私鑰模塊加密的目的站之
間的連4妻;以及
圖2是一示意圖,說明了在用戶設備和圖1所示的私鑰模塊中的密 鑰導出函數的執行。
圖3是說明私鑰模塊設備的示意圖。
圖4是說明 一個私鑰導出函ft實例的流程圖。
圖5是說明另 一個密鑰導出函數實例的流程圖。
具體實施例方式
通過說明本發明原理的具體實施例的一個實例或多個實例提供 以下說明和其中的所述的實施例。出於說明而並非限制這些原理和本 發明的目的提供這些實例。以下說明中,在通篇說明書和附圖中相同 的部件用各自相同的附圖標記表示。
參照圖1,示出了用戶設備40和用私鑰模塊設備50加密的目的 站100之間的連接。通常,用戶設備40和目的站100之間的連接不 是安全的而是開放的。例如,該連接可包括連結70和連結90,連結 70連至公共網絡80,例如網際網路,而連結90從公共網絡連至目的站 100。任一連結可以是有線連結、無線連結或兩者的組合。 一般而言, 私鑰模塊設備50是獨立設備(self-contained device),例如智慧卡或 令牌,可插入其上運行應用程式的某本地設備或用戶設備40。當被應 用程序調用時,模塊設備50與用戶設備40合作保護經過連結70的 通信。
在這種工作模式下,私鑰模塊設備50提供私鑰功能來保護用戶 設備40和目的站設備100之間的連接。然而,由於私鑰模塊設備50 是自定義的私鑰模塊,其需要除了像用戶設備40的典型用戶計算機 保護之外的某種另外的保護。密鑰導出函數(KDF)部分在用戶設備 40上運行的應用程式中執行,而部分在私鑰模塊設備50上執行的模
塊中執行,提高了安全性。應該明白儘管在此將用戶設備40和私鑰 模塊設備50描述為不同的設備,但它們可集成在單個物理設備中。
例如,私鑰模塊設備50可作為專用嵌入晶片設置在用戶設備40中。 用戶設備40典型地將利用CPU 42和內存設備44運行多個應用 程序並執行不同的功能。用戶設備40包括通信模塊45,以在運行在 CPU42上的通信應用程式的指揮下管理連結70。為了建立安全通信, 該通信應用程式執行已建立的安全協議,例如上述的這些安全協議中 之一,安全協議需要私鑰功能,例如KDF。為了便於計算所選擇的 KDF,同時保持靈活性,KDF導出被分成謹慎的子程序(discreet subroutines),並且通過私鑰模塊50執行要求根據私鑰運算的這些子 程序。通過用戶設備40進行平衡(balance)以便不易通過用戶設備 40得到原始私鑰數據。
參照圖2,示出了具有密鑰導出函數(KDF)的安全系統的示例 性執行,該密鑰導出函數部分在用戶設備40上運行的應用程式10中 執行,而部分在私鑰模塊設備50上運行的應用程式20中執行。該 KDF被分為兩部分。私鑰模塊50生成KDF組分24,而應用程式10 使用這些組分計算KDF的平衡22。私鑰模塊20具有模塊接口 26用 以與應用程式IO交換數據和通信。模塊接口 26進一步具有兩個接口 函數,第一接口函數28和第二接口函數30。
有利地,某些加密值,例如Diffie-Hellmena共享加密值Z,在私 鑰模塊20中確定。應用程式10已知Z的長度,但未知Z的值。應用 程序IO有一句柄,由此其可引用加密值Z並因此要求私鑰模塊20導 出Z的j直。
第一接口函數28有包括整數和加密值Z的句柄的輸入。該整數 定義了應該透露給應用程式10的Z的字節悽t。這是TLSPRF中的Sl 值。當執行該函數時,私鑰模塊20可強制將加密值的最小字節數留 作S2,以便應用程式IO不會知道整個密鑰。選擇該最小數以適於應 用程序所預期的安全級。對於80位的安全級,最小數可為IO字節。 一旦調用第一接口函數28,該加密值被永久截斷為S2,並且私鑰模
塊20將不允許S2的進一步截斷。用於引用S2的句柄或指針提供給
應用程式IO。優選地,由於在進一步的計算中不使用z,引用z的句
柄或指針可被再次使用。此後,調用第一接口函數28後,私鑰模塊 20設置加密值Z二S2。可選地,私鑰模塊20可創建只指向S2的新句 柄,並向應用程式IO輸出該新句柄,使應用程式IO稍後能夠引用S2。 值S1總是第一接口函數28輸出的一部分,以便應用程式IO,即含在 應用程式10中的KDF的第一部分22,可執行有關Sl的任何它需要 執行的計算,例如用在TLS PRF中的MD5的計算。
第二接口函婆t 30具有包括兩個值X和Y以及加密值Z的句柄的 輸入。第一值是長度與加密值Z —致的字節串。第二接口函數30的 輸出是
SHA-1 (X+Z||Y).
第二接口函數30是基本加密運算,由此可構造ANSIX9.63KDF 和TLS PRF。根據第一接口函數28的輸出Sl和第二件口函數30的 輸出,即SHA-1的散列值,應用程式IO可完成KDF計算並導出密鑰。
用戶設備40通常有CPU42,可由CPU42訪問的內存設備44, 也可由CPU20訪問的存儲介質46,以及一些輸入和輸出設備(未示 出)。應該了解,用戶設備40還可以是某種其他可編程計算設備。應 用程序10在CPU 42上執行。應用程式10可存儲在存儲介質46上, 該存儲介質46可固定安裝在用戶設備40上、可從用戶設備40上取 下或可由設備40遠程訪問。應用程式IO還可直接加載到CPU42上。 需要KDF的輸出用於保護從用戶設備40到目的站100的連接。
私鑰模塊50通常具有CPU或微處理器52、 CPU 52可訪問的內 存設備54,也可由CPU 52訪問的存儲介質56,。私鑰模塊20在CPU 52上執行。私鑰模塊50可存儲在存儲介質56上或直接加載到內存設 備52上。私鑰模塊50可將加密私鑰存儲在其內存設備54或其存儲 介質56中。應該了解,私鑰模塊50還可以有供用戶輸入加密私鑰的 輸入裝置,例如鍵盤,如果私鑰模塊50是帶鍵盤的智慧卡。
儘管這裡對通常傾向於存儲較易變的數據的內存設備54和通常
傾向於存儲較持久的數據的存儲介質56進行區別,但私鑰模塊設備 50可以只有單個用於存儲易變和不變數據兩者的數據存儲設備。
當需要時,數據連結60提供應用程式10和私鑰模塊50之間的 信道。數據連結60可以是有線的、或無線的。其可以是用戶設備40 和私鑰模塊設備50之間的直接連接。,數據連結60可以是固定的, 或更優選地在需要時建立的連接。 一般而言,數據連結60不是開放 連結,而是受保護的連結。
如上所述,私鑰模塊20不執行整個KDF。在私鑰模塊50中生成 的KDF的組分24僅執行那些可重新使用的部分和僅僅是實現對安全 而言比較基礎的加密運算的部分。這樣提升了靈活性而不損害安全 性。例如當執行DH協議時,在模塊上不準許通向靜態DH私鑰操作 的原始入口。反而,該模塊提供足夠靈活的接口以支持所有現有的 KDF以及所有可預測的KDF。最有效地做到這一點的一個方法是執 行現有和可預測的KDF的公用部分。儘管可以預測將來可才艮據分組 密碼構造某些KDF,但現今的大多數KDF基於散列函數構造。大多 數私鑰模塊應該至少支持散列函數,因為散列函數對許多算法的安全 都至關重要,例如數字籤名。幸運地,與KDFs相比,較少的散列函 數被標準化。例如,可重新利用散列函數SHA-1以支持幾個不同的 KDF,例如截然不同的ANSI、 IPSec和TLS密鑰導出函數。該TLS 密鑰導出還使用另一個散列函數MD5,但這可在模塊50外面處理, 這一點在下文進一步解釋。
參照圖3,對於使用SHA-1運算生成的KDF,應用程式10指示 私鑰模塊50提供什麼樣的輸入作為散列函數的輸入。部分輸入對應 用程序是保密和未知的。為了說明這一點,應用程式IO通過句柄或 指針57引用這種加密輸入。可通過應用程式IO直接提供公共輸入。 對每個KDF是自定義的輸入的格式化由該模塊提供的通用格式化接 口規定。私鑰模塊50提供給應用程式10的散列輸出可被應用程式10 再利作為對更多散列函數調用的進一步輸入。這是因為許多KDF基 於鏈式結構,其中一個散列調用的輸出被傳送給另一個散列調用的輸入。
在一個實施例中,私鑰模塊50包括SHA-1的執行和簡單接口 。 在可選實施例中,私鑰模塊20包括通用執行環境。
可選地,可實現接口,由此模塊可支持TLS PRF和ANSIX9.63 KDF兩者而不過度地暴露原始私鑰操作(從而避免發明人發現的攻 擊)。
ANSI X9.63 KDF和TLS PRF支持該,搡作,ANSI X9.63 KDF通 過計算基於共享加密值從散列函數SHA-1算出的一系列散列值,並且 而後截斷由散列值串聯形成的字節串,從而從共享加密值導出密鑰, 而TLS PRF有更加複雜構造,涉及散列函數MD5和散列函數SHA-1 兩者的計算。
模塊接口 26的目標是不執行散列函數MD5。在私鑰模塊20上, 即在KDF的第二部分24上,僅執行散列函數SHA-1。利用私鑰模塊 20的應用程式10因而負責在其KDF的第一部分22中執行MD5。從 安全性觀點來看,這樣可能不存在嚴重缺陷。這是因為普遍認為MD5 散列函數不能提供足夠的安全性,然而往往普遍接受對於所有安全級 SHA-1散列函數可為密鑰導出的目的提供足夠的安全性,除了最高安 全級(這些4交高的安全級要求-使用SHA-256或SHA-1的另一個後繼 者)。
在圖4中主要示出了支持ANSI X9.63 KDF的操作。在這種操作 中,應用程式10選擇X-0以及Y^j II [Sharedlnfo],其中j是應用程 序保持的4位元組計數器。而後應用程式IO可以通過X、 Y以及Z的 句柄調用函數30。而後私鑰模塊50的應用程式20可以根據上述的和 圖4中所示的表達式使用由應用程式10提供的X和Y的值以及Z的 句柄計算SHA-1。而後應用程式IO可以得到所計算出的SHA-1值, 並利用這一點構造ANSI X9.63 KDF並導出密鑰。
圖5示出了支持TLS PRF的應用程式10和20的運行。為了將共 享加密值Z分割為兩半Sl和S2,應用程式10調用第一接口函數28 (圖5的部分1以及以上已關於函數28描述)。接著應用程式IO調用
第二接口函數30從而基於S2計算散列值(圖5的部分2 ),而後使用 上面的構造從第一和第二接口函數28、 30的輸出計算P—SHA-1 (圖 5的部分3)。在下面闡述部分2和3。
為了構造用在圖5中所示的TLS PRF才喿作的部分2中的函數 HMAC-SHA-l,應用程式10先通過1=/)和i^M以及密鑰I的句柄 調用第二接口函數30,得出Tl= SHA-1 (CD + X)||M)。 (Z)的值是公 知的常量,因此應用程式IO可利用。)而後應用程式lOi殳定Z- C 以及F = r,用相同的〖句柄,得到r = SHA-1 ((C + K) il 77)= HMAC-SHA(《,M)。 ( C的值像D —樣是公開的。)
如果密鑰K需要用O位填充,那麼應用程式IO將通過用與適當 長度的常量C和D異或的必需0位預先考慮第二輸入Y解決這一點。 如果密鑰K足夠長而需要首先壓縮,那麼應用程式10可通過設置X^0 和Y-O實現,從而得到散列密鑰。這種情況下,應用程式10可選地 能夠自己執行計算的其餘部分,因為它有所有的必要信息,或它可以 使用第三接口特徵將以上散列輸出指定為具有新句柄的另 一個加密 值。
為了構造圖3中所示的支持TLS-PRF的操作的部分3中的函數 P_SHA-1,現在應用程式l(H吏用作為部分1的輸出所提供的Sl和上 面用於計算HMAC-SHA-1的構造,其中加密密鑰被限制於私鑰模塊 20。這包括利用HMAC_SHA-1的迭代應用計算A(O)、 A(l)、 A(2), 而後HMAC_SHA-1的迭代應用用於通過HMAC^SHA-1的進一步應 用而形成P_SHA-1的輸出。
而後輸出P_SHA-1可用於構造KDF並導出密鑰。
上面實例假定將在私鑰模塊20中導出的密鑰作為輸出傳遞給應 用程序10。另一種選擇是導出的密鑰仍保留在私鑰模塊20中,而輸 出只是指向所述密鑰的句柄或指針。這樣的優點是所有密鑰可保留在 私鑰模塊20中,這樣向模塊持有者較好地保證應用程式甚至不能濫 用導出的對話密鑰,更不用說長期私鑰。
在可選實施例中,私鑰模塊20有更大的靈活度。私鑰模塊20將
支持一些簡單的執行語言,例如javascript或Java,其能夠使絕大多 數操作在卡上執行。換句話說,應用程式10向私鑰模塊20提供程序, 而後私鑰模塊20執行該程序。當在模塊中時,該程序可自由訪問加 密值。為了安全性,私鑰模塊20確保模塊的所有輸出經歷被批准的 加密算法,例如像SHA-1這樣的散列算法或像AES這樣的對稱加密 運算的一部分。這阻止了惡意程序可能嘗試的多數濫用。
為了進一步提高安全性,私鑰模塊20要求由籤名人對程序進行 數字籤名,而籤名人的公開驗證密鑰已經安全地加載到了私用模塊20 上。這是鑑別加載到私鑰模塊20中的程序的一個方法。程序鑑別確 保該程序不是以損害模塊安全為目的的惡意執行程序。通過程序鑑別 不需要將該模塊輸出限制於某些散列或其他算法,因為程序自身足夠 可信可以執行任何算法。
與第一實施例相比,這個可選實施例的優勢在於其提供更大的靈 活性,例如允許在模塊上執行現有的和新的多種散列。缺點是模塊需 要支持通用執行語言,並且可能需要一部分公鑰基礎結構(public key infrastructure )。
現在已詳細描述了本發明的多種實施例。本領域l支術人員應該了 解可對這些實施例做多種修改、調整和變化而不脫離本發明範圍。由 於對上述最好方式進行改動或添加而不脫離本發明屬性、實質和範 圍,所以本發明不限於這些詳細資料而僅由所附權利要求限定。
權利要求
1.一種計算加密函數的方法,所述加密函數涉及DH共享加密值,所述DH共享加密值可由私鑰模塊訪問,所述方法包括以下步驟在所述私鑰模塊上執行利用所述共享加密值的加密函數的組分,以及向在另一個設備上運行的應用程式提供這類組分從而完成所述加密函數的計算。
2. 根據權利要求1所述的方法,其特徵在於所述加密函數是密鑰 導出函數。
3. 根據權利要求2所述的方法,其特徵在於所述組分包括散列函數。
4. 一種加密裝置,所述加密裝置包括第一模塊、第二模塊和數據傳 送器,所述第一模塊具有共享加密值和利用所述共享加密值生成加密組 分的CPU,所述第二模塊運行應用程式來計算加密函數,所述數據傳送 器將組分從所述第 一模塊傳送到所述第二模塊。
全文摘要
不適當再利用靜態Didhe-Hellman(DH)私鑰可洩露有關密鑰的信息。通過密鑰導出函數(KDF)防止這種洩露,但眾多標準對密鑰導出函數沒有達成協議。用於執行DH私鑰操作的模塊必須設法支持多種不同的KDF標準。本發明提供中間方法既不試圖執行所有可能的KDF運算,也不提供通向原始DH私鑰操作的未受保護的入口。反而,該模塊執行由使用該模塊的應用程式指明的部分KDF運算。這使模塊免於對每一所需的KDF執行整個KDF。反之,模塊僅執行大部分KDF公用的可重複使用部分。而且,當需要新的KDF時,如果它們建立在模塊已執行的部分之上,該模塊能夠支持它們。
文檔編號H04L9/28GK101099327SQ200580046427
公開日2008年1月2日 申請日期2005年11月11日 優先權日2004年11月11日
發明者丹尼爾·R.·L.·布朗, 斯科特·A.·萬斯通, 羅伯特·P.·加朗特 申請人:塞爾蒂卡姆公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀