基于身份的電子簽章的實現(xiàn)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及電子簽章技術(shù)領(lǐng)域,尤其涉及一種基于身份的電子簽章的實現(xiàn)方法和 裝直。
【背景技術(shù)】
[0002] 隨著公鑰密鑰技術(shù)的廣泛使用,數(shù)字簽名技術(shù)成為網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)恼鎸嵭浴⑼暾?性和不可否認(rèn)性的重要保證。在傳統(tǒng)的紙質(zhì)辦公過程中,采用簽字蓋章的方式來對文件內(nèi) 容進(jìn)行確認(rèn)或?qū)徍?。將簽字或印章的圖像與用戶私鑰綁定,形成電子印章,利用電子印章對 電子文檔實施數(shù)字簽名操作,以實現(xiàn)簽字或印章圖像與數(shù)字簽名的有效融合。
[0003] Shamir在1984年提出了一種新的密碼體制--基于身份的公鑰密碼體制,其主 要特性是在這一密碼體制下,公鑰可以為任意字符串。于是我們可以將某一實體的身份信 息直接作為其公鑰,從而繞開了公鑰和其持有者身份的綁定問題,這會極大地減化了傳統(tǒng) PKI (PublicKeylnfrastructure,公鑰基礎(chǔ)設(shè)施)中 CA (Certification Authority,認(rèn)證 管理機(jī)構(gòu))對用戶證書進(jìn)行的復(fù)雜管理。
[0004] 基于身份的公鑰加密體制的亮點就是直接利用用戶的身份信息作為用戶的公鑰, 這樣任何人都可以直接利用用戶的身份信息直接加密明文,省去了公鑰的認(rèn)證步驟,也省 去了 CA對公鑰證書的繁瑣管理。自Shamir于1984年提出基于身份加密的思想以來, 直到2001年,真正實用的系統(tǒng)才由Boneh和Franklin以及Cocks開發(fā)出來。Boneh和 Frankl in提出了第一個基于身份的可證安全的加密方案,他們的方案基于BDHC (Bi I inear Diffie-Hellman Computational)問題。在BDHC問題是困難的假設(shè)下,證明了該方案是選 擇密文安全的(即在適應(yīng)性選擇密文攻擊下是語義安全的)。
[0005] 自Boneh和Franklin的開創(chuàng)性工作以來,幾乎所有的基于身份的公鑰加密體制都 是基于雙線性配對的,現(xiàn)對雙線性配對的概念進(jìn)行說明:
[0006] 雙線性配對:設(shè)Gl和G2是階為q的循環(huán)加法群,Gl的生成元為Pl,G2的生成元 為P2, GT為具有相同階q的循環(huán)乘法群,其中q是一個至少160比特的大素數(shù)。假設(shè)G1、 G2和GT這三個群中的離散對數(shù)問題都是困難問題。雙線性配對是一個從集合G1XG2到集 合GT的一個映射,表示為^ = G1XG2 - Gt,該映射具有如下性質(zhì):
[0007] 雙線性:對于任意gl e G1, g2 e G2和任意的整數(shù)a, b e Zp*,有Mg13, g2b)= e Cg1, g2);
[0008] 非退化性:存在 gl e G1, g2 e G2 使得 g (gl,g2)關(guān) 1 ;
[0009] 可計算性:對任意的gl e G1, g2 e G2,都可以快速地計算g (gl,g2)的值。
[0010] 基于身份的公鑰加密體制都有一個PKG (Prviate Key Generator,用戶私鑰生成 中心),PKG管理所有的用戶,并向用戶提供在線服務(wù)。對于每一個向PKG提交身份信息進(jìn) 行私鑰查詢的用戶,該PKG首先負(fù)責(zé)對用戶進(jìn)行認(rèn)證,用戶認(rèn)證通過后,PKG為用戶生成與 身份信息相對應(yīng)的私鑰,并經(jīng)過安全信道向用戶發(fā)放私鑰。
[0011] 當(dāng)收到用戶A針對某電子文檔的電子印章時,用戶B可以利用A的身份信息104對 簽名信息直接離線驗證,而無需像傳統(tǒng)的PKI中先通過CA得到用戶A的公鑰證書,并驗證 證書的合法性和有效性后才能利用用戶A的公鑰對簽名消息進(jìn)行驗證。
[0012] 為了將基于身份密碼技術(shù)應(yīng)用于電子簽章中,國內(nèi)有專家學(xué)者進(jìn)行了有益嘗試, 比較有代表性的有:
[0013] 李剛,顧永跟在《計算機(jī)應(yīng)用與軟件》2009年6月刊(第26卷第6期)發(fā)表的文獻(xiàn) 1 :《基于身份的電子印章設(shè)計與實現(xiàn)》;
[0014] 劉宏偉在《計算機(jī)工程與設(shè)計》2008年4月刊(第29卷第7期)發(fā)表的文獻(xiàn)2 :《基 于身份的數(shù)字簽名系統(tǒng)設(shè)計研究》;
[0015] 上述文獻(xiàn)1和文獻(xiàn)2的方案的缺點為簽名信息過長,如文獻(xiàn)1中的簽名信息長度 是4n,文獻(xiàn)2的簽名信息長度是2n,其中η是有限域F p的位長,這樣在資源受限的背景下, 上述文獻(xiàn)1和文獻(xiàn)2的方案的使用就受到很大局限性。
【發(fā)明內(nèi)容】
[0016] 本發(fā)明的實施例提供了一種基于身份的電子簽章的實現(xiàn)方法,以實現(xiàn)有效地將基 于身份的密碼技術(shù)應(yīng)用于電子簽章中。
[0017] 本發(fā)明提供了如下方案:
[0018] 一種基于身份的電子簽章的實現(xiàn)方法,包括:
[0019] 選定安全橢圓曲線,定義有限域Fp上橢圓曲線E的方程:y2=x 3+ax+b,其中,a, b為 設(shè)定的參數(shù),P、q為設(shè)定的大素數(shù),曲線E的階#E (Fp) =cf*q,其中Cf為余因子,q是生成元 P1的階,q>2191,曲線E (Fp)相對于q的嵌入次數(shù)為k,要求pk>2 1536,對于q階循環(huán)加法群G1 和G2,以及循環(huán)乘法群Gt,定義雙線性映射g: G1X G2 - Gt,其中P1是G1的生成元,P2是G 2的 生成元;
[0020] H1 : 1}* - G1,是一個單向hash函數(shù),把一個任意長度0、1字符串映射到G1上 橢圓曲線的一個點;
[0021] f 1(),丨廣-是一個單向Hash函數(shù);
[0022] 用戶私鑰生成中心PKG保密主密鑰s,公開系統(tǒng)參數(shù){p,q,E,k,G1, P1, G2, P2, Ppub,Gt ,8,?,?},其中 Ppub=s*P2 e G2。
[0023] PKG設(shè)定用戶私鑰更新的周期Time,將印章上文字作為用戶標(biāo)識ID,將用戶標(biāo)識 和更新時間進(jìn)行聯(lián)接,通過對H1求哈希獲取用戶公鑰Q id :
[0024] Qid=H1 (ID I I Time) e G1
[0025] 根據(jù)用戶公鑰Qid計算得到個人用戶的私鑰
[0026] dID=s Qid e G1O
[0027] 所述的方法還包括:
[0028] 簽章用戶選擇隨機(jī)數(shù)r e Zq'計算U=rP2,所述表示1?(q-Ι)范圍內(nèi)的整數(shù), 簽章用戶將所述U發(fā)布;
[0029] 計算h = H2 (m),所述m為需要做電子簽章的電子文檔;
[0030] 計算T = dID/ (r+h),所述dID為所述簽章用戶的私鑰;
[0031] 所述簽章用戶將T的橫坐標(biāo)X作為對電子文檔m的數(shù)字簽名,將所述數(shù)字簽名信 息嵌入到所述簽章用戶的公章圖像中得到電子簽章,將所述電子簽章設(shè)置到所述電子文檔 m中。
[0032] 所述的方法還包括:
[0033] 接收用戶接收到所述電子文檔m后,從所述電子文檔m中的電子簽章中提取出數(shù) 字簽名X ;
[0034] 所述接收用戶計算gi = § (QID, Ppub),計算h = H2 (m),根據(jù)橫坐標(biāo)X計算得到曲線 上的點 Τ',計算 g2 = g (Τ',U+hP2);
[0035] 若82=81或82=8「 1,則確定所述電子文檔111的電子簽章正確;否則,確定所述電子文 檔m的電子簽章不正確。
[0036] -種基于身份的電子簽章的實現(xiàn)裝置,包括:
[0037] 系統(tǒng)參數(shù)生成模塊,用于選定安全橢圓曲線,定義有限域Fp上橢圓曲線E的方程: y2=x3+ax+b,其中,a, b為設(shè)定的參數(shù),p、q為設(shè)定的大素數(shù),曲線E的階#E (Fp) =cf*q,其中 Cf為余因子,q是生成元P1的階,q>2191,曲線E (Fp)相對于q的嵌入次數(shù)為k,要求pk>21536, 對于q階循環(huán)加法群G 1和G2,以及循環(huán)乘法群GT,定義雙線性映射^ = G1XG2 - Gt,其中P1 是G1的生成元,P2是G2的生成元;
[0038] H1 : 1}* - G1,是一個單向hash函數(shù),把一個任意長度0、1字符串映射到G1上 橢圓曲線的一個點;
[0039] H2: 1丨是一個單向 Hash函數(shù);
[0040] 用戶私鑰生成中心PKG保密主密鑰s,公開系統(tǒng)參數(shù){p,q,E,k,G1, P1, G2, P2, Ppub,Gt ,8,?,?},其中 Ppub=s*P2 e G2。
[0041] 所述的裝置還包括:
[0042] 用戶私鑰生成模塊,用于通過PKG設(shè)定用戶私鑰更新的周期Time,將印章上文字 作為用戶標(biāo)識ID,將用戶標(biāo)識和更新時間進(jìn)行聯(lián)接,通過對H 1求哈希獲取用戶公鑰Qid :
[0043] Qid=H1 (ID I I Time) e G1
[0044] 根據(jù)用戶公鑰Qid計算得到個人用戶的私鑰
[0045] dID=s Qid e G10
[0046] 所述的裝置還包括:
[0047] 簽章模塊,用于通過簽章用戶選擇隨機(jī)數(shù)r e Z:,計算U=rP2,所述Z/表示1? (q-Ι)范圍內(nèi)的整數(shù),簽章用戶將所述U發(fā)布;
[0048] 計算h = H2 (m),所述m為需要做電子簽章的電子文檔;
[0049] 計算T = dnAr+h),所述dID為所述簽章用戶的私鑰;
[0050] 將T的橫坐標(biāo)X作為對電子文檔m的數(shù)字簽名,將所述數(shù)字簽名信息嵌入到所述 簽章用戶的公章圖像中得到電子簽章,將所述電子簽章設(shè)置到所述電子文檔m中。
[0051] 所述的裝置還包括:
[0052] 驗章模塊,用于通過接收用戶接收到所述電子文檔m后,從所述電子文檔m中的電 子簽章中提取出數(shù)字簽名X ;
[0053] 計算gi = § (QID, Ppub),計算h = H2 (m),根據(jù)橫坐標(biāo)X計算得到曲線上的點Τ',計 算 g2 = g (Τ',IKhP2);
[0054] 若82=81或82=8「1,則確定所述電子文檔111的電子簽章正確 ;否則,確定所述電子文 檔m的電子簽章不正確。
[0055] 由上述本發(fā)明的實施例提供的技術(shù)方案可以看出,本發(fā)明實施例中的電子文檔的 數(shù)字簽名的長度僅僅為橢圓曲線點的橫坐標(biāo),短于現(xiàn)有基于身份簽章方法的簽名消息長 度,增加了系統(tǒng)運行的吞吐量,適合于帶寬受限的通訊環(huán)境,從而實現(xiàn)了有效地將基于身份 密碼技術(shù)應(yīng)用于電子簽章中。
【附圖說明】
[0056]