基于橢圓曲線碼的用戶身份相互認證方法
【技術領域】
[0001] 本發明屬于無線通信中的安全、隱私保護技術領域,具體涉及一種基于橢圓曲線 碼的用戶身份相互認證方法。
【背景技術】
[0002] AdHoc網絡作為一種特殊的移動自組織網絡,有著廣泛的應用場合,特別適合于 戰術通信、應急通信、臨時通信等場合。移動AdHoc網絡不需要任何基礎設施,具有網絡拓 撲結構動態變化,存儲容量、計算能力及能量有限,帶寬受限、網絡安全性差等特點,使得Ad Hoc網絡很容易受到各種攻擊。安全問題是其需要解決的關鍵問題之一,而身份認證又是網 絡系統中的第一道安全屏障,對于AdHoc網絡來說,每個節點需要能夠確認與其通信的節 點身份,如果沒有認證,攻擊者很容易冒充其它節點,獲得重要的系統資源,進而干擾正常 節點間通信。通過身份認證可以證實用戶身份的真實性,防止非授權用戶對系統資源的訪 問和合法用戶對系統資源的非法訪問。因此為了實現安全通信,首先需要進行身份認證。
[0003] 傳統的基于公鑰基礎設施(PublicKeyInfrastructure,PKI)的密碼系統中,由 于實體的身份和公鑰通常是由認證中心(CertificationAuthority,CA)頒發的公鑰證書 來綁定,證書的高存儲、高計算開銷和復雜的管理、維護過程,大大加重了系統負擔。驗證者 驗證簽名人身份時,首先需要驗證CA對簽名人公鑰證書的簽名,然后利用簽名人的公鑰驗 證簽名信息。兩次簽名驗證對于計算能力有限的AdHoc網絡來說是一種負擔。
[0004] 在基于身份密碼系統中,公鑰是身份的函數,驗證者不需要驗證用戶的公鑰。用戶 的私鑰由可信的第三方密鑰產生中心(KeyGenerationCenter,KGC)生成。不需要公鑰的 存儲比如數字證書,KGC只需要維護其產生的公開系統參數目錄,省去了維護所有用戶公鑰 目錄的系統開銷。但是所有用戶私鑰統一由KGC生成,如果KGC不再可信或者KGC的私鑰 被攻擊者竊取,整個系統的安全性就喪失。
[0005] 自認證公鑰系統是一種介于PKI公鑰密碼系統與基于身份密碼系統之間的類型, CA將簽名信息嵌入在用戶公鑰中,用戶能夠從簽名中推導出其公鑰,用戶公鑰不需要單獨 的認證證書,不像基于PKI密碼系統那樣需要明確的證書對公鑰進行認證,同時也避免了 基于身份認證系統中的密鑰托管問題。
[0006] 此外,橢圓曲線密碼體制(EllipticCurvesCryptography,ECC)以橢圓曲線離散 對數問題難解性為安全基礎,在數據簽名和認證過程中的安全性能方面有著自身獨有的特 點及優勢。將橢圓曲線密碼體制與AdHoc網絡相結合,能夠提供更好的安全性能。因此, 對于資源和帶寬有限的AdHoc網絡來說,ECC算法是最佳選擇。
【發明內容】
[0007] 本發明的目的就是針對現有技術的不足,結合AdHoc網絡自身特點,基于自認證 公鑰系統,提出一種基于橢圓曲線碼的用戶身份相互認證方法。
[0008] 本發明方法在用戶相互認證的同時實現了密鑰協商的功能,用戶身份的驗證可以 在一個邏輯步驟中完成,減少了驗證次數而加快認證速度,且能抵抗各種攻擊,存儲開銷、 通信開銷及計算開銷都很少,適合于存儲能力、計算能力和帶寬受限的AdHoc網絡中。
[0009] 為了實現上述目的,本發明所采用的技術方案的具體步驟為:
[0010] 步驟1、系統初始化:首先CA(認證中心)選取一條基于素數域GF(p)上160bit橢 圓曲線E(GF(p)),橢圓曲線方程為:
[0011] y2=x3+ax+b(modp),a,bGGF(p),且(4a3+27b2)modp辛Ox、y為方程變量,橢圓 曲線域參數為T= (p,a,b,G,n,h),a和b為橢圓曲線方程的參數,p為素數,h為余因子,n 為基點G的階;CA隨機選取一個整數作為認證中心私鑰sCA,且sCAe[2,n-2],得到認證中 心公鑰PCA,PCA=sCA ?G;
[0012] 步驟2、用戶注冊階段:用戶通過向CA注冊產生其公/私鑰對;用戶U的私鑰由用 戶U和CA共同生成,同時CA不能獲知用戶U的私鑰,并且CA將簽名信息嵌入在用戶U的 公鑰中;具體過程如下:
[0013] (1)、用戶U用隨機數發生器產生一個臨時交互號&,并隨機選取一個整數r' ",且 IDu為用戶U的身份標識符,SHA表示安全單向散列函數;然后將消息
【主權項】
1.基于橢圓曲線碼的用戶身份相互認證方法,其特征在于,該方法的具體步驟是: 步驟1、系統初始化:首先認證中心CA選取一條基于素數域GF (P)上160bit橢圓曲線 E (GF(P)),橢圓曲線方程為: y2=x3+ax+b(modp),a,b e GF(p),且(4a3+27b2)modp 辛 Ox、y 為方程變量,橢圓曲線 域參數為T = (p, a, b, G, n, h),a和b為橢圓曲線方程的參數,p為素數,h為余因子,η為基 點G的階;認證中心CA隨機選取一個整數作為認證中心私鑰s CA,且sCAe [2, η-2],得到認 證中心公鑰PCA,Pca= s CA · G ; 步驟2、用戶注冊階段:用戶通過向認證中心CA注冊產生其公/私鑰對;用戶U的私鑰 由用戶U和認證中心CA共同生成,同時認證中心CA不能獲知用戶U的私鑰,并且認證中心 CA將簽名信息嵌入在用戶U的公鑰中;具體過程如下: (1) 用戶U用隨機數發生器產生一個臨時交互號N1,并隨機選取一個整數 r ' u,且 r ' ue [2, n_2],得到用戶 U 的注冊信息 R ' w, R r U=Trπ · G, W= /D(; ·匕),IDu為用戶U的身份標識符,SHA表示安全單向散列函數;然后 將消息(N1, R' u, w)發送給認證中心CA ; (2) 認證中心CA收到消息(N1, R ' u, w)后核實IDU: = W十S/A4(.v, ·/?,'),其中 SHA(sCA · R' u) = SHA(sCA · r' u · G) = SHA(r' u · Pca);如果認證中心 CA 的注冊文件中 包含IDu,表示為已經注冊用戶,未包含表示未注冊的新用戶; 如果是新用戶,認證中心CA隨機選取另一個整數冗,且& e[2,"-2],得到用戶U的簽 名信息Ru和々盡· G, = [(.V, ·/Dr,/?;. · λ) + 弓)]mod ?,其中 Ru · X 表示 Ru的橫坐標值; 認證中心CA用隨機數發生器產生另一個臨時交互號N2,將明文信息(^,^,^,^發 送給用戶U ; ⑶用戶U收到明文信息(化Hi)后,得到用戶U的私鑰Su,& =1 +<;同時, 若 Su · G = Pca · [(SHACtDu, Ru · X))modn]+Ru,則用戶 U 的公鑰為 Pip Pu= Su · G ; (4) 用戶U將消息SHA(r,u · PCA,N2)發送給認證中心CA ; (5) 認證中心CA收到消息后,將消息SHA(sCA · R '",N2)與接收到的消息 SHA(r' υ·Ρα,Ν2)進行對比,如果相等,則說明消息來自于用戶U且用戶已成功驗證用戶的 公鑰;認證中心CA將用戶U的10"等注冊信息保存在一個注冊文件中; 用戶U存儲認證中心CA的PeA和參數Ru、%、IDu信息,其他用戶通過P "、化和ID u得到 用戶 U 的公鑰,Pu= P CA · [(SHAdDu, RuDmodn]+%; 步驟3、用戶身份相互認證,具體步驟如下: ① 發送者首先用隨機數發生器產生臨時交互號Nt,并隨機選取整數巧,且 !1£[2,11-2],得到信息(: 1,(:1=1'1*6,利用3撤函數將信息隊、(:1、取、艮生成摘要 SHA(Nt,C1, IDt,Rt),IDt為發送者的身份標識符,Rt為發送者的簽名參數;加密后得到簽名信 息 signT, signT = (!^+St · SHA(Nt, C1, IDt, Rt))modn,級連上 N0Cp IDt、Rt發送給接收者; ② 接收者收到消息后,首先需要利用PCA、IDt、Rt,重構出發送者的公鑰P t, Pt= Pca· [(SHA(IDt,Rt'x))modn]+Rt,并驗證數字簽名,如果 signT.G = CfPt · [ (SHA (Nt,C1, IDt,Rt)) modn],則表明發送者身份是合法的,接收者用隨機數發生 器產生臨時交互號隊,并隨機選取整數r2,且r 2e [2, n-2],得到信息C 2, C2= r 2 · G ;會 話密鑰Krt= SHA(C i · sr+r2 · Pt),利用SHA函數將信息Krt、Nt、隊、C2、ID r、Rr生成摘要 SHA(Krt,H C2, 1?, RJ,級連上Nt、隊、C2、取、1^發送給發送者,ID r為接收者的身份標識 符,艮為接收者的簽名參數; ③ 發送者收到消息后,由臨時交互號Nt確定是當前協議回合,然后利用P CA、1?、艮, 重構出接收者的公鑰Pr,Pr= P CA · [ (SHA (IDr,Rr · X)) modn] +Rr,計算會話密鑰Ktr = SHA (C2 · st+ri .Pr),如果 SHA (Ktr,Nt,Nr,C2, IDr,Rr)與 SHA (Krt,Nt,Nr,C2, IDr,Rr)相等,則表明 驗證用戶接收者身份是合法的,同時表明用戶接收者已經驗證用戶發送者身份的真實性, 然后生成SHA(K ta,隊)返回給用戶接收者; ④ 接收者收到消息SHA (Kt,,N,)后進行驗證,如果消息SHA (Krt,N,)與收到的消息 SHA (Κ&,隊)相等,則確定是當前協議回合,而不是重放的,同時也表明發送者已驗證接收者 身份的真實性,會話密鑰協商成功。
【專利摘要】本發明涉及基于橢圓曲線密碼的用戶身份相互認證方法。本發明考慮了Ad Hoc網絡存儲能力、計算能力和帶寬受限的特點,利用自認證公鑰系統和橢圓曲線離散對數問題難解性,減少了用戶身份認證過程的交互次數、加快認證速度。本發明方法包括系統初始化、用戶注冊階段和用戶身份相互認證階段。本發明方法保證用戶身份相互認證的同時也實現了會話密鑰協商的功能,存儲開銷、通信開銷與計算開銷都很少,可以抵抗重放攻擊、中間人攻擊、偽裝與篡改攻擊、抗密鑰泄露偽裝攻擊,生成的一次性會話密鑰具有前向安全和后向安全性,具有更高的安全性。
【IPC分類】H04L9-30, H04L9-32
【公開號】CN104639329
【申請號】CN201510053788
【發明人】陳惠芳, 謝磊, 葛琳琳
【申請人】浙江大學
【公開日】2015年5月20日
【申請日】2015年2月2日