專利名稱:加速電子簽名傳輸?shù)姆椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于加速傳輸公共密鑰電子簽名類型的電子簽名的方法。
在保密密鑰密碼術(shù)的傳統(tǒng)模型中,希望通過非安全信道進(jìn)行通信的兩個人必須首先對保密加密密鑰K達(dá)成協(xié)議。加密函數(shù)和解密函數(shù)采用相同的密鑰K。這種保密密鑰加密系統(tǒng)的缺點在于所述系統(tǒng)在任何加密消息通過非安全信道發(fā)送之前,要求事先在兩個人之間通過安全信道就密鑰K進(jìn)行通信。實際上,找到絕對安全通信信道一般都困難,尤其是在兩個人之間的距離隔得很遠(yuǎn)的情況下。安全信道表示不可能知道或修改通過該信道的信息的信道。這樣的安全信道能由連接所述兩個人擁有的兩個終端的電纜來實現(xiàn)。
公共密鑰密碼術(shù)的概念由Whitfield Diffie和Martin Hellman于1976年發(fā)明。公共密鑰密碼術(shù)解決了通過非安全信道發(fā)送密鑰的問題。公共密鑰密碼術(shù)的原理包括利用一對密鑰公共加密密鑰和專用解密密鑰。從計算的角度上看,從公共加密密鑰得到專用解密密鑰難以行得通。希望向用戶B傳送信息的用戶A使用用戶B的公共加密密鑰。只有用戶B擁有與其公共密鑰有關(guān)的專用密鑰。因此只有用戶B能夠解密發(fā)送給他的消息。
公共密鑰密碼術(shù)較之保密密鑰密碼術(shù)的另一個優(yōu)點在于公共密鑰密碼術(shù)允許通過使用電子簽名的進(jìn)行驗證。
發(fā)明RSA加密系統(tǒng)的Rivest、Shamir和Adleman于1977年開發(fā)了公共密鑰加密方案的第一實施例。RSA安全性基于對兩個素數(shù)的乘積的這樣一個大數(shù)進(jìn)行因子分解的難度。其后,建議了許多公共密鑰加密系統(tǒng),其安全性是基于以下各種計算問題(這里所列并非窮舉)
-Merkle-Hellman“背包”這種加密系統(tǒng)基于子集的和的問題的難度;-McEliece這種加密系統(tǒng)基于代數(shù)碼理論。它基于解碼線性碼的問題;-ElGamal這種加密系統(tǒng)基于有限域中離散對數(shù)的難度;-橢圓曲線橢圓曲線加密系統(tǒng)構(gòu)成對現(xiàn)行加密系統(tǒng)的修改,以便將之應(yīng)用到橢圓曲線域。橢圓曲線加密系統(tǒng)的優(yōu)點在于與其它加密系統(tǒng)相比,它們需要較小的密鑰大小。
RSA加密系統(tǒng)是最廣泛使用的公共密鑰加密系統(tǒng)。它可用作加密方法或簽名方法。RSA加密系統(tǒng)用于智能卡,用于智能卡中的某些應(yīng)用。RSA對智能卡的可能應(yīng)用為訪問數(shù)據(jù)庫,金融應(yīng)用,諸如付費電視、加油或高速公路通行費支付的遠(yuǎn)程支付應(yīng)用。
RSA加密系統(tǒng)的原理如下。它可以被分成三個不同部分,即1)生成RSA密鑰對;2)將明碼消息加密為加密消息,以及3)將加密消息解密為明碼消息。
第一部分是生成RSA密鑰。根據(jù)以下5個步驟的方法,各個用戶建立RSA公共密鑰和相應(yīng)的專用密鑰4)生成兩個相同長度的不同素數(shù)p和q;5)計算n=pq和φ=(p-1)(q-1)6)隨機(jī)選擇整數(shù)e,使得pgcd(e,φ)=1,其中1<e<φ;7)計算唯一的整數(shù)d,使得e*d=1mod(模)φ,其中1<d<φ;8)公共密鑰為(n,e);專用密鑰是d或(d,p,q)。
整數(shù)e和d分別被稱為加密指數(shù)和解密指數(shù)。整數(shù)n被稱為模數(shù)。
第二部分包括將表示為m的明碼消息通過算法加密為表示為c的加密消息,其中1<m<n,算法如下
計算c=m^e mod n。
第三部分包括通過一種算法、利用專用解密指數(shù)d解密所加密的消息。將表示為c的加密消息解密為表示為m的明碼消息的算法在下面給出,其中1<c<n計算m=c^d mod n。
RSA系統(tǒng)也可用于生成電子簽名?;赗SA系統(tǒng)的電子簽名方案的原理一般可以被定義為三個部分-第一部分是利用之前描述的RSA系統(tǒng)的第一部分中所描述的方法生成RSA密鑰;-第二部分是生成簽名。方法包括把要簽名的消息M作為輸入,利用函數(shù)μ對它應(yīng)用編碼,以便得到字符串μ(M),并應(yīng)用上述RSA系統(tǒng)的第三部分的解密方法。因此只有擁有所述專用密鑰的用戶能夠生成簽名;-第三部分是簽名的驗證。方法包括把要簽名的消息M以及要驗證的簽名s作為輸入,利用函數(shù)μ對消息M應(yīng)用編碼,以便得到字符串μ(M),對簽名s應(yīng)用在RSA系統(tǒng)的第二部分中描述的加密方法,并驗證得到的結(jié)果等于μ(M)。在這種情況下,消息M的簽名s有效,反之則是錯誤的。
有許多利用不同函數(shù)μ的編碼方法。編碼方法的一個示例是在“ISO/IEC 9796-2,信息技術(shù)-安全技術(shù)-數(shù)字簽名方案提供消息恢復(fù),第二部分利用散列函數(shù)的機(jī)制”標(biāo)準(zhǔn)中描述的方法。編碼方法的另一個示例是在“RSA實驗室,PKCS#1RSA密碼術(shù)規(guī)范,2.0版(“RSA Laboratories,PKCS#1RSA cryptography specifications,version 2.0,September 1998”)”標(biāo)準(zhǔn)中描述的方法。這兩種編碼方法有可能對任意長度的消息進(jìn)行簽名。
上述這兩種編碼方法的缺點在于它們需要傳輸RSA模長度的電子簽名,也就是一般1024比特。對于電子簽名方法的某些應(yīng)用,出現(xiàn)用戶的專用密鑰被驗證簽名的實體知道,特別是在該實體是認(rèn)證機(jī)構(gòu)或銀行時。
本發(fā)明的方法包括僅發(fā)送消息M的簽名S的一部分S’。本發(fā)明的方法包括兩個不同部分第一部分是短簽名的生成,第二部分是由具有用戶的專用密鑰的實體驗證短簽名。
生成短簽名的方法把消息M和用戶的專用密鑰d作為輸入,并包括以下步驟1)利用用戶的專用密鑰d生成消息M的簽名S。
2)計算簽名S的一部分S’,所述一部分能是包含在簽名S中的一串比特。
驗證短簽名的方法把消息M、要被驗證的短簽名S’、以及用戶的專用密鑰d作為輸入,并包括以下步驟1)利用用戶的專用密鑰d來生成消息M的簽名S。
2)計算簽名S的一部分S”,并驗證所述一部分S”等于短簽名S’。
短簽名生成和驗證方法的優(yōu)點在于要發(fā)送的簽名的長度遠(yuǎn)遠(yuǎn)小于一般情況下的因此有可能只發(fā)送簽名的64比特而不是1024比特。其結(jié)果是由較短的傳輸時間而有更好的性能。
權(quán)利要求
1.一種電子簽名方法,所述方法包括僅發(fā)送消息M的簽名S的一部分S’,其特征在于所述方法包括兩個不同部分第一部分是短簽名的生成,第二部分是由具有用戶的專用密鑰的實體驗證所述短簽名。
2.如權(quán)利要求1所述的方法,其特征在于所述短簽名的生成包括以下2個步驟1)利用所述用戶的專用密鑰d來生成所述消息M的簽名S。2)計算所述簽名S的一部分S’。
3.如權(quán)利要求1所述的方法,其特征在于利用所述用戶的專用密鑰d對所述消息M的簽名S的所述驗證包括下面2個步驟1)利用所述用戶的專用密鑰d來生成所述消息M的簽名S;2)計算所述簽名S的一部分S”,并驗證所述一部分S”等于所述短簽名S’。
4.如權(quán)利要求2或3中任一一項所述的方法,其特征在于所述短簽名S的所述一部分S’和所述一部分S”都是所述簽名S中包括的一串比特。
5.如前述權(quán)利要求中任何一項權(quán)利要求所述的方法,其特征在于所用簽名系統(tǒng)基于RSA系統(tǒng)。
6.如權(quán)利要求1所述的方法,其特征在于驗證所述簽名的所述實體是銀行。
7.如權(quán)利要求1所述的方法,其特征在于驗證所述簽名的所述實體是認(rèn)證機(jī)構(gòu)。
8.如前述權(quán)利要求中任何一項權(quán)利要求所述的方法,其特征在于它使用智能卡類型的便攜式對象。
全文摘要
RSA加密算法是最廣泛使用的公共密鑰加密算法。本發(fā)明包括定義一種用于大大縮短要發(fā)送的簽名的長度的方法。本發(fā)明可以容易地用于智能卡類型的電子部件。
文檔編號H04L9/32GK1393080SQ01802929
公開日2003年1月22日 申請日期2001年9月26日 優(yōu)先權(quán)日2000年9月28日
發(fā)明者J·S·科倫, D·納卡徹 申請人:格姆普拉斯公司