專利名稱:基于橢圓曲線對電子文檔數字簽名的安全保護方法
技術領域:
本發明屬于信息安全技術領域,涉及一種基于橢圓曲線對電子文檔數字 簽名的安全保護方法。
背景技術:
在人們的日常生活及工作中,許多事務需要當事者簽名,例如文件、命 令、條約、協議、合同等需要簽署,以使在法律層面能夠認證、核準、生效。 在傳統的以書面文件為載體的事務處理中,通常采用手寫簽字、印章、指紋 等方式作為書面簽名,書面簽名得到司法部門認可,具有法律意義。但是互 聯網的快速發展使得人們通過網絡實現快速、遠距離的電子商務活動的需求 越來越高。在以計算機數據文件為基礎的電子郵件、電子商務等的數字通信 中,傳統的書面簽名失去了它的意義,因為書面簽名可被任意拷貝,所以數 字簽名技術應運而生。
人們通過網絡進行電子文檔的傳輸中,可能面臨各種安全威脅,例如, 文檔的內容可能被盜取或篡改,文檔的發送者可能是假冒的,文檔的發送者 可能否認自己曾發送過該文檔等。信息加密和數字簽名是應對這些安全威脅 的重要手段。數字簽名也稱電子簽名或電子簽章。通俗的說,電子簽名就是 通過密碼技術對電子文檔的電子形式的簽名它的作用類似于手寫簽名或印
準確的說,數字簽名是以密碼學的方法對數據文件作用產生的一組代表簽名者身份與數據完整性的數據信息,通常附加在數據文件的后面,數據文 件的接收者可以利用簽名者的公鑰作用在數字簽名上,驗證數據文件的真實 性、完整性。數字簽名的應用包括身份鑒別,可辨別信源的真實性而防止 冒充;數據完整性保護,抵御數據的篡改或重排;不可抵賴性,信源事后不 可否認其發送過或生成過簽名過的信息,可以防止當事人事后抵賴。
橢圓曲線上離散對數困難問題可以用來構造電子文檔的數字簽名算法,
目前屬于這一類簽名算法的有美國聯邦數字簽名標準ECDSA算法、韓國國 家數字簽名標準EC-KCDSA算法等,目前可供選擇的數字簽名的算法比較 少,提出新的基于橢圓曲線的數字簽名算法具有重要意義。
發明內容
本發明的目的是提供一種基于橢圓曲線對電子文檔數字簽名的安全保 護方法,解決了現有電子文檔在網絡環境下的完整性檢驗、文檔的真實性、 和簽名不可否認的問題。
本發明所采用的技術方案是, 一種基于橢圓曲線對電子文檔數字簽名的 安全保護方法,該方法按照以下步驟實施,
步驟l,生成系統參數進行如下設置,
設置一個素數p和一個正整數m 6w^A如果附>7,選取有限域GF (p)上的一個首項系數為1的m次不可約多項式/ 定義一個有限域
系數山6 &G^(>m",定義GF(yV上的橢圓曲線五^"F(^",
f乂 +矽=x3 + or2 + 6, (6-0) z/p二2 。》 1/ 二 x3 + w + 6, (4"3 + 0 (mod / ), p〉3.
一個素數g整除軀WF 艦"F 表示橢圓曲線五的階數,即£ " 尸上點的總數,
一個E上的點G- &x , gy J生成一個階為素數《的循環子群<0>, 公共參數是(戶w, ^ 6, G, /z入其中《是基點 G= Cgx , gF ;>的階,h稱為余因子,
一個映射函數"〈G〉 , 一個安全Hash函數H :{0,1}' — Z9,
以及7個可有效計算的函數7。,^,^,^巧4,^,^ ,映射Z《x Z《 到Z"即7,:(^V) —^/二0,1,…,6,且使得7。(r,")-0,并將
所有的設置安裝到簽名雙方的計算機系統中; 步驟2,用戶密鑰建立
對每個簽名者隨機選擇私鑰xe,計算相應的公鑰是7= :cG,由 簽名者保密私鑰x,用來簽名;公開公鑰y供驗證簽名時使用; 步驟3,簽名過程
簽名者執行下列操作,生成消息m的簽名m 59, 在區間[h ^/]中隨機選擇整數A,
計算橢圓曲線上的點7 = 6d, 17J=k ,并計算"義o/a
二 「忉4 (I, ") +巧5 CT, ") + 76 (T, ") 腦d 一 ^仏(f, V) +巧2 (T, V) + 〃3 ")
則得到消息m的簽名是m sa發送消息簽名對^m, r, s9給文檔
的接收者;
步驟4,驗證過程
驗證者執行如下計算,驗證一個聲稱的公鑰是r的用戶對消息m的簽 名化w:1) 、收到消息M',表示為一個二進制位串;
2) 、收到消息M'的簽名,表示為兩個整數:t //7S';
計算hash值f/' =W人(T表示為一個長度為160bits的整數;
3) 、計算
w,r,,一,:,昨二:':;i6『,"—
3 w," ),( '")-
4) 、計算橢圓曲線點7 '= F2(s',r',cr)G + F3(s',r',"')y ;
5) 、如果驗證式r'-" (ir )成立,那么簽名就得到驗證,驗證者
可以確信收到的消息是持有與F相應的私鑰X的持有者發送的;如果驗證式
r'-;r (jt )不能成立,則簽名驗證失敗。 本發明的有益效果是,通過本方法中的映射函數選擇可以產生眾多新的
數字簽名方法,以提供電子文檔傳輸過程中的完整性檢驗和不可否認性保
證,本發明的方法同時提供了大量新的數字簽名方法,具有簽名短、安全性
高的特點,確保電子文件在存儲及網絡傳輸中的安全。
具體實施例方式
下面結合附圖
和具體實施方式
對本發明進行詳細說明。 為了實現基于橢圓曲線上離散對數困難問題的數字簽名方案的一般化,
本發明采用的技術方案是進行系統參數生成,建立一個群,使得在該群中 計算離散對數問題困難;建立用戶公鑰/私鑰對,給出簽名算法,涉及7個可 有效計算的映射函數;最后給出簽名的驗證方程。簽名方法的設計使得偽造 簽名相當于求解公認的難解的離散對數問題,非常安全。本發明方法按照以下步驟實施,
步驟l,生成系統參數
設置一個素數戶和一個正整數m 6wWA如果附>7,選取有限域GF (/0上的一個首項系數為1的m次不可約多項式/ 6:義定義一個有限域
系數"6 ^GF(^",定義GF(p"上的橢圓曲線5-5^^(^"
乂 = x3 + m: +(4<33 + 0(modp), z/>>3.
一個素數q整除WF 這里#£ "尸(^"表示橢圓曲線五
的階數"W 上點的總數),
一個£上的點<3= ; gy J生成一個階為素數9的循環子群<0>。
在一般的應用中,我們推薦選擇?是一個至少160 bit的素數。 公共參數是(>,m, 6, G, g, /0,這里/2 = # WF (>w"々,其
中《是基點G^ , gy J的階,/2稱為余因子。
一個映射函數^:〈G〉 ">Zg, 一個安全Hash函數H :{0,1}* —么,
以及7個可有效計算的函數"o,^,^,"3,^,^,^ ,映射Z《x Z《 到Zq,即77,:(r,t/) —zg/二0,1,…,6,且使得77 0 (r,C/)#0,并將
所有的設置安裝到簽名雙方的計算機系統中;這里的安全Hash函數可以取 SHA-1等。
歩驟2,用戶密鑰建立
對每個簽名者隨機選擇私鑰xe Z9 ,計算相應的公鑰是7= xG,由
簽名者保密私鑰x,用來簽名;公開公鑰y供驗證簽名使用; 步驟3,簽名過程為了生成消息MEfO, /"的簽名0% S人簽名者執行下列操作
在區間/7, ^T/中隨機選擇整數h
計算橢圓曲線上的點i - 6c〃KJ =W,計算r="&^
^,,x,r,t/)
=忉4 (r〃) +巧5 (7w) + 76 (r, u)丄mod 忉,(r,+巧2 (r, [/) + 73 (r, t/) "
則得到消息m的簽名是(r, s),發送消息簽名對(m, r, s)給文檔
的接收者;
步驟4,驗證過程
要驗證一個聲稱的公鑰是y的用戶對消息M的簽名(r, 50,驗證者執
行如下計算
1) 、收到消息M,,表示為一個二進制位串;
2) 、收到消息M'的簽名,表示為兩個整數r'和s'; 計算hash值tT ), t/'表示為一個長度為160bits的整數;
3) 、計算
2 w(r',[/'),")-T74(r,t/') ^
/7Wr,〃、T72(n昨"。『,")-t75(廣,〃') J F, (S , r ,) =--^-t^tt^-5-^mod《
4) 、計算橢圓曲線點^^^了',"')G +巧(m",;
5) 、如果2^="(7 ')成立,則簽名就得到驗證,驗證者可以確信收到
的消息是持有與r相應的私鑰x的持有者發送的,如果驗證式r' ="(iT )
不能成立,則文件被改動、或者簽名有錯誤,簽名驗證失敗。
本發明對電子文檔進行數字簽名的保護方法,給出了一種基于橢圓曲線上離散對數困難問題的最一般數字簽名方案族,并且給出了簽名算法和驗證 算法的具體步驟。本發明通過在新數字簽名方案族中設計7個可選的映射, 構造出了大量現在還沒有的新的基于橢圓曲線上離散對數的數字簽名方案, 這些方案將可以提供大量的可選的基于橢圓曲線上離散對數困難問題的數 字簽名算法。通過本算法進行數字簽名后的文檔,假如對原文做任何的改動,
都不能通過簽名驗證算法,這樣可以保護文檔的完整性;簽名者在對電子文 檔數字簽名后不能否認其對文檔做過簽名,其他人不能偽造出有效的簽名, 所以本方法可以提供不可否認性安全保護。本發明提供的方法對于不同文檔 產生的簽名是不同的,因此可以有效地解決書面簽名可以被任意拷貝的問 題;本發明提供的數字簽名保護方法可以有效地防止簽名偽造,偽造簽名相 當于求解公認的基于橢圓曲線上離散對數困難問題。本發明方法為國家、政 府、企事業單位、個人提供了電子文檔數字簽名的安全方法。 下面從密碼理論來證明本發明數字簽名方法的正確性。 如果所宣稱的對消息M的簽名(T, S)是嚴格按照簽名算法執行的, 那么根據簽名的生成步驟,則有如下等式成立
<formula>formula see original document page 10</formula>也即有<formula>formula see original document page 10</formula>
即<formula>formula see original document page 10</formula>所以有A^,7\")G +《GS,:r,")y = K; = i
也就是T-;r(/ )成立,所以,如果簽名是正確生成的,則驗證式T=;r(i )
一定成立。
應用本發明選擇不同的映射函數,則可以產生新的數字簽名算法,實現 電子文檔的數字簽名。 一般為了計算簡單,建議取/7。(r,t/) = 1 。 實施例1
簽名者首先選取并公布簽名算法中的映射函數^(r,f/) 二 1 ,
7'(r,")二:r+[/, ;/2(7^) = , /73(r,t/) = rvt/ 仏(r,60二r十t/ 775(r,t/) = rAf/, 776(r,t/) = r+c/,兀(r) = r;這樣就具體制定了 一個簽名算法。 簽名算法
簽名者為了對電子文檔M的簽名,在區間[l, q-l]中隨機選擇整數A:, 計算橢圓曲線上的點r二 (xp K) =K},計算(r) =r; 計算消息的Hash值C7 = //(M);
則得到消息M的簽名是(r,s),這里
A^(r,t/) + x/72(r,") + 773(r,t/)」 >(r冊)+ jc(r a + t + u 、 」
=-^-^-^-) mod《
驗證過程給定消息Af的簽名(r,幻,驗證者計算<formula>formula see original document page 12</formula>
最后檢查是否T-;r (R),如果驗證通過,則(T, S)是消息M的一個 有效簽名;如果不能通過驗證式,則說明文件被改動,或者簽名有錯誤,簽
名驗證失敗。 實施例2
簽名者首先選取并公布簽名算法中的映射函數/7。(r,c/)二1 , 仏(r,")二r, 772(r,f/) = r—", /73(r,") = t/, 7;4(r,c/) = r + t/,
/75(r,") = o, /76(r,[/) = :r-2" , " (r) =r;這樣就具體確定了一個
簽名算法。
簽名者為了對電子文檔M的簽名,在區間[l, q-l]中隨機選擇整數yt, 計算橢圓曲線上的點R^ ", =K},計算T=;r (R) =R; 計算消息的Hash值f/ = //(M);則得到消息M的簽名是(r,S),
這里
<formula>formula see original document page 12</formula>驗證過程,給定消息M的簽名(T, S),驗證者計算U = H(M),
F2(、r々)一,,:。二)"6(口)
m od《
,,r,^,,")?二)
仏(r,")r"口) + ;74(r,t/) "
一 m od《
最后檢査是否T-;r (R),如果驗證通過,則(T, S)是消息M的一個 有效簽名;如果不能通過驗證式,則文件被改動,或者簽名有錯誤,簽名驗 證失敗。
通過選取不同的可有效計算的函數7。,^,/72,/73,74,75,76 ,
7/,:(r,[/)— 、 ,0,1,…,6 ,就可以得到多種不同的數字簽名算法。
綜上所述,本發明提出的數字簽名保護方法,通過系統參數建立階段的 映射函數選取,能產生大量的新的基于橢圓曲線上離散對數困難問題的數字 簽名算法,通過選取適當映射變換,能產生新的安全性更高、偽造簽名的難 度更大的數字簽名算法,用于提供文檔傳輸中的完整性、真實性和不可否認 性的安全保護。
權利要求
1、一種基于橢圓曲線對電子文檔數字簽名的安全保護萬法,其特征在于,該方法按照以下步驟實施,步驟1,生成系統參數進行如下設置,設置一個素數p和一個正整數m(m≥1),如果m>1,選取有限域GF(p)上的一個首項系數為1的m次不可約多項式f(x),定義一個有限域GF(pm),系數a,b(∈GF(pm)),定義GF(pm)上的橢圓曲線E=E(GF(pm)),一個素數q整除#E(GF(pm)),#E(GF(pm))表示橢圓曲線E的階數,即E(GF(pm)上點的總數,一個E上的點G=(gx;gY)生成一個階為素數q的循環子群<G>,公共參數是(p,m,a,b,G,q,h),h=#(GF(pm))/q,其中q是基點G=(gx;gY)的階,h稱為余因子,一個映射函數π<G>→Zq,一個安全Hash函數H{0,1}*→Zq,以及7個可有效計算的函數η0,η1,η2,η3,η4,η5,η6,映射Zq×Zq到Zq,即ηi:(T,U)→zq i=0,1,…,6,且使得η0(T,U)≠0,并將所有的設置安裝到簽名雙方的計算機系統中;步驟2,用戶密鑰建立對每個簽名者隨機選擇私鑰x∈Zq,計算相應的公鑰是Y=xG,由簽名者保密私鑰x,用來簽名;公開公鑰Y供驗證簽名時使用;步驟3,簽名過程簽名者執行下列操作,生成消息M的簽名(T,S),在區間[1,q-1]中隨機選擇整數k,計算橢圓曲線上的點R=(x1,Y1)=kG,并計算T=π(R),U=H(M),則得到消息M的簽名是(T,S),發送消息簽名對(M,T,S)給文檔的接收者;步驟4,驗證過程驗證者執行如下計算,驗證一個聲稱的公鑰是Y的用戶對消息M的簽名(T,S)1)、收到消息M′,表示為一個二進制位串;2)、收到消息M′的簽名,表示為兩個整數T′和S′;計算hash值U′=H(M′),U′表示為一個長度為160bits的整數;3)、計算4)、計算橢圓曲線點R′=F2(S′,T′,U′)G+F3(S′,T′,U′)Y;5)、如果驗證式T′=π(R′)成立,那么簽名就得到驗證,驗證者可以確信收到的消息是持有與Y相應的私鑰x的持有者發送的;如果驗證式T′=π(R′)不能成立,則簽名驗證失敗。
全文摘要
本發明公開了一種基于橢圓曲線對電子文檔數字簽名的安全保護方法,該方法按照以下步驟實施,生成系統參數設置橢圓曲線等公共參數、映射函數及多個可有效計算的函數;用戶密鑰建立對每個簽名者隨機選擇私鑰,計算相應的公鑰,由簽名者保密私鑰,用來簽名,公開公鑰供驗證簽名使用;簽名過程利用私鑰,生成消息的簽名,并發送消息簽名對給文檔的接收者;驗證過程收到消息及簽名,利用方案中的驗證式檢驗,如果驗證式成立,那么簽名就得到驗證,驗證者可以確信收到的消息是持有與公鑰相應的私鑰的發送者發送的。本發明的數字簽名方法,能產生多個基于橢圓曲線數字簽名算法,用于提供文檔傳輸中的完整性、真實性和不可否認性的安全保護。
文檔編號H04L9/32GK101441693SQ20081023240
公開日2009年5月27日 申請日期2008年11月25日 優先權日2008年11月25日
發明者張亞玲, 王尚平, 王曉峰 申請人:西安理工大學