專利名稱:安全認(rèn)證信道的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及安全認(rèn)證信道,具體涉及用于建立這種信道的 會話密鑰的計算,所述信道用于保護(hù)數(shù)字內(nèi)容,例如數(shù)字電視系統(tǒng)中 的內(nèi)容。
背景技術(shù):
密碼技術(shù)領(lǐng)域中公知的安全認(rèn)證信道被建立用于允許兩個相互 認(rèn)證的設(shè)備(通常稱作對等體)秘密地交換信息。優(yōu)選地,安全認(rèn)證信道應(yīng)當(dāng)具有如下性質(zhì) -對等體的相互認(rèn)證;-密鑰確認(rèn),即建立了公共秘密且至少一個對等體能夠檢驗該秘密確實是公共的;-轉(zhuǎn)發(fā)保密,即,即使在長期密鑰(例如證書密鑰)已被獲知的 情況下也不能計算舊的會話密鑰。這些性質(zhì)可以在數(shù)學(xué)上正式地得以證明,而且已經(jīng)證明的是如 果存在這樣一種方法,即能夠避開上述針對給定加密協(xié)議的性質(zhì)之一, 那么可以相對簡單地破壞整個協(xié)議。多年來,研究加密的團(tuán)體已經(jīng)提出了多種針對安全認(rèn)證信道的協(xié) 議。這些信道中僅有少數(shù)被證明能夠滿足上述性質(zhì)。那些為信道提供所需性質(zhì)的協(xié)議都使用了大量不同的原語至少 一個非對稱原語(例如非對稱加密或數(shù)字簽名)、哈希函數(shù)、消息認(rèn)證 碼(MAC)以及例如對稱加密的其它原語。這些協(xié)議的一個問題是它 們消耗了大量資源且難以在具有有限計算能力的設(shè)備中實現(xiàn),例如像智能卡那樣的便攜式安全模塊。另一個問題是多個加密原語的使用 使得難以證明協(xié)議是安全的。本發(fā)明提供了一種安全訪問信道協(xié)議,它具有所需的性質(zhì)并且尤 其適于在具有有限計算能力的設(shè)備中實現(xiàn)。在描述中,由于加密是一種成熟的技術(shù),假定基本概念是公知的。 為了清楚和簡明的原因,將不會對這些概念做出超過理解本發(fā)明所需 的描述。發(fā)明內(nèi)容在第一方面中,本發(fā)明涉及一種用于計算由第一和第二設(shè)備(ll, 21)共用的會話密鑰的方法。第一設(shè)備具有證書(Ca),包括公共密 鑰(ga)和與第一設(shè)備自身相對應(yīng)的身份(IDa);以及和與第一設(shè)備自身相對應(yīng)的身份(IDa)、私有密鑰(a)及公共密鑰(ga)有關(guān)的知識。第二設(shè)備具有相應(yīng)的證書和知識。第一設(shè)備選擇第一暫時私有密鑰(x),計算第一暫時公共密鑰(g'),并且把第一設(shè)備的證書(Ca) 和第一暫時公共密鑰(g')發(fā)送到第二設(shè)備。在接收到第一設(shè)備的證 書(Ca)以及第一暫時公共密鑰(gx)時,第二設(shè)備檢驗第一設(shè)備的 證書(Ca),選擇第二暫時私有密鑰(y),計算第二暫時公共密鑰(gy), 根據(jù)第一暫時公共密鑰(g"和第二暫時私有密鑰(y)計算暫時共享 密鑰(Kw),根據(jù)第一設(shè)備的公共密鑰(ga)和第二設(shè)備自有的私有 密鑰(b)計算永久密鑰(Kp自),根據(jù)第二暫時公共密鑰(gy)、暫時 共享密鑰(K—)、永久密鑰(KpJ和與第二設(shè)備自身相對應(yīng)的身份(IDb) 計算第一值(H (gy, K印h, K— IDb)),并且把第二設(shè)備的證書(Cb)、 第二暫時公共密鑰(g"和第一值(H (gy, Keph, K,, IDb))發(fā)送到 第一設(shè)備。在從第二設(shè)備接收到第二設(shè)備的證書(Cb)、第二暫時公共 密鑰(g"和第一值(H (gy, Keph, K, IDb))時,第一設(shè)備檢驗第 二設(shè)備的證書(Cb),根據(jù)第二暫時公共密鑰(gy)和第一暫時私有密 鑰(x)計算暫時共享密鑰(K一),根據(jù)第一設(shè)備的公共密鑰(gb)和 第一設(shè)備自有的私有密鑰(a)計算永久密鑰(KP ),檢驗第一值(H (gy, Keph, KP m, IDb)),根據(jù)第一暫時公共密鑰(gx)、暫時共享密鑰(K8Ph)、永久密鑰(Kpe )和與第一設(shè)備自身相對應(yīng)的身份(IDa)計 算第二值H (gx, Keph, Kpe , IDa),并把第二值(H (gx, Keph, K— IDa)) 發(fā)送到第二設(shè)備。在接收到第二值(H (g', Keph, K一 IDa))時,第 二設(shè)備檢驗第二值(H(gX, Ksph, K IDa)),并作為暫時共享密鑰(K一) 的函數(shù)來計算會話密鑰(KS6SS)。第一設(shè)備也作為暫時共享密鑰(LPh) 的函數(shù)來計算會話密鑰(K_)。在第二方面中,本發(fā)明涉及一種和第二設(shè)備(21) —同參與會話 密鑰計算的第一設(shè)備Ul)。第一設(shè)備具有證書(Ca),包括公共密 鑰(ga)和與第一設(shè)備自身相對應(yīng)的身份(IDa);以及和與第一設(shè)備 自身相對應(yīng)的身份(IDa)、私有密鑰(a)及公共密鑰(ga)有關(guān)的知識。第一設(shè)備包括處理器(12),用于選擇第一暫時私有密鑰(X);計算第一暫時公共密鑰(gx);把第一設(shè)備的證書(Ca)和第一暫時公 共密鑰(gx)發(fā)送到第二設(shè)備;從第二設(shè)備接收第二設(shè)備的證書(Cb)、 第二暫時公共密鑰(g')和第一值(H (gy, Keph, Kpe , IDb)),所述證 書(Ch)包括公共密鑰(gb)和第二設(shè)備的身份(IDb),而第一值(H(gy, IUh, KP m, IDb))是根據(jù)第二暫時公共密鑰(gy)、暫時共享密 鑰(Keph)、永久密鑰(Kp^)和與第二設(shè)備自身相對應(yīng)的身份(IDb) 計算得到的;檢驗第二設(shè)備的證書(Cb);根據(jù)第二暫時公共密鑰(gy) 和第一暫時私有密鑰(x)計算暫時共享密鑰(KBPh);根據(jù)第一設(shè)備的 公共密鑰(gb)和第一設(shè)備自有的私有密鑰(a)計算永久密鑰(KperB); 檢驗第一值(H (gy, K印h, K— IDb));根據(jù)第一暫時公共密鑰(gx)、 暫時共享密鑰(K6ph)、永久密鑰(Kp自)和與第一設(shè)備自身相對應(yīng)的身 份(IDa)計算第二值(H (g', Keph, K,, IDJ);把第二值(H (gx, Keph, KP^, IDJ)發(fā)送到第二設(shè)備;以及作為暫時共享密鑰(Keph)的 函數(shù)來計算會話密鑰(Ksess)。在第三方面中,本發(fā)明涉及一種和第一設(shè)備(11) 一同參與會話 密鑰計算的第二設(shè)備(21)。第一設(shè)備具有證書(Cb),包括公共密 鑰(gb)和與第二設(shè)備自身相對應(yīng)的身份(IDb);以及和與第二設(shè)備自身相對應(yīng)的身份(IDb)、私有密鑰(b)及公共密鑰(gb)有關(guān)的知 識。第二設(shè)備包括處理器(22),用于接收第一設(shè)備的證書(Ca)以及第一暫時公共密鑰(gx);所述證書包括公共密鑰(ga)和第一設(shè)備 的身份(KO;檢驗第一設(shè)備的證書(Ca);選擇第二暫時私有密鑰(y);計算第二暫時公共密鑰(g";根據(jù)第一暫時公共密鑰(g')和暫時私有密鑰(y)計算暫時共享密鑰(KBPh);根據(jù)第一設(shè)備的公共密鑰(ga)和第二設(shè)備自有的私有密鑰(b)計算永久密鑰(KP6 );根據(jù)第二暫時公共密鑰(gy)、暫時共享密鑰(K6Ph)、永久密鑰(KP6 )和與第二 設(shè)備自身相對應(yīng)的身份(IDb)計算第一值(H (gy, K印h, K— IDb)); 把第二設(shè)備的證書(Cb)、第二暫時公共密鑰(gy)和第一值(H (gy, , Kpe , IDJ)發(fā)送到第一設(shè)備;從第一設(shè)備接收第二值(H (gx, KP^, IDa)),根據(jù)第一暫時公共密鑰(gx)、暫時共享密鑰(K印h)、 永久密鑰(KP6 )和與第一設(shè)備自身相對應(yīng)的身份(IDa)計算第二值 (H (gx, Keph, K, IDa));檢驗第二值(H (gx, Keph, K,, IDa)); 以及作為暫時共享密鑰(K6ph)的函數(shù)來計算會話密鑰(Kmss)。
圖l示出了根據(jù)本發(fā)明實施例的會話密鑰交換。
具體實施方式
圖1示出了根據(jù)本發(fā)明實施例的會話密鑰交換。在方法開始之前,第一設(shè)備ll知曉其身份IDa、其自有的私有密鑰a和公共密鑰ga。 ga是gamod p的簡記,其中a是第一設(shè)備的私有密鑰, g是己知的生成數(shù)(generator)且p是已知的素數(shù),這些是本領(lǐng)域中公 知的。第二設(shè)備21具有相應(yīng)的知識IDb、 b、 gb。設(shè)備的證書包括公 共密鑰和身份,分別為"(ga, IDa)和"(gb, IDb)。設(shè)備ll、 12還具 有適于實現(xiàn)所述方法的步驟的處理器(CPU) 12、 22。在步驟252處,第一設(shè)備ll優(yōu)選地以隨機(jī)方式選擇第一暫時 (印hemeral)私有密鑰x并計算暫時公共密鑰g、然后把公共密鑰gX與第一設(shè)備ll的證書Ca(ga, IDa)在消息254中一同發(fā)送到第二設(shè)備21。在接收到消息254時,第二設(shè)備21對第一設(shè)備ll的證書"(ga, IDa) 進(jìn)行檢驗(步驟256)。如果檢驗沒有成功,那么第二設(shè)備21放棄所述方法。然而,如果檢驗成功,那么在步驟258處,第二設(shè)備21優(yōu)選地以 隨機(jī)方式選擇第二暫時私有密鑰y并計算第二暫時公共密鑰g'、暫時共 享密鑰Keph = g"以及Diffie-Hellman永久密鑰K嶺二 gab。在步驟260處,第二設(shè)備21使用第二暫時公共密鑰g^暫時共享密 鑰K印h 、 Diffie-Hellman永久密鑰K嶺、第二設(shè)備21的身份IDb以及適 合的哈希函數(shù),例如本技術(shù)領(lǐng)域中已知的多個函數(shù)中的一個函數(shù),來 計算第一哈希值H (gy, Keph, KP ffl, IDJ。應(yīng)當(dāng)知道的是,可以使用其 它適合的函數(shù)而不是哈希函數(shù)來計算這個哈希值以及實施例中隨后的 哈希值。然后,第二設(shè)備21把第二暫時公共密鑰g'、第二設(shè)備21的證 書"(gb, IDb)以及第一哈希值H (gy, Keph, Kper , IDb)在消息262中 發(fā)送到第一設(shè)備ll。在接收到消息262時,第一設(shè)備ll檢驗第二設(shè)備21的證書Cb (gb, IDb)(步驟264)。如果檢驗沒有成功,那么第一設(shè)備ll放棄所述方法。 然而,如果檢驗成功,那么在步驟266處,第一設(shè)備ll計算暫時共享密 鑰Keph和Diffie-Hellman永久密鑰K,。在步驟268處,第一設(shè)備ll使用 與第二設(shè)備21在步驟260處所使用的相同的哈希函數(shù)而檢驗第一哈希 值。如果第一哈希值沒有得到檢驗,那么第一設(shè)備ll中止所述方法, 但如果第一哈希值得到檢驗,那么在步驟270處,第一設(shè)備ll使用第一 暫時公共密鑰g'、暫時共享密鑰Keph、 Diffie-Hellman永久密鑰Kp^以及第一設(shè)備11的身份KUM計算第二哈希值H (g', Keph, Kper , IDa)。第一設(shè)備11把第二哈希值H (gx, K6ph, KP , IDa)在消息272中發(fā)送到第 二設(shè)備21。在接收到消息272時,在步驟274處,第二設(shè)備21使用與第一設(shè)備 10在步驟270處所使用的相同的哈希函數(shù)而檢驗第二哈希值H(gX, Ksph, KPErm, IDa)。如果第二哈希值沒有得到檢驗,那么第二設(shè)備21中止所述 協(xié)議,但如果第二哈希值得以檢驗,那么在步驟276處,第二設(shè)備21 通過計算暫時共享密鑰K—而計算會話密鑰Ks^。然后,第二設(shè)備21把 "就緒"消息278發(fā)送到第一設(shè)備11,以指示已經(jīng)成功地檢驗了第二哈 希值H (gx, Keph, K,, IDa)并計算出會話密鑰Ksess。在從第二設(shè)備21接收到"就緒"消息278時,在步驟280處,第一設(shè)備11通過使用與第二設(shè)備21在步驟276處所使用的相同的哈希函數(shù) 來計算暫時共享密鑰K一的哈希值,從而計算相同的會話密鑰K^。然 后,第一設(shè)備11把"就緒"消息282發(fā)送到第二設(shè)備21,以指示第一設(shè) 備ll也己經(jīng)計算出會話密鑰Ksess。這時,第一設(shè)備11和第二設(shè)備21都具有能夠用于對在它們之間發(fā) 送的信息進(jìn)行保護(hù)的會話密鑰Ks^。使用根據(jù)本發(fā)明的協(xié)議,確保了 私有密鑰的秘密性,所述認(rèn)證和密鑰確認(rèn)是相互的。此外,還確保了 轉(zhuǎn)發(fā)保密以及對于先前會話密鑰泄露的魯棒性。本領(lǐng)域的技術(shù)人員可 以理解,結(jié)合步驟212、 220和226所描述的三個哈希函數(shù)可以不同、可以相同或兩個相同而另一個不同。應(yīng)當(dāng)注意的是,這個描述提到了隨機(jī)數(shù),而這些數(shù)字在實際中通 常是偽隨機(jī)數(shù)。表述"安全模塊"包括任意類型的安全模塊(便攜或固定的),所 述安全模塊包括處理器并能夠用于建立根據(jù)本發(fā)明的安全認(rèn)證信道, 例如所述安全模塊為智能卡、PC卡(先前被稱作PCMCIA卡)以及集成 電路,其中該集成電路被焊接到例如電視機(jī)的裝置中的印刷電路。上文所描述的實施例尤其適于在數(shù)字電視機(jī)和安全模塊中實現(xiàn)。 然而,本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明可以通過具有所需資源的 任意種類的設(shè)備一即處理器且優(yōu)選地為存儲有所需信息的存儲器一而 實現(xiàn)和使用。其它設(shè)備的非限制性示例有DVD播放器、與外設(shè)進(jìn)行交 互的計算機(jī)、自動取款機(jī)(ATM)和銀行卡。
權(quán)利要求
1.一種適用于檢驗哈希值的第一設(shè)備(11),所述第一設(shè)備具有證書(Ca),包括公共密鑰(ga)和與第一設(shè)備自身相對應(yīng)的身份(IDa);以及和與第一設(shè)備自身相對應(yīng)的身份(IDa)、私有密鑰(a)及公共密鑰(ga)有關(guān)的知識,第一設(shè)備包括處理器(12),用于-選擇暫時私有密鑰(x);-計算第一暫時公共密鑰(gx);-把第一設(shè)備的證書(Ca)和第一暫時公共密鑰(gx)發(fā)送到第二設(shè)備;-從第二設(shè)備接收第二設(shè)備的證書(Cb)、第二暫時公共密鑰(gy)和第一哈希值(H(gy,Keph,Kperm,IDb)),所述證書(Cb)包括公共密鑰(gb)和第二設(shè)備的身份(IDb),而第一哈希值(H(gy,Keph,Kperm,IDb))是根據(jù)第二暫時公共密鑰(gy)、暫時共享密鑰(Keph)、永久密鑰(Kperm)和與第二設(shè)備自身相對應(yīng)的身份(IDb)計算得到的;-檢驗第二設(shè)備的證書(Cb);-根據(jù)第二暫時公共密鑰(gy)和第一暫時私有密鑰(x)計算暫時共享密鑰(Keph);-根據(jù)第二設(shè)備的公共密鑰(gb)和第二設(shè)備自身的私有密鑰(a)計算永久密鑰(Kperm);-檢驗第一哈希值(H(gy,Keph,Kperm,IDb))。
2. 根據(jù)權(quán)利要求l所述的第一設(shè)備,其中所述處理器還用于-根據(jù)第一暫時公共密鑰(gx)、暫時共享密鑰(K6Ph)、永久密鑰 (KP6 )和與第一設(shè)備自身相對應(yīng)的身份(IDa)計算第二哈希值(H(gX,Keph,Kperm, IDa));-把第二哈希值(H (gx, Keph, KP , IDa))發(fā)送到第二設(shè)備。
3. —種適用于檢驗哈希值的第二設(shè)備(21),第二設(shè)備具有證 書(Cb),包括公共密鑰(gb)和與第二設(shè)備自身相對應(yīng)的身份(IDb); 以及和與第二設(shè)備自身相對應(yīng)的身份(IDb)、私有密鑰(b)及公共密鑰(gb)有關(guān)的知識,第二設(shè)備包括處理器(22),用于-接收第一設(shè)備的證書(Ca)以及第一暫時公共密鑰(gx),所述 證書包括公共密鑰(g"和第一設(shè)備的身份(IDa); -檢驗第一設(shè)備的證書(Ca); -選擇暫時私有密鑰(y); -計算第二暫時公共密鑰(gy);-根據(jù)第一暫時公共密鑰(gx)和暫時私有密鑰(y)計算暫時共享密鑰(Keph);-根據(jù)第一設(shè)備的公共密鑰(ga)和第二設(shè)備自有的私有密鑰(b)計算永久密鑰(KP6 );-根據(jù)第二暫時公共密鑰(gy)、暫時共享密鑰(K6Ph)、永久密鑰 (KP6 )和與第二設(shè)備自身相對應(yīng)的身份(IDb)計算第一哈希值(H (gy, Keph, KPer , IDb));-把第二設(shè)備的證書(Cb)、第二暫時公共密鑰(gy)和第一哈希 值(H (gy, K—, K,, IDb))發(fā)送到第一設(shè)備;一從第一設(shè)備接收第二哈希值(H (gx, Keph, K— IDa)),而第二 值(H (gx, Ksph, KPS , IDa))是根據(jù)第一暫時公共密鑰(gx)、暫時共 享密鑰(K6ph)、永久密鑰(KP6rB)和與第一設(shè)備自身相對應(yīng)的身份(IDa) 計算得到的;以及-檢驗第二哈希值(H (gx, Keph, K— IDJ)。
4. 一種適用于檢驗哈希值的方法,由第一設(shè)備執(zhí)行所述方法, 所述第一設(shè)備具有證書(Ca),包括公共密鑰(ga)和與第一設(shè)備自身相對應(yīng)的身份(IDa);以及和與第一設(shè)備自身相對應(yīng)的身份GDa)、私有密鑰(a)及公共密鑰(ga)有關(guān)的知識, 所述方法包括步驟-選擇暫時私有密鑰(X);-計算第一暫時公共密鑰(gx);-把第一設(shè)備的證書(Ca)和第一暫時公共密鑰(gx)發(fā)送到第二-從第二設(shè)備接收第二設(shè)備的證書(Cb)、第二暫時公共密鑰(gy) 和第一哈希值(H (gy, K一, K— IDb)),所述證書(Cb)包括公共密 鑰(gb)和第二設(shè)備的身份(IDb),而第一哈希值(H (gy, KsPh, KPS , IDb))是根據(jù)第二暫時公共密鑰(gy)、暫時共享密鑰(Ksph)、永久密 鑰(KP )和與第二設(shè)備自身相對應(yīng)的身份(IDb)計算得到的;-檢驗第二設(shè)備的證書(Cb);-根據(jù)第二暫時公共密鑰(gy)和第一暫時私有密鑰(x)計算暫時共享密鑰(Ksph);-根據(jù)第二設(shè)備的公共密鑰(gb)和第二設(shè)備自身的私有密鑰(a)計算永久密鑰(Kper );-檢驗第一哈希值(H (gy, Keph, K— IDb))。
5. —種適用于檢驗哈希值的方法,由第二設(shè)備執(zhí)行所述方法,所述第二設(shè)備具有證書(Cb),包括公共密鑰(gb)和與第二設(shè)備自 身相對應(yīng)的身份(IDb);以及和與第二設(shè)備自身相對應(yīng)的身份(IDb)、私有密鑰(b)及公共密鑰(gb)有關(guān)的知識,所述方法包括步驟-接收第一設(shè)備的證書(a)以及第一暫時公共密鑰(gx),所述證書包括公共密鑰(ga)和第一設(shè)備的身份(IDa); -檢驗第一設(shè)備的證書(Ca);-選擇暫時私有密鑰(y);-計算第二暫時公共密鑰(gy);-根據(jù)第一暫時公共密鑰(gx)和暫時私有密鑰(y)計算暫時共享密鑰(K6ph);-根據(jù)第一設(shè)備的公共密鑰(ga)和第二設(shè)備自有的私有密鑰(b)計算永久密鑰(KP );-根據(jù)第二暫時公共密鑰(gy)、暫時共享密鑰(K一)、永久密鑰 (KP )和與第二設(shè)備自身相對應(yīng)的身份(IDb)計算第一哈希值(H(gy,Keph,Kperm, IDb));-把第二設(shè)備的證書(Cb)、第二暫時公共密鑰(gy)和第一哈希 值(H (gy, Keph, KP6r , IDb))發(fā)送到第一設(shè)備;一從第一設(shè)備接收第二哈希值(H (g',Keph,K—IDa)),而第二值(H (gx, Keph, Kper , IDJ)是根據(jù)第一暫時公共密鑰(gx)、暫時共享密鑰(K印h)、永久密鑰(U和與第一設(shè)備自身相對應(yīng)的身份(IDa)計算得到的;以及-檢驗第二哈希值(H (gx, K印h, KP_, IDa))。
全文摘要
一種用于計算會話密鑰的協(xié)議(即方法)和相應(yīng)裝置。兩個對等體具有的知識包括公共Diffie-Hellman永久密鑰K<sub>perm</sub>以及另一個對等體的身份和公共密鑰。第一對等體選擇第一暫時私有密鑰x,計算被發(fā)送到第二對等體的第一相應(yīng)暫時公共密鑰g<sup>x</sup>。第二對等體以相同的方式計算第二暫時公共密鑰g<sup>y</sup>,計算暫時共享密鑰K<sub>eph</sub>,對g<sup>y</sup>、K<sub>eph</sub>、K<sub>perm</sub>和第二對等體的身份進(jìn)行哈希運(yùn)算,并且把g<sup>y</sup>和哈希運(yùn)算的結(jié)果發(fā)送到第一對等體。第一對等體計算K<sub>eph</sub>,對這個哈希運(yùn)算結(jié)果進(jìn)行檢驗,對g<sup>x</sup>、K<sub>eph</sub>、K<sub>perm</sub>和第一對等體的身份進(jìn)行哈希運(yùn)算,并發(fā)送到檢驗該哈希運(yùn)算結(jié)果的第二對等體。之后,兩個對等體通過對K<sub>eph</sub>進(jìn)行哈希運(yùn)算而獲得會話密鑰。然后,所述裝置可以使用會話密鑰來建立安全認(rèn)證信道(SAC)。
文檔編號H04L9/08GK101222323SQ20081000494
公開日2008年7月16日 申請日期2004年10月29日 優(yōu)先權(quán)日2004年10月29日
發(fā)明者托馬斯·西爾旺, 讓·皮埃爾·安德烈奧斯, 阿蘭·迪爾 申請人:湯姆森許可貿(mào)易公司