国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      電子設(shè)備接口間基于公鑰證書的認證密鑰協(xié)商和更新方法

      文檔序號:7627878閱讀:274來源:國知局
      專利名稱:電子設(shè)備接口間基于公鑰證書的認證密鑰協(xié)商和更新方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及保密或安全通信的密鑰交換方法,尤其涉及一種基于公鑰證書的認證密鑰協(xié)商方法和對認證密鑰的更新方法。
      背景技術(shù)
      影音娛樂內(nèi)容的數(shù)字化使得家庭用戶可以無失真地觀看、存儲和傳播數(shù)字內(nèi)容。拷貝的次數(shù)不影響數(shù)字內(nèi)容的質(zhì)量,互聯(lián)網(wǎng)技術(shù)和點對點技術(shù)又使得數(shù)字內(nèi)容的廣泛傳播成為可能。這種無失真拷貝特性和廣泛傳播的便利性對于數(shù)字影音娛樂內(nèi)容的版權(quán)所有者是一種威脅。
      為了保護版權(quán)所有者的利益,用于解碼、存儲、顯示數(shù)字影音內(nèi)容的消費電子設(shè)備應(yīng)該本身具有版權(quán)保護的功能,即能夠根據(jù)數(shù)字影音內(nèi)容的版權(quán)保護信息來執(zhí)行對應(yīng)的操作,即這些設(shè)備會有一個模塊專門處理版權(quán)保護信息,這個模塊根據(jù)版權(quán)保護信息來執(zhí)行操作,比如說版權(quán)信息顯示某個電影不能被拷貝,那么在設(shè)備接收到拷貝請求后,這個設(shè)備就會拒絕這個請求,這樣的設(shè)備統(tǒng)稱為合法設(shè)備。家庭用戶中的消費電子設(shè)備不一定都是合法設(shè)備,為了保證數(shù)字影音內(nèi)容只在合法設(shè)備間傳輸,需要在內(nèi)容傳輸之前通過認證密鑰協(xié)商協(xié)議對設(shè)備的合法性進行認證,生成共享密鑰。這樣,使得影音內(nèi)容在合法設(shè)備之間傳輸,從而得到保護。
      數(shù)字影音內(nèi)容在接口間傳輸時,很容易被非法設(shè)備截獲。如果截獲的數(shù)字影音內(nèi)容是可以被直接識別的,那么這些內(nèi)容同樣威脅到版權(quán)所有者的利益。為了防止這一點,通常使用加密技術(shù),在接口間傳輸加密后的數(shù)據(jù),這些數(shù)據(jù)即使在截獲以后,也很難識別出原來的影音內(nèi)容?,F(xiàn)代加密技術(shù)的安全性幾乎完全依賴于密鑰的安全,用于加密的密鑰通常由認證過程產(chǎn)生的認證密鑰獲得,而用于具體保護影音內(nèi)容的加密算法的安全性取決于這些算法的密鑰的安全性。
      合法設(shè)備之間的連接需要符合一定的接口規(guī)范。常見的接口有HDMI、DVI接口,IEEE1394接口,POD-Host接口等。其中HDMI和DVI是連接顯示終端和數(shù)字內(nèi)容源的接口技術(shù)。IEEE1394是一種高速的串行總線接口技術(shù),廣泛用于影音內(nèi)容傳輸。POD-Host接口是用于有線網(wǎng)絡(luò)的一種輔助接口,解碼后的有線網(wǎng)絡(luò)數(shù)字內(nèi)容通過該接口傳輸?shù)街鳈C設(shè)備中,主機設(shè)備包括機頂盒或數(shù)字電視等。
      針對上述三種接口,國外已經(jīng)相應(yīng)制定了HDCP(寬帶數(shù)字內(nèi)容保護),DTCP(數(shù)字傳輸內(nèi)容保護),PODCP(POD拷貝保護)規(guī)范或標準。HDCP用于保護HDMI和DVI接口傳輸?shù)臄?shù)字內(nèi)容。DTCP用于保護IEEE1394,USB等串行接口傳輸?shù)臄?shù)字內(nèi)容。PODCP用于保護POD接口的內(nèi)容傳輸。
      HDCP系統(tǒng)的認證和密鑰交換分為三個階段。第一個階段由源設(shè)備(內(nèi)容發(fā)送設(shè)備)通過檢驗?zāi)康脑O(shè)備(內(nèi)容接收設(shè)備)生成的共享秘密來認證目的設(shè)備。第二個階段用于源設(shè)備收集和檢查目的設(shè)備的拓撲信息。第三個階段用于鏈路狀態(tài)檢查和密鑰更新。該系統(tǒng)使用了一種簡單的基于身份的方法,被證實不安全。攻擊者只需要大約40臺裝有HDCP系統(tǒng)的設(shè)備,就可以得到一些系統(tǒng)參數(shù),進而在沒有授權(quán)的情況下可以任意制造非法設(shè)備。這些非法設(shè)備不能被合法設(shè)備檢驗出來。
      DTCP系統(tǒng)的認證和密鑰交換有兩個級別,完全認證和受限認證。受限認證是一種安全級別較低的認證方式,不允許用于“永遠不許拷貝”的數(shù)字內(nèi)容。在技術(shù)上,這種認證方式和HDCP系統(tǒng)類似,只是增加了一個可選的證書驗證過程,因而對HDCP系統(tǒng)的攻擊,對于DTCP系統(tǒng)同樣適用。只是因為DTCP系統(tǒng)安全參數(shù)的不同,攻擊所需要的設(shè)備數(shù)量不同。完全認證被認為是一種安全級別較高的認證方式,適用于各種數(shù)字內(nèi)容。在技術(shù)上,完全認證是基于公鑰證書基礎(chǔ)設(shè)施的一種認證方式,使用了簽名技術(shù)和Diffie-Hellman密鑰(DH密鑰)交換技術(shù)。DTCP白皮書中宣稱簽名技術(shù)和密鑰交換技術(shù)的結(jié)合可以抵抗“中間人攻擊”的威脅。然而我們分析表明,DTCP協(xié)議并不能完全抵抗“中間人攻擊”。典型的攻擊方法包括反射攻擊,Lowe攻擊,Wiener攻擊等。這些攻擊都可以使完全認證的認證性失效。Lowe攻擊可以導(dǎo)致發(fā)送者失配或者接收者失配。其中發(fā)送者失配是指接收設(shè)備認為數(shù)字內(nèi)容來自于設(shè)備A,而其實來自于設(shè)備B;接收者失配是指發(fā)送設(shè)備以為數(shù)字內(nèi)容發(fā)送給了設(shè)備A,而其實是給了設(shè)備B。接收者失配會威脅到系統(tǒng)的完整性,發(fā)送者失配則會威脅到DTCP在身份信息重要的一些領(lǐng)域的應(yīng)用。
      PODCP系統(tǒng)的認證和密鑰交換也是基于公鑰證書基礎(chǔ)設(shè)施,完成POD對主機的認證。其認證和密鑰交換主要由兩個部分組成,分別是重新認證和認證。重新認證是在POD和主機存儲有共享秘密的情況下,確認共享秘密的一致性。在技術(shù)上PODCP只是規(guī)定主機將共享秘密的一小部分作為認證密鑰發(fā)送給POD,POD確認該認證密鑰。這種方式顯然過于簡單,不能抵抗最簡單的重放攻擊,因而并沒有達到認證性。其安全性僅來自于非法設(shè)備通過認證后不能解密數(shù)字內(nèi)容。POD和主機的認證意在完成POD對主機的認證,并建立共享的秘密。其安全性來自于對證書和消息簽名的驗證。然而該認證協(xié)議的消息可以重放,這使得某臺合法主機臨時DH密鑰的泄漏會導(dǎo)致非法設(shè)備利用該泄漏的密鑰和該主機發(fā)送的簽名消息冒充該合法主機,接收數(shù)字影音內(nèi)容。另外,PODCP認證協(xié)議包括POD給主機的一些認證信息,這些信息無助于POD對主機的認證。
      由上述可知,現(xiàn)有技術(shù)中已公布的接口保護規(guī)范中的認證和認證密鑰協(xié)商協(xié)議并不完善,還存在著諸多問題。另外,當(dāng)一臺消費電子設(shè)備具有多個接口時,需要實現(xiàn)多個認證模塊,浪費系統(tǒng)資源。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種適用于電子設(shè)備接口間基于公鑰證書的認證密鑰協(xié)商和更新的方法。
      為實現(xiàn)上述目的,本發(fā)明提供一種用于電子設(shè)備接口間基于公鑰的認證密鑰協(xié)商和更新方法。即,參與認證密鑰協(xié)商的源設(shè)備和目的設(shè)備根據(jù)各自接口的配置信息,選擇單向認證方式或者雙向認證方式,通過使用Diffie-Hellman密鑰交換技術(shù)生成共享秘密;通過HMAC密鑰雜湊函數(shù)保證所生成的共享秘密的一致性和消息的完整性。
      所述的單向認證和雙向認證方式分別包括完全認證和重新認證,在完全認證的情況下,在源設(shè)備和目的設(shè)備不具有共享密鑰K_M的情況下,通過使用簽名技術(shù)來保證證書的發(fā)送者確實持有與證書中公鑰相對應(yīng)的私鑰,從而確定設(shè)備的合法性;在重新認證的情況下,通過使用持有共享密鑰這一事實來確認設(shè)備的合法性。
      所述雙向完全認證方式是在通信雙方的源設(shè)備和目的設(shè)備具有證書列表的情況下,確認被認證方確實具有其發(fā)送證書的私鑰,從而確定被認證方的身份;在確認身份的同時,通過交換隨機數(shù)生成一個通信雙方獨享的秘密值,并能確認該值的一致性和秘密性。
      在源設(shè)備和目的設(shè)備之間所采用雙向完全認證進行認證和密鑰協(xié)商時,該認證方式通過以下步驟在橢圓曲線(Fq,E,G,n)上實現(xiàn),其中Fq是特征為q的有限域,E是Fq上的橢圓曲線,G為E上的基點,n為G的階a)源設(shè)備計算隨機數(shù)1<x<n,計算標量乘xG,發(fā)送源設(shè)備證書列表和該標量乘Cert_Source_list‖xG;b)目的設(shè)備驗證源設(shè)備證書是否被吊銷,驗證源設(shè)備證書列表中證書各個域的內(nèi)容;計算隨機數(shù)1<y<n,計算標量乘yG,使用HMAC密鑰雜湊函數(shù)Hash,以xyG低位的|q|比特為密鑰,對源設(shè)備的證書唯一標志ID_Source進行雜湊,使用目的設(shè)備的私鑰對該雜湊值使用簽名算法E_S簽名,發(fā)送以下內(nèi)容給源設(shè)備Cert_Des_list‖yG‖E_S{Hash([xyG]lsb|q|,ID_Source)};c)源設(shè)備驗證目的設(shè)備證書是否被吊銷,驗證目的設(shè)備證書列表中證書各個域的內(nèi)容,計算共享秘密xyG,計算雜湊值Hash([xyG]lsb|q|,ID_Source),驗證接收的目的設(shè)備簽名;使用HMAC密鑰雜湊函數(shù)Hash,以xyG高位(|xyG|-|q|)比特為密鑰,對目的設(shè)備的證書唯一標志ID_Des進行雜湊,使用源設(shè)備的私鑰對該雜湊值使用簽名算法E_S簽名,確認目的設(shè)備證書沒有被吊銷,發(fā)送以下內(nèi)容給目的設(shè)備E_S{Hash([xyG]msb|q|,ID_Des)}之后,源設(shè)備使用HMAC密鑰雜湊函數(shù)Hash以xyG為密鑰,對ID_Source‖xG‖ID_Des‖yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_M,存儲數(shù)據(jù)對&lt;K_M,ID_Des&gt;;d)目的設(shè)備計算雜湊值Hash([xyG]msb|q|,ID_Des),驗證接收的源設(shè)備簽名;確認源設(shè)備證書沒有被吊銷,使用HMAC密鑰雜湊函數(shù)Hash,以xyG為密鑰,對ID_Source‖xG‖ID_Des‖yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_M,存儲數(shù)據(jù)對&lt;K_M,ID_Source&gt;。
      所述雙向重新認證方式是在通信雙方即源設(shè)備和目的設(shè)備具有共享密鑰K_M的情況下,確認雙方確實擁有相同的共享密鑰,核實通信雙方的身份;同時,雙方通過交換的隨機數(shù)和共享秘密生成新的共享密鑰,完成密鑰更新。
      在源設(shè)備和目的設(shè)備之間使用雙向重新認證方式進行認證和密鑰更新時,具有以下步驟a)源設(shè)備讀取源設(shè)備證書中的持有者唯一標志ID_Source,計算隨機數(shù)Rand_Source,發(fā)送源設(shè)備唯一標志和該隨機數(shù)ID_Source‖Rand_Source;b)目的設(shè)備驗證接收的ID_Source和本地存儲的ID_Source;計算隨機數(shù)Rand_Des,使用HMAC密鑰雜湊函數(shù)Hash,以共享密鑰K_M的高|K_M|/2位比特為密鑰,對ID_Source‖Rand_Source‖ID_Des‖Rand_Des進行雜湊,獲得Des_HashValue,讀取目的設(shè)備證書中的證書持有者標志ID_Des,發(fā)送目的設(shè)備唯一標志、隨機數(shù)和雜湊值ID_Des‖Rand_Des‖Des_HashValue;c)源設(shè)備驗證接收的ID_Des和本地存儲的ID_Des,驗證接收的雜湊值Des_HashValue;使用HMAC密鑰雜湊函數(shù)Hash,以共享密鑰K_M的低|K_M|/2位比特為密鑰,對ID_Des‖Rand_Des進行雜湊,獲得Source_HashValue值,發(fā)送該雜湊值給目的設(shè)備;之后使用Hash以當(dāng)前共享密鑰K_M為密鑰,對Rand_Des‖Rand_Source進行雜湊,獲得新的共享密鑰K_M=Hash(K_M,Rand_Des‖Rand_Source);d)目的設(shè)備驗證接收的雜湊值Source_HashValue,驗證通過則使用Hash,以當(dāng)前共享密鑰K_M為密鑰,對Rand_Des‖Rand_Source進行雜湊,獲得新的共享密鑰K_M=Hash(K_M,Rand_Des‖Rand_Source)。
      所述單向完全認證方式是在被認證方具有證書列表的情況下,確認被認證方確實具有其發(fā)送證書的私鑰,從而確定被認證方的身份;在確認被認證方身份的同時,協(xié)商的雙方通過交換的隨機值生成雙方獨享的共享秘密,并能由認證方確認該值的一致性。
      在源設(shè)備和目的設(shè)備之間使用單向完全認證方式進行認證和密鑰協(xié)商時,通過以下步驟在橢圓曲線(Fq,E,G,n)上實現(xiàn)a)源設(shè)備計算隨機數(shù)1<x<n,計算標量乘xG,發(fā)送源設(shè)備唯一標志和標量乘ID_Source‖xG;b)目的設(shè)備計算隨機數(shù)1<y<n,計算標量乘yG,計算共享秘密xyG,使用HMAC密鑰雜湊函數(shù)Hash,以xyG低位的|q|比特為密鑰,對源設(shè)備的證書唯一標志ID_Source進行雜湊,使用目的設(shè)備的私鑰對該雜湊值使用簽名算法E_S簽名,發(fā)送以下內(nèi)容給源設(shè)備Cert_Des_list‖yG‖E_S{Hash([xyG]lsb|q|,ID_Source)};使用Hash函數(shù)以xyG為密鑰,對ID_Source‖xG‖ID_Des‖yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_M,存儲數(shù)據(jù)對&lt;K_M,ID_Source&gt;;c)源設(shè)備驗證目的設(shè)備證書是否被吊銷,驗證目的設(shè)備證書列表中證書各個域的內(nèi)容,計算共享秘密xyG,驗證接收的目的設(shè)備簽名的正確性;使用HMAC密鑰雜湊函數(shù)Hash,以xyG為密鑰,對ID_Source‖xG‖ID_Des‖yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_M,確認目的設(shè)備證書沒有被吊銷,存儲數(shù)據(jù)對&lt;K_M,ID_Des&gt;。
      所述單向重新認證方式是在通信雙方即源設(shè)備和目的設(shè)備具有共享密鑰K_M的情況下,由認證方確認被認證方確實擁有與認證方相同的共享秘密;在確認共享秘密的一致性之后,通信雙方通過認證方所發(fā)送的隨機數(shù)來更新雙方的共享密鑰,完成密鑰更新;被認證方身份的確認通過認證方身份與共享密鑰的綁定完成。
      在源設(shè)備和目的設(shè)備之間采用單向重新認證方式進行認證和密鑰更新時,具有以下步驟a)源設(shè)備計算隨機數(shù)Rand_Source,發(fā)送源設(shè)備唯一標志和該隨機數(shù)ID_Source‖Rand_Source;b)目的設(shè)備驗證接收的ID_Source和本地存儲的ID_Source;使用HMAC密鑰雜湊函數(shù)Hash以共享密鑰K_M的低|K_M|/2位比特為密鑰,對ID_Source‖Rand_Source進行雜湊,獲得Uni_Des_HashValue值,讀取目的設(shè)備證書中的證書持有者標志ID_Des,發(fā)送目的設(shè)備唯一標志和雜湊值ID_Des‖Uni_Des_HashValue;使用Hash,以K_M為密鑰,對Rand_Source進行雜湊,獲得新的共享密鑰K_M;c)源設(shè)備驗證接收的ID_Des和本地存儲的ID_Des,驗證雜湊值Uni_Des_HashValue;使用HMAC密鑰雜湊函數(shù)Hash以K_M為密鑰,對Rand_Source進行雜湊,獲得新的共享密鑰K_M。


      圖1表示根據(jù)本發(fā)明的雙向完全認證消息交換流程圖;圖2表示根據(jù)本發(fā)明的雙向重新認證消息交換流程圖;圖3表示根據(jù)本發(fā)明的單向完全認證消息交換流程圖;圖4表示根據(jù)本發(fā)明的單向重新認證消息交換流程圖。
      具體實施例方式
      當(dāng)數(shù)字內(nèi)容在兩個消費電子設(shè)備之間傳播時,為了保證數(shù)字內(nèi)容是在兩個合法的消費電子設(shè)備之間傳播,并且能夠使被傳播的數(shù)字內(nèi)容得到有效的保護而不易被攔截或竊取,兩個消費電子設(shè)備各接口需要根據(jù)其各自的配置選擇適當(dāng)?shù)恼J證密鑰協(xié)商方式進行身份認證和密鑰協(xié)商。
      在本發(fā)明中,所述的認證密鑰協(xié)商方式包括單向認證方式和雙向認證方式。所述單向認證方式包括單向完全認證方式以及單向重新認證方式;所述雙向認證方式包括雙向完全認證方式以及雙向重新認證方式。
      這里,將參與認證密鑰協(xié)商方式運行的兩個設(shè)備分別稱為源設(shè)備和目的設(shè)備。源設(shè)備和目的設(shè)備根據(jù)雙方接口的配置選擇執(zhí)行一種認證方式1)接口類型為POD或者HDMI,DVI,執(zhí)行單向認證密鑰協(xié)商和密鑰更新。
      2)接口類型為IEEE1394,USB,源設(shè)備和目的設(shè)備均支持雙向認證,則執(zhí)行雙向認證密鑰協(xié)商和更新。
      3)接口類型為IEEE1394,USB,目的設(shè)備僅支持單向認證,源設(shè)備配置的策略中允許執(zhí)行單向認證,則執(zhí)行單向認證密鑰協(xié)商和更新。
      4)其它接口類型,根據(jù)源設(shè)備的配置策略,支持的認證方案,目的設(shè)備支持的認證方案決定執(zhí)行的認證方案類型。
      一般情形下,源設(shè)備在選擇執(zhí)行單向或雙向認證方式后,如果本地沒有存儲以前的共享密鑰,則執(zhí)行單向或雙向完全認證方式;如果本地存儲著以前的共享密鑰,則執(zhí)行單向或雙向重新認證方式。
      在本發(fā)明所提及的四種認證密鑰協(xié)商方式中使用如下內(nèi)容1)參與認證密鑰協(xié)商方式運行的源設(shè)備和目的設(shè)備分別在本地存儲證書列表Cert_Source_list和Cert_Des_list,這些證書列表中所包含的證書的數(shù)量由應(yīng)用環(huán)境的信任模型決定。Cert_Source_list至少包括源設(shè)備證書Cert_Source,Cert_Des_list則至少包括目的設(shè)備證書Cert_Des。所使用的設(shè)備證書的證書格式可以遵照CCITT X.509規(guī)定的格式或者某種通用于多個接口的證書格式,至少要包含“證書持有者唯一標志”,“公鑰信息”,“證書簽發(fā)者標志”,“證書簽名算法信息”,“證書簽名”等內(nèi)容。認證密鑰協(xié)商方式中將使用的證書信息包括源設(shè)備證書的“證書持有者標志”ID_Source和目的設(shè)備證書的“證書持有者唯一標志”ID_Des,其它與證書相關(guān)的操作以文字形式敘述。
      2)認證密鑰協(xié)商方式需要關(guān)于橢圓曲線的一組參數(shù),設(shè)為(Fq,E,G,n),其中Fq為特征為q的有限域,E是Fq上的橢圓曲線,G為E上的基點,n為G的階。
      3)認證密鑰協(xié)商方式中的簽名算法E_S{}表示使用設(shè)備的唯一私鑰來對{}中的內(nèi)容簽名。簽名算法可以是任何一種具體算法,只要該算法滿足適應(yīng)性選擇消息攻擊安全。該方式中的HMAC密鑰雜湊函數(shù)Hash(key,content)表示使用密鑰key來計算content的雜湊值。同樣Hash可以是任何一種具體算法,只要該算法具有混合變換、抗碰撞攻擊、抗原像攻擊這樣三個性質(zhì)屬性。
      4)認證密鑰協(xié)商方式中使用符號|x|來表示數(shù)據(jù)x的長度,即該數(shù)據(jù)轉(zhuǎn)化為二進制表示時所使用的二進制符號的數(shù)目,例如|2192|=192;使用符號[x]lsby來表示取數(shù)據(jù)x從最低位(0比特位)到y(tǒng)-1比特位的y比特數(shù)據(jù);使用符號[x]msby來表示取數(shù)據(jù)x從y比特位到最高位的(|x|-y)比特數(shù)據(jù)。
      本發(fā)明的電子設(shè)備接口間基于公鑰證書的認證密鑰協(xié)商和更新方法通過使用Diffie-Hellman密鑰交換技術(shù)來生成共享秘密;通過HMAC算法保證所生成的共享秘密的一致性和消息的完整性;在完全認證的情況下,通過使用簽名技術(shù)來保證證書的發(fā)送者確實持有與證書中公鑰相對應(yīng)的私鑰,從而確定設(shè)備的合法性;在重新認證的情況下,通過使用持有共享密鑰這一事實來確認設(shè)備的合法性。這里,假設(shè)橢圓曲線上判定性Diffie-Hellman問題是困難問題,假設(shè)所用的簽名算法在適應(yīng)性選擇消息攻擊下是安全的,假設(shè)所用的HMAC算法具有混合變換、抗碰撞攻擊、抗原像攻擊這樣三個性質(zhì)。在上述假定條件下,可以證明本發(fā)明的認證密鑰協(xié)商和更新方法在秘密性和認證性方面是安全的。
      源設(shè)備和目的設(shè)備根據(jù)其接口的配置確定一種認證密鑰協(xié)商方式后,則按照該選定的認證密鑰協(xié)商方式的內(nèi)容進行身份認證和密鑰交換。
      下面分別描述本發(fā)明的四種認證密鑰協(xié)商方式。源設(shè)備選擇執(zhí)行雙向認證方式后,如果本地沒有存儲以前的共享密鑰,則執(zhí)行雙向完全認證方式。
      (一)雙向完全認證當(dāng)源設(shè)備和目的設(shè)備之間采用雙向完全認證方式時,通過以下步驟在橢圓曲線(Fq,E,G,n)上實現(xiàn),其中Fq為特征為q的有限域,E是Fq上的橢圓曲線,G為E上的基點,n為G的階。
      如圖1所示,雙向完全認證方式包括如下步驟1.源設(shè)備主程序調(diào)用雙向完全認證子程序來發(fā)送雙向完全認證第一條消息。該子程序讀取源設(shè)備證書列表Cert_Source_list,計算隨機數(shù)1<x<n,計算標量乘xG,發(fā)送消息,即源設(shè)備證書列表和標量乘xGCert_Source_list‖xG在實際應(yīng)用中,上述消息需要封裝之后再發(fā)送。對該消息單元的封裝應(yīng)指明該消息所屬的認證類型(雙向完全認證0x01),如果源設(shè)備和目的設(shè)備之間可以存在多個會話同時運行,則封裝信息還包括會話序列號。
      2.目的設(shè)備主程序把雙向完全認證第一條消息轉(zhuǎn)交給該設(shè)備的雙向完全認證子程序處理。該協(xié)議子程序要完成以下操作a)通過目的設(shè)備的證書有效性查詢資源來驗證源設(shè)備證書Cert_Source是否被吊銷。如果目的設(shè)備不存在證書有效性查詢資源,則發(fā)送通知消息給源設(shè)備指示目的設(shè)備能力不足,終止執(zhí)行該雙向完全方式。
      在實際應(yīng)用中,各接口為該通知消息分配特定的序列號(例如0x01表示不存在證書有效性查詢的資源),并按照各接口通知消息的形式封裝并發(fā)送該序列號,封裝的信息應(yīng)該足以表明出現(xiàn)錯誤的會話序列,例如包括特定會話的部分DH公鑰信息,或者包括特定會話的會話序列號,或者源設(shè)備和目的設(shè)備之間不存在多重會話。
      b)鑒于證書有效性驗證有可能耗時較長,因此該子程序需要與證書有效性驗證并行執(zhí)行以下操作i.驗證源設(shè)備證書列表中證書各個域的信息,具體驗證內(nèi)容由證書系統(tǒng)的規(guī)范決定。驗證失敗則向源設(shè)備發(fā)送通知消息,報告證書驗證失敗,終止執(zhí)行該方式。
      ii.計算隨機數(shù)y,計算標量乘yG,計算共享秘密xyG,使用HMAC密鑰雜湊函數(shù)Hash,計算Hash([xyG]lsb|q|,ID_Source),使用目的設(shè)備的私鑰對所計算的雜湊值使用簽名算法E_S{}簽名,讀取目的設(shè)備證書列表Cert_Des_list,發(fā)送消息給源設(shè)備Cert_Des_list‖yG‖E_S{Hash([xyG]lsb|q|,ID_Source)}在實際應(yīng)用中,封裝上述消息,然后再發(fā)送。封裝該協(xié)議消息時要明確消息所屬的會話序列和認證類型。
      3.源設(shè)備主程序負責(zé)把雙向完全認證第二條消息轉(zhuǎn)交給該設(shè)備的完全雙向認證子程序來處理,把目的設(shè)備發(fā)送的通知消息轉(zhuǎn)交給通知消息處理子程序執(zhí)行。
      源設(shè)備的通知消息處理子程序?qū)τ谀康脑O(shè)備發(fā)送的“不存在有效性查詢資源”,“證書驗證失敗”這樣兩類通知消息,終止這些通知消息所指明的會話,收回系統(tǒng)資源。
      雙向完全認證子程序完成以下操作a)通過源設(shè)備的證書有效性查詢資源來驗證目的設(shè)備證書Cert_Des是否被吊銷。如果源設(shè)備不存在證書有效性查詢資源,則發(fā)送通知消息給目的設(shè)備指示源設(shè)備能力不足,終止執(zhí)行該雙向完全認證方式。
      在實際應(yīng)用中,各接口需要為該通知消息分配特定的序列號(例如0x01表示不存在證書有效性查詢的資源),并按照各接口通知消息的形式封裝并發(fā)送該序列號,要求封裝時能夠指明出現(xiàn)錯誤的會話序列。
      b)鑒于證書有效性驗證有可能耗時較長,因此該協(xié)議子程序需要與證書有效性驗證并行執(zhí)行以下操作i.驗證目的設(shè)備證書列表中證書各個域的信息,具體驗證內(nèi)容由各接口證書系統(tǒng)的規(guī)范決定。驗證失敗則向目的設(shè)備發(fā)送通知消息,報告證書驗證失敗,終止執(zhí)行雙向完全認證。
      ii.計算共享秘密xyG,使用HMAC密鑰雜湊函數(shù)Hash,計算Hash([xyG]lsb|q|,ID_Source),驗證接收消息中簽名的有效性,如果驗證沒有通過則發(fā)送通知消息給目的設(shè)備報錯,終止執(zhí)行雙向完全認證。
      在實際應(yīng)用中,各接口應(yīng)該為該通知消息分配特定的序列號(例如0x02表示證書驗證失敗),并按照各接口通知消息的形式封裝并發(fā)送該序列號,同樣要求封裝時能夠指明出現(xiàn)錯誤的會話序列。
      iii.使用Hash函數(shù),以[xyG]msb|q|為密鑰,對目的設(shè)備的證書唯一標志ID_Des進行雜湊,使用源設(shè)備的私鑰對該雜湊值使用簽名算法E_S{}簽名E_S{Hash([xyG]msb|q|,ID_Des)};在實際應(yīng)用中,對上述簽名進行封裝,封裝時要明確消息的會話序列和認證類型。
      iv.源設(shè)備使用Hash函數(shù),以xyG為密鑰,對ID_Source‖xG‖ID_Des‖yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_MK_M=Hash(xyG,ID_Source‖xG‖ID_Des‖yG);v.檢查在步驟a)中證書有效性查詢的結(jié)果,如果目的設(shè)備的證書是有效的,則存儲數(shù)據(jù)對&lt;K_M,ID_Des&gt;,發(fā)送步驟iii中生成的簽名消息給目的設(shè)備,否則發(fā)送通知消息,終止協(xié)議執(zhí)行。
      在實際應(yīng)用中,各接口應(yīng)該為該通知消息分配特定的序列號(例如0x04表示證書已經(jīng)被吊銷),并按照各接口通知消息的形式封裝并發(fā)送該序列號,要求封裝時能夠指明出現(xiàn)錯誤的會話序列。
      4.目的設(shè)備主程序負責(zé)把雙向完全認證第三條消息的消息單元轉(zhuǎn)交給該設(shè)備的雙向完全認證協(xié)議子程序來處理接收的消息,把接收的通知消息轉(zhuǎn)交給目的設(shè)備的通知消息處理子程序執(zhí)行。
      目的設(shè)備的通知消息處理子程序?qū)τ谠丛O(shè)備發(fā)送的“不存在有效性查詢資源”,“證書驗證失敗”,“簽名消息驗證失敗”,“證書已經(jīng)被吊銷”這樣幾類通知消息,終止這些通知消息所指明的會話,收回系統(tǒng)資源。
      目的設(shè)備雙向完全認證子程序完成以下操作a)使用HMAC密鑰雜湊函數(shù)Hash,計算Hash([xyG]msb|q|,ID_Des),讀取Cert_Source中公鑰,驗證接收消息中簽名,驗證無效則發(fā)送通知消息給源設(shè)備報錯,終止執(zhí)行雙向完全認證。
      在實際應(yīng)用中,各接口為該通知消息分配特定的序列號(例如0x03表示協(xié)議簽名消息驗證失敗),并按照各接口通知消息的形式封裝并發(fā)送該序列號,封裝時指明出現(xiàn)錯誤的會話序列。
      b)檢查步驟2的a)中Cert_Source有效性查詢的結(jié)果,如果查詢結(jié)果表明源設(shè)備證書已經(jīng)被吊銷,則發(fā)送通知消息給源功能設(shè)備報錯,終止執(zhí)行雙向完全認證。
      在實際應(yīng)用中,各接口為該通知消息分配特定的序列號(例如0x04表示證書已經(jīng)被吊銷),并按照各接口通知消息的形式封裝并發(fā)送該序列號,封裝時能夠指明出現(xiàn)錯誤的會話序列。
      c)使用Hash函數(shù)計算主密鑰K_M如下K_M=Hash(xyG,ID_Source‖xG‖ID_Des‖yG);d)存儲&lt;K_M,ID_Source&gt;。
      5.源設(shè)備在接收到目的設(shè)備的通知消息后,清除存儲的數(shù)據(jù)對&lt;K_M,ID_Des&gt;。
      (二)雙向重新認證源設(shè)備選擇執(zhí)行雙向認證后,如果本地存儲著以前的共享密鑰,則執(zhí)行雙向重新認證方式。如圖2所示,該協(xié)議具體步驟如下1.源設(shè)備主程序調(diào)用雙向重新認證子程序來發(fā)送雙向完全認證第一條消息。該協(xié)議子程序讀取源設(shè)備證書中的持有者唯一標志ID_Source,計算不少于64比特的隨機數(shù)Rand_Source,發(fā)送消息ID_Source‖Rand_Source
      在實際應(yīng)用中,上述消息需要封裝,對該消息單元的封裝要能夠指明該消息所屬的認證類型,如果源設(shè)備和目的設(shè)備之間可以存在多個會話同時運行,則封裝信息還包括會話序列號。
      2.目的設(shè)備主程序負責(zé)把雙向重新認證第一條消息轉(zhuǎn)交給該設(shè)備的雙向重新認證子程序處理。該協(xié)議子程序要完成以下操作a)比較所接收的ID_Source與本地存儲的&lt;K_M,ID_Source&gt;中的ID_Source是否相同,如果不同,則清除&lt;K_M,ID_Source&gt;,然后向源設(shè)備發(fā)送通知消息,終止此次雙向重新認證方式的執(zhí)行,請求執(zhí)行雙向完全認證。
      在實際應(yīng)用中,各接口應(yīng)該為該通知消息分配特定的序列號(例如0x05表示重新認證證書持有者標志不匹配),并按照各接口通知消息的形式封裝并發(fā)送該序列號,要求封裝時能夠指明出現(xiàn)錯誤的會話序列。
      b)如果所接收的ID_Source與本地存儲的&lt;K_M,ID_Source&gt;中的ID_Source相同,則讀取目的設(shè)備證書中的證書持有者標志ID_Des,計算不少于64比特隨機數(shù)Rand_Des,使用HMAC密鑰雜湊函數(shù)Hash,以共享密鑰K_M的高|K_M|/2位比特,對ID_Source‖Rand_Source‖ID_Des‖Rand_Des進行雜湊,獲得Des_HashValue值,計算雜湊值Des_HashValueHash([K_M]msb|K_M|/2,ID_Source‖Rand_Source‖ID_Des‖Rand_Des)c)發(fā)送消息ID_Des‖Rand_Des‖Des_HashValue。
      在實際應(yīng)用中,需要對消息封裝,封裝時要明確消息所屬的會話序列和認證類型。
      3.源設(shè)備主程序負責(zé)把雙向重新認證第二條消息的消息單元轉(zhuǎn)交給該設(shè)備的雙向重新認證子程序來處理接收的消息,把目的設(shè)備發(fā)送的通知消息轉(zhuǎn)交給通知消息處理子程序執(zhí)行。
      源設(shè)備的通知消息處理子程序?qū)τ谀康脑O(shè)備發(fā)送的“重新認證證書持有者標志不匹配”這樣的通知消息,終止這些通知消息所指明的會話,收回系統(tǒng)資源,清除&lt;K_M,ID_Des&gt;,然后與該目的設(shè)備執(zhí)行雙向完全認證。
      源設(shè)備采用的雙向重新認證方式具有以下步驟a)比較所接收的ID_Des和本地存儲的&lt;K_M,ID_Des&gt;中的ID_Des是否相同,如果不同,則清除本地存儲的&lt;K_M,ID_Des&gt;,發(fā)送“重新認證證書持有者不匹配”通知消息給目的設(shè)備,終止此次會話,回收系統(tǒng)資源,清除&lt;K_M,ID_Des&gt;,然后與該目的設(shè)備執(zhí)行雙向完全認證。
      b)如果所接收的ID_Des和本地存儲的&lt;K_M,ID_Des&gt;中的ID_Des相同,則使用HMAC密鑰雜湊函數(shù)Hash計算以下雜湊值Local_Des_Hash ValueHash([K_M]msb|K_M|/2,ID_Source‖Rand_Source‖ID_Des‖Rand_Des)c)比較接收的HashValue與計算的Local_Des_HashValue是否相同,不同則清除本地存儲的&lt;K_M,ID_Des&gt;,發(fā)送“重新認證雜湊值不匹配”通知消息給目的設(shè)備,終止此次會話,回收系統(tǒng)資源,清除&lt;K_M,ID_Des&gt;,然后與該目的設(shè)備執(zhí)行雙向完全認證。
      d)使用Hash函數(shù),以共享密鑰K_M的低|K_M|/2位比特為密鑰,對ID_Des‖Rand_Des進行雜湊,計算并發(fā)送雜湊值Source_HashValue給目的設(shè)備Hash([K_M]lsb|K_M|/2‖ID_Des‖Rand_Des)在實際應(yīng)用中,需要封裝之后發(fā)送雜湊值Source_HashValue給目的設(shè)備。這時協(xié)議消息單元僅包含該雜湊值。封裝時要明確消息所屬的會話序列和認證類型。
      e)計算新的K_M,更新&lt;K_M,ID_Des&gt;中的K_M。新的K_M計算如下K_M=Hash(K_M,Rand_Des‖Rand_Source)4.目的設(shè)備主程序負責(zé)把雙向重新認證第三條消息轉(zhuǎn)交給該設(shè)備的雙向重新認證協(xié)議子程序來處理接收的消息,把接收的通知消息轉(zhuǎn)交給目的設(shè)備的通知消息處理子程序執(zhí)行。
      目的設(shè)備的通知消息處理子程序?qū)τ谠丛O(shè)備發(fā)送的“重新認證證書持有者標志不匹配”,“重新認證雜湊值不匹配”這樣兩類通知消息,終止這些通知消息所指明的會話,收回系統(tǒng)資源,清除&lt;K_M,ID_Source&gt;。
      目的設(shè)備雙向重新認證協(xié)議子程序完成以下操作a)用HMAC密鑰雜湊函數(shù)Hash計算雜湊值Local_Source_HashValueHash([K_M]lsb|K_M|/2‖ID_Des‖Rand_Des)b)比較接收的Source_HashValue與計算的Local_Source_HashValue是否相同,不同則發(fā)送“重新認證雜湊值不匹配”通知消息給源設(shè)備,終止此次會話,回收系統(tǒng)資源,清除&lt;K_M,ID_Source&gt;。
      c)計算新的K_M,更新&lt;K_M,ID_Source&gt;中的K_M,設(shè)置認證狀態(tài)。新的K_M計算如下K_M=Hash(K_M,Rand_Des‖Rand_Source)。
      5.源設(shè)備在接收到目的設(shè)備的通知消息后,清除數(shù)據(jù)對&lt;K_M,ID_Des&gt;,執(zhí)行雙向完全認證協(xié)議。
      (三)單向完全認證源設(shè)備選擇執(zhí)行單向認證后,如果本地沒有存儲以前的認證密鑰,則執(zhí)行單向完全認證協(xié)議。如圖3所示,該協(xié)議具體步驟如下1.在決定執(zhí)行單向完全認證后,源設(shè)備主程序調(diào)用單向完全認證協(xié)議子程序來發(fā)送單向完全認證第一條消息。該協(xié)議子程序讀取源設(shè)備證書中的證書持有者標志ID_Source,計算隨機數(shù)x,計算標量乘xG,并發(fā)送協(xié)議消息ID_Source‖xG在實際應(yīng)用中,上述消息需要封裝發(fā)送,對該協(xié)議消息單元的封裝要能夠指明該消息所屬的認證類型,如果源設(shè)備和目的設(shè)備之間可以存在多個同時運行的會話,則封裝信息還應(yīng)包括會話序列號。
      2.目的設(shè)備主程序負責(zé)把單向完全認證第一條協(xié)議消息轉(zhuǎn)交給該設(shè)備的單向完全認證子程序處理。該協(xié)議子程序要完成以下操作a)計算隨機數(shù)y,計算yG,計算共享秘密xyG,使用HMAC密鑰雜湊函數(shù)Hash,計算Hash([xyG]lsb|q|,ID_Source),對計算的雜湊值簽名,讀取目的設(shè)備證書列表,發(fā)送協(xié)議消息Cert_Des_list‖yG‖E_S{Hash([xyG]lsb|q|,ID_Source)}在實際應(yīng)用中,上述消息需要封裝發(fā)送。封裝時要明確消息所屬的會話序列和認證類型。
      b)使用Hash函數(shù),以xyG為密鑰,對ID_Source‖xG‖ID_Des‖yG進行雜湊,計算主密鑰K_M作為雙方的共享密鑰,存儲&lt;K_M,ID_Source&gt;。K_M計算如下K_M=Hash(xyG,ID_Source‖xG‖ID_Des‖yG)
      3.源設(shè)備主程序負責(zé)把單向完全認證第二條協(xié)議消息轉(zhuǎn)交給該設(shè)備的單向完全認證協(xié)議子程序來處理接收的協(xié)議消息。該協(xié)議子程序完成以下操作a)通過源設(shè)備的證書有效性查詢資源驗證接收的證書是否被吊銷。如果源設(shè)備不存在證書有效性查詢資源,則發(fā)送“不存在證書有效性查詢的資源”通知消息給目的設(shè)備指示源設(shè)備能力不足,終止執(zhí)行單向認證。
      在實際應(yīng)用中,封裝上述步驟a)中產(chǎn)生的通知消息時要能夠指明出現(xiàn)錯誤的會話序列。
      b)鑒于證書有效性驗證有可能耗時較長,因此該協(xié)議子程序需要與證書有效性驗證并行執(zhí)行以下操作i.驗證目的設(shè)備證書列表中證書各個域的信息,具體驗證內(nèi)容由各接口證書系統(tǒng)的規(guī)范決定。驗證失敗則向目的設(shè)備發(fā)送“證書驗證失敗”通知消息,終止協(xié)議執(zhí)行。
      在實際應(yīng)用中,封裝上述步驟b)第i項中產(chǎn)生的通知消息時要能夠指明出現(xiàn)錯誤的會話序列。
      ii.計算共享秘密xyG,使用HMAC密鑰雜湊函數(shù)Hash計算Hash([xyG]lsb|q|,ID_Source),讀取Cert_Des的公鑰驗證接收消息中簽名的有效性,如果驗證沒有通過則發(fā)送“協(xié)議簽名消息驗證失敗”通知消息給目的設(shè)備報錯,終止協(xié)議執(zhí)行。
      在實際應(yīng)用中,封裝上述步驟b)第ii項中產(chǎn)生的通知消息時要能夠指明出現(xiàn)錯誤的會話序列。
      iii.使用Hash,以xyG為密鑰,對ID_Source‖xG‖ID_Des‖yG進行雜湊,計算主密鑰K_M作為雙方的共享密鑰K_M=Hash(xyG,ID_Source‖xG‖ID_Des‖yG)。
      iv.檢查在步驟a)中有效性查詢結(jié)果,如果證書有效則存儲&lt;K_M,ID_Des&gt;,否則發(fā)送通知消息,指示“證書已經(jīng)被吊銷”,結(jié)束程序執(zhí)行。
      在實際應(yīng)用中,封裝上述步驟b)第iv項中產(chǎn)生的通知消息時要能夠指明出現(xiàn)錯誤的會話序列。
      4.目的設(shè)備主程序負責(zé)把接收的通知消息轉(zhuǎn)交給通知消息處理子程序執(zhí)行。
      目的設(shè)備的通知消息處理子程序?qū)τ谠丛O(shè)備發(fā)送的“不存在有效性查詢資源”,“證書驗證失敗”,“簽名消息驗證失敗”,“證書已經(jīng)被吊銷”這樣幾類通知消息,終止這些通知消息所指明的會話,收回系統(tǒng)資源。
      (四)單向重新認證源設(shè)備選擇執(zhí)行單向認證后,如果本地存儲著以前的認證密鑰,則執(zhí)行單向重新認證方式。如圖4所示,該協(xié)議具體步驟如下1.源設(shè)備主程序調(diào)用單向重新認證子程序來發(fā)送單向完全認證第一條消息。該子程序讀取源設(shè)備證書中的持有者唯一標志ID_Source,計算不少于64比特隨機數(shù)Rand_Source,發(fā)送消息ID_Source‖Rand_Source在實際應(yīng)用中,上述消息需要封裝,對該消息單元的封裝要能夠指明該消息所屬的認證類型,如果源設(shè)備和目的設(shè)備之間可以存在多個會話同時運行,則封裝信息還應(yīng)包括會話序列號。
      2.目的設(shè)備主程序負責(zé)把單向重新認證第一條消息轉(zhuǎn)交給該設(shè)備的單向重新認證子程序處理。該協(xié)議子程序要完成以下操作a)比較所接收的ID_Source與本地存儲的&lt;K_M,ID_Source&gt;中的ID_Source是否相同,如果不同,則清除&lt;K_M,ID_Source&gt;,然后向源設(shè)備發(fā)送“證書持有者標志不匹配”通知消息,終止此次單向重新認證的執(zhí)行。
      在實際應(yīng)用中,封裝上述步驟a)中通知消息時要能夠指明出現(xiàn)錯誤的會話序列。
      b)如果所接收的ID_Source與本地存儲的&lt;K_M,ID_Source&gt;中的ID_Source相同,則使用HMAC密鑰雜湊函數(shù)Hash,以共享密鑰K_M的低|K_M|/2位比特,對ID_Source‖Rand_Source進行雜湊,計算以下雜湊值Uni_Des_HashValueHash([K_M]lsb|K_M|/2,ID_Source‖Rand_Source)c)讀取目的設(shè)備證書中的證書持有者標志ID_Des,發(fā)送消息ID_Des‖Uni_Des_HashValue在實際應(yīng)用中,上述消息需要封裝。封裝時要明確消息所屬的會話序列和認證類型。
      d)計算新的K_M,更新&lt;K_M,ID_Source&gt;中的K_M。新的K_M計算如下K_M=Hash(K_M,Rand_Source)3.源設(shè)備主程序負責(zé)把單向重新認證第二條消息轉(zhuǎn)交給該設(shè)備的單向重新認證子程序來處理接收的消息,把目的設(shè)備發(fā)送的通知消息轉(zhuǎn)交給通知消息處理子程序執(zhí)行。
      源設(shè)備的通知消息處理子程序?qū)τ谀康脑O(shè)備發(fā)送的“重新認證證書持有者標志不匹配”這樣的通知消息,終止這些通知消息所指明的會話,收回系統(tǒng)資源,清除數(shù)據(jù)對&lt;K_M,ID_Des&gt;,然后與該目的設(shè)備執(zhí)行單向完全認證。
      源設(shè)備單向重新認證子程序執(zhí)行以下步驟a)比較所接收的ID_Des和本地存儲的數(shù)據(jù)對&lt;K_M,ID_Des&gt;中的ID_Des是否相同,如果不同則清除本地存儲的&lt;K_M,ID_Des&gt;,發(fā)送“重新認證證書持有者不匹配”通知消息給目的設(shè)備,終止此次會話,回收系統(tǒng)資源,清除&lt;K_M,ID_Des&gt;,然后與該目的設(shè)備執(zhí)行單向完全認證。
      b)如果所接收的ID_Des和本地存儲的&lt;K_M,ID_Des&gt;中的ID_Des相同,則使用HMAC密鑰雜湊函數(shù)Hash計算以下雜湊值Uni_Local_Des_HashValueHash([K_M]lsb|K_M|/2,ID_Source‖Rand_Source)c)比較接收的Uni_Des_HashValue與計算的Uni_Local_Des_HashValue是否相同,如果不同則清除本地存儲的&lt;K_M,ID_Des&gt;,發(fā)送“重新認證雜湊值不匹配”通知消息給目的設(shè)備,終止此次會話,回收系統(tǒng)資源,清除&lt;K_M,ID_Des&gt;,然后與該目的設(shè)備執(zhí)行單向完全認證。
      d)計算新的K_M,更新&lt;K_M,ID_Des&gt;中的K_M,設(shè)置認證狀態(tài)。新的K_M計算如下K_M=Hash(K_M,Rand_Source)4.目的設(shè)備主程序負責(zé)把接收的通知消息轉(zhuǎn)交給目的設(shè)備的通知消息處理子程序執(zhí)行。
      目的設(shè)備的通知消息處理子程序可以對于源設(shè)備發(fā)送的“重新認證證書持有者標志不匹配”,“重新認證雜湊值不匹配”這樣兩類通知消息,終止這些通知消息所指明的會話,收回系統(tǒng)資源,清除&lt;K_M,ID_Source&gt;。
      本發(fā)明與現(xiàn)有技術(shù)相比具有的有益效果是本發(fā)明綜合考慮消費電子的多種接口,提供了基于公鑰的一種認證和密鑰協(xié)商方案。該方案在基本算法具有安全保障時,具有可證明的認證特性和認證密鑰的秘密性及一致性。該方案同時優(yōu)化了消息交換次數(shù)和計算代價,具有較高的效率。
      本發(fā)明的上述認證密鑰協(xié)商方式可以以協(xié)議的形式來實現(xiàn),應(yīng)用于參與認證密鑰協(xié)商的源設(shè)備和目的設(shè)備中。
      下面描述本發(fā)明的上述認證密鑰協(xié)商協(xié)議的具體應(yīng)用。
      假設(shè)源設(shè)備A和目的設(shè)備B進行認證密鑰協(xié)商和更新。設(shè)備A本地存儲證書列表設(shè)備證書Cert_A,設(shè)備A的簽發(fā)機構(gòu)證書Cert_A_Adm,簽發(fā)Cert_A_Adm的機構(gòu)的證書Cert_Root。設(shè)備B本地存儲證書列表設(shè)備證書Cert_B,設(shè)備B的簽發(fā)機構(gòu)證書Cert_B_Adm,簽發(fā)Cert_B_Adm的機構(gòu)的證書Cert_Root。設(shè)備A和設(shè)備B商定了一組算法和公開參數(shù),包括簽名算法ECCDSA,HMAC算法HMAC-SHA(key,content),橢圓曲線公開參數(shù)(Fq,E,G,n),|q|=192,|K_M|=256,橢圓曲線標量乘計算表示為xG,yG等。
      設(shè)備A和設(shè)備B的DVI,HDMI或者POD-Host等接口在傳輸數(shù)據(jù)之前,會執(zhí)行單向認證密鑰協(xié)商和更新。設(shè)備A如果檢測不到本地存儲有共享密鑰,則執(zhí)行單向完全認證。設(shè)備A計算隨機數(shù)1<x<n,發(fā)送設(shè)備A唯一標志ID_A和xG給設(shè)備B;設(shè)備B按照單向完全認證規(guī)定的步驟操作,發(fā)送Cert_B,Cert_B_Adm,yG和簽名的雜湊值ECCDSA{HMAC-SHA([xyG]lsb192,ID_A)}給設(shè)備A,并按照規(guī)定計算認證密鑰K_M;設(shè)備A檢測接收的消息,完成對設(shè)備B的認證,認證成功則計算K_M,設(shè)置認證狀態(tài),否則發(fā)送通知消息給設(shè)備B報錯。
      設(shè)備A和設(shè)備B在DVI,HDMI,POD-Host等接口在執(zhí)行單向認證密鑰協(xié)商和更新時如果發(fā)現(xiàn)本地存儲有共享密鑰,則執(zhí)行單向重新認證。設(shè)備A計算64比特隨機數(shù)Rand_A,發(fā)送設(shè)備A唯一標志ID_A和Rand_A給設(shè)備B;設(shè)備B使用儲存的密鑰K_M計算ID_A‖Rand_A的HMAC雜湊值,并發(fā)送設(shè)備B唯一標志ID_B和雜湊值給設(shè)備A;設(shè)備A驗證雜湊值的正確性,從而確認設(shè)備B是否擁有相同的共享密鑰,如果有則更新該密鑰。
      設(shè)備A和設(shè)備B在IEEE1394,USB等可能支持雙向認證密鑰協(xié)商和更新的接口間傳輸數(shù)據(jù)時,由設(shè)備B向設(shè)備A提交設(shè)備B的認證能力,設(shè)備A優(yōu)先選擇執(zhí)行雙向認證密鑰協(xié)商和更新。如果設(shè)備A本地沒有存儲共享密鑰或者目的設(shè)備的認證能力中顯示目的設(shè)備沒有存儲共享密鑰,則執(zhí)行雙向完全認證。設(shè)備A給設(shè)備B發(fā)送Cert_A,Cert_A_Adm和計算的xG;設(shè)備B按照雙向完全認證的步驟給設(shè)備A發(fā)送Cert_B,Cert_B_Adm,yG和簽名消息,簽名的內(nèi)容是使用xyG的部分信息作密鑰對ID_Source進行HMAC-SHA運算得到的雜湊值;設(shè)備A驗證接收的消息,完成對設(shè)備B的認證,發(fā)送簽名消息給設(shè)備B,同時設(shè)置認證狀態(tài),計算和存儲共享密鑰。設(shè)備B檢驗接收的簽名消息,結(jié)合第一步接收的消息,完成對設(shè)備A的認證,設(shè)置認證狀態(tài),計算和存儲共享密鑰。
      設(shè)備A和設(shè)備B在選擇執(zhí)行雙向認證密鑰協(xié)商和更新后,如果目的設(shè)備存儲有共享密鑰,同時源設(shè)備也存儲有共享密鑰,則執(zhí)行雙向重新認證。設(shè)備A給設(shè)備B發(fā)送設(shè)備A唯一標志ID_A和Rand_A;目的設(shè)備發(fā)送ID_Des,Rand_Des和一個雜湊值,該雜湊值使用HMAC-SHA計算,密鑰是本地存儲的K_M的部分信息,雜湊的內(nèi)容包括了設(shè)備A的標志和隨機數(shù),設(shè)備B的標志和隨機數(shù)。設(shè)備A通過驗證雜湊值來確認設(shè)備B和設(shè)備A具有相同的共享密鑰,然后設(shè)備A按照規(guī)定計算并發(fā)送新的雜湊值給設(shè)備B,并設(shè)置認證狀態(tài),更新和存儲共享密鑰。設(shè)備B通過驗證雜湊值來確認設(shè)備A和設(shè)備B擁有相同的共享密鑰,然后設(shè)備B設(shè)置認證狀態(tài),更新共享密鑰。
      權(quán)利要求
      1.一種用于電子設(shè)備接口間基于公鑰的認證密鑰協(xié)商和更新方法,其特征在于,參與認證密鑰協(xié)商的源設(shè)備和目的設(shè)備根據(jù)各自接口的配置信息,選擇單向認證方式或者雙向認證方式,通過使用Diffie-Hellman密鑰交換技術(shù)生成共享秘密;通過HMAC密鑰雜湊函數(shù)保證所生成的共享秘密的一致性和消息的完整性。
      2.如權(quán)利要求1所述的方法,其特征在于,所述的單向認證和雙向認證方式分別包括完全認證和重新認證,在完全認證的情況下,在源設(shè)備和目的設(shè)備不具有共享密鑰K_M的情況下,通過使用簽名技術(shù)來保證證書的發(fā)送者確實持有與證書中公鑰相對應(yīng)的私鑰,從而確定設(shè)備的合法性;在重新認證的情況下,通過使用持有共享密鑰這一事實來確認設(shè)備的合法性。
      3.如權(quán)利要求2所述的方法,所述雙向完全認證方式是在通信雙方的源設(shè)備和目的設(shè)備具有證書列表的情況下,確認被認證方確實具有其發(fā)送證書的私鑰,從而確定被認證方的身份;在確認身份的同時,通過交換隨機數(shù)生成一個通信雙方獨享的秘密值,并能確認該值的一致性和秘密性。
      4.如權(quán)利要求3所述的方法,在源設(shè)備和目的設(shè)備之間所采用雙向完全認證進行認證和密鑰協(xié)商時,該認證方式通過以下步驟在橢圓曲線(Fq,E,G,n)上實現(xiàn),其中Fq是特征為q的有限域,E是Fq上的橢圓曲線,G為E上的基點,n為G的階a)源設(shè)備計算隨機數(shù)1<x<n,計算標量乘xG,發(fā)送源設(shè)備證書列表和該標量乘Cert_Source_list||xG;b)目的設(shè)備驗證源設(shè)備證書是否被吊銷,驗證源設(shè)備證書列表中證書各個域的內(nèi)容;計算隨機數(shù)1<y<n,計算標量乘yG,使用HMAC密鑰雜湊函數(shù)Hash,以xyG低位的|q|比特為密鑰,對源設(shè)備的證書唯一標志ID_Source進行雜湊,使用目的設(shè)備的私鑰對該雜湊值使用簽名算法E_S簽名,發(fā)送以下內(nèi)容給源設(shè)備Cert_Des_list||yG||E_S{Hash([xyG]lsb|q|,ID_Source)};c)源設(shè)備驗證目的設(shè)備證書是否被吊銷,驗證目的設(shè)備證書列表中證書各個域的內(nèi)容,計算共享秘密xyG,計算雜湊值Hash([xyG]lsb|q|,ID_Source),驗證接收的目的設(shè)備簽名;使用HMAC密鑰雜湊函數(shù)Hash,以xyG高位(|xyG|-|q|)比特為密鑰,對目的設(shè)備的證書唯一標志ID_Des進行雜湊,使用源設(shè)備的私鑰對該雜湊值使用簽名算法E_S簽名,確認目的設(shè)備證書沒有被吊銷,發(fā)送以下內(nèi)容給目的設(shè)備E_S{Hash([xyG]msb|q|,ID_Des)}之后,源設(shè)備使用HMAC密鑰雜湊函數(shù)Hash以xyG為密鑰,對ID_Source||xG||ID_Des||yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_M,存儲數(shù)據(jù)對&lt;K_M,ID_Des&gt;;d)目的設(shè)備計算雜湊值Hash([xyG]msb|q|,ID_Des),驗證接收的源設(shè)備簽名;確認源設(shè)備證書沒有被吊銷,使用HMAC密鑰雜湊函數(shù)Hash,以xyG為密鑰,對ID_Source||xG||ID_Des||yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_M,存儲數(shù)據(jù)對&lt;K_M,ID_Source&gt;。
      5.如權(quán)利要求2所述的方法,所述雙向重新認證方式是在通信雙方即源設(shè)備和目的設(shè)備具有共享密鑰K_M的情況下,確認雙方確實擁有相同的共享密鑰,核實通信雙方的身份;同時,雙方通過交換的隨機數(shù)和共享秘密生成新的共享密鑰,完成密鑰更新。
      6.如上述權(quán)利要求5所述的方法,在源設(shè)備和目的設(shè)備之間使用雙向重新認證方式進行認證和密鑰更新時,具有以下步驟a)源設(shè)備讀取源設(shè)備證書中的持有者唯一標志ID_Source,計算隨機數(shù)Rand_Source,發(fā)送源設(shè)備唯一標志和該隨機數(shù)ID_Source||Rand_Source;b)目的設(shè)備驗證接收的ID_Source和本地存儲的ID_Source;計算隨機數(shù)Rand_Des,使用HMAC密鑰雜湊函數(shù)Hash,以共享密鑰K_M的高|K_M|/2位比特為密鑰,對ID_Source||Rand_Source||ID_Des||Rand_Des進行雜湊,獲得Des_HashValue,讀取目的設(shè)備證書中的證書持有者標志ID_Des,發(fā)送目的設(shè)備唯一標志、隨機數(shù)和雜湊值ID_Des||Rand_Des||Des_HashValue;c)源設(shè)備驗證接收的ID_Des和本地存儲的ID_Des,驗證接收的雜湊值Des_HashValue;使用HMAC密鑰雜湊函數(shù)Hash,以共享密鑰K_M的低|K_M|/2位比特為密鑰,對ID_Des||Rand_Des進行雜湊,獲得Source_HashValue值,發(fā)送該雜湊值給目的設(shè)備;之后使用Hash以當(dāng)前共享密鑰K_M為密鑰,對Rand_Des||Rand_Source進行雜湊,獲得新的共享密鑰K_M=Hash(K_M,Rand_Des||Rand_Source);d)目的設(shè)備驗證接收的雜湊值Source_HashValue,驗證通過則使用Hash,以當(dāng)前共享密鑰K_M為密鑰,對Rand_Des||Rand_Source進行雜湊,獲得新的共享密鑰K_M=Hash(K_M,Rand_Des||Rand_Source)。
      7.如權(quán)利要求2所述的方法,所述單向完全認證方式是在被認證方具有證書列表的情況下,確認被認證方確實具有其發(fā)送證書的私鑰,從而確定被認證方的身份;在確認被認證方身份的同時,協(xié)商的雙方通過交換的隨機值生成雙方獨享的共享秘密,并能由認證方確認該值的一致性。
      8.如權(quán)利要求7所述的方法,在源設(shè)備和目的設(shè)備之間使用單向完全認證方式進行認證和密鑰協(xié)商時,通過以下步驟在橢圓曲線(Fq,E,G,n)上實現(xiàn)a)源設(shè)備計算隨機數(shù)1<x<n,計算標量乘xG,發(fā)送源設(shè)備唯一標志和標量乘ID_Source||xG;b)目的設(shè)備計算隨機數(shù)1<y<n,計算標量乘yG,計算共享秘密xyG,使用HMAC密鑰雜湊函數(shù)Hash,以xyG低位的|q|比特為密鑰,對源設(shè)備的證書唯一標志ID_Source進行雜湊,使用目的設(shè)備的私鑰對該雜湊值使用簽名算法E_S簽名,發(fā)送以下內(nèi)容給源設(shè)備Cert_Des_list||yG||E_S{Hash([xyG]lsb|q|,ID_Source)};使用Hash函數(shù)以xyG為密鑰,對ID_Source||xG||ID_Des||yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_M,存儲數(shù)據(jù)對&lt;K_M,ID_Source&gt;;c)源設(shè)備驗證目的設(shè)備證書是否被吊銷,驗證目的設(shè)備證書列表中證書各個域的內(nèi)容,計算共享秘密xyG,驗證接收的目的設(shè)備簽名的正確性;使用HMAC密鑰雜湊函數(shù)Hash,以xyG為密鑰,對ID_Source||xG||ID_Des||yG進行雜湊,其結(jié)果作為雙方的共享密鑰K_M,確認目的設(shè)備證書沒有被吊銷,存儲數(shù)據(jù)對&lt;K_M,ID_Des&gt;。
      9.如權(quán)利要求2所述的方法,所述單向重新認證方式是在通信雙方即源設(shè)備和目的設(shè)備具有共享密鑰K_M的情況下,由認證方確認被認證方確實擁有與認證方相同的共享秘密;在確認共享秘密的一致性之后,通信雙方通過認證方所發(fā)送的隨機數(shù)來更新雙方的共享密鑰,完成密鑰更新;被認證方身份的確認通過認證方身份與共享密鑰的綁定完成。
      10.如上述權(quán)利要求9所述的方法,在源設(shè)備和目的設(shè)備之間采用單向重新認證方式進行認證和密鑰更新時,具有以下步驟a)源設(shè)備計算隨機數(shù)Rand_Source,發(fā)送源設(shè)備唯一標志和該隨機數(shù)ID_Source||Rand_Source;b)目的設(shè)備驗證接收的ID_Source和本地存儲的ID_Source;使用HMAC密鑰雜湊函數(shù)Hash以共享密鑰K_M的低|K_M/2位比特為密鑰,對ID_Source||Rand_Source進行雜湊,獲得Uni_Des_HashValue值,讀取目的設(shè)備證書中的證書持有者標志ID_Des,發(fā)送目的設(shè)備唯一標志和雜湊值ID_Des||Uni_Des_HashValue;使用Hash,以K_M為密鑰,對Rand_Source進行雜湊,獲得新的共享密鑰K_M;c)源設(shè)備驗證接收的ID_Des和本地存儲的ID_Des,驗證雜湊值Uni_Des_HashValue;使用HMAC密鑰雜湊函數(shù)Hash以K_M為密鑰,對Rand_Source進行雜湊,獲得新的共享密鑰K_M。
      全文摘要
      本發(fā)明涉及一種電子設(shè)備接口間基于公鑰的認證密鑰協(xié)商和更新方法。參與認證密鑰協(xié)商的源設(shè)備和目的設(shè)備根據(jù)各自接口的配置信息,選擇單向或者雙向認證方式來完成認證和密鑰協(xié)商或更新。其中的單向認證方式或者雙向認證方式通過使用Diffie-Hellman密鑰交換技術(shù)來生成共享秘密;通過HMAC密鑰雜湊函數(shù)保證所生成的共享秘密的一致性和協(xié)議消息的完整性;在完全認證的情況下,通過使用簽名技術(shù)來保證證書的發(fā)送者確實持有與證書中公鑰相對應(yīng)的私鑰,從而確定設(shè)備的合法性;在重新認證的情況下,通過使用持有共享密鑰這一事實來確認設(shè)備的合法性。利用本發(fā)明的方法,可以使數(shù)字內(nèi)容在兩個合法的消費電子設(shè)備之間傳播,并且能夠使數(shù)字內(nèi)容得到有效的保護。
      文檔編號H04L9/08GK1832397SQ20051012434
      公開日2006年9月13日 申請日期2005年11月28日 優(yōu)先權(quán)日2005年11月28日
      發(fā)明者田海博, 詹陽, 王育民, 帥紅宇, 葛建華, 袁素春, 姜正濤, 譚示崇, 范欣欣 申請人:北京浦奧得數(shù)碼技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1