基于無證書的橢圓曲線混合簽密方法
【技術領域】
[0001]本發明屬于網絡信息安全技術領域,具體涉及到無證書密碼學或橢圓曲線密碼學或混合簽密方法。
【背景技術】
[0002]為了能同時達到保密并認證的效果以及能簽密任意長度的消息,Dent于2005年提出了混合簽密的概念。混合簽密具有設計靈活、運算效率高和對消息長度沒有限制等優勢,是公鑰密碼系統的最主要應用之一。混合簽密由非對稱部分和對稱部分組成,非對稱部分在發送者私鑰和接收者公鑰的共同作用下生成對稱密鑰和對稱密鑰封裝,對稱部分則利用對稱密鑰和加密算法加密任意長度的消息。混合簽密的各部分相互獨立,因而可以分別研宄,目前已成為實現加密并認證的重要手段而且安全性越來越完善。然而,絕大多數無證書模式下的混合簽密方法都是基于雙線性對的,計算代價較大。
[0003]無線傳感器網絡具有拓撲易變化、節點能源受限、網絡易受攻擊等特性。目前,無線傳感器網絡中運用混合簽密方法還存在以下問題:1)網絡必須有可信中心為用戶生成公鑰。2)需要安全信道傳送秘密信息。3)計算量和通信成本比較大。4)密鑰需要托管給可信中心。前兩個問題在無線傳感器網絡中不可實現,而后兩個問題對這種資源受限的環境也是不合理的,因此都是需要極力克服。
【發明內容】
[0004]本發明所要解決的技術問題在于客服現有技術的不足,提供一種安全性好、運算效率高、通信成本低的基于無證書的橢圓曲線混合簽密方法。
[0005]解決上述技術問題所采用的技術方案由下述步驟組成:
[0006]A、系統初始化
[0007](Al)密鑰生成中心選擇一個k比特的素數P和一個定義在有限域Fp上的橢圓曲線E,G是加法循環群65的一個生成元。
[0008](A2)密鑰生成中心選擇密碼學安全的Hash函數H1 = H4。
[0009](A3)密鑰生成中心選擇主密鑰z e E Z/并計算系統公鑰y = zG e Gp。
[0010](A4)密鑰生成中心公開系統參數P = (Fp, E, Gp, G, I, y, H1 = H4),保密主密鑰z。
[0011]B.、生成用戶的私鑰和公鑰
[0012](BI)身份為土土的發送方Alice隨機選擇私鑰x ae Z/并計算其公鑰y a =xaG e Gp0
[0013](B2)身份為idb的接收方Bob隨機選擇私鑰xbe Z/并計算其公鑰y b= xbG e Gp。
[0014]C.、生成用戶的部分公鑰和部分私鑰
[0015](Cl)密鑰生成中心和身份為發送方Alice通過交互協議生成Alice的部分公鑰Ua和部分私鑰s ao
[0016](C2)密鑰生成中心和身份為idb的接收方Bob通過交互協議生成部分公鑰Ub和部分私鑰Sb。
[0017]D、簽密
[0018](Dl)身份為14的發送方Alice選擇一個隨機數n e 2/,計算1.= qG,t =n (%+Hi (idb) y),κ = H2 (t, n yb),c = DEM.Enc O,m)。
[0019](D2) Alice用自己的私鑰生成對消息m的簽名(e, n, s)。
[0020](D3) Alice通過公開信道將生成的密文C — (r, c, e, n, s)發送給身份為idb的接收方Bob。
[0021]E、解簽密
[0022](El)身份為idb的接收方Bob收到密文C后,計算t = s br和κ = H2 (t, xbr),恢復出明文 m = DEM.Dec ( κ,c)。
[0023](E2) Bob 計算 γ = H4 (t, xbr)和 u = s γ -enmodp。
[0024](E3) Bob 計算 η’ = H3 (ida, idb, m, r, γ,u)。
[0025](E4)Bob驗證η’ = η是否成立?如果驗證不通過,Bob拒絕接收Alice發給他的密文,即密文無效;否則,接受恢復出的消息m。
[0026]在本發明的步驟A2中,密碼學安全的Hash函數是:H1: {O, I}*- ZH2IGpXGp- {O, 1} 'H3: {0,1}*2X {0,l}nXGp3—ZP*,H4: {0,1}*XGP3—Gp,其中 β 是一個數據封裝機制的對稱密鑰長度。
[0027]在本發明的步驟Cl中,密鑰生成中心和身份為14的發送方Alice通過交互協議生成Alice的部分公鑰Ua和部分私鑰s a,生成過程如下:
[0028]密鑰生成中心選擇一個隨機數lae Z p%計算Alice的部分公鑰Ua= I aG和部分私鑰 sa= ZH1QdaHla mod p,密鑰生成中心計算 Ya= s aG+laya并發送(s a, ua, Ya)給 Alice,Alice通過下面等式驗證部分公鑰Ua和部分私鑰s 3的真實性:
[0029]saG = Ua-H1 (ida)y 和 saG = Ya_xaua。
[0030]在本發明的步驟C2中,密鑰生成中心和身份為14的發送方Alice通過交互協議生成Alice的部分公鑰Ub和部分私鑰s b,生成過程如下:
[0031]密鑰生成中心選擇一個隨機數lbe Z/,計算Bob的部分公鑰Ub= IbG和部分私鑰Sb=ZH1QdbHlb mod p,密鑰生成中心計算 Yb= sbG+ubyb 并發送(sb,ub,Yb)給 Bob,Bob 通過下面等式驗證部分公鑰Ub和部分私鑰s 真實性:
[0032]sbG = Ub-H1 (idb)y 和 sbG = Yb_xbub。
[0033]在本發明的步驟D2中,Alice用自己的私鑰生成消息m的簽名,通過如下步驟實現:
[0034](D21)Alice 計算 γ = H4 (t, n yb)。
[0035](D22)Alice 計算 u = η γ。
[0036](D23)Alice 計算 e = γ (sa+xa)。
[0037](D24)Alice 計算 n = H3(ida, idb, m, r, γ,u)。
[0038](D25)Alice 計算 s = η+n(sa+xa)modp。
[0039]式中r = n G, t = n (%+? (idb) y)。
[0040]本發明將混合簽密和橢圓曲線密碼學技術同時擴展到無證書環境,提出了一種基于無證書的橢圓曲線混合簽密方法。該方法可以使發送方在資源受限的網絡環境中為接收方生成任意消息的密文,除接收方之外的其他人看不到真實消息,同時接收方能確信消息源自發送方。
[0041]基于無證書的橢圓曲線混合簽密方法中,用戶的公私鑰由用戶自己生成,而其部分公私鑰由密鑰生成中心生成。該方法克服了傳統公鑰基礎設施中證書產生、存儲、分發、撤銷以及驗證證書的計算費用等問題,消除了身份密碼學中固有的密鑰托管問題,無需安全信道,可以同時達到保密并認證的效果,可以簽密任意長度的消息。本發明具有安全性好、運算效率高、通信成本低等優點,可用于資源受限的無線傳感器網絡。
【附圖說明】
[0042]圖1是實施例1中步驟4的簽密和步驟5的解簽密流程圖。
【具體實施方式】
[0043]下面結合附圖和實施例對本發明進一步詳細說明,但本發明不限于這些實施例。
[0044]實施例1
[0045]以密鑰生成中心選擇的大素數p,P為2192 _ 264 -1為例,基于無證書的橢圓曲線混合簽密方法步驟如下:
[0046]A、系統初始化
[0047](Al)密鑰生成中心選擇一個大素數P,P為2192 - 264 - 1,有限域Fp上的同余方程I2= X 3+ax+bmodp所有解(x, y) e FpXFp,連同一個無窮遠點O共同構成Fp上的橢圓曲線E:y2= X 3+ax+b,其中a, b e Fp是滿足4a 3+27bV O的常量。E (a, b)和無窮遠點O組成一個加法循環群Gp,G是群65的一個生成元。
[0048](A2)密鑰生成中心選擇密碼學安全的Hash函數包括:H1: {O, I}*- Z /,H2IGpXGp- {O, 1} 'H3: {0,1}*2X {0,l}nXGp3—ZP*,H4: {0,1}*XGP3—Gp,其中 β 是一個數據封裝機制(DEM)的對稱密鑰長度。
[0049](A3)密鑰生成中心選擇主密鑰ζ e E Z/并計算系統公鑰y = zG e Gp。
[0050](A4)密鑰生成中心公開系統參數P = (Fp, E, Gp, G, I, y, H1:H4),保密主密鑰ζ。
[0051]B、生成用戶的私鑰和公鑰
[0052](BI)身份為土土的發送方Alice隨機選擇私鑰x ae Z/并計算其公鑰y a =xaG e Gp0
[0053](B2)身份為idb的接收方Bob隨機選擇私鑰xbe Z/并計算其公鑰y b= xbG e Gp。
[0054]C、生成用戶的部分公鑰和部分私鑰
[0055](Cl)密鑰生成中心和身份為發送方Alice通過交互協議生成Alice的部分公鑰Ua和部分私鑰s a,生成Alice的部分公鑰Ua和部分私鑰s 3的具體步驟如下:
[0056]密鑰生成中心選擇一個隨機數lae Z p%計算Alice的部分公鑰Ua= I aG和部分私鑰Sa= zH丨(ida)+lamodp,密鑰生成中心計算Ya= s aG+laya并發送(s a, ua, Ya)給Alice,Alice可以通過下面等式驗證部分公鑰Ua和部分私鑰s 3的真實性:
[0057]saG = Ua-H1 (ida) y 和 saG = Ya_xaua。
[0058](C2)密鑰生成中心和身份為idb的接收方Bob通過交互協議生成部分公鑰u ,和部分私鑰sb,生成部分公鑰Ub和部分私鑰s 具體步驟如下:
[0059]密鑰生成中心選擇一個隨機數lbe Z/,計算Bob的部分公鑰Ub= IbG和部分私鑰Sb=ZH1QdbHlb mod p,密鑰生成中心計算 Yb= sbG+ubyb 并發送(sb,ub,Yb)給 Bob,Bob 通過下面等式驗證部分公鑰Ub和部分私鑰s 真實性:
[0060]sbG = Ub-H1 (idb)y 和 sbG = Yb_xbub。
[0061]D、簽密
[0062](Dl)身份為發送方Alice選擇一個隨機數n e Zp>^計算r= qG,t =n (%+Hi (idb) y),κ = H2 (t, n yb),c = DEM.Enc O,m)。
[0063]