〔摘 要〕一個數字簽名方案由兩部分組成:簽名算法和驗證算法,使用簽名算法進行簽名,得到數字簽名;通過驗證算法判斷其真實性。對基于RSA-TBOS密碼體制的數字簽名,討論了它的優缺點和安全性。
〔關鍵詞〕數字簽名;算法;密鑰
〔中圖分類號〕TP309.7 〔文獻標識碼〕A 〔文章編號〕1008-0821(2009)11-0058-02
The Digital Signature in the Electronic InformationSong Weiping
(The Network and the Information Center,Jilin Institute of the Architectural and Civil Engineering,
Changchun 130021,China)
〔Abstract〕This paper attempted to discuss the method of the digital signature,which consisted of the two parts.One was the signature formula and the other was the test formula.It was available to have the digital signature with the digital method and prove the authenticity of the method.The paper not only presented the advantage and disadvantage but also mentioned the safe system of the digital signature based on the RSA-TBOS system of code.
〔Keywords〕digital signature;arithmetic;secret key
1 數字簽名的基本概念
數字簽名在信息安全,包括身份認證、數據完整性、不可否認性等方面,特別是在大型網絡安全通訊中的密鑰分配、認證及電子商務系統中,具有重要作用。
許多情況下我們需要使用手寫簽名,對所簽訂的文件、契約等進行確認。此時的手寫簽名具有下面的兩個作用。
(1)對所簽署的文檔內容進行確認;
(2)如果簽署文檔的雙方針對文檔的內容發生爭執,根據簽署文檔時留下的簽名,第三方可以對簽名進行檢查以便對爭執進行調解。
隨著計算機網絡的發展,出現了對類似于數字簽名的電子化簽名的需求。例如,在電子商務中,某一個用戶在下訂單時,必須能夠確認該訂單確實為用戶自己發出,而非其他人偽造,另外,在用戶與商家發生爭執時,必須存在一種手段,能夠為雙方關于訂單進行仲裁。
使用了密碼技術的數字簽名(或稱數字簽字)正是一種作用類似于傳統的手書簽名或印章的電子標記,它可以達到與手寫簽名類似的作用,即:使用數字簽名,在信息通信過程中,接收方能夠對公正的第三方(可以是雙方事前同意委托其解決某一問題或某一爭執的仲裁者)證明其收到的消息是真實的,而且確實是由那個發送方發送過來的,同時,數字簽名還能夠保證發送方事后不能根據自己的利益來否認他所發送過的消息,而接收方也不能根據自己的利益來偽造消息或簽名。
數字簽名的安全特性是:不可否認性、不可偽造性。
由于數字簽名(電子信息)容易被拷貝,并且拷貝后的文件與原數字簽名沒有任何區別,因此,為了防止數字簽名被重復使用在不同的消息上,第一,數字簽名因消息而異,不同的消息的數字簽名結果不同;第二,一般通過要求消息本身包含有諸如日期、發送序號等信息來使消息盡量不同,即使消息主要內容相同。
一個數字簽名方案由兩部分組成:簽名算法和驗證算法。簽名者A對消息M使用簽名算法進行簽名得到數字簽名C;用戶B對C通過驗證算法判斷其真實性。
在一個數字簽名體制中,簽名算法或簽名密鑰是秘密的,只有簽字人掌握;驗證算法是公開的,以便于他人進行驗證。
2 RSA-TBOS數字簽名算法描述
發送者A首先將消息“包裹”在自己的RSA函數的陷門部分,得到消息的一個簽名,然后再將簽名“包裹”在預期接收者B的RSA函數的單向部分,得到該簽名的加密。
系統范圍內的用戶使用了相同長度的模數,“雙層包裹”就能很好地工作。如果“內層包裹”結果超過了“外層包裹”的模數,那么發送者只要從“內層包裹”中“砍掉”一個比特(如最重要的比特)就可以了。“砍掉”一個比特后,剩余的整數必然比“外層包裹”的模數小,因此可以直接“包裹”。記住,這種RSA密文的接收者必須進行密文完整性檢驗,該步驟允許接收者使用試錯檢驗將“砍掉”的比特找回來。
2.1 密鑰參數
假設k是一個偶正整數。發送者A(接收者B)的RSA公私鑰材料分別是(NA,eA),(NA,dA)[(NB,eB),(NB,dB)],滿足|NA|=|NB|=k。假設G和H是兩個雜湊函數,滿足:
H:{0,1}n+k0→{0,1}k1和G:{0,1}k1→{0,1}n+k0
其中k=n+k0+k1,n是明文長度,2-k0和2-k1是可忽略的量。
2.2 簽名算法
當A為B簽密消息M∈{0,1}n時,A執行:
(1)r←{0,1}k0
(2)ω←H(M‖r)
(3)s←G(ω)(M‖r)
(4)If s‖ω>NA goto 1
(5)c'←(s‖ω)dA(mod NA)
(6)If c′>NB,c′←c′-2k-1
(7)c←c′eB(mod NB)
(8)Send c to B
(算法中的“‖”表示比特串的鏈接,“”表示比特串的的按位異或)
第6步是為了確保c′=NB。如果最初c′不能通過該測試,那么我們有NA>c′>NB。因為NB和NA都有k比特,我們可以推出c′也是k比特,所以賦值c′← c′-2k-1等于將c′的最高位比特去掉。這樣就有我們要求的c′ 注意這個步驟可能會導致解簽密中的額外步驟。特別地,可能需要執行c′eA(mod NA)兩次(兩個c′相差2k-1)。定義另一種在簽密階段進行試錯測試的方案是可能的。這意味著對不同的r值重復簽密步驟1~5直到得到一個c′ 3 驗證算法 當B要對來自A的密文c解簽密時,B執行: (1)c′←cdB(mod NB) (2)If c'>NA,reject (3)μ←c′eA(mod NA) (4)Parse μ as s‖ω (5)M‖r←G(ω)s (6)If H(M‖r)=ω,return M (7)c′←c′+2k-1 (8)If c'>NA,reject (9)μ←c′eA(mod NA) (10)Parse μ as s‖ω (11)M‖r←G(ω)s (12)If H(M‖r)≠ω,reject (13)Return M 現在說明接收者B總能正確地解簽密。如果NA σ=(M,r)dA(mod NA)>N 但是,由于|NA|=|NB|=k,所以有 σ 因此,令 σ′←σ-2k-1 即σ′是“砍掉”σ的高位比特的結果,則 σ′<2k-1 即B可以正確恢復σ′。以后B的驗證步驟會指導B是否需要將“砍掉”的位比特修正回來。 3 安全特性及優點 不可否認性:它以一種非常直接的方式提供了不可否認性,接收者B在“解開”簽密密文后,或者可能是在修復被“砍掉”的比特之后,他就擁有了發送者A通常形式的RSA簽名:(M,r)dA(mod NA)。任何第三方都可以用通常的方式驗證該簽名。 不可偽造性:在抵抗IND-CCA2模式下攻擊的RSA-OAEP歸約證明中[1],估計過如果攻擊者M不遵從預先描述的加密過程,那么不管M使用的是什么算法,也不管他可以適應性地構造密文(即在適應性選擇密文解密訓練背景下)這個事實,他可以提交一條有效密文的概率在統計上都是可忽略的。上述事實可以機械地轉換為對隨機化填充簽名方案簽名不可偽造性的證明:即使是在適應性選擇消息訓練背景下,如果不使用預先描述過的簽名過程(因為沒有簽名指數),M偽造一個有效消息簽名對(與以下偽造對應:不使用預先描述的加密過程,構造有效的明文——密文對)的概率在統計上是可忽略的。 優點:它生成了緊湊的密文:簽密密文和沒有簽名的RSA密文大小相同,或者說和沒有加密的簽名的大小相同。這個性質在很多電子商務應用中都非常吸引人,如:一條短消息(如授權支付的信用卡卡號)需要在Internet上發送,并且既要提供秘密性保護又要提供授權支付的不可否認性。在這些應用中,RSA-TBOS可以提供一個短密碼。這不僅可以獲得效率,而且有利于減少電子商務協議的工程復雜度。 參考文獻 [1]宋維平.電子信息中的數字簽名[J].現代情報,2009,(7):51-52,56. [2](英)Wenbo Maoz.現代密碼學理論與實踐[M].王繼林,伍前紅,譯.北京:電子工業出版社,2004. [3](美)William Stallings.密碼編碼學與網絡安全[M].劉玉珍,等譯.北京:電子工業出版社,2004. [4]宋震.密碼學[M].北京:中國水利水電出版社,2002. [5]李克洪,王大玲,董曉梅.實用密碼學與計算機數據安全[M].沈陽:東北大學出版社,2001. 注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文