專利名稱:公共加密密鑰的產生的制作方法
技術領域:
本發明涉及一種用于產生公共加密密鑰的系統、中心裝置、終端裝置及其相應的方法,用于確保終端裝置之間的通信安全。
數字音頻和/或視頻內容的保護正變得日益重要起來。這包括內容加密/解密和訪問管理功能,例如裝置的驗證。這些功能越來越依賴密碼技術。這種技術要求彼此通信的裝置中使用相同或互補的加密密鑰。尤其是對于內容加密,希望相對堅固的加密密鑰用于所有的國家。因為一些國家對密鑰的大小具有法定的限制,已經開發了所謂的密鑰由第三方保存的加密系統(KES),以使授權的官方機構能夠在法定要求下恢復堅固的加密密鑰。密鑰由第三方保存的系統是一種具有備份解密能力的加密系統,它允許授權方(例如,政府官員)借助于保存特殊數據恢復密鑰的保管方提供的信息,解密密文,例如加密的數據內容。數據恢復密鑰通常不同于用于加密和解密數據的密鑰,而是提供了一種確定數據加密/解密密鑰的方式。術語“密鑰由第三方保存”用于表示確保這些數據恢復密鑰的安全。
由第三方保存的加密系統邏輯上可以分為三個主要的組成部分●第三方保存的密鑰組成部分(KEC)。由密鑰由第三方保存代理操作的密碼元管理存儲釋放或使用數據恢復密鑰。它可以是公共密鑰證明管理系統的一部分或普通密鑰管理下層結構的一部分。在下文中,KEC將被稱為中心裝置。
●用戶安全組成部分(USC)。它是硬件裝置或軟件程序,用于提供數據加密和解密能力,以及支持密鑰由第三方保存功能。在下文中,USC通常稱為終端裝置或裝置。
●數據恢復組成部分(DRC)。它包括從密文加上DRC中和KEC提供的信息獲得明文所需的算法、協議和裝備。它只有在執行特定授權的數據恢復時才需要工作。
US 5,016,276描述了KPS(密鑰預分配系統)密鑰有第三方保存的加密系統。在用于n個裝置的網絡的KPS基本形式中,KPS中心(或密鑰管理中心)生成 密鑰,將每個密鑰分配給不同的一對裝置,和將密鑰安全地預分配給這對裝置。每個裝置存儲n-1個不同的密鑰。對于它可以通信的每個裝置,可以利用這些密鑰中一個不同的密鑰。例如,它可以根據它想與之通信裝置的裝置ID選擇密鑰。在一個更復雜的形式中,KPS包括矩陣M和加密函數f。對于n個裝置的網絡,KPS中心生成● 密鑰Kk1,每一對裝置k,1一個。
●n個唯一的公共密鑰Kpk和將其中一個預分配每一個裝置(這些公共密鑰例如可用于網絡中裝置的地址)。
●n×n維的矩陣M{Mij}具有下面的屬性f(Kpi,Mij)=f(Kpj,Mji)=Kij=Kji。矩陣的每一列與特定一個裝置有關。KPS中心將矩陣相關的第k列預分配給ID為k的裝置。此列組成屬于該裝置的密鑰信息。
在ID為A和B的兩個裝置之間通信的初始化期間,每個實體向另一個實體發送它的公共密鑰和列號(裝置A的列號為a,裝置B為b)。裝置A計算f(Kpb,Mba),裝置B計算f(Kpa,Mab)。兩個裝置都可以得到相同的密鑰Kab=Kba可用于安全通信。舉例來說,f(K,M)可以是加密算法EK(M)。中心產生 密鑰并將一個密鑰分配給每一對裝置。該中心通過計算矩陣元素Mij=Ekpi(Kij)產生矩陣M,其中●Kij是分配給一對裝置I和J的密鑰。
●Kpi是裝置I的公共信息。
●Mij是第i行和第j列的元素(該列發送給裝置J和組成此裝置的秘密信息)。
圖1說明在裝置之間通信期間如何使用此算法。每個裝置向另一個裝置發送公共信息Kpi(例如,地址)和列號i。將此信息用作解密此列中相應于另一個裝置元素的密鑰,每一個裝置獲得用于彼此驗證的同一密鑰。可以使用任何適當的驗證方案。舉例來說,通過詢問響應方式,裝置I可以產生一個隨機數,用密鑰Kji加密該隨機數和將加密結果發送給J,J用密鑰Kij解密并送回隨機數的明文形式。如果它與原始的隨機數匹配。這表示J為真。
可以理解行和列可以互換而不會改變本發明的原理。而且,取代使一個裝置與一列密鑰相關(即僅僅一個算法所用的數據),其中每個密鑰依次與該裝置可以通信的相應的一個裝置有關,該裝置也可以認為與一組算法有關,其中這些算法的每一個與它可以通信的相應的一個裝置有關。這些算法功能上是唯一的,也可以是功能相同,而通過嵌入唯一的密鑰而表現不同。如此,本領域技術人員可以理解“數據”和“算法”可以互換。
基本和復雜形式的KPS系統的問題在于它在大型系統中不實用,其中它的數目(表示為n)很大(例如,范圍從幾千直到上億個裝置)。安全傳送需要的信息量和每個裝置必須安全存儲的信息量是不可實現的。這對于CE裝置,例如電話機來說尤其是這樣,這些裝置必須非常低廉并可以大量出售。
本發明的目的在于提供一種用于產生公共密鑰的方法、系統和中心裝置,該公共密鑰適用于具有大量裝置且成本有效的系統中。還有一個目的在于提供一種使用該公共密鑰的方法和裝置。
為了實現本發明的目的,一種用于產生公共加密密鑰的系統,用于確保裝置之間的通信安全;該系統包括多個裝置,每個裝置與至少一個唯一裝置標識符有關,所述多個裝置安排在裝置子組Si(i=1...n)中,至少一個子組包括多個裝置;和一個中心裝置,所述中心裝置包括算法產生器,用于為所述多個裝置的每一個根據它相關的唯一裝置標識符產生一個密鑰產生算法KGAi;每一個密鑰產生算法KGAi對與密鑰產生算法KGAi各自相關的子組Si來說是唯一的,其中該密鑰產生算法KGAi對于同一子組Si中的每一個裝置來說是相同的。對于每一個子組Si,相關的密鑰產生算法KGAi操作為每一個子組Sj的裝置產生一個公共子組密鑰SGKij,用于子組Si的一個裝置和子組Sj的一個裝置之間的通信;公共子組密鑰SGKij響應接收與子組Sj中的裝置有關的任何一個裝置標識符而產生;每個裝置與各自的存儲器有關,所述存儲器用于存儲相關的密鑰產生算法和包括執行相關密鑰產生算法的處理器。
通過將裝置編為子組,可以減少公共密鑰的數目。該密鑰產生算法只需要能夠為每一對子組而不是每一對裝置產生唯一的密鑰。通過將裝置標識符用作算法的輸入,公共交換的信息對心懷惡意的用戶隱藏下層的子組編排。
如從屬權利要求2和3所述,裝置ID最好通過散列裝置ID減少比特數。減少的比特數可以看作用于產生公共子組密鑰的子組標識符。散列算法是公知的。可以使用任何適當的散列算法。
如從屬權利要求4所述,這些子組與預定的功能有關。對于用于CE應用的簡單系統,細分為不同的子組可以從控制(可以是在家庭微微網充當中心角色的裝置)、信源、翻譯、處理或復印裝置的劃分開始。最好,創建五個以上的子組。例如通過進一步區分音頻或視頻裝置來實現,在此例中,給出10個子組。在音頻/視頻數據類型之間可以作出進一步的區分,例如PCM文件、MP3、ATRAC、AAC...形式的音頻,MPEG文件、MPEG2形式的視頻。通過這種方式,可以創建許多子組。每個子組導致更多不同的公共密鑰,因此以較高的成本,例如通過增加存儲要求來提供系統的安全性。本領域技術人員能夠為正在探討的系統作出最佳選擇。
如從屬權利要求7所述,該裝置從另外一個裝置的子組標識符確定另外一個裝置的功能,并根據該功能與該裝置通信。例如,信源裝置可以允許特定的數字內容發送給翻譯裝置,但可以拒絕發送給復印裝置。舉另一個例子來說,信源裝置可以一次只利用一個翻譯裝置而允許再現。
如從屬權利要求8和9所述,與子組Si有關的密鑰產生算法KGAi包括表示公共子組密鑰的一組SGIDRi,它包括用于每個子組Sj的各個唯一的公共子組密鑰SGKi,j的表示。這些表示可以簡單的形成一列密鑰。這些密鑰可以是明文形式。這是一種實現存儲有效的方式,通過饋入不同的加密密鑰產生算法為每個子組Sj產生不同的輸出。
如從屬權利要求10和11所述,通過將裝置標識符與秘密信息相混合,同時將結果用于加密公共子組密鑰來提高安全性。
如從屬權利要求12所述,子組被編組為組,允許為多對組使用更有限的唯一公共密鑰,而不是為每一對子組使用唯一的公共密鑰。這些組最好也根據功能安排。按權利要求13所述,該編組可以便利地用于廣播,允許更廣范圍的裝置能夠經同一通信信道接收保護信息。例如,如果第一組裝置由信源裝置形成,第二組裝置由翻譯裝置形成,信源裝置可以允許所有的翻譯裝置同時接收相同的保護內容。例如它可以通過全部驗證想要建立通信對話的每一個翻譯裝置來實現。它也可以,在它選擇時,任意通過在特定的時刻停止驗證(例如,通過不將裝置標識符提供給第二或第三個翻譯裝置)來限制翻譯裝置的數目。
參照附圖中的實施例,本發明的這些和其它方面將變得更加明顯和闡明。
圖1表示現有KPS系統的方框圖;圖2表示現有密鑰由第三方保存系統的方框圖;圖3表示用于現有TEA塊密碼的源碼;圖4表示將塊密碼用作散列函數的現有Davies-Meyer方案;圖5說明根據本發明將裝置安排成組和子組;圖6表示一個實施例,其中公共裝置ID混合有秘密信息;圖7表示KEC和裝置之間整個密鑰信息的分配;圖8表示裝置中產生公共密鑰的細節;圖9表示現有鏈路層藍牙協議,用于在藍牙裝置之間進行驗證和產生密鑰;和圖10表示根據本發明將應用層安全性加到藍牙鏈路層安全性。
圖2表示也用于根據本發明應用到系統上的現有密鑰由第三方保存系統的方框圖。方框200表示密鑰由第三方保存組成部分(KEC)。為了簡便,認為此實體負責保存、釋放和管理整個密鑰材料下層結構。方框210表示數據恢復組成部分(DRC),它執行特定授權的數據恢復。方框220和230表示各自用于安全組成部分(USC),也稱為裝置(DEV)。只表示了兩個裝置,但應當理解根據本發明的系統對于具有可能非常大量裝置的系統是最佳的。應當理解系統是意指利用相同公共密鑰方案的所有組成部分。實際上,用戶可以在他家的小系統中只有少量的終端裝置。這些裝置原則上已經在其它家庭的系統中工作,因此可以看作一個大型系統的一部分。USC組成部分通常嵌入在CE裝置中并執行根據本發明的內容保護系統中涉及的所有加密、解密和散列操作。原則上,密鑰由第三方保存的系統是公知的。根據本發明的系統可以在適于密鑰由第三方保存的系統的現有或將來硬件平臺中執行。特別是,該裝置包括用于執行本發明的密鑰產生算法的傳統處理器或專用加密處理器。該處理器通常在適當程序產品(固件)的控制下工作,以執行根據本發明的算法步驟。此程序通常從后臺存儲器,例如硬盤或ROM寄存。該計算機程序產品可以經網絡,例如公共互聯網在分布到存儲介質,例如CD-ROM、智能卡上以后存儲在后臺存儲器中。敏感的信息,例如密鑰產生算法最好以安全的方式從中心裝置200傳遞到有關的裝置。此圖表示利用安全存儲器222和232,例如智能卡將算法傳遞到有關的裝置。還有可能中心裝置已經將許多算法的相關數據傳遞到設備的制造商,在此制造商確保為每個裝置提供與該裝置有關的算法。安全傳輸這種數據和算法的許多方式是公知的。這種機理不是本發明的主題。
輸入是比特串x,輸出是x的n比特散列碼。輸入x分成k比特塊xi,其中k是密鑰大小,如果需要的話,填充完成最后一塊。將包括t個k比特塊的填充消息表示為x1x2...xt。常量n比特初始值IV是預先指定的。輸出Ht定義為H0=IV;Hi=Exi(Hi-1)⊕Hi-1]]>1≤i≤t內容保護系統根據本發明,該系統可以并入非常大量的裝置。因為不可能為每對可能的裝置創建不同的密鑰,所以裝置被安排在裝置的多個分離的子組Si。最好,同一子組內的裝置具有相同或相似的功能(例如能夠翻譯MP3音頻的所有相同的電話機或所有的裝置)。具有相似的功能是指這種裝置在系統中具有相同的行為,即使由于安全的原因從用戶的角度來看是不可視的。在另一個實施例中,子組又被安排成組。這種更高層的編組不作要求,但是開放了其它的可能性,正如下文所詳細描述的。對于下文的說明書,假設這兩種程度的編組都被用到。
圖5說明根據本發明將裝置安排成組和子組。示出裝置組320、321和322。這些組的每一個包括至少一個子組的裝置。一個子組全部包含在一個組中(因此一個子組不會包含在兩個或多個組中)。至少一個組包括至少兩個子組。示出的子組是301、302、303、304和305。每個子組包括至少一個裝置。一個裝置只是用于一組功能的一個子組的成員。希望一個多功能裝置是多個子組的部分。這可以簡單使裝置具有多個裝置標識符來實現。在此含義下,這種多功能裝置被認為是多個裝置。
每個裝置接收不同的公共密鑰,稱為裝置ID。它可以與裝置用于與另一個裝置通信的標識(例如,裝置地址)相同(但不必一定相同)。正如下文所更詳細描述的,具有類似功能(即,在同一子組)的裝置仍然接收唯一的裝置ID,但是這些ID已經產生/選擇,因此它們根據上述的算法導致相同的行為。
除了每一對可能的裝置使用不同的密鑰,每一對子組和組,包括反射使用不同的密鑰。此密鑰稱為每一對組Ga和Gb的密鑰組SGKGa,Gb或每一對子組Si和Sj的密鑰子組SGKi,j。此說明書集中在使用組密鑰。
對于系統改進的實施例,最好,使用下面的函數●將H01、H02、H03用作密鑰的3個散列函數HASH1、HASH2、HASH3。
●圖6所示的操作,被稱為UDK(唯一的裝置密鑰)提取。從HASH1(裝置ID)開始,將設置為1的散列函數的輸出比特用于選擇矢量(被稱為密鑰材料記錄,下文從名稱的含義可以看出)中的元素。選定的元素一起異或,由表示。結果用HASH3散列。在下文的說明書中,從HASH1開始到并包含HASH3的整個函數被稱為F1( )。F1的目的是確保公共密鑰裝置ID不直接用于該算法,而是與裝置唯一的秘密信息混合使用。HASH3用于保護密鑰材料記錄的暴露元素。HASH1用于匹配裝置ID的大小到密鑰材料記錄中的元素數目。由此可以使用任意長度的密鑰材料記錄。應當理解可以使用任何適當的混合算法。如果不需要高層的安全性,也可以直接使用裝置ID。系統的結構架構步驟◆ 整個系統的所有裝置分為g個不同的組Gk,k從1到g(組的例子是記錄裝置、翻譯裝置、處理裝置、...)。
◆ KEC產生 個隨機組密鑰(SGK)。組密鑰是在協議最后恢復和使受保護的內容在兩個裝置之間通信的密鑰。有一種SGK用于包括反射的每個組對。
◆ KEC為所有的裝置產生和提供密鑰材料記錄(KMR)作為一列隨機數。如前所述,使用根據KMR的混合是可選擇的。
◆ 對于每組Gk,KEC產生nk組(也稱為子組)類似的裝置ID(Σk=1gnk=n)]]>,每組包括至少一個裝置ID,并將各自的裝置ID分給屬于此組的相關裝置。這些裝置ID是隨機數并組成唯一的公共信息。該裝置ID產生,因此
-對于屬于不同組的類似裝置ID的裝置ID* HASH2(裝置ID)的最后的m比特是不同的(2m>n和2m-1<n)。應當理解除了使用最后的m個比特,也可以用預定的方式選擇m個其它的比特。注意隨機產生與最后m個比特不同的n個數,需要產生Σi=0n-1mm-i]]>個數。舉個例子,需要304個數產生64(26)個滿足條件的數,需要168449個數產生16382(214)個滿足相同條件的數。
* 等于F1(裝置ID)的數(稱為此裝置ID的唯一裝置密鑰(UDK))不同。如前所述,使用F1是可選擇的。如果不使用F1,UDK等于裝置ID,如此自動地是唯一的。
-對于屬于同一組的類似裝置ID的裝置ID* HASH2(裝置I D)的后m比特相同(其中2m>n和2m-1<n)。
* 等于F1(裝置ID)的數(稱為此裝置ID的唯一裝置密鑰(UDK)是相同的。如前所述,使用F1是可選擇的。假定不用F1,UDK等于裝置的ID,因而本身就是唯一的。
◆ 對于每一組G1,KEC向每個裝置產生和發送屬于此組的秘密組ID記錄(SGIDR),形式為產生一列n個數,因此對于每組類似的裝置ID和僅考慮每一組的一個裝置ID,-m等于HASH2(裝置ID)最后有效的比特形成的數,-Unique Device Keym等于F1(裝置ID)-組密鑰G1Gm是用于屬于組G1的裝置和屬于組Gm的裝置之間通信用的組密鑰-SGIDRml,在組G1的秘密組ID記錄的第m行的元素等于E(唯一的裝置密鑰,組密鑰G1Gm)。
如圖7所示,最后,屬于組Gk的裝置,包括●組Gk的其中一個裝置ID,●組Gk(SGIDRk)的秘密組ID記錄,和●可選擇的,密鑰材料記錄(KMR)。
KEC存儲所有的裝置ID,g個秘密組ID記錄和密鑰材料記錄。
圖8表示產生裝置的公共密鑰的細節。每個裝置可選擇的計算其它裝置的裝置ID的F1(裝置ID),結果是其它裝置的唯一的裝置密鑰(UDK)。每個裝置還散列(HASH2)其它裝置的裝置ID并利用結果的m個最不有效的比特,作為秘密組ID記錄(SGIDR)的行號。HASH2的功能是將公共裝置ID的比特數目減少為只有m個比特,從而系統支持直到2m個子組。秘密組ID記錄包含每個子組的一個元素。實質上,這些元素可以明文形式存儲。為了提高安全性,最好這些元素以加密形式存儲。如圖所示,在裝置A中相應于裝置B的元素已經由KEC在相應于B的裝置ID的UDK的控制下加密。因此,裝置A在同一UDK的控制下解密此元素。通過這種方式,裝置A檢索組密鑰 ,與裝置A同一組(組GA)的裝置利用此密鑰和與裝置B同一組(組GB)的裝置通信。在所述的優選實施例中,UDK對于同一子組的裝置是相同的。而且,密鑰組ID記錄的元素,盡管相應于各自子組,實際上表示子組的組。因此,在具有四組,每組3個子組的系統中,秘密組ID記錄包含12個元素,因為有12個子組。這12個元素實際上只表示4個公共組密鑰(每組3種表示)。同一組3種表示的每一個是用組內三個子組各自的UDK加密公共組密鑰的結果,給出秘密組ID記錄的三個不同的元素。結果,該記錄包括12個不同的元素。顯然,如果在組這一級不需要細劃分,則不是在記錄中表示四個公共組密鑰,而只是12個公共子組密鑰被放在記錄中。
注意在根據本發明的系統中,與已知的PKS系統不同,不傳送行數。這提高了安全性,因為記錄中的位置是不為惡意用戶所知道。藍牙當數據以數字形式從發射裝置傳送到接收裝置時,例如使用內容保護來確保只有授權的接收裝置能夠處理和翻譯內容。藍牙技術在大致10米的相對較短的距離提供對等的通信。該系統在應用層和鏈路層提供安全措施。鏈路層安全措施在1999年7月24日藍牙規范第1.0A版本“藍牙安全”第14章“基帶規范”部分描述。此章描述了藍牙裝置之間進行的驗證和為了加密/解密的目的能采用的產生密鑰的方式。四個不同的實體用于維護鏈路層的安全性每個用戶唯一的公共地址(48位的IEEE藍牙裝置地址,BD_ADDR)、用于驗證的專用用戶密鑰、用于加密的專用用戶密鑰和128位的隨機數(RAND)。加密密鑰用于內容保護。每次新的事物隨機數都不同。在初始化期間得到專用密鑰,此外再也不會公開。通常,加密密鑰在驗證過程期間從驗證密鑰中獲得。對于驗證算法,密鑰大小始終是128位。對于加密算法,密鑰大小會在1到16個8位字節(8-128位)變化。加密密鑰的大小可以配置,此外還要符合在不同國家加密算法加入的許多不同的要求-通常為相應的出口規則和官方對穩私的態度。加密密鑰完全不同于驗證密鑰(即使當創建前者時用到后者)。每次啟動加密時,將產生新的加密密鑰。因此,加密密鑰的壽命并不一定對應于驗證密鑰的壽命。預計驗證密鑰性質上比加密密鑰更靜止-一旦當改變時,或如果改變時,建立在藍牙裝置上運行的特定程序。為了強調驗證密鑰對具體藍牙鏈路的重要性,它經常被稱為鏈路密鑰。RAND是可以從藍牙單元的隨機或偽隨機過程得出的隨機數。這不是靜態的參數,它將經常變化。圖9表示鏈路層中藍牙裝置之間驗證和密鑰產生的當前藍牙協議。
所述的藍牙安全機理具有下列的問題●用戶可以選擇PIN號。對用戶來說重要的是確保沒有未授權的用戶可以使用他的藍牙裝置。如此,用戶希望將藍牙系統用于例如涉及隱私的目的。但是,如果該系統用于交換數字內容時用戶必須付費,則用戶可能試圖嘗試打破安全性。通過改變PIN號,惡意的用戶能夠檢索所有的鏈路密鑰和加密密鑰。這意味著用戶能夠截獲和解密已加密的內容或驗證不一致的裝置。
●加密密鑰的長度根據使用裝置的國家而改變。在某些國家,此長度是8位。這些加密密鑰的無遺漏的搜索只需要256(28)次嘗試。允許使用這種低程度的安全性將會導致在一個國家很容易獲得數字內容,而在其它國家非法傳播。
因此最好在應用層使用內容保護系統,從而提供內容的保護以防止包括惡意用戶在內的侵權者。
圖10表示根據本發明的應用層安全性如何可以描述為藍牙鏈路層安全的增強版本。這改進了藍牙的安全性,因此它可用于交換數字內容。組密鑰 插入在最開始和加密之前。該協議在裝置第一次建立通信之前發生。結果 與PIN碼混合(混合操作可以是簡單的按位異或操作,但是最好用 加密PIN碼)提供●一種機理對驗證惡意用戶是強有力的,其中裝置可以彼此證明它們證明是符合條件的。
●對保護隱私的另一層強有力性(經混合函數的選擇可調諧)。
如果不要求第一個目的,密鑰應當只用于第二步。此后, 與加密密鑰混合(混合函數可以是簡單的按位異或操作,或根據用 加密代碼)提供●強有力的內容保護。
●一種機理,允許在國家之間由第三方保護專用通信,在這些國家這是合法的要求。
在加密密鑰非常少的國家,惡意用戶有可能檢索到 ,特別是如果最后一個異或的結果用于加密通信系統。為了防止這種情況,最后一個異或的密鑰(強加密密鑰)可用于建立、交換和更新用于其余通信的新密鑰。點對多點通信(廣播和多播)到此為止說明都集中在兩個裝置之間的通信。所建議的系統與復雜KPS相比的優點在于它能使主裝置更容易與多個從裝置通信。當考慮屬于組GK的主裝置(例如,類似機頂盒的處理裝置組)和同一組GL的m個從裝置(例如,類似頭戴耳機的翻譯裝置組),所建議的系統促進主裝置和從裝置之間的點到多點通信。實際上,當組密鑰附加在特定的一對組時,可能僅利用同一組密鑰SGKKL就能保護主裝置和從裝置之間的通信內容。
在鏈路層的藍牙協議中,由于主密鑰的產生(參見圖9)可以進行點多點點通信。由主機從兩個隨機數和加密函數E22產生主密鑰。然后,與每個從機重復如圖9所示(參見函數E22)相同的消息交換,主機將主密碼安全的傳送給從機。在應用層的內容保護的藍牙協議中,因為從裝置屬于同一組,當開始與主裝置通信時,在內容保護協議期間產生的組密鑰(參見圖10)總是相同。從此點來說,主裝置產生主密鑰,并將它傳送到從裝置,點到多點的通信可以發生。DRC密鑰恢復在密鑰由第三方保護是合法要求的國家中,授權的官方機構收到包含DRC的特殊裝置。為了使DRC能夠從密文恢復明文,KEC向DRC發送密鑰材料記錄、秘密組ID記錄、用于散列函數的常量和組之間裝置ID的重新分配。然后,當發生通信時,DRC能夠從裝置ID中選擇正確的密鑰SGKAB,和能夠在這是合法要求的國家利用對弱加密密鑰的強行破譯檢索到強加密密鑰。靈活性本協議并不為基本函數,例如加密、解密、驗證和散列規定具體的算法。即使用其它的單向函數替代可選擇的函數F1。UDK、SGIDR、SGK中的諸元素的全部位長度和HASH3的輸出長度都可以為了選定的算法而截短。也沒有規定有多少組、子組或裝置ID。當然,子組越多,協議就越安全。來自同一組是類似裝置的兩個裝置可以共享相同的裝置ID。注意裝置可以具有一個以上的功能。在這種情況下,每個應用/功能存在一個連接。記錄的大小關于密鑰材料記錄,它的大小至少足以為每個裝置ID提供不同的唯一裝置密鑰。理論上,如果記錄中有n個元素,則異或必須有 個不同的可能的輸出,但實際上大小應當可以盡可能的大,以便用F1的不同的輸出產生裝置ID。每個秘密組ID記錄必須包含與類似裝置ID相同的元素。也有可能做出更大的記錄以便使破譯者的任務復雜。更新無論這些秘密是否已被公知,最好能夠更新裝置中包含的秘密信息。建議的解決方案依賴共享的秘密和本質是有限的安全性。改變秘密是一種重新初始化系統安全性的好方式。可以更新的秘密是●用于散列函數的常量●秘密組ID●密鑰材料記錄●唯一的裝置密鑰●組密鑰注意更新這些秘密自動地要求改變裝置ID。裝置撤銷除了秘密可更新,最好能夠撤銷裝置,有三種撤銷是可以區分的●撤銷一組裝置例如通過改變屬于此組的所有裝置的其中一個散列的初始常量或通過改變所有的裝置,通過使秘密組ID記錄中的所有元素無效來實現,該記錄包含組密鑰,該組密鑰允許每個具體的裝置與這個具體組中的諸裝置通信。
●撤銷一組類似的裝置例如改變輸入這組類似裝置的所有裝置中的一個散列的初始常量,或者改變秘密組ID記錄的元素來實現,該記錄允許每一個具體的裝置與此組類似裝置的一個裝置通信。
●撤銷具體的裝置在一個系統中,多個裝置可以共享相同的裝置ID,因為在系統中存在具有相同行為的裝置ID的類似的裝置,這種撤銷只能由裝置本身通過改變例如散列的初始常量實現。
當撤銷一個裝置時,符合另外協議的驗證將失敗。
權利要求
1.一種用于產生公共加密密鑰的系統,用于確保裝置之間的通信安全;該系統包括多個裝置,每一個與至少一個最后唯一的裝置標識符相關;多個裝置被安排在裝置的子組Si(i=1......n)中,以及至少一個子組包含多個裝置,和一個中心裝置,所述中心裝置包括算法產生器,用于為所述多個裝置的每一個根據它相關的唯一裝置標識符產生一個密鑰產生算法KGAi;每一個密鑰產生算法KGAi對與密鑰產生算法KGAi各自相關的子組Si來說是唯一的,其中該密鑰產生算法KGAi對于同一子組Si中的每一個裝置來說是相同的;對于每一個子組Si,相關的密鑰產生算法KGAi操作為每一個子組Sj的裝置產生一個公共子組密鑰SGKij,用于子組Si的一個裝置和子組Sj的一個裝置之間的通信;公共子組密鑰SGKij響應接收與子組Sj中的裝置有關的任何一個裝置標識符而產生;每個裝置與各自的存儲器有關,所述存儲器用于存儲相關的密鑰產生算法和包括執行相關密鑰產生算法的處理器。
2.如權利要求1所述的系統,其中算法產生器操作將唯一的裝置標識符散列為與各個子組有關的子組標識符并根據子組標識符產生密鑰產生算法。
3.如權利要求1所述的系統,其中密鑰產生算法操作將唯一的裝置標識符散列為與各個子組有關的子組標識符并根據子組標識符產生公共密鑰。
4.如權利要求1所述的系統,其中至少一個裝置的子組與預定的功能有關。
5.如權利要求4所述的系統,其中至少具有各自記錄、翻譯或處理功能的裝置被安排成各自的子組。
6.如權利要求5所述的系統,其中具有至少兩個不同功能的裝置與至少兩個不同的唯一標識符有關,每一個對應各自的子組。
7.如權利要求4所述的系統,其中一個裝置響應接收來自系統中另一個裝置的裝置標識符,操作將裝置標識符散列為與各個子組有關的子組標識符;根據該子組標識符確定另一個裝置的功能和根據確定的功能與另一個裝置通信。
8.如權利要求1所述的系統,其中算法產生器操作(偽)隨機地為每一對子組Si和Sj產生公共子組密鑰SGKi,j;與子組Si的裝置有關的密鑰產生算法KGAi包括表示公共子組密鑰的一組SGIDRi,它包括用于每個子組Sj的各個唯一的公共子組密鑰SGKi,j的表示。
9.如權利要求8所述的系統,其中通過從包含在算法中的表示公共子組密鑰的一組SGIDRi中選擇公共子組密鑰SGKi,j的表示,與子組Si的裝置有關的密鑰產生算法KGAi操作產生公共子組密鑰SGKi,j,用于與子組Sj的裝置通信。
10.如權利要求8所述的系統,其中對于每個i和j,算法產生器操作混合每個子組Sj有關裝置的裝置標識符與子組Si有關的秘密信息,將混合輸出用作加密公共子組密鑰SGKi,j的密鑰,和將加密結果用作公共子組密鑰SGKi,j的表示。
11.如權利要求10所述的系統,其中與子組Si有關的密鑰產生算法KGAi操作混合每個子組Sj有關裝置的裝置標識符與子組Si有關的秘密信息,和將混合輸出用作解密公共子組密鑰SGKi,j表示的密鑰。
12.如權利要求1所述的系統,其中子組中的裝置安排成組;每組包括至少一個子組,至少一個組包括多個子組;每相應對組Ga和Gb與唯一的公共子組密鑰SGKGa,Gb有關,該SGKGa,Gb與組Ga的所有子組Si和組Gb的所有子組Sj的公共子組密鑰SGKi,j相同。
13.如權利要求12所述的系統,其中組Ga的子組Si的裝置操作利用相同的公共子組密鑰SGKGa,Gb與組Gb的至少一個子組Sj的多個裝置進行廣播或多播通信。
14.一種中心裝置,用于產生一個密鑰產生算法的系統中,以確保裝置之間的通信安全,多個裝置的每一個與至少一個唯一裝置標識符有關;所述多個裝置安排在裝置子組Si(i=1...n)中,至少一個子組包括多個裝置;所述中心裝置包括算法產生器,用于為所述多個裝置的每一個根據它相關的唯一裝置標識符產生一個密鑰產生算法KGAi;每一個密鑰產生算法KGAi對與密鑰產生算法KGAi各自相關的子組Si來說是唯一的,其中該密鑰產生算法KGAi對于同一子組Si中的每一個裝置來說是相同的;對于每一個子組Si,相關的密鑰產生算法KGAi操作為每一個子組Sj的裝置產生一個公共子組密鑰SGKij,用于子組Si的一個裝置和子組Sj的一個裝置之間的通信;公共子組密鑰SGKij響應接收與子組Sj中的裝置有關的任何一個裝置標識符而產生。
15.一種利用公共加密密鑰與另一個裝置安全通信的裝置;該裝置與至少一個唯一裝置標識符有關,該裝置是多個裝置子組Si(i=1......n)中一個的成員,至少一個子組包括多個裝置;每個裝置與各自的存儲器有關,所述存儲器用于存儲相關的密鑰產生算法和包括執行相關密鑰產生算法的處理器;每一個密鑰產生算法KGAi對與密鑰產生算法KGAi各自相關子組Si來說是唯一的,其中該密鑰產生算法KGAi對于同一子組Si中的每一個裝置來說是相同的;對于每一個子組Si,相關密鑰產生算法KGAi被操作為每一個子組Sj的裝置產生一個公共子組密鑰SGKij,用于子組Si的一個裝置和子組Sj的一個裝置之間的通信;公共子組密鑰SGKij響應接收與子組Sj中的裝置有關的任何一個裝置標識符而產生。
16.一種用于產生密鑰產生算法的方法,用于確保系統中裝置之間的通信安全,其中該系統包括多個裝置,每一個與至少一個唯一裝置標識符有關;所述多個裝置安排在裝置子組Si(i=1...n)中,至少一個子組包括多個裝置;該方法包括為所述多個裝置的每一個根據它相關的唯一裝置標識符產生一個密鑰產生算法KGAi;每一個密鑰產生算法KGAi對與密鑰產生算法KGAi各自相關子組Si來說是唯一的,其中該密鑰產生算法KGAi對于同一子組Si中的每一個裝置來說是相同的;對于每一個子組Si,相關的密鑰產生算法KGAi進行操作,為每一個子組Sj的裝置產生一個公共子組密鑰SGKij,用于子組Si的一個裝置和子組Sj的一個裝置之間的通信;公共子組密鑰SGKij響應接收與子組Sj中的裝置有關的任何一個裝置標識符而產生。
17.一種計算機程序產品,其中該程序產品被操作,以執行權利要求16的方法。
18.一種用于產生公共加密密鑰的方法,用于確保裝置之間的通信安全,每一個裝置與至少一個唯一裝置標識符有關,每個裝置是多個裝置子組Si(i=1......n)中一個的成員,至少一個子組包括多個裝置;包括使用對具有該密鑰產生算法KGAi的子組Si是唯一的一個密鑰算法KGAi的方法對于相同子組Si的每個裝置是相同的,以為每個子組Sj產生一個公共子組密鑰SGKij,用于子組Si的一個裝置和子組Sj的一個裝置之間的通信;公共子組密鑰SGKij響應接收與子組Sj中的裝置有關的任何一個裝置標識符而產生。
19.一種計算機程序產品,其中該程序產品被操作,以執行權利要求18的方法。
全文摘要
一種用于產生公共加密密鑰的系統,用于確保裝置之間的通信安全;該系統包括多個裝置,每個裝置與至少一個唯一裝置標識符有關,所述多個裝置安排在裝置子組S
文檔編號H04L9/08GK1401171SQ01805028
公開日2003年3月5日 申請日期2001年10月17日 優先權日2000年10月18日
發明者F·格魯米奧克斯 申請人:皇家菲利浦電子有限公司