摘要:該文在RSA數字簽名的基礎上,設計了兩種改進方案,有效的解決了隱藏消息的問題,防止了不經意的信息泄露。這兩種數字簽名方案都是概率數字簽名方案,因而安全性提高,具有多項式安全性。
關鍵詞:數字簽名;哈希函數;多項式安全性
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2008)33-1345-02
Modified Digital Signature Scheme Based on RSA
JIA Jie,XU Ci-wen
(College of Science,Central University for Nationalities,Beijing 100081,China)
Abstract: Based on the RSA digital signature,the paper proposed two kinds of modified schemes,which overcome the weakness of message lost when not pay attention.Because they are probabilistic digital signature schemes,they can secure for polynomial.
Key words: digital signature;hash function;polynomial secure
1 引言
在公鑰密碼學中,密鑰是由公開密鑰和私有密鑰組成的密鑰對。在數字簽名系統中,發送方首先用自己的私鑰對某消息產生數字簽名,當接收方接收到這個消息和其對應的數字簽名后,利用發送方的公鑰來證實這個簽名的正確性。從表面上看,數字簽名與公鑰加密是公鑰和私鑰的運作順序不同。實際上,數字簽名與公鑰加密一樣也是用單向陷門函數確保其安全性。本質上,大數分解困難問題和離散對數困難問題等各種計算困難問題的存在是安全的數字簽名方案存在的根本。數學簽名的應用面很廣,因具有“不可否認性”的特性,可以達到對稱密鑰密碼所不能達到的功能。在實際應用中,公開密鑰的數學簽名技術可用來發展公開密鑰基礎設施以及數字認證。公鑰密碼的概念不僅僅體現于密碼系統,數字簽名也是公鑰密碼技術的一個重要組成部分。
Difie和Helman[1]首先提出了數字簽名的概念。數字簽名必須提供一種稱為不可否認性的服務。所謂數字簽名的不可否認性是指:簽名的接收方能夠證實發送方的身份,發送方不能否認其曾簽署過的簽名,任何人不能偽造和篡改簽名。正是由于數字簽名具有的獨特功能和實際用途,使得它在網絡通信中具有重要的作用。
2 RSA數字簽名方案
第一個數字簽名方案是由Rivest,Shamir和Adleman這三位密碼學家首先提出的[2]。RSA密碼體制用到了初等數論中的一個重要定理—歐拉定理,其安全性依賴于大整數的因數分解的困難性。其用作數字簽名的方案如下[3]:
設A為簽名人,任意選取兩個大素數p和q,計算n=pq,φ(n)=(p-1)(q-1),隨機選擇整數e<φ(n),滿足gcd(e,φ(n))=1;計算整數d,滿足ed=1modφ(n)。p,q和φ(n)保密,A的公鑰為(n,e),私鑰為d。
簽名:對于消息m(m 驗證:接收人或驗證人收到簽名(m,s)后,利用A的公鑰,計算m=se mod n,檢查m=m是否成立。如果成立,則簽名正確,否則,簽名不正確。 事實上,若簽名正是A所簽,則有m=se mod n=(md)e mod n=m ed mod n=m。 分析:在該簽名方案中,任何人都可以用A的公鑰進行解密,不具備加密功能,只起到鑒別簽名人身份的目的。如果消息m>n,時,可用哈希函數h進行壓縮,計算s=(h(m))dmod n,接收方或驗證方收到(m,s)后,先計算 m=se mod n,然后檢查 m=h(m)是否成立,即可鑒別簽名是否正確。在這里,m只起到一種支撐的作用,沒有實質性的意義。如果m包含重要的信息,不能泄露,那么簽名還需要進行加密處理,再傳送。基于此,設計了下面的基于RSA的數字簽名改進方案。 3 改進的數字簽名方案 首先假設系統的初始化過程如上,A為簽名人,A產生的公鑰為(n,e),私鑰為d。則改進的方案如下: 改進方案一: 簽名:① 所簽消息m ② 產生隨機填充的偽隨機數:r ③ 計算s1=m⊕r[4] ④ 計算摘要值h=H(s1) ⑤ 產生簽名s≡hd mod n ⑥ 輸出:(s1,s) 驗證:① 收到簽名(s1,s) ② 計算摘要值h=H(s1) ③ 計算h1≡semod n ④ 比較,若h=h1,則接受簽名; 若h≠h1,則拒絕簽名。 改進方案二: 簽名:① 所簽消息m ② 產生隨機填充的偽隨機數: r ③ 數據分組m‖r,并去掉其二進制的所有奇數位得到s1 ④ 計算摘要值h=H(s1) ⑤ 產生簽名s ≡hd mod n ⑥ 輸出:(s1,s) 驗證:同方案一。 改進后的這兩種數字簽名方案,有效的解決了當信息m包含重要信息而泄露的問題。其中,方案一采用的是引用隨機填充的偽隨機數r和m進行異或作用使得原信息m被隱藏掉;而方案二是采用通過隨機填充的偽隨機數r與信息m的級連函數再去掉其二進制的奇數位的方法,也達到了此目的。總之,這兩種方法都是通過引入隨機數的方法,實現了在RSA數字簽名的基礎上進行概率數字簽名的目的,從而使得它的簽名方案的安全性大大提高,具有多項式安全性。 4 小結 該文針對傳統的RSA數字簽名方案在安全上的缺陷進行了改進,通過引入隨機填充的偽隨機數而實現了隨機簽名,從而構造了兩種基于RSA的概率數字簽名方案。因而其安全性提高,具有多項式安全性。 參考文獻: [1] W.Differ and M.Hellman,New directions in cryptography,IEEE Trans.Information Theory,1976,22,pp.644-654. [2] R.L.Rivest, A.Shamir and L.Adleman,A Method for Obtaining Digital Signatures and Public Key Ctyptosystem,Comm.ACM,1978,21,pp.120-126. [3] 趙澤茂.數字簽名理論[M].科學出版社,2007,1,pp.26. [4] 余梅生,鄒惠.一種改進的RSA公鑰密碼體制[J].大連理工大學學報,2003,10. 注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”