欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于rsa的電子簽名方案的長(zhǎng)消息編碼的方法

文檔序號(hào):7591307閱讀:509來源:國知局
專利名稱:基于rsa的電子簽名方案的長(zhǎng)消息編碼的方法
技術(shù)領(lǐng)域
本發(fā)明涉及基于RSA的電子簽名方案的長(zhǎng)消息編碼的方法。
在保密密鑰密碼術(shù)的傳統(tǒng)模型中,希望通過非安全信道進(jìn)行通信的兩個(gè)人必須首先對(duì)保密加密密鑰K達(dá)成協(xié)議。加密函數(shù)和解密函數(shù)采用相同的密鑰K。這種保密密鑰加密系統(tǒng)的缺點(diǎn)在于所述系統(tǒng)在任何加密消息通過非安全信道發(fā)送之前,要求事先在兩個(gè)人之間通過安全信道就密鑰K進(jìn)行通信。實(shí)際上,找到絕對(duì)安全通信信道一般都困難,尤其是在兩個(gè)人之間的距離隔得很遠(yuǎn)的情況下。安全信道表示不可能知道或修改通過該信道的信息的信道。這樣的安全信道能由連接所述兩個(gè)人擁有的兩個(gè)終端的電纜來實(shí)現(xiàn)。
公共密鑰密碼術(shù)的概念由Whitfield Diffie和Martin Hellman于1976年發(fā)明。公共密鑰密碼術(shù)解決了通過非安全信道發(fā)送密鑰的問題。公共密鑰密碼術(shù)的原理包括利用一對(duì)密鑰公共加密密鑰和專用解密密鑰。從計(jì)算的角度上看,從公共加密密鑰得到專用解密密鑰難以行得通。希望向用戶B傳送信息的用戶A使用用戶B的公共加密密鑰。只有用戶B擁有與其公共密鑰有關(guān)的專用密鑰。因此只有用戶B能夠解密發(fā)送給他的消息。
公共密鑰密碼術(shù)較之保密密鑰密碼術(shù)的另一個(gè)優(yōu)點(diǎn)在于公共密鑰密碼術(shù)允許通過使用電子簽名的進(jìn)行驗(yàn)證。
發(fā)明RSA加密系統(tǒng)的Rivest、Shamir和Adleman于1977年開發(fā)了公共密鑰加密方案的第一實(shí)施例。RSA安全性基于對(duì)兩個(gè)素?cái)?shù)的乘積的這樣一個(gè)大數(shù)進(jìn)行因子分解的難度。其后,建議了許多公共密鑰加密系統(tǒng),其安全性是基于以下各種計(jì)算問題(這里所列并非窮舉)-Merkle-Hellman“背包”
這種加密系統(tǒng)基于子集的和的問題的難度;-McEliece這種加密系統(tǒng)基于代數(shù)碼理論。它基于解碼線性碼的問題;-E1Gamal這種加密系統(tǒng)基于有限域中離散對(duì)數(shù)的難度;-橢圓曲線橢圓曲線加密系統(tǒng)構(gòu)成對(duì)現(xiàn)行加密系統(tǒng)的修改,以便將之應(yīng)用到橢圓曲線域。橢圓曲線加密系統(tǒng)的優(yōu)點(diǎn)在于與其它加密系統(tǒng)相比,它們需要較小的密鑰大小。
RSA加密系統(tǒng)是最廣泛使用的公共密鑰加密系統(tǒng)。它可用作加密方法或簽名方法。RSA加密系統(tǒng)用于智能卡,用于智能卡中的某些應(yīng)用。RSA對(duì)智能卡的可能應(yīng)用為訪問數(shù)據(jù)庫,金融應(yīng)用,諸如付費(fèi)電視、加油或高速公路通行費(fèi)支付的遠(yuǎn)程支付應(yīng)用。
RSA加密系統(tǒng)的原理如下。它可以被分成三個(gè)不同部分,即1)生成RSA密鑰對(duì);2)將明碼消息加密為加密消息,以及3)將加密消息解密為明碼消息。
第一部分是生成RSA密鑰。根據(jù)以下5個(gè)步驟的方法,各個(gè)用戶建立RSA公共密鑰和相應(yīng)的專用密鑰1)生成兩個(gè)相同長(zhǎng)度的不同素?cái)?shù)p和q;2)計(jì)算n=pq和φ=(p-1)(q-1)3)隨機(jī)選擇整數(shù)e,使得pgcd(e,φ)=1,其中1<e<φ;4)計(jì)算唯一的整數(shù)d,使得e*d=1mod(模)φ,其中1<d<φ;5)公共密鑰為(n,e);專用密鑰是d或(d,p,q)。
整數(shù)e和d分別被稱為加密指數(shù)和解密指數(shù)。整數(shù)n被稱為模數(shù)。
第二部分包括將表示為m的明碼消息通過算法加密為表示為c的加密消息,其中1<m<n,算法如下計(jì)算c=m^e mod n。
第三部分包括通過一種算法、利用專用解密指數(shù)d解密所加密的消息。將表示為c的加密消息解密為表示為m的明碼消息的算法在下面給出,其中1<c<n計(jì)算m=c^d mod n。
RSA系統(tǒng)也可用于生成電子簽名?;赗SA系統(tǒng)的電子簽名方案的原理一般可以被定義為三個(gè)部分-第一部分是利用之前描述的RSA系統(tǒng)的第一部分中所描述的方法生成RSA密鑰;-第二部分是生成簽名。方法包括把要簽名的消息M作為輸入,利用函數(shù)μ對(duì)它應(yīng)用編碼,以便得到字符串μ(M),并應(yīng)用上述RSA系統(tǒng)的第三部分的解密方法。因此只有擁有所述專用密鑰的用戶能夠生成簽名;-第三部分是簽名的驗(yàn)證。方法包括把要簽名的消息M以及要驗(yàn)證的簽名s作為輸入,利用函數(shù)μ對(duì)消息M應(yīng)用編碼,以便得到字符串μ(M),對(duì)簽名s應(yīng)用在RSA系統(tǒng)的第二部分中描述的加密方法,并驗(yàn)證得到的結(jié)果等于μ(M)。在這種情況下,消息M的簽名s有效,反之則是錯(cuò)誤的。
有許多利用不同函數(shù)μ的編碼方法。編碼方法的一個(gè)示例是在“ISO/IEC 9796-2,信息技術(shù)-安全技術(shù)-數(shù)字簽名方案提供消息恢復(fù),第二部分利用散列函數(shù)的機(jī)制” 標(biāo)準(zhǔn)中描述的方法。編碼方法的另一個(gè)示例是在“RSA實(shí)驗(yàn)室,PKCS#1RSA密碼術(shù)規(guī)范,2.0版(“RSA Laboratories,PKCS#1RSA cryptography specifications,version 2.0,September 1998”)”標(biāo)準(zhǔn)中描述的方法。這兩種編碼方法有可能對(duì)任意長(zhǎng)度的消息進(jìn)行簽名。
上述這兩種編碼方法的缺點(diǎn)在于它們需要使用散列函數(shù)。散列函數(shù)是一種把任意長(zhǎng)度的消息作為輸入并將固定長(zhǎng)度的字符串作為輸出返回的函數(shù)。它的缺點(diǎn)在于在現(xiàn)有知識(shí)的情況下,不可能嚴(yán)格地證明這樣的散列函數(shù)的安全性。因而也不可能嚴(yán)格證明上述兩種編碼方法的安全性。
本發(fā)明的方法包括利用將有限長(zhǎng)度的消息作為輸入的編碼函數(shù)實(shí)現(xiàn)將任意長(zhǎng)度的消息作為輸入的編碼函數(shù)的方法。本發(fā)明的方法排他地使用運(yùn)算類型的運(yùn)算,對(duì)此可嚴(yán)格地證明安全性。
本發(fā)明包括兩種不同的實(shí)現(xiàn)編碼函數(shù)的方法所述編碼函數(shù)利用把有限長(zhǎng)度的消息作為輸入的編碼函數(shù)把任意長(zhǎng)度的消息作為輸入。
本發(fā)明的第一方法利用上述RSA系統(tǒng)的第一部分中定義的唯一RSA模N。本發(fā)明的第一方法利用編碼函數(shù)μ,所述編碼函數(shù)μ把k+1比特的有限長(zhǎng)度的消息作為輸入,并把長(zhǎng)度正好為k比特的字符串作為輸出返回,其中k是整數(shù)參數(shù)。本發(fā)明的第一方法把在0和k-1之間的整數(shù)參數(shù)a作為輸入。本發(fā)明的第一方法包括定義新的編碼函數(shù)μ’,所述新的編碼函數(shù)μ’把長(zhǎng)度不超過(2^a)*(k-a)比特的消息作為輸入并把長(zhǎng)度為k比特的消息作為輸出返回。
通過反復(fù)應(yīng)用本發(fā)明的第一方法,這樣可能構(gòu)造一種編碼函數(shù),該編碼函數(shù)把任意長(zhǎng)度的消息作為輸入。本發(fā)明的第一種方法包括以下4個(gè)步驟1)將消息分成長(zhǎng)度為k-a比特的塊。消息被表示為m=m[1]‖m[2]‖..‖m[r],其中r是塊數(shù)。
2)將整數(shù)變量b的初值化為1。
3)對(duì)于范圍從1到r的i,計(jì)算應(yīng)用到由比特0、a個(gè)比特的串所表示的計(jì)數(shù)i、和塊m[i]的串連所形成的比特串的函數(shù)μ的結(jié)果,并把所述結(jié)果乘以所述變量b,所述乘法的結(jié)果被儲(chǔ)存在所述變量b中,對(duì)所述乘法的結(jié)果進(jìn)行模N;4)對(duì)由比特1和所述變量b串連所形成的比特串應(yīng)用函數(shù)μ,并返回所述結(jié)果作為輸出。
本發(fā)明的第二方法包括利用兩個(gè)不同的模N1和N2,所述模為上述RSA系統(tǒng)的第一部分中定義的那樣。本發(fā)明的第二方法使用兩個(gè)編碼函數(shù)μ1和μ2,它們分別把長(zhǎng)度為k1和k2的消息作為輸入,并分別把長(zhǎng)度為k1’和k2’的消息作為輸出返回。本發(fā)明的第二方法把0和k-1之間的整數(shù)參數(shù)a作為輸入。本發(fā)明的第二方法包括定義新的編碼函數(shù)μ’,它把長(zhǎng)度不超過(2^a)*(k1-a)比特的消息作為輸入,并把長(zhǎng)度為k2’比特的消息作為輸出返回。通過反復(fù)應(yīng)用本發(fā)明的第二方法,這樣有可能構(gòu)造把任意長(zhǎng)度的消息作為輸入的編碼函數(shù)。本發(fā)明的第二方法包括以下4個(gè)步驟1)把消息分成長(zhǎng)度為k1-a比特的塊。所述消息被表示為m=m[1]‖m[2]‖..‖m[r],其中r是塊數(shù)。
2)把整數(shù)變量b初始化為1。
3)對(duì)于范圍從1到r的i,計(jì)算應(yīng)用到由a個(gè)比特的串所表示的計(jì)數(shù)i和塊m[i]的串連所形成的比特串的函數(shù)μ1的結(jié)果,將所述結(jié)果乘以所述變量b,所述乘法的結(jié)果被儲(chǔ)存在所述變量b中,對(duì)所述乘法的結(jié)果進(jìn)行模N1。
4)對(duì)所述變量b形成的比特串應(yīng)用函數(shù)μ2,并返回所述結(jié)果作為輸出。
通過上述方法定義編碼函數(shù)μ’,它把長(zhǎng)度為(2^a)*(k1-a)的消息作為輸入并把長(zhǎng)度為k2’比特的消息作為輸出返回。在應(yīng)用之前描述的基于RSA的簽名生成和簽名驗(yàn)證方法時(shí),利用RSA模N2進(jìn)行所述計(jì)算。
本發(fā)明的第二方法較之本發(fā)明的第一方法的優(yōu)點(diǎn)在于它在選擇編碼函數(shù)μ中提供更大的靈活性。這是因?yàn)?,在第一方法中,約束為μ是從k+1比特到k比特的編碼函數(shù)。這種約束在本發(fā)明的第二方法中不存在。
權(quán)利要求
1.一種利用RSA模N的方法,所述方法利用編碼函數(shù)μ,所述編碼函數(shù)μ把限制到k+1比特長(zhǎng)度的消息作為輸入,并將長(zhǎng)度正好為k比特的字符串作為輸出返回,其中k是整數(shù)參數(shù),所述方法把0和k-1之間的整數(shù)參數(shù)a作為輸入,所述方法包括定義新的編碼函數(shù)μ’,所述新的編碼函數(shù)μ’把長(zhǎng)度不超過(2^a)*(k-a)比特的消息作為輸入,并將長(zhǎng)度為k比特的消息作為輸出返回,所述方法的特征在于它包括以下4個(gè)步驟1)把所述消息分成長(zhǎng)度為k-a比特的塊,所述消息被表示為m=m[1]‖m[2]‖..‖m[[r],其中r是塊數(shù)。2)把整數(shù)變量b初始化為1。3)對(duì)于范圍從1到r的i,計(jì)算應(yīng)用到由比特0、a個(gè)比特的串所表示的計(jì)數(shù)i、和塊m[i]的串連所形成的比特串的函數(shù)μ的結(jié)果,并把所述結(jié)果乘以所述變量b,所述乘法的結(jié)果被儲(chǔ)存在所述變量b中,對(duì)所述乘法的結(jié)果進(jìn)行模N;4)對(duì)由比特1和所述變量b串連所形成的比特串應(yīng)用函數(shù)μ,并返回所述結(jié)果作為輸出。
2.如權(quán)利要求1所述的編碼方法,把任意長(zhǎng)度的消息作為輸入,其特征在于權(quán)利要求1所述的方法被重復(fù)若干次。
3.一種利用兩個(gè)不同的RSA模N1和N2的方法,所述方法利用兩個(gè)編碼函數(shù)μ1和μ2,所述兩個(gè)編碼函數(shù)μ1和μ2分別把長(zhǎng)度為k1和k2的消息作為輸入,并分別把長(zhǎng)度為k1’和k2’的消息作為輸出返回,所述方法把0和k-1之間的整數(shù)參數(shù)a作為輸入,所述方法包括定義新的編碼函數(shù)μ’,所述新的編碼函數(shù)μ’把長(zhǎng)度不超過2^a*(k1-a)比特的消息作為輸入,并把長(zhǎng)度為k2’比特的消息作為輸出返回,所述方法的特征在于它包括以下4個(gè)步驟1)把所述消息分成長(zhǎng)度為k1-a比特的塊,所述消息被表示為m=m[1]‖m[2]‖..‖m[r],其中r是塊數(shù)。2)將整數(shù)變量b初始化為1。3)對(duì)于范圍從1到r的i,計(jì)算應(yīng)用到由a個(gè)比特的串所表示的計(jì)數(shù)i和塊m[i]的串連所形成的比特串的函數(shù)μ1的結(jié)果,將所述結(jié)果乘以所述變量b,所述乘法的結(jié)果被儲(chǔ)存在所述變量b中,對(duì)所述乘法的結(jié)果進(jìn)行模N1。4)對(duì)所述變量b形成的比特串應(yīng)用函數(shù)μ2,并返回所述結(jié)果作為輸出。
4.如權(quán)利要求3所述的編碼方法,其特征在于利用權(quán)利要求3所定義的RSA模N2來執(zhí)行簽名的生成和驗(yàn)證。
5.如前述權(quán)利要求中任何一項(xiàng)權(quán)利要求所述的方法,其特征在于它被用于智能卡類型的便攜對(duì)象的環(huán)境中。
全文摘要
RSA加密算法是最廣泛使用的公共密鑰加密算法。本發(fā)明包括定義一種消息編碼的新穎方法,它允許任意長(zhǎng)度消息簽名,并且不需要使用散列函數(shù)。本發(fā)明可以容易地用于智能卡類型的電子部件。
文檔編號(hào)H04L9/32GK1393081SQ0180293
公開日2003年1月22日 申請(qǐng)日期2001年9月26日 優(yōu)先權(quán)日2000年9月28日
發(fā)明者J·S·科倫, D·納卡徹 申請(qǐng)人:格姆普拉斯公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
乌拉特前旗| 嘉兴市| 清涧县| 辉县市| 崇州市| 仙桃市| 博罗县| 安义县| 都匀市| 清流县| 获嘉县| 兴海县| 柞水县| 连云港市| 巴南区| 贡山| 福海县| 江源县| 临泽县| 兰西县| 武夷山市| 东丽区| 方正县| 丹阳市| 遂昌县| 青阳县| 云阳县| 郓城县| 诸城市| 余姚市| 湘潭市| 海城市| 石柱| 色达县| 岚皋县| 建宁县| 丰镇市| 伊吾县| 新源县| 常德市| 淮南市|