專利名稱:一種基于身份標識的端到端的密鑰認證協商方法及系統的制作方法
技術領域:
本發明涉及信息安全技術領域,尤其涉及一種基于身份標識的端到端的密鑰認證協商方法及系統。
背景技術:
端到端的認證和密鑰協商方法是通信網絡中廣泛用到的一種信息安全技術,具體地一般是通過公鑰密碼技術、對稱密碼技術實現。其中使用對稱密碼技術需要復雜、安全的密鑰分發、管理系統。公鑰密碼技術需要為每個用戶生成一對數學上相關聯的公鑰和私鑰,公鑰通過某種方式公開發布,使得任何發送者都可獲得接收者的公鑰,私鑰則由接收者秘密保存。傳統公鑰密碼系統中一個最大的安全問題就是如何確保使用的公鑰真正屬于指定接收者,為解決這個問題,催生了第三方證書認證中心(Certificate Authority,簡稱CA), CA為用戶的公鑰發放證書,將公鑰和用戶的身份標識綁定在一起。以CA為中心的公鑰基礎設施(Public Key Infrastructure,簡稱PKI)也以龐大的復雜性著稱。為了解決傳統公鑰密碼方案應用復雜的問題,1984年Shamir提出基于身份標識的密碼技術和系統的概念,又稱標識密碼技術和系統,以下簡稱IBCddentity BasedCryptography)技術和系統。IBC技術隸屬于公鑰密碼技術,只是用戶的身份標識就是該用戶的公鑰,不需要借助于PKI將公鑰和身份標識綁定在一起,保存主密鑰的密鑰中心根據用戶身份標識為每個用戶生成私鑰,通過安全地方式發給用戶。一些現有技術將IBC簽名或加密直接應用到傳統的密鑰協商協議(包括非基于身份標識的密鑰協商協議)中,以提高密鑰協商中的認證安全性,如申請號為200810116251.0的中 國專利“基于身份的認證方法、保密通信方法、設備和系統”,申請號為200710046320.0的中國專利“基于身份的密碼體制為基礎的業務認證方法和系統”,以及美國專利 “Identity Based Authenticated Key Agreement Protocol,,(US2010211779和 W02010126638 (A2))和“Secure Key Management in Multimedia CommunicationSystem”(US2011055567 (Al)和 W02011031439 (Al)) 還有一種基于身份標識的密鑰協商協議,利用IBC的特點而設計,如CheruCheng 和 Smart 等人 在 “ Identity-based Key Agreement Protocols FromPairings” (International Journal of Information Security, Volume 6, Number 4,213-241,2007)中總結的協議。這些協議的特點是會話密鑰根據用戶私鑰和交換的相關數據導出,且消息交換次數比較少,一般只需交換兩次即可完成一次密鑰協商,雙方的認證通過是否可導出相同的會話密鑰隱含地進行。第一種技術通過對交換消息驗簽或解密完成端到端的認證,這些操作通常計算量比較大。第二種技術采用的隱含認證方式通常是消息交換完成以后才能進行,容易引起拒絕服務攻擊(DOS)。基于第二種技術還有一種變體,即非交互地認證和密鑰協商協議,只需發送一次消息即可完成對發送端的認證和密鑰協商,但是這樣產生的會話密鑰沒有接收端的貢獻,隨機性和安全性比較差。在具有身份標識和位置分離特征的網絡架構中也存在此類問題。具有身份標識和位置分離特征的網絡架構是為了解決現有IP (InternetProtocol)網絡中IP地址二義性帶來的一些問題而提出來的。這種網絡架構將IP地址的雙重功能(傳輸層、應用層的身份標識和網絡層的可路由位置標識)分離開來,實現對移動性、多家鄉性、IP地址動態重分配、減輕路由負載及下一代互聯網中不同網絡區域之間的互訪等問題的支持。如圖1所示,一種現有的基于身份標識的認證和密鑰協商方法,由Chen-Kudla提出,發送端和接收端的身份標識分別是ID_A和ID_B,且分別已從密鑰中心PKG獲得了私鑰d_A、d_B,d_A = sH(ID_A),d_B = sH(ID_B),其中H是一個將任何字符串映射到某個橢圓曲線上的點的映射函數,s是密鑰中心的主密鑰,關于PKG的系統建立、橢圓曲線的選取、私鑰生成的算法詳細可見 RFC 5091 (Identity-Based Cryptography Standard(IBCS) #1:Supersingular Curve Implementations of the BF and BBl Cryptosystems)。發送端計算一個 隨機數a,計算生成第一密鑰交換信息(101)T_A = aH(ID_A),發送給接收端(102),接收端選取一個隨機數b,計算生成第二密鑰交換信息(103) T_B =bH(ID_B),發送給發送端(104);發送端根據自己的私鑰d_A、對方的身份標識、收到的T_B、和T_A相關的隨機數a,計算共享密鑰KEY = e (d_A, aH(ID_B)+T_B)并從中導出會話密鑰(105),其中e是PKG選擇的一個映射函數;接收端根據自己的私鑰d_B、對方的身份標識、收到的1^、和T_B相關的隨機數b,計算共享密鑰KEY = e(T_A+bH(ID_A),d_B)并從中導出會話密鑰(106)。上述方法采用隱含認證方式,消息交換完成以后才能認證對方,容易引起拒絕服務攻擊。
發明內容
本發明要解決的技術問題是提供一種安全的基于身份標識的端到端的密鑰認證協商方法及系統,適用于身份標識和位置分離的網絡。為了解決上述技術問題,本發明提供了一種基于身份標識的端到端的密鑰認證協商方法,其中,發送端生成第一密鑰交換信息,根據所述第一密鑰交換信息、發送端私鑰、發送端身份標識、接收端身份標識、第一密鑰交換相關信息生成第一消息認證碼,并將所述第一消息認證碼和第一密鑰交換信息組成第一協商消息發送至接收端;所述接收端生成第二密鑰交換信息,根據所述第二密鑰交換信息、接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二消息認證碼,并將所述第二消息認證碼和第二密鑰交換信息組成第二協商消息發送至發送端;所述發送端根據所述第一密鑰交換信息、第二密鑰交換信息、接收端身份標識、發送端身份標識生成第三消息認證碼,將所述第三消息認證碼發送至所述接收端;所述接收端驗證所述第一消息認證碼、所述發送端驗證所述第二消息認證碼、所述接收端驗證所述第三消息認證碼均成功后,所述發送端和接收端的密鑰認證協商成功。
進一步地,上述方法還可以具有以下特點:所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰,所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。進一步地,上述方法還可以具有以下特點:所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰,計算得到所述第二消息認證碼;所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼。進一步地,上述方法還可以具有以下特點:所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第二消息認證碼算法的輸入密鑰計算得到所述第二消息認證碼;所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼。進一步地,上述方法還可以具有以下特點:所述接收端收到所述第一協商消息后,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼,判斷此第一消息認證碼與從所述發送端收到的第一消息認證碼相同時,繼續生成第二密鑰交換信息,否則,判定密鑰認證協商失敗。進一步地,上述方法還可以具有以下特點:所述發送端收到第二協商消息后,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼,判斷此第二消息認證碼與從所述發送端收到的第二消息認證碼相同時,繼續生成第三消息認證碼,否則,判定密鑰認證協商失敗。進一步地,上述方法還可以具有以下特點:所述發送端收到第二協商消息后,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼,判斷此第二消息認證碼與從所述發送端收到的第二消息認證碼相同時,繼續生成第三消息認證碼,否則,判定密鑰認證協商失敗。進一步地,上述方法還可以具有以下特點:計算第一消息認證碼時,將所述發送端身份標識、接收端身份標識、所述第一密鑰交換信息作為第一消息認證碼算法的輸入消息內容;計算第二消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第二消息認證碼算法的輸入消息內容;計算第三消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第三消息認證碼算法的輸入消息內容。進一步地,上述方法還可以具有以下特點:所述第一密鑰交換相關信息包括生成所述第一密鑰交換信息時使用的隨機數;所述第二密鑰交換相關信息包括生成所述第二密鑰交換信息時使用的隨機數。為了解決上述技術問題,本發明提供了一種基于身份標識的端到端的密鑰認證協商系統,包括發送端和接收端,其中,所述發送端和接收端均包括密鑰交換信息計算模塊和消息認證碼計算模塊、密鑰計算模塊;發送端密鑰交換信息計算模塊,用于生成第一密鑰交換信息;發送端消息認證碼計算模塊,用于根據所述第一密鑰交換信息、發送端私鑰、發送端身份標識、接收端身份標識、第一密鑰交換相關信息生成第一消息認證碼,并將所述第一消息認證碼和第一密鑰交換信息組成第一協商消息發送至接收端;還用于驗證從所述接收端收到的第二消息認證碼;還用于在所述發送端收到所述第二協商消息后,根據所述第一密鑰交換信息、第二密鑰交換信息、接收端身份標識、發送端身份標識生成第三消息認證碼,將所述第三消息認證碼發送至所述接收端;接收端密鑰交換信息計算模塊,用于在所述接收端收到所述第一協商消息后,生成第二密鑰交換信息;接收端消息認證碼計算模塊,用于根據所述第二密鑰交換信息、接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二消息認證碼,并將所述第二消息認證碼和第二密鑰交換信息組成第二協商消息發送至發送端;還用于驗證從所述發送端收到的第一消息認證碼和第三消息認證碼;發送端密鑰計算模塊,用于計算第一密鑰、第一認證密鑰、第二密鑰、第二認證密鑰、會話密鑰;接收端密鑰計算模塊,用于計算第一密鑰、第一認證密鑰、第二密鑰、第二認證密鑰、會話密鑰。進一步地,上述系統還可以具有以下特點:所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼;所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰;還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。進一步地,上述系統還可以具有以下特點:所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼;所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰,計算得到所述第二消息認證碼;還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。進一步地,上述系統還可以具有以下特點:所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼;所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所第二認證密鑰中導出會話密鑰,將此會話密鑰作為第二消息認證碼算法的輸入密鑰計算得到所述第二消息認證碼;還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。進一步地,上述系統還可以具有以下特點:所述發送端消息認證碼計算模塊,還用于在計算第一消息認證碼時,將所述發送端身份標識、接收端身份標識、所述第一密鑰交換信息作為第一消息認證碼算法的輸入消息內容;還用于在計算第三消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第三消息認證碼算法的輸入消息內容;所述接收端消息認證碼計算模塊,還用于在計算第二消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第二消息認證碼算法的輸入消息內容。進一步地,上述系統還可以具有以下特點:
所述第一密鑰交換相關信息包括生成所述第一密鑰交換信息時使用的隨機數;所述第二密鑰交換相關信息包括生成所述第二密鑰交換信息時使用的隨機數。本發明提供密鑰的雙向確認協商方法,可應用于通信網絡和各種網絡應用,尤其適用于身份標識和位置分離的網絡,同時可提高密鑰協商的安全性,能夠抵抗常見攻擊。本方案中接收端在收到第一個密鑰協商消息后,就可對發送端進行認證,且認證涉及的計算效率比較高。
圖1是現有技術中的一種基于身份標識的認證和密鑰協商方法流程圖;圖2是實施例中基于身份標識的端到端的密鑰認證協商系統結構圖;圖3是實施例中基于身份標識的端到端的密鑰認證協商方法流程圖;圖4是具體實施例中一中的密鑰認證協商方法流程圖;圖5是具體實施例中二中的密鑰認證協商方法流程圖;圖6是具體實施例中三中的密鑰認證協商方法流程圖。
具體實施例方式如圖2所示,基于身份標識的端到端的密鑰認證協商系統,包括發送端和接收端。所述發送端和接收端均包括密鑰交換信息計算模塊和消息認證碼計算模塊、密鑰計算模塊。發送端密鑰交換信息計算模塊,用于生成第一密鑰交換信息;發送端消息認證碼計算模塊,用于根據所述第一密鑰交換信息、發送端私鑰、發送端身份標識、接收端身份標識、第一密鑰交換相關信息生成第一消息認證碼,并將所述第一消息認證碼和第一密鑰交換信息組成第一協商消息發送至接收端;還用于驗證從所述接收端收到的第二消息認證碼;還用于在所述發送端收到所述第二協商消息后,根據所述第一密鑰交換信息、第二密鑰交換信息、接收端身份標識、發送端身份標識生成第三消息認證碼,將所述第三消息認證碼發送至所述接收端;接收端密鑰交換信息計算模塊,用于在所述接收端收到所述第一協商消息后,生成第二密鑰交換信息;接收端消息認證碼計算模塊,用于根據所述第二密鑰交換信息、接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二消息認證碼,并將所述第二消息認證碼和第二密鑰交換信息組成第二協商消息發送至發送端;還用于驗證從所述發送端收到的第一消息認證碼和第三消息認證碼;發送端密鑰計算模塊,用于計算第一密鑰、第一認證密鑰、第二密鑰、第二認證密鑰、會話密鑰;接收端密鑰計算模塊,用于計算第一密鑰、第一認證密鑰、第二密鑰、第二認證密鑰、會話密鑰。實施方式一:所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰;還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。實施方式二:所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼;所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰,計算得到所述第二消息認證碼;還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。
實施方式三:所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼;所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所第二認證密鑰中導出會話密鑰,將此會話密鑰作為第二消息認證碼算法的輸入密鑰計算得到所述第二消息認證碼。還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。在實現上述方式時,所述發送端消息認證碼計算模塊,還用于在計算第一消息認證碼時,將所述發送端身份標識、接收端身份標識、所述第一密鑰交換信息作為第一消息認證碼算法的輸入消息內容;還用于在計算第三消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第三消息認證碼算法的輸入消息內容;所述接收端消息認證碼計算模塊,還用于在計算第二消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第二消息認證碼算法的輸入消息內容。其中,所述第一密鑰交換相關信息包括生成所述第一密鑰交換信息時使用的隨機數;所述第二密鑰交換相關信息包括生成所述第二密鑰交換信息時使用的隨機數。如圖3所示,基于身份標識的端到端的密鑰認證協商方法包括:發送端生成第一密鑰交換信息T_A(301),根據所述第一密鑰交換信息、發送端私鑰、發送端身份標識、接收端身份標識、第一密鑰交換相關信息生成第一消息認證碼mac I (302),并將所述第一消息認證碼和第一密鑰交換信息組成第一協商消息發送至接收端(303);所述接收端生成第二密鑰交換信息T_B (304),根據所述第二密鑰交換信息、接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二消息認證碼mac2 (305),并將所述第二消息認證碼和第二密鑰交換信息組成第二協商消息發送至發送端(306);所述發送端根據所述第一密鑰交換信息、第二密鑰交換信息、接收端身份標識、發送端身份標識生成第三消息認證碼mac3 (307),將所述第三消息認證碼發送至所述接收端(308);所述接收端驗證所述第一消息認證碼、所述發送端驗證所述第二消息認證碼、所述接收端驗證所述第三消息認證碼均成功后,所述發送端和接收端的密鑰認證協商成功。實施例一中:所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰,所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。實施例二中:所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰,計算得到所述第二消息認證碼;所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼。實施例三中:所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第二消息認證碼算法的輸入密鑰計算得到所述第二消息認證碼;所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼。實施例一、二、三中,接收端對第一消息認證碼的驗證過程包括:所述接收端收到所述第一協商消息后,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼,判斷此第一消息認證碼與從所述發送端收到的第一消息認證碼相同時,繼續生成第二密鑰交換信息,否則,判定密鑰認證協商失敗。實施例一、二中,發送端對第二消息認證碼的驗證過程包括:所述發送端收到第二協商消息后,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼,判斷此第二消息認證碼與從所述發送端收到的第二消息認證碼相同時,繼續生成第三消息認證碼,否則,判定密鑰認證協商失敗。實施例三中,發送端對第二消息認證碼的驗證過程包括:所述發送端收到第二協商消息后,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼,判斷此第二消息認證碼與從所述發送端收到的第二消息認證碼相同時,繼續生成第三消息認證碼,否則,判定密鑰認證協商失敗。上述方法中,計算第一消息認證碼時,將所述發送端身份標識、接收端身份標識、所述第一密鑰交換信息作為第一消息認證碼算法的輸入消息內容;計算第二消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第二消息認證碼算法的輸入消息內容;計算第三消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第三消息認證碼算法的輸入消息內容。上述方法中,所述第一密鑰交換相關信息包括但不限于生成所述第一密鑰交換信息時使用的隨機數;所述第二密鑰交換相關信息包括但不限于生成所述第二密鑰交換信息時使用的隨機數。上述方法中,發送端向接收端發送的第一協商消息中還可以包括第一附加信息,第一附加信息可包含發送端的身份標識、接收端的身份標識、發送端生成或從接收端收到的隨機數、時間戳、計數等。接收端向發送端發送的第二協商消息中還可以包括第二附加信息,第二附加信息可包含發送端的身份標識、接收端的身份標識、接收端生成或從發送端收到的隨機數、時間戳、計數等。發送端向接收端發送的第三協商消息中還可以包括第三附加信息,所述第三附加信息還可包含發送端的身份標識、接收端的身份標識、接收端生成或從發送端收到的隨機數、時間戳、計數等。
本發明提出的密鑰協商協議視第一密鑰交換信息和第二密鑰交換信息的具體內容,可支持合法監聽,監聽設備需要從PKG獲得被監聽用戶和通信對端用戶的某個時間段的私鑰,計算出雙方協商的會話密鑰;或者監聽設備將雙方交換的密鑰交換信息發送給PKG, PKG根據雙方的私鑰計算出會話密鑰并返回給監聽設備。下面以Chen-Kudla提出的方案為基礎結合附圖和具體實施例描述本發明的內容:具體實施例一如圖4所示,具體實施例一中密鑰認證協商方法包括以下步驟:步驟401,發送端生成第一密鑰交換信息T_A。步驟402,根據私鑰d_A、接收端身份標識ID_B、和與第一密鑰交換信息相關的隨機數a計算生成第一密鑰KEYl = e (d_A, (a+l)H(ID_B))。步驟403,從第一密鑰KEYl中導出一個適當長度的第一認證密鑰keyl,長度滿足消息認證碼算法MACl的要求,例如選擇HMAC作為MACl時,第一認證密鑰的長度可以是128比特;發送端以第一認證密鑰keyl作為MACl的輸入密鑰,以發送端身份標識ID_A、接收端身份標識ID_B、以及T_A的串接(ID_A,ID_B,T_A)作為MACl的輸入消息內容,計算第一消息認證碼 macl = MACl_keyl (ID_A, ID_B, T_A)。步驟404,發送端將第一密鑰交換信息T_A和第一消息認證碼macl組成第一協商消息發送給接收端。步驟405,接收端收到T_A和macl后,根據接收端私鑰d_B、第一密鑰交換信息T_Α、發送端身份標識ID_A,計算生成第一密鑰ΚΕΥΓ = e(T_A+H(ID_A),d_B)。步驟406,接收端從生成的第一密鑰ΚΕΥΓ中導出第一認證密鑰keyl’,采用發送端計算第一消息認證碼的方法重新計算第一消息認證碼macl’。步驟407,接收端驗證mac I’和收到的macl是否相同,如果相同,對ID_A的認證視為通過,執行步驟408 ;否則,認為未通過認證,停止密鑰協商,接收端退出認證協商流程。步驟408,接收端生成第二密鑰交換信息T_B。步驟409,接收端根據接收端私鑰d_B、發送端身份標識ID_A、收到的T_A、生成T_B時選擇的隨機數b計算生成第二密鑰KEY2 = e(bH(ID_A)+T_A,d_B)。步驟410,接收端從第二密鑰KEY2導出一個適當長度的第二認證密鑰key2,長度滿足所選擇的消息認證碼算法MAC2的要求,例如HMAC要求的128比特;以key2作為第二消息認證碼算法MAC2的輸入密鑰,以(ID_B,ID_A, T_B,T_A)作為MAC2的輸入消息內容,計算第二消息認證碼 mac2 = MAC2_key2 (ID_B, ID_A, T_B, T_A)。步驟411,接收端將(T_B,mac2)發送給發送端。步驟412,發送端收到(T_B,mac2)后,根據發送端私鑰d_A、接收端身份標識ID_B、收到的第二密鑰交換信息T_B、生成T_A時選擇的隨機數a,計算生成第二密鑰KEY2’ =e(d_A,aH(ID_B) +T_B)。步驟413,發送端從所述第二密鑰KEY2’中導出第二認證密鑰key2’,使用接收端計算mac2的方法重新計算第二消息認證碼mac2’。
步驟414,發送端驗證mac2’和收到的mac2是否相同,如果相同,對ID_B的認證視為通過,執行步驟415 ;否則,認為未通過認證,停止密鑰協商,發送端退出認證協商流程。
步驟415,發送端以key2’作為第三消息認證碼MAC3的輸入密鑰,以(ID_A,ID_B,T_A,T_B)作為MAC3的輸入消息內容,計算第三消息認證碼mac3 = MAC3_key2’ (ID_A, ID_B, T_A, T_B)。步驟416,發送端將mac3發送至接收端。步驟417,接收端收到mac3后,使用key2根據發送端生成mac3的方法重新計算mac3’ = MAC3_key2 (ID_A, ID_B,T_A,T_B)。步驟418,接收端驗證mac3’和收到的mac3是否相同,如果相同,視為通過認證,執行步驟419 ;否則,認為未通過認證,停止密鑰協商,接收端退出認證協商流程。步驟419,發送端從所述key2’中導出會話密鑰,接收端從key2中導出會話密鑰,將此會話密鑰作為兩端共享的會話密鑰。具體實施例二如圖5所示,具體實施例二中密鑰認證協商方法包括以下步驟:步驟501至步驟514與具體實施例一中步驟401至414相同。步驟515,發送端在驗證mac2’與mac2相同后,從key2’中導出會話密鑰key。步驟516,發送端根據key計算第三消息認證碼mac3 = MAC3_key (ID_A, ID_B, T_
A,T_B)。步驟517,發送端將mac3發送給接收端。步驟518,接收端從key2中導出會話密鑰key。步驟519,根據會話密鑰key重新計算第三消息認證碼mac3’,驗證mac3’和收到的mac3是否相同,如果相同,視為通過認證;否則,認為未通過認證,停止密鑰協商,接收端退出認證協商流程。具體實施例三如圖6所示,具體實施例三中密鑰認證協商方法包括以下步驟:步驟601至步驟609與具體實施例一中步驟401至409相同。步驟610,接收端從第二密鑰KEY2導出一個適當長度的第二認證密鑰key2,從此第二認證密鑰key2中導出會話密鑰key,以key作為第二消息認證碼算法MAC2的輸入密鑰,以(ID_B,ID_A, T_B,T_A)作為MAC2的輸入消息內容,計算第二消息認證碼mac2 =MAC2_key(ID_B,ID_A,T_B,T_A)。步驟611,接收端將(T_B, mac2)發送給發送端。步驟612,發送端收到(T_B,mac2)后,根據發送端私鑰d_A、接收端身份標識ID_
B、收到的第二密鑰交換信息T_B、生成T_A時選擇的隨機數a,計算生成第二密鑰KEY2’=e(d_A,aH(ID_B) +T_B)。步驟613,發送端從第二密鑰KEY2’中導出第二認證密鑰key2’。步驟614,發送端從此第二認證密鑰key2’中導出會話密鑰key,采用此會話密鑰key根據接收端計算mac2方式計算第二消息認 證碼mac2’。步驟615,發送端驗證11^02’和收到的1]^02是否相同,如果相同,對ID_B的認證視為通過,執行步驟616 ;否則,認為未通過認證,停止密鑰協商,發送端退出認證協商流程。步驟616,發送端以key作為第三消息認證碼MAC3的輸入密鑰,以(ID_A,ID_B,T_A, T_B)作為MAC3的輸入消息內容,計算第三消息認證碼mac3 = MAC3_key (ID_A, ID_B,T_A, T_B)。步驟617,發送端將mac3發送至接收端。步驟618,接收端使用key根據發送端生成mac3的方法重新計算mac3’ = MAC3_key(ID_A, ID_B,T_A,T_B)。步驟619,接收端驗證mac3’和收到的mac3是否相同,如果相同,視為通過認證;否則,認為未通過認證,停止密鑰協商,接收端退出認證協商流程。上述消息認證碼算法MAC1、MAC2、MAC3是雙方或系統事先約定的,包括但不限于HMAC, CBC-MAC等通過共享密鑰認證消息的算法。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相
互任意組合。當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關硬件完成,所述程序可以存儲于計算機可讀存儲介質中,如只讀存儲器、磁盤或光盤等。可選地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現。相應地,上述實施例中的各模塊/單元可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。本發明不限制于任何特定形式的硬件和軟件的結合。
權利要求
1.一種基于身份標識的端到端的密鑰認證協商方法,其中, 發送端生成第一密鑰交換信息,根據所述第一密鑰交換信息、發送端私鑰、發送端身份標識、接收端身份標識、第一密鑰交換相關信息生成第一消息認證碼,并將所述第一消息認證碼和第一密鑰交換信息組成第一協商消息發送至接收端; 所述接收端生成第二密鑰交換信息,根據所述第二密鑰交換信息、接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二消息認證碼,并將所述第二消息認證碼和第二密鑰交換信息組成第二協商消息發送至發送端; 所述發送端根據所述第一密鑰交換信息、第二密鑰交換信息、接收端身份標識、發送端身份標識生成第三消息認證碼,將所述第三消息認證碼發送至所述接收端; 所述接收端驗證所述第一消息認證碼、所述發送端驗證所述第二消息認證碼、所述接收端驗證所述第三消息認證碼均成功后,所述發送端和接收端的密鑰認證協商成功。
2.如權利要求1所述的方法,其特征在于, 所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼; 所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰, 從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰, 所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。
3.如權利要求1所述的方法,其特征在于, 所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼; 所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰,計算得到所述第二消息認證碼;所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼。
4.如權利要求1所述的方法,其特征在于, 所述發送端生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼; 所述接收端生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第二消息認證碼算法的輸入密鑰計算得到所述第二消息認證碼; 所述發送端生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼。
5.如權利要求2、3、4所述的方法,其特征在于, 所述接收端收到所述第一協商消息后,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一 密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼,判斷此第一消息認證碼與從所述發送端收到的第一消息認證碼相同時,繼續生成第二密鑰交換信息,否則,判定密鑰認證協商失敗。
6.如權利要求2、3所述的方法,其特征在于, 所述發送端收到第二協商消息后,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼,判斷此第二消息認證碼與從所述發送端收到的第二消息認證碼相同時,繼續生成第三消息認證碼,否則,判定密鑰認證協商失敗。
7.如權利要求4所述的方法,其特征在于, 所述發送端收到第二協商消息后,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼,判斷此第二消息認證碼與從所述發送端收到的第二消息認證碼相同時,繼續生成第三消息認證碼,否則,判定密鑰認證協商失敗。
8.如權利要求1至7中任一權利要求所述的方法,其特征在于, 計算第一消息認證碼時,將所述發送端身份標識、接收端身份標識、所述第一密鑰交換信息作為第一消息認證碼算法的輸入消息內容; 計算第二消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第二消息認證碼算法的輸入消息內容; 計算第三消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第三消息認證碼算法的輸入消息內容。
9.如權利要求1至7中任一權利要求所述的方法,其特征在于, 所述第一密鑰交換相關信息包括生成所述第一密鑰交換信息時使用的隨機數; 所述第二密鑰交換相關信息包括生成所述第二密鑰交換信息時使用的隨機數。
10.一種基于身份標識的端到端的密鑰認證協商系統,包括發送端和接收端,其中, 所述發送端和接收端均包括密鑰交換信息計算模塊和消息認證碼計算模塊、密鑰計算模塊; 發送端密鑰交換信息計算模塊,用于生成第一密鑰交換信息; 發送端消息認證碼計算模塊,用于根據所述第一密鑰交換信息、發送端私鑰、發送端身份標識、接收端身份標識、第一密鑰交換相關信息生成第一消息認證碼,并將所述第一消息認證碼和第一密鑰交換信息組成第一協商消息發送至接收端;還用于驗證從所述接收端收到的第二消息認證碼;還用于在所述發送端收到所述第二協商消息后,根據所述第一密鑰交換信息、第二密鑰交換信息、接收端身份標識、發送端身份標識生成第三消息認證碼,將所述第三消息認證碼發送至所述接收端; 接收端密鑰交換信息計算模塊,用于在所述接收端收到所述第一協商消息后,生成第二密鑰交換信息; 接收端消息認證碼計算模塊,用于根據所述第二密鑰交換信息、接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二消息認證碼,并將所述第二消息認證碼和第二密鑰交換信息組成第二協商消息發送至發送端;還用于驗證從所述發送端收到的第一消息認證碼和第三消息認證碼; 發送端密鑰計算模塊,用于計算第一密鑰、第一認證密鑰、第二密鑰、第二認證密鑰、會話密鑰; 接收端密鑰計算模塊,用于計算第一密鑰、第一認證密鑰、第二密鑰、第二認證密鑰、會話密鑰。
11.如權利要求10所述的系統,其特征在于, 所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第 一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼; 所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰;還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。
12.如權利要求10所述的系統,其特征在于, 所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼; 所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,將所述第二認證密鑰作為第二消息認證碼算法的輸入密鑰,計算得到所述第二消息認證碼;還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。
13.如權利要求10所述的系統,其特征在于, 所述發送端消息認證碼計算模塊,還用于在生成第一消息認證碼時,根據發送端私鑰、接收端身份標識、第一密鑰交換相關信息生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰,計算得到所述第一消息認證碼;還用于在驗證從所述接收端收到的第二消息認證碼時,根據發送端私鑰、接收端身份標識、所述第二密鑰交換信息、第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第二消息認證碼算法的輸入密鑰生成第二消息認證碼;還`用于在生成第三消息認證碼時,根據所述發送端私鑰、所述接收端身份標識、所述第二密鑰交換信息、所述第一密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將此會話密鑰作為第三消息認證碼算法的輸入密鑰計算得到所述第三消息認證碼; 所述接收端消息認證碼計算模塊,還用于在生成第二消息認證碼時,根據接收端私鑰、發送端身份標識、所述第一密鑰交換信息、第二密鑰交換相關信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所第二認證密鑰中導出會話密鑰,將此會話密鑰作為第二消息認證碼算法的輸入密鑰計算得到所述第二消息認證碼;還用于在驗證從所述發送端收到的第一消息認證碼時,根據接收端私鑰、所述第一密鑰交換信息、發送端身份標識計算生成第一密鑰,從所述第一密鑰中導出第一認證密鑰,將所述第一認證密鑰作為第一消息認證碼算法的輸入密鑰生成第一消息認證碼;還用于在驗證從所述發送端收到的第三消息認證碼時,根據所述接收端私鑰、所述發送端身份標識、所述第二密鑰交換相關信息、所述第一密鑰交換信息生成第二密鑰,從所述第二密鑰中導出第二認證密鑰,從所述第二認證密鑰中導出會話密鑰,將所述會話密鑰作為第三消息認證碼算法的輸入密鑰,計算得到所述第三消息認證碼。
14.如權利要求10至13中任一權利要求所述的系統,其特征在于, 所述發送端消息認證碼計算模塊,還用于在計算第一消息認證碼時,將所述發送端身份標識、接收端身份標識、所述第一密鑰交換信息作為第一消息認證碼算法的輸入消息內容;還用于在計算第三消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第三消息認證碼算法的輸入消息內容; 所述接收端消息認證碼計算模塊,還用于在計算第二消息認證碼時,將所述第一密鑰交換信息、第二密鑰交換信息、所述發送端身份標識、所述接收端身份標識作為第二消息認證碼算法的輸入消息內容。
15.如權利要求10至13中任一權利要求所述的系統,其特征在于, 所述第一密鑰交換相關信息包括生成所述第一密鑰交換信息時使用的隨機數; 所述第二密鑰交換 相關信息包括生成所述第二密鑰交換信息時使用的隨機數。
全文摘要
本發明公開了一種基于身份標識的端到端的密鑰認證協商方法及系統,發送端生成第一密鑰交換信息T_A,根據T_A、發送端私鑰、發送端身份標識ID_A、接收端身份標識ID_B、第一密鑰交換相關信息生成第一消息認證碼mac1,將mac1和T_A發送至接收端;接收端生成第二密鑰交換信息T_B,根據第二密鑰交換信息T_B、接收端私鑰、ID_A、T_A、第二密鑰交換相關信息生成第二消息認證碼mac2,并將mac2和T_B發送至發送端;發送端根據T_A、T_B、ID_A、ID_B生成第三消息認證碼mac3;接收端驗證mac1、發送端驗證mac2、接收端驗證mac3均成功后兩端密鑰認證協商成功。本發明尤其適用于身份標識和位置分離的網絡,同時可提高密鑰協商的安全性。
文檔編號H04L9/08GK103188080SQ20111045979
公開日2013年7月3日 申請日期2011年12月31日 優先權日2011年12月31日
發明者周蘇靜, 韋銀星 申請人:中興通訊股份有限公司