專利名稱:建立會話密鑰的方法和實施該方法的單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及建立會話密鑰的方法和實施該方法的單元。
技術(shù)背景為在第一和第二單元之間的會話建立會話密鑰的一種公知方法是DiffieHellman方法,也稱為STS (站到站)協(xié)議。在DiffieHellman方法中,每一單元構(gòu)建a項,另一單元可才艮據(jù)該 a項基于下式建立會活密鑰K:Ks=apmod n其中卞是隨機數(shù);以及Diffie Hellman方法易于受到截獲者攻擊和重放攻擊。 截獲者攻擊在以下文獻中有詳細(xì)描述 Douglas Stinson, "Cryptographie Th6orie et Pratique" [Cryptography Theory and Practice], International Thomson Publishing France, Paris, 1996 (section 8.4.1)重放攻擊實質(zhì)上在于存儲第 一單元發(fā)送給第二單元的消息并在隨 后再次使用所存儲的消息來欺騙第二單元。WILEY出版的BRUCE SCHNEIER所著"Cryptographie Appliqu6e"[實用密碼技術(shù)的第22.1和22.2節(jié)提出了一種建立能夠抵御 截獲者攻擊和重放攻擊的會話密鑰的方法。這一方法是奏效的,但是可能 導(dǎo)致在被攻擊的情況下執(zhí)行不必要操作,這反映在數(shù)據(jù)處理資源在一個單 元或者另一單元中不必要的調(diào)動。除密碼單元之間使用時,這種數(shù)據(jù)處理資源不必要的調(diào)動的問題尤為嚴(yán) 重。這是因為傳統(tǒng)的解擾器單元和傳統(tǒng)的可移除密碼單元的數(shù)據(jù)處理資源 有限。對于釆用微芯片卡形式的可移動密碼單元尤其如此。發(fā)明內(nèi)容因此本發(fā)明目的在于通過提出一種為在解擾器單元與可移除的密 碼單元之間的M建立會話密鑰的方法,解決了對于接收加擾多媒體信號的i殳備的這一問題,其中該方法就凝:據(jù)處理資源而言更為經(jīng)濟。 本發(fā)明因此包括一種建立會話密鑰的方法,其中a) 第 一單元抽取隨機數(shù)并將該隨機數(shù)發(fā)送到另 一單元;b) 該另一單元,或者說第二單元,構(gòu)建a項,第一單元可以根據(jù)該 a項基于下式建立所述會話密鑰K:Ks=ap mod n其中p是第一單元產(chǎn)生的隨機數(shù)而n ^t數(shù),c) 第二單元向第一單元發(fā)送消息,該消息包含接收的隨機數(shù)、a項 以及使用私有密鑰K^產(chǎn)生的對該隨機數(shù)和/或a項的簽署;然后d) 第一單元使用與私有密鑰K^對應(yīng)的公共密鑰K3pu來lHiE該簽 署并且將其接收的隨機數(shù)與所發(fā)送的隨機數(shù)進行比較;以及e) 如果該簽署不正確或者如果其接收的隨機數(shù)與所發(fā)送的隨機數(shù)不匹配,則第一單元不繼續(xù)進行建立會活密鑰的后續(xù)步驟。如果發(fā)起截獲者攻擊,則可在步驟d)中通過IHi簽署檢測到該攻 擊,由此不執(zhí)行建立會話密鑰的進一步步驟。如果發(fā)起重放攻擊,則也可在步驟d)中通過比較所發(fā)送的隨機數(shù)與 其接收的隨機數(shù)檢測到該攻擊,由此不執(zhí)行建立會活密鑰的進一步步驟。由此,與在SCHNEIER的著作的第22.1和22.2節(jié)中公開的方法相 比,上述方法能夠節(jié)約數(shù)據(jù)處理資源。這是因為在SCHNEIER的著作中 描述的方法沒有在一發(fā)起截獲者攻擊或者重放攻擊時就中斷構(gòu)建會話密 鑰的過程。在攻擊發(fā)生之后仍然進行會活密鑰構(gòu)建操作,盡管這些會話密 鑰構(gòu)建操作是沒有必要的,因為例如在發(fā)現(xiàn)攻擊時會放棄已經(jīng)構(gòu)建的或者 在構(gòu)建過程中的會話密鑰。該建立會話密鑰的方法的實施可以包括如下特征中的一個或者多個特征'互換第一單元和第二單元的角色,重復(fù)步驟a)至e)。'在步驟a)至e)之前,解擾器單元和可移除的密碼單元相互交換+第一/>共密鑰Klpu;+第一證書,至少包含第二公共密鑰K2pu并且被使用與第一公共密 鑰K^相對應(yīng)的第一私有密鑰K4pr簽署;以及+第二證書,至少包含第三公共密鑰K3pu并且被使用與第二公共密 鑰K—相對應(yīng)的第二私有密鑰K2pr簽署,第三/>共密鑰K一對應(yīng)于在步 驟C)中實現(xiàn)簽署的私有密鑰K3pr;以及-解擾器單元和可移除的密碼單元各自驗證所接收的第一證書和第 二證書,且僅在解擾器單元和可移除的密碼單元已能成功驗證它們每一個已接收的第一和第二證書的真實性時,繼續(xù)進行步驟a)至e)。 所述單元中的至少 一個基于向另 一單元發(fā)送和/或從另 一單元接收 的消息個數(shù)使第 一 內(nèi)部計數(shù)器遞增,且在第 一計數(shù)器超出預(yù)定的第 一閾值 時,自動觸發(fā)對新的會活密鑰的建立。 另 一單元基于該同 一消息個數(shù)使第二內(nèi)部計數(shù)器遞增,且在所述 第二計數(shù)器超出高于第一閾值的預(yù)定的第二閾值時,自動地使對多^^體信號的解擾停止;所述單元中的每一個根據(jù)所發(fā)送和/或接收的消息的個數(shù)使內(nèi)部計 數(shù)器遞增,所述單元中的至少一個在向另 一單元發(fā)送的每條消息上添加冗 余代碼,所述冗余代碼根據(jù)要發(fā)送的消息的內(nèi)容以及其內(nèi)部計數(shù)器的當(dāng)前 值計算,而另 一單元通過比較所添加的冗余代碼與根據(jù)其接收的消息的內(nèi) 容以及該另一單元自己的內(nèi)部計數(shù)器的當(dāng)前值計算的冗余代碼來驗證所 接收的消息的準(zhǔn)確性。另外,建立會話密鑰的方法的這些實施例具有如下優(yōu)點'在解擾器單元與密碼單元之間的證書交換例如保證了只有經(jīng)信任 機構(gòu)批準(zhǔn)的,即擁有第一有效證書的制造商可以構(gòu)建可使用的解擾器單元 或者密碼單元;-根據(jù)內(nèi)部消息計數(shù)器的值來觸發(fā)建立新的會話密鑰實現(xiàn)了對M 密鑰的定期修改,這使這兩個單元之間的信息交換更安全-如果第二內(nèi)部消息計數(shù)器超出預(yù)定的第二閾值則觸發(fā)停止對多媒 體信號的解擾是對使用剽竊的解擾器單元或者密碼單元所釆取的對策,這將不會觸發(fā)對新的會話密鑰的建立;'在各單元中使用內(nèi)部消息計數(shù)器并且使用這些計數(shù)器的值來計算 和驗證冗余代碼驗證了在這兩個單元之間交換的消息的同步性并且有助 于使重放攻擊更困難;以及-對在兩個單元之間交換的包括證書交換和會話密鑰更新過程消息 的所有消息進行加密使得對交換的信息的密碼分析更困難。本發(fā)明還包括適于在建立會話密鑰的上述方法中使用的單元。
在閱讀僅通過例子以及參照附圖給出的以下描述之后可以更好地 理解本發(fā)明,在附圖中-圖1是用于發(fā)送加擾多媒體信號的系統(tǒng)的架構(gòu)的示意圖,其中該 系統(tǒng)包括用于接收此種信號的設(shè)備;*圖2是建立用于圖1的接收器設(shè)備的密碼證書的方法的流程圖;'圖3A和3B構(gòu)成為在圖1的接收器設(shè)備的解擾器單元與可移除的 密碼單元之間的會話建立會話密鑰的方法的流程圖;以及'圖4是在圖1的接收器設(shè)備的解擾器單元與可移除的密碼單元中 交換加密消息的方法的流程圖。
具體實施方式
圖1表示用于發(fā)送和接收加擾多媒體信號(如視聽信號或者多媒體 節(jié)目)的系統(tǒng)2。系統(tǒng)2包括發(fā)送器4,該發(fā)送器適于同時向多個接收器 設(shè)備廣播被使用控制字加擾的多媒體信號。該發(fā)送器4也適于向^收器 設(shè)備發(fā)送包含要用來對該多媒體信號進行解擾的控制字的權(quán)利控制消息 (ECM)和包含用于管理用戶訪問權(quán)的信息的權(quán)利管理消息(EMM)。為筒化圖1,僅示出了一個接收器設(shè)備6。這里僅描述設(shè)備6的對 于理解本發(fā)明而言必需的細(xì)節(jié)。i殳備6例如由三個實體形成,即-具有天線12的解碼器10,用于接收發(fā)送器4廣播的加擾多媒體信 號以及用于在解擾這些信號之后解碼這些信號;.單元14,用于對接收的多媒體信號進行解擾;以及'可移除的密碼單元,比如可移除的安全處理器16,適于解密ECM 中包含的控制字。下文提到的控制字適于ECM的一個或者多個控制字。解碼器10還連接到顯示單元20 (如電# ),在該顯示單元上顯示 單元14解擾的多媒體信號。單元14采用例如可移除的PCMCIA (個人計算M儲器卡國際協(xié) 會)卡的形式,旨在可4艮據(jù)EN 50221標(biāo)準(zhǔn)"Common InterfaceDecoder Applications,,被插入到解碼器10中。為此,解碼器10和單元14 各具有用于M地耦合和分開單元14和解碼器10的連接器。單元14包 括適于解擾被使用控制字加擾的多媒體信號的解擾器22。單元14包括這里表示為存儲器26的信息存儲裝置以及加密和解密 模塊28。模塊28適于使用會話密鑰IQ加密和解密在單元14與處理器16之 間交換的每個消息的全部或者部分。所用的加密和解密算法例如是DES (數(shù)據(jù)加密標(biāo)準(zhǔn))算法。存儲器26包含三種密碼證書C1T、 Crr和C3T。證書C1T包括'公共密鑰KTlpu;-證書到期曰期;以及'使用與公共密鑰K^pu相對應(yīng)的私有密鑰Knpr根據(jù)證書Cn中包含的數(shù)據(jù)產(chǎn)生的簽署SigmK叫r (自簽署證書)。 證書C2T包括 '公共密鑰KT2pu; -證書到期曰期;以及-使用私有密鑰Knpr根據(jù)證書C2T中包含的數(shù)據(jù)產(chǎn)生的簽署二后,證書Cst包括公共密鑰KT3pu、證書到期日期和使用與么共密鑰KT2pu相對應(yīng)的私有密鑰Ki2pr根據(jù)證書C3T中包含的數(shù)據(jù)產(chǎn)生的簽署Sign3KT2pr。存儲器26還包含私有密鑰KT3pr、闊值預(yù)加載的會話密鑰Ksp、 大的質(zhì)數(shù)n和屬于集合Zn的數(shù)g,其中集合Zn是從0到n-l的整數(shù)集。私有密鑰KT^對應(yīng)于公共密鑰KT3pu。例如,這里所述的包含在存儲器26中的所有數(shù)據(jù)在單元14的制造 期間被存儲在存儲器26中。單元14還包括用于對在單元14和處理器16 之間交換的消息進行計數(shù)的計數(shù)器30、包含當(dāng)前日期的寄存器32以及適 于為發(fā)送到處理器16的消息建立冗余代碼以及mi所接收的消息的冗余 代碼的計算器34。安全處理器16采用例如適于插入到解擾器單元14中的微芯片卡的 形式。為此,單元14和處理器16每一個均包括用于耦合和分開單元14 和處理器16的連^^口 (如M連接器)。該安全處理器包括模塊52,該模塊適于使用與模塊28使用的加密 和解密算法兼容的加密和解密算法來加密和解密處理器16和單元14之間 交換的消息的全部或者部分。處理器16還包括用于提取和解密ECM中包含的控制字的模塊50。處理器16還包括'計算器54,適于計算向單元14發(fā)送的消息的冗余代碼以及mst從 單元14接收的消息的冗余代碼; 內(nèi)部計數(shù)器56,用于對在單元14和處理器16之間交換的消息進 行計數(shù);.包含當(dāng)前日期的內(nèi)部寄存器58;以及-被示為存儲器60的信息存儲裝置。存儲器60包含三種密碼證書Clc、 Ck和C3c。證書de包括公共密鑰Kclpu、證書到期日期和使用私有密鑰Kclpr根據(jù)證書dc的內(nèi)容產(chǎn)生的簽署SignlKclpr。密鑰Kdpr對應(yīng)于公共密鑰Kclpu (自簽署證書)。證書C2e包括公共密鑰Kc2pu、證書C2e的到期日期和使用私有密鑰 Kclpr根據(jù)證書C2c的內(nèi)容產(chǎn)生的簽署Sign2Kclpr。證書C3e包括公共密鑰Kopu、證書C3e的到期日期和簽署Sign3Kc2pr。簽署Sign3Kc2pr是使用私有密鑰Kc2pr根據(jù)證書C3。的內(nèi)容產(chǎn)生的。存儲器60還包含私有密鑰Kc3pr、預(yù)加載的會話密鑰Ksp、高于閾 值&的閾值S2、質(zhì)數(shù)11和數(shù)g。私有密鑰Kc3pr對應(yīng)于公共密鑰Kopu。預(yù)加載到存儲器60中的密鑰Ksp具有與加載到存儲器26中的密鑰Ksp相 同的值。例如,上述存儲器60中包含的數(shù)據(jù)在處理器16的制造期間被存儲。處理器16可以僅在它被插入到單元14中時與單元14交換消息。類似地,單元14可以僅在單元14插入到解碼器10中時向解碼器 IO發(fā)送解擾的多媒體信號。發(fā)送器4廣播被控制字加擾的多媒體信號,所述控制字通過ECM 被以加密形式發(fā)送到設(shè)備6。設(shè)備6接收該加擾的多媒體信號和ECM以及用于管理訪問權(quán)和系 統(tǒng)安全的權(quán)利管理消息(EMM)。 ECM和EMM由單元14發(fā)送到處理 器16。具體地,ECM被發(fā)送到處理器16的模塊50,該模塊從ECM中 提取控制字并且解密該控制字。以該方式被解密的控制字然后被發(fā)送到單元14,在該單元處又被饋 送到解擾器22。解擾器22使用該解密的控制字對所接收的加擾多^^體信 號進行解擾。解擾的多媒體信號然后^JC送到解碼器10,該解碼器對這 些信號進行解碼并且將它們發(fā)送到顯示器單元20以供呈現(xiàn)給用戶。在設(shè)備6中,使用會活密鑰Ks來加密在單元14與處理器16之間 交換的消息。根據(jù)不同的實施例,每個消息以該方式被全部地或者部分地 加密。在對每個消息進行部分加密的情況下,從ECM提取的并被從處理 器16發(fā)送到單元14的控制字構(gòu)成由模塊52系統(tǒng)地加密的部分。會話密鑰Ks僅為處理器16和單元14所知。具體而言,密鑰Ks因 接收器設(shè)備而異。因而使得在處理器16與單元14之間交換的消息難以被 另 一接收器設(shè)備截獲而無法為其所用。接著參照圖2、圖3A、 3B和圖4的流程圖描述設(shè)備6的操作。圖2表示了一種建立證書C『C2T、 C3T、 Clc、 C2c和C3c的方法。 開始,信任^被提供證書C1T、證書Ck以及私有密鑰Knpr和Kclpr。信任機構(gòu)例如是負(fù)責(zé)保證在單元14與處理器16之間可靠交換消息的實體。在步驟80中,信任機構(gòu)為解擾器單元制造商選擇私有/公共密鑰對KT2pr/KT2pU。然后在步驟82中,該機構(gòu)為該制造商構(gòu)建證書C2T并且使用該機構(gòu)的私有密鑰Knpr對該證書簽署。在步驟84中,在步驟82中構(gòu)建的證書C2T、證書Cu和私有密鑰 KT2pr被發(fā)送到該解擾器單元制造商。針對每個解擾器單元制造商,重復(fù)步驟80至84。在步驟80中,分 配給一解擾器單元制造商的私有/公共密鑰對KT2pr/KT2pu與分配給其它制 造商的私有〃>共密鑰對不同。然后在步驟86中,每個制造商為制造的每一個解擾器單元選擇有/公共密鑰對KT3pr/KT3pu。私有/公共密鑰對Ki3pr/KT3pu優(yōu)選地為制造的每個解擾器單元所特有。然后在步驟88中,制造商構(gòu)建解擾器單元的證書C3T并且使用該制造商在步驟84中接收的私有密鑰KT2pr對該證書簽署。最后在步驟卯中,證書Cu、 C2T、 C玎和私有密鑰KT3pr被存儲于單元14的存儲器26中。在步驟卯中,預(yù)加載的會話密鑰Kp以及數(shù)n和g也被存儲于存 儲器26中。與步驟80至84并行,在步驟92至96中,信任機構(gòu)完成與針對解 擾器單元制造商的任務(wù)相同的任務(wù),但是這一次是針對安全處理器制造商。例如,除了證書CiT和C2T中和密鑰Knpr、 KT2pr、 KT2pu中的下標(biāo)"T"被下標(biāo)"C,,取代之外,步驟92、 94和96分別與步驟80、 82和84相同。類似地,與步驟86至卯并行,在步驟98至102中,安全處理器 制造商完成與解擾器單元制造商的任務(wù)相同的任務(wù)。例如,除了 C1T、 C2T、 C3T、 KT2pr、 KT3pr、 KT3pu各項中的下標(biāo)"T,,被下標(biāo)"C"取代之外,步驟98、 100和102分別與步驟86、 88和卯相同。三級證書的迭加的保證了只有經(jīng)信任機構(gòu)批準(zhǔn)的制造商才可制造 能夠在設(shè)備6中工作的解擾器單元或者安全處理器。例如,非經(jīng)批準(zhǔn)的解 擾器單元14制造商不能生成由與有效證書C2i相對應(yīng)的私有密鑰KT2pr 簽署的證書C3T。單元14 一JS^t制造好,即被插入到解碼器10中,且處理器16被 插入到單元14中以便解擾由發(fā)送器4發(fā)送的信號。然后執(zhí)行用于建立公共對稱會話密鑰的圖3A和圖3B的方法。開始,在階段110中,處理器16和單元14通過交換它們的密碼證 書相互認(rèn)證。更確切地,在步驟112中,單元14發(fā)送證書di到處理器16。在 步驟114中,處理器16從證書C1T中提取公共密鑰KTlpu。然后,在步驟116中,處理器16^所接收的證書dT的有效性。 在步驟116中,處理器16使用乂>共密鑰KnpuB證書C1T的簽署并且將 該證書中包含的到期日期與寄存器58中包含的當(dāng)前日期做比較。如果證書被不正確地簽署或者已經(jīng)到期(即如果當(dāng)前日期在到期曰 期之后),則在步驟118中,處理器16向單元14發(fā)送命令淨(jìng)止單元14的 消息并且自身也被停止。由此建立會話密鑰的過程被立即中斷。否則,即如果證書dT有效,則處理器16在步驟120中發(fā)送證書 Ck:到羊元14。在步驟122中,單元14從證書dc提取公共密鑰Kclu,然后在步 驟124中mit所接收的證書C1C的有效性。在步驟124中,單元14 JlHE證書C1C的簽署并且比較該證書中包 含的到期日期與寄存器32中包含的當(dāng)前曰期。如果證書dc被不正確地簽署或者已經(jīng)到期,則在步驟126中,單 元14向處理器16發(fā)送命令停止處理器16的消息,且單元14自身也被停 止。由此不執(zhí)行建立會話密鑰的其它步驟。否則,即如果接收的證書dc有效,則在步驟128中,單元14和 處理器16交換和lHL波此的證書C2c和C2T。為此,在步驟128,重復(fù)步 驟112至126,其中分別用C2T、 C2C、 KT2pu、 Kc2pu各項取代C『C1C、 KTlpu 、 Kclpu各項。在步驟128結(jié)束時,如果已經(jīng)確定所交換的證書之一被不正確地簽 署或者已經(jīng)到期,則單元14(相應(yīng)地,處理器16)在相當(dāng)于步驟126(相 應(yīng)地,118)的步驟129中向處理器16 (相應(yīng)地,單元14)發(fā)送命4^止 處理器16(相應(yīng)地,單元14)的消息并且自身也被停止。否則,如果在 步驟128結(jié)束時已經(jīng)確定證書Qt和C2c有效,則在步驟130中,單元14和處理器16交換彼此的證書Cw和C3C并且發(fā)汪它們的有效性。例如,在步驟130中,重復(fù)步驟112至126,其中分別用C3T、 C3C、 KT3pu、 Kopu 各項取代di、 C1C、 KTlpu、 Kdpu各項。在步驟130結(jié)束時,如果已經(jīng)確定所交換的證書之一被不正確地簽 署或者已經(jīng)到期,則單元14(相應(yīng)地,處理器16)在相當(dāng)于步驟126(相 應(yīng)地,118)的步驟131向處理器16 (相應(yīng)地,單元14)發(fā)送命4^止處 理器16 (相應(yīng)地單元14)的消息并且自身也被停止。否則,如果在步驟130結(jié)束時已經(jīng)確定證書C3T和C3C有效,則觸發(fā)構(gòu)建新的會活密鑰Ks的階段150,因為在階段110交換的所有證書都有效。因此清楚的是,只有在單元14和處理器16是由被批準(zhǔn)的制造商制 造的情況下,單元14才可以通it^目互證書發(fā)汪的階段110與處理器16 — 起恰當(dāng)?shù)毓ぷ鳌A硗?,在階段110結(jié)束時,單元14特別地具有認(rèn)證的公共密鑰KC3pu , 處理器16特別地可以使用認(rèn)證的公共密鑰KT3pu。用于實現(xiàn)相互證書B階段llO的消息在單元14與處理器16之間 以被當(dāng)前會話密鑰加密的形式被交換,如用于實現(xiàn)構(gòu)建新的會話密鑰的階 段150的由單元14和處理器16交換的消息一樣。在階段150開始時,在步驟152中,單元14抽取隨機數(shù)A并且在 步驟154中將該隨機lfc^送到處理器16。在步驟156中,處理器16接收包含數(shù)A的消息并且提取該數(shù)。在步驟158中,處理器16抽取隨機數(shù)h,然后在步驟160中使用下 式構(gòu)建X項X=gu mod n (1)其中 g和n是存儲于存儲器60中的數(shù); "'mod,,表示求冪gu被實施模n。然后在步驟162中,處理器16以預(yù)定方式組合X項和隨機數(shù)A并且使用該處理器的私有密鑰Kc3pr對結(jié)果進行簽署。所述組合的一個例子是X項和隨機數(shù)A的拼接(concatenation )。在步驟164中,處理器16抽取隨機數(shù)B。此后,在步驟166中,包含隨機數(shù)B、 X項、隨機數(shù)A以及X和A 的簽署的消息被發(fā)送到單元14。在單元14接收到該消息時,在步驟168中,單元14使用公共密鑰 KC3pu來驗證所述X項和隨機數(shù)A的簽署。如果簽署不正確,則在步驟170中,單元14 ^^令停止處理器16, 且然后它自身也被停止。否則,即如果X項和隨機數(shù)A的簽署正確,則在步驟172中,單 元14從所接收的消息中提取X項和隨機數(shù)A。然后,在步驟174中,單元14比較所接收的數(shù)A與在步驟154中 發(fā)送的數(shù)A。如果接收的隨機數(shù)與發(fā)送的隨機數(shù)不同,則單元14在步驟176中停止。否則,該過程繼續(xù)步驟178,其中單元14從所接收的消息中提取隨 機數(shù)B并且抽取隨機數(shù)v。然后,在步驟180中,單元14使用下式構(gòu)建 Y項Y=gv mod n (2)在步驟182中,單元14以預(yù)定方式(如拼接方式)組合Y項和隨 機數(shù)B,并使用私有密鑰KT^對該組合結(jié)果進行簽署。在步驟184中,單元14向處理器16發(fā)送包含Y項、隨機數(shù)B以 及Y和B的簽署的消息。在步驟l卯中,處理器16接收該消息,且在步驟192中使用公共 密鑰KT3puB Y項和隨機數(shù)B的簽署。如果簽署不正確,則在步驟194中,處理器16命*止單元14, 且然后其自身也被停止。否則,在步驟196中,處理器16從所接收的消息中提取Y項和隨 機數(shù)B。然后,在步驟198中,處理器16比較所接收的隨機數(shù)B與在步驟 166中發(fā)送的隨機數(shù)B。如果這些隨機數(shù)不相等,則處理器16在步驟200 中被停止。否則,在步驟204和214中,處理器16和單元14每一個繼續(xù)構(gòu)建新的會活密鑰Ks。在步驟204中,處理器16使用下式來構(gòu)建新的會話密鑰KS=YU mod n (3)然后,在步驟206中,處理器驗證在步驟204中構(gòu)建的會話密鑰是 否包含在用于所使用的加密和解密算法的弱密鑰或者半弱密鑰列表中。在 Bruce Schneier的著作的第12.3節(jié)中描述了 DES算法的弱密鑰或者半弱 密鑰列表。如果構(gòu)建的會話密鑰包含在這樣的弱密鑰或半弱密鑰列表中,則處 理器16保留該當(dāng)前的會話密鑰,用于加密和解密與單元14交換的消息。如果構(gòu)建的會活密鑰不包含在該弱密鑰或半弱密鑰列表中,則在步 驟208中,處理器16重新初始化它的計數(shù)器56,然后在步驟210中用新 的會活密鑰取代當(dāng)前會活密鑰,所述新的會活密鑰之后被用來加密和解密 與單元14交換的消息。與步驟204至210并行,在步驟214中,單元14使用下式來構(gòu)建 新的會活密鑰IQ:KS=XV mod n (4)單元14然后繼續(xù)進行驗證步驟216以找出在步驟214中構(gòu)建的會 話密鑰是否包含在用于所使用的加密和解密算法的弱密鑰或者半弱密鑰 列表中。步驟216必須設(shè)計成與步驟206相一致。如果構(gòu)建的會活密鑰包含在這樣的弱密鑰或者半弱密鑰列表中,則 在步驟218中,單元14通過返回到步驟112來立即觸發(fā)建立新的會話密 鑰的過程。如果構(gòu)建的會話密鑰不是弱密鑰或者半弱密鑰,則在步驟220中, 單元14重新初始化它的計數(shù)器30,然后在步驟222中用已經(jīng)構(gòu)建的新的 會活密鑰取代當(dāng)前會話密鑰。由此使用該新的會話密鑰對隨后在單元14 與處理器16之間交換的消息進行加密。應(yīng)當(dāng)注意,借助于步驟168和192,可立即檢測到截獲者攻擊,這 將立即停止構(gòu)建會話密鑰并且禁止進一步的交換。類似地,借助于步驟 174和198,可立即檢測到重放攻擊,這將立即停止構(gòu)建會話密鑰并且禁 止進一步的交換。圖4示出了如何構(gòu)建和加密在單元14與處理器16之間交換的消息。這一過程在單元14中始于例如單元14向處理器16發(fā)送消息MT 的階段240。在階段240開始時,在步驟242中,計數(shù)器30被遞增一個預(yù)定步長。然后,在步驟244中,計算器34計算消息MT的冗余代碼RT。該 冗余代碼是向消息Mi施加的密碼算法(例如散列函數(shù))的結(jié)果,且它的 ^ItA按照當(dāng)前會話密鑰和消息計數(shù)器30的當(dāng)前值來設(shè)置的。該冗余代 碼使處理器16能夠IHE所接收的消息的完整性。然后,在步驟246中,使用當(dāng)前會話密鑰Ks來加密消息Mi以獲得 密碼M/。在步驟247中,構(gòu)建包含密碼M/和冗余代碼RT的消息MRT。然后在步驟248中將消息M虹發(fā)送到處理器16。在步驟2491中,假設(shè)沒有會話密鑰改變過程在進行中,單元14比 較消息計數(shù)器30的值與閾值&。如果已經(jīng)達到或者超出該閾值,則單元 14在步驟2492中存儲用以激活根據(jù)圖3A和3B的方法進行的會話密鑰 改變過程所需的內(nèi)容。該密鑰改變過程特別地是在處理器16已經(jīng)處理消 息Mrt之后由羊元14自動觸發(fā),以免中斷進行中的處理。根據(jù)圖4的方 法處理在會活密鑰改變過程中交換的消息。處理器16然后繼續(xù)進行接收消息MRT的階段250。在階段250開始時,在步驟251,處理器16接收單元14發(fā)送的消 息MRT。然后,在步驟252中,處理器16比較計數(shù)器56的當(dāng)前值與閾值S2。如果計數(shù)器56的值已經(jīng)達到或者超出閾值S2,則處理器16在步驟 254停止。否則,在步驟256中,計數(shù)器56被遞增一個增量。單元14的計數(shù)器30和處理器16的計數(shù)器56的增量可以是任何增 量,例如l,但是它們必須相同以便計數(shù)器30和56同步,即使得它們的 值在驗證冗余代碼的步驟之前是相同的。還應(yīng)當(dāng)注意同步計數(shù)器30和56 不要求在單元14與處理器16之間顯式交換計數(shù)器值。然后,在步驟258中,從接收的消息MRT中提取密碼M/,然后由17模塊52使用當(dāng)前^"密鑰對該密碼M/進行解密以獲得消息MT。在步驟260中,計算器54驗證在所接收的消息MRT中包含的冗余 代碼RT。為此,該計算器54以與單元14在步驟244中相同的方式使用 當(dāng)前會話密鑰和計數(shù)器56的當(dāng)前值來計算消息MT的冗余代碼RT,。如果重構(gòu)的冗余代碼RT,與所接收的消息中包含的代碼RT不匹配, 則處理器16在步驟262中被停止。否則,處理器16在步驟263中處理所接收的消息MT。處理器16可以同樣繼續(xù)進行向單元14發(fā)送消息Mc的階段264。 在階段264開始時,在步驟2651中,處理器16測試計數(shù)器56是否已經(jīng) 達到或者超出閣值S2。如果是,則該處理器在步驟2652被停止。否則,在步驟266,計數(shù)器56被遞增一個增量。然后,在步驟268 中,計算器54計算消息Mc的冗余代碼Rc。與在步驟244中一樣,該冗 余代碼的^^lt根據(jù)當(dāng)前^^密鑰和消息計數(shù)器56的當(dāng)前值來設(shè)置。在隨后的步驟270中,4吏用會活密鑰Ks來加密消息Mc以獲得密碼Mc*。在步驟271中,構(gòu)建包含密碼Mj和冗余代碼Rc的消息MRC。消 息MRC然后在步驟272中被發(fā)送到單元14。單元14然后繼續(xù)進行接收由處理器16發(fā)送的消息的階段276。在階段276開始時,在步驟278中,單元14接收由處理器16發(fā)送 的消息。在步驟284中,計數(shù)器30被遞增一個增量。與在步驟242、 256和 266中一樣,計數(shù)器30和56的增量可以^1任意增量,但是它們必須是相 同的以保證這兩個計數(shù)器的同步。然后,在步驟286中,模塊28從接收的消息中提取密碼Mj并且 使用當(dāng)前M密鑰Ks來對該密碼Mj進行解密。然后,在步驟288中,計算器34驗證所接收的消息中包含的冗余 代碼Rc。為此,它以與處理器16在步驟268中相同的方式使用當(dāng)前M 密鑰和計數(shù)器30的當(dāng)前值來計算消息Mc的冗余代碼Rc,。如果重構(gòu)的冗余代碼Rc,不同于所接收的冗余代碼Rc,則單元14 在步驟290中被停止。否則,單元14在步驟292中處理所解密的消息Mc。在步驟294中,假設(shè)沒有會話密鑰改變過程在進行中,單元14比 較消息計數(shù)器30的值與閾值&。如果已經(jīng)達到或者超出該閾值,則單元 14在步驟296中存儲用以激活要由單元14自動發(fā)起的會話密鑰改變過程 所需的內(nèi)容。使用根據(jù)圖4的方法處理的消息按照圖3A和3B的方法完 成會活密鑰改變過程。應(yīng)當(dāng)注意,緊接在處理器16被第一次插入到單元14中之后,用來 加密所交換的消息的會活密鑰是預(yù)先存儲的密鑰Ksp。該密鑰用來根據(jù)圖 3A和3B的方法屏蔽在該密鑰的第一次使用過程中交換的消息。圖2、圖3A、圖3B和圖4的系統(tǒng)2和方法的許多其它實施例是可 能的。例如,步驟162可以由簽署步驟取代,在該簽署步驟中使用私有密 鑰Kopr僅對X項或者M隨機數(shù)A簽署。類似地,步驟182可以由如下步驟取代,即使用密鑰KT3pr僅對Y項或者M隨機數(shù)B簽署的步驟。然后,相應(yīng)地使圖3A和3B的方法的后續(xù)步^目適應(yīng)。證書Cn和dc可以分別被密鑰Knpu和Kclpu的值所取代,無需針 對這些^L使用的公共密鑰的任何證書。如果對于接收的每一個消息均系統(tǒng)地發(fā)送響應(yīng),則可以僅在接收消 息時或者僅在發(fā)送消息時遞增計數(shù)器30和56。在處理器16與單元14之間交換的證書可以包含補充信息,所述補 充信息使得這些單元中的每個單元能夠根據(jù)多種不同的標(biāo)準(zhǔn)識別另 一單 元。在分析此補充信息之后,所述單元中的一個可以采用適應(yīng)于另一單元 的特定行為,例如在法國專利申請FR2 841 714中描述的那樣。在交換的消息中發(fā)送的冗余代碼同樣可以與會話密鑰Ks結(jié)合地用 來初始化在步驟246和270中對消息的加密以及在步驟258和286中對消 息的解密。加密可以適用于消息Mi (相應(yīng)地,Mc)及其冗余代碼的組合。在 這些情形中,步驟246和247 (相應(yīng)地,270和271)被置換。先在步驟 247 (相應(yīng)地,271)中組合消息Mt (相應(yīng)地,Mc)及其冗余代碼,此后 在步驟246 (相應(yīng)地,270)對該組合進行加密以獲得要發(fā)送的消息。類 似地,在步驟258 (對應(yīng)于286)中,對接收的消息進行解密并且提供消 息MT(相應(yīng)地,Mc)及其冗余代碼。在這些情形中,由冗余代碼對加密 的初始4t不適用。如果在檢測到攻擊企圖之后所述單元中的一個被停止,則無需該單 元在其自身被停止之前請求停止另一個單元。例如,停止該單元反映在不 存在對消息的響應(yīng),而該響應(yīng)的不存在可能被另一單元解釋為停止命令。 為此,所述單元通常4吏用定時器,如果所討論的單元在定時器倒計時的時 間內(nèi)沒有收到對消息的響應(yīng),則該定時器自動觸發(fā)停止該單元。對圖2的方法的描述考慮了具有證書Cn和C2c的^是制造商的 特定情況,這使得能夠?qū)Σ煌圃焐趟圃斓慕K端或者處理器的相互作用進行控制??蛇x的,不同的證書Crr和C2c分配給不同的多媒體操作者。在這些情形中,證書C2T和C2C被用來控制不同操作者的終端和處理的相互作用。在另 一實施例中,單元14被集成到解碼器10中。 在又一實施例中,存儲器26或者60中包含的數(shù)據(jù)可以通過特定的 消息被修改,并且特別地可以才艮據(jù)證書的有效期來為證書展期。
權(quán)利要求
1.一種建立對稱的會話密鑰Ks的方法,所述會話密鑰Ks為用于解擾被使用控制字加擾的多媒體信號的單元和適于解密解擾所需的控制字的可移除的密碼單元所共用,其中a)所述單元中的一個,即第一單元抽取(步驟152、164)隨機數(shù)(A或者B)并將該隨機數(shù)發(fā)送到另一單元;b)所述另一單元,或者說第二單元,構(gòu)建(步驟160、180)α(X或者Y)項,所述第一單元可以根據(jù)該α項基于下式建立所述會話密鑰KsKs=αβmodn其中β是所述第一單元抽取的隨機數(shù),n是質(zhì)數(shù),所述方法的特征在于c)所述第二單元向所述第一單元發(fā)送消息,所述消息包含接收的隨機數(shù)、所述α項以及使用私有密鑰K3pr產(chǎn)生的對所述隨機數(shù)和/或者所述α項的簽署(步驟166、184);然后d)所述第一單元使用與所述私有密鑰K3pr對應(yīng)的公共密鑰K3pu驗證所述簽署(步驟168、192)并比較接收的隨機數(shù)與所發(fā)送的隨機數(shù)(步驟174、198);以及e)如果所述簽署不正確或者如果該接收的隨機數(shù)與發(fā)送的隨機數(shù)不匹配,則所述第一單元不繼續(xù)進行建立所述會話密鑰的后續(xù)步驟。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于在所述第一單元和第二單 元的角色互換的情況下再次重復(fù)所述步驟a)至e)。
3. 根據(jù)前述任一權(quán)利要求所述的方法,其特征在于在所述步驟a)至 e)之前,該解擾器單元和可移除的密碼單元彼此交換(步驟112、 120、 128、 130 ):'第一公共密鑰Klpu;'第一證書(C2T和C2C),至少包含第二公共密鑰K2pu并且被使用與所述第一^S共密鑰K4pu對應(yīng)的第一私有密鑰K—簽署;以及'第二證書(C3T和C3C),至少包含第三公共密鑰K3pu并且被使用與所 述第二公共密鑰K2pu對應(yīng)的第二私有密鑰K2pr簽署,所述第三公共密鑰K3pu對應(yīng)于用來在步驟c)中實現(xiàn)簽署的私有密鑰K3pr;以及該解擾器單元和可移除的密碼單元各自發(fā)汪所接收的第 一和第二證書(步驟128、 130),且僅在該解擾器單元和可移除的密碼單元成功地!HiE 了它們每一個已接收的第一和第二證書的真實性時,繼續(xù)進行所述步驟 a)至e)。
4. 根據(jù)前述任一權(quán)利要求所述的方法,其特征在于所述單元中的至少 一個根據(jù)向所述另 一單元發(fā)送和/或從所述另 一單元接收的消息個數(shù)使第 一內(nèi)部計數(shù)器遞增(步驟242、 284),且在該第一計數(shù)器超出預(yù)定的第一 閾值時自動觸發(fā)對新的會話密鑰的建立(步驟2492、 296)。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于所述另一單元根據(jù)該同一 消息個數(shù)使第二內(nèi)部計數(shù)器遞增(步驟256、 266),且在該第二計數(shù)器超 出高于所述第一閾值的預(yù)定的第二閾值時,自動地使對所述多^體信號的 解擾停止(步驟254、 2652)。
6. 根據(jù)前述任一權(quán)利要求的方法,其特征在于.所述單元中的每一個根據(jù)發(fā)送和/或接收的消息的個數(shù)使內(nèi)部計數(shù)器 遞增(步驟242、 256、 266、 284);-所述單元中的至少一個在向另一單元發(fā)送的每個消息上添加冗余代 碼(步驟247、 271),所述冗余代碼是根據(jù)其內(nèi)部計數(shù)器的當(dāng)前值和要發(fā) 送的消息的內(nèi)容計算的;以及'所述另 一單元通過比較所添加的冗余代碼與根據(jù)接收的消息的內(nèi)容 以及該另一單元自己的內(nèi)部計數(shù)器的當(dāng)前值計算的冗余代碼來^所接 收的消息的準(zhǔn)確性(步驟260、 288)。
7. —種適于在根據(jù)前述任一權(quán)利要求所述的建立公共會話密鑰的方法 中使用的單元(14, 16),其特征在于所述單元適于執(zhí)行根據(jù)上述權(quán)利要 求的建立會話密鑰的方法的所述步驟a)、 d)和e)或者所述步驟b)和c)。
8. 根據(jù)權(quán)利要求7所述的單元(14, 16),其特征在于所述單元適于 與所述另一單元交換所述第一爿^共密鑰以及所述第一和第二證書,并且適 于mt接收的第一和第二證書,以便僅在成功地驗汪了所述第一和第二證 書的真實性時才繼續(xù)進行所述步驟a)、 d)和e)或者所述步驟b)和c)。
9. 根據(jù)權(quán)利要求7或8所述的單元(14, 16),其特征在于所述單元 適于根據(jù)向所述另 一單元發(fā)送和/或從所述另 一單元接收的消息的個數(shù)來 使第一內(nèi)部計數(shù)器(30 )遞增,以及在該計數(shù)器超出預(yù)定的第一閾值(、) 時觸發(fā)對新的會話密鑰的建立,或者適于根據(jù)該同一消息個數(shù)來使第二內(nèi)部計數(shù)器(56)遞增,以及在該第二計數(shù)器超出高于所述第一閾值的預(yù)定 的第二閾值(S2)時,使對所述多媒體信號的解擾停止。
10. 根據(jù)權(quán)利要求7至9中任一權(quán)利要求所述的單元,其特征在于所 述單元適于'根據(jù)向所述另 一單元發(fā)送和/或從所述另 一單元接收的消息的個數(shù)使 內(nèi)部計數(shù)器(30, 56)遞增;以及'或者在向所述另 一單元發(fā)送的每個消息上添加根據(jù)要發(fā)送的該消息 的內(nèi)容以及所述單元的內(nèi)部計數(shù)器的實際值來計算的冗余代碼;.或者通過比較添加的冗余代碼與根據(jù)接收的消息的內(nèi)容以及所述單 元自己的內(nèi)部計數(shù)器的當(dāng)前值計算的冗余代碼來IHE所接收的消息的準(zhǔn) 確性。
11. 根據(jù)權(quán)利要求7至10中任一權(quán)利要求所述的單元,其特征在于所 述單元是用于解擾被使用控制字加擾的多媒體信號的單元(14)或者用于 解密解擾所需的控制字的可移除的密碼單元(16)。
全文摘要
本發(fā)明涉及在用于解擾經(jīng)加擾的多媒體信號的單元與可移除的密碼單元之間的會話建立會話密鑰K<sub>s</sub>的方法。根據(jù)本發(fā)明,一個單元向另一單元發(fā)送(步驟166,184)消息,該消息包含接收的隨機數(shù)、α項以及使用私有密鑰K<sub>3pr</sub>產(chǎn)生的隨機數(shù)和/或α項的簽署,然后該另一單元使用與私有密鑰(K<sub>3pr</sub>)對應(yīng)的公共密鑰K<sub>3pu</sub>來驗證(步驟168、192)該簽署并且比較(步驟174、198)所接收的隨機數(shù)與所發(fā)送的隨機數(shù)。如果簽署不正確或者如果所接收的隨機數(shù)與所發(fā)送的隨機數(shù)不匹配,則不執(zhí)行建立會話密鑰的后續(xù)步驟。
文檔編號H04N5/00GK101248614SQ200680031000
公開日2008年8月20日 申請日期2006年8月25日 優(yōu)先權(quán)日2005年8月26日
發(fā)明者弗蘭克·博多, 皮埃爾·費夫里耶, 讓-皮埃爾·維加里耶 申請人:維亞賽斯公司