專利名稱:在交易中促進(jìn)計(jì)算的加密方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼學(xué)技術(shù)領(lǐng)域,且更準(zhǔn)確地說,涉及公鑰密碼學(xué),對于給定的用途,用戶擁有一對密鑰。這對密鑰包括由該用戶保密的私鑰和該用戶可將其通知給其它用戶的公鑰。例如,在專用于機(jī)密性的一對密鑰的情況下,用公鑰將數(shù)據(jù)密碼化,而用密鑰解密它,也就是說將該數(shù)據(jù)重新復(fù)原為明文。
與秘密密鑰密碼學(xué)不同,公鑰密碼學(xué)迄今為止已被廣泛使用,它不要求對話者共享相同的秘密以便建立受安全保護(hù)的通信。然而,在安全方面的這一優(yōu)點(diǎn)也伴隨著在性能方面的缺點(diǎn),因?yàn)楣€密碼學(xué)方法(也稱為″公鑰方案″),常常成百上千倍地慢于秘密密鑰密碼學(xué)方法(也稱為″密鑰方案″)。因此一個(gè)非常大的挑戰(zhàn)是找到可以快速地執(zhí)行的公鑰密碼學(xué)方法,使得能夠在資源有限的環(huán)境諸如標(biāo)準(zhǔn)微處理器卡中以接觸或非接觸方式使用它們。
目前現(xiàn)有的大多數(shù)公鑰方案依賴于算法領(lǐng)域(或″數(shù)論″)中的數(shù)學(xué)問題的難度。因而,RSA(Rivest,Shamir,Adleman)數(shù)字簽名和加密方案的安全性基于整數(shù)因數(shù)分解問題的難度給定一個(gè)通過秘密地將兩個(gè)或多個(gè)大小相當(dāng)?shù)乃財(cái)?shù)相乘在一起而獲得的非常大的整數(shù)(超過500位數(shù)字),目前沒有有效方法來重新找到這些個(gè)素?cái)?shù)。
其它公鑰方案,諸如在專利申請F(tuán)R-A-2 716 058中所述的數(shù)字簽名方案,其安全性依賴于稱為″離散對數(shù)問題″的難度。這個(gè)問題在大多數(shù)情況下可以表示為如下設(shè)E為用一種運(yùn)算(即,用一個(gè)函數(shù),具有兩個(gè)元素a和b,關(guān)聯(lián)一個(gè)表示為″a.b″或″ab″的元素,并稱為″a和b的乘積″)提供的集合,設(shè)g為集合E的一個(gè)元素,設(shè)r為一個(gè)大整數(shù)并設(shè)y為由下面定義的整數(shù)y=gr(即乘積g·g·....·g,其中g(shù)出現(xiàn)r次);則從g和y重新得出r是行不通的。所使用的集合E常常是以n為模的整數(shù)集合,其中n是整數(shù),素?cái)?shù)或由素?cái)?shù)組成的數(shù)。
本發(fā)明尤其涉及實(shí)體身份驗(yàn)證的技術(shù)領(lǐng)域,也稱為″認(rèn)證″,并且還涉及依靠公鑰加密技術(shù)的消息的身份驗(yàn)證及其數(shù)字簽名的技術(shù)領(lǐng)域。在這類方法中,經(jīng)身份驗(yàn)證的實(shí)體,稱為″證明者″,擁有秘密密鑰或私鑰和相關(guān)聯(lián)的公鑰。證明者使用秘密密鑰產(chǎn)生身份驗(yàn)證值或數(shù)字簽名。進(jìn)行身份驗(yàn)證的實(shí)體,稱為″驗(yàn)證者″,只需要證明者的公鑰來驗(yàn)證身份驗(yàn)證值或數(shù)字簽名。
本發(fā)明的領(lǐng)域還特別是稱為″零知識(zero-knowledge))″身份驗(yàn)證方法的領(lǐng)域。這是指使用一種協(xié)議進(jìn)行身份驗(yàn)證,該協(xié)議以經(jīng)證明的方式不管使用經(jīng)身份驗(yàn)證的實(shí)體的秘密密鑰多少次,也不會暴露與被認(rèn)證實(shí)體的秘密密鑰有關(guān)的任何內(nèi)容。從這種類型的方案知道如何使用標(biāo)準(zhǔn)的技術(shù)來推出用于對消息及其數(shù)字簽名進(jìn)行身份驗(yàn)證的方案。
本發(fā)明的領(lǐng)域還特別是其安全性既依賴于整數(shù)因數(shù)分解的難度又依賴于離散對數(shù)問題的難度的方法的領(lǐng)域。
本發(fā)明可應(yīng)用于使用公鑰密碼學(xué)來保護(hù)其元素和/或其交易的任何系統(tǒng),并且尤其可應(yīng)用于這樣的系統(tǒng),其中由各方執(zhí)行的計(jì)算數(shù)量,至少對于其中之一,構(gòu)成一個(gè)臨界參數(shù),或者是因?yàn)樗痪哂锌捎玫膶S糜诩用苡?jì)算的協(xié)處理器,通常稱為″密碼處理器″,以便加速這些計(jì)算,或者是因?yàn)樗軌蛲瑫r(shí)執(zhí)行大量的計(jì)算,例如,在中央服務(wù)器的情況下,或者是因?yàn)槿魏纹渌颉?br>
典型的應(yīng)用是通過銀行卡或電子錢包的電子付款。在親自付款的情況下,付款終端在公共位置,因此使用公鑰密碼學(xué)方法,使得不存儲主密鑰。為減少這樣一個(gè)系統(tǒng)的成本,所希望的是,或者卡是標(biāo)準(zhǔn)的微處理器卡,即卡不配備密碼處理器,或者包含在終端本身中的安全受保護(hù)的微處理器是標(biāo)準(zhǔn)類型的,或者兩者皆是。根據(jù)該情況并根據(jù)所采用的加密方法,在已有技術(shù)中已知目前實(shí)現(xiàn)了這些目標(biāo)的一個(gè)或另一個(gè),但不允許容易地同時(shí)實(shí)現(xiàn)兩者,還同時(shí)兼顧系統(tǒng)的約束。這樣的約束的一個(gè)例子是在非接觸交易的情況下,付款要在不到一秒,甚至在小于150毫秒內(nèi)完成,或者在高速公路收費(fèi)的情況下甚至要在幾毫秒內(nèi)完成。
目前最廣泛使用的加密方法是RSA方法。它基于因數(shù)分解問題。在各種場合中標(biāo)準(zhǔn)化的該算法已經(jīng)變成一種事實(shí)標(biāo)準(zhǔn)。它將在未來幾年中仍保持為主要的算法。許多產(chǎn)品、系統(tǒng)和基礎(chǔ)結(jié)構(gòu),諸如PKI(公鑰基礎(chǔ)結(jié)構(gòu))基礎(chǔ)結(jié)構(gòu),已經(jīng)根據(jù)這種算法并根據(jù)其使用的密鑰的格式而被設(shè)計(jì)出來。
如已知的,按照這種算法,公鑰包括一對整數(shù)(n,e)而私鑰包括一個(gè)整數(shù)d。模數(shù)n是一個(gè)足夠大的整數(shù),使得對它無法進(jìn)行因數(shù)分解。實(shí)體A單獨(dú)地保存私鑰d,它是唯一能夠產(chǎn)生等于具有d作為指數(shù)的整數(shù)W的冪模n的整數(shù)W’的實(shí)體,使得任何已知公鑰(n,e)的實(shí)體B能夠通過將W’自乘到具有e作為指數(shù)的冪模n來重新獲得W。
在一種使用消息簽名M的方法中,整數(shù)W通常是通過諸如已知的散列函數(shù)之類的函數(shù)的消息的映象。證明者是實(shí)體A,簽名是整數(shù)W’,驗(yàn)證者是實(shí)體B,它根據(jù)簽名W’通過已知函數(shù)驗(yàn)證所找到的整數(shù)是消息的映象。
在一種認(rèn)證的方法中,整數(shù)W一般構(gòu)成由驗(yàn)證者實(shí)體B發(fā)送的詢問。由證明者實(shí)體A產(chǎn)生數(shù)W’,構(gòu)成對該詢問的回答。
在一種身份驗(yàn)證消息M的方法中,整數(shù)W通常是從消息M的映象和由包括實(shí)體B的驗(yàn)證者發(fā)送的詢問的組合得到的。由證明者實(shí)體A產(chǎn)生的數(shù)W’,在回答該詢問時(shí)構(gòu)成可信的簽名。
然而,RSA算法有一個(gè)問題,源于要由證明者或簽名人執(zhí)行大量的運(yùn)算。為在少于一秒內(nèi)在執(zhí)行這些運(yùn)算的微處理器卡上執(zhí)行全部計(jì)算,必須給卡添加密碼處理器。然而,密碼處理器的制造和安裝具有值得考慮的成本,它增加微處理器卡的成本。還已知密碼處理器消耗大量的電流。通過終端給卡提供這樣的電流,這在非接觸接口的情況下會引起技術(shù)困難。還已知添加密碼處理器使通過消耗電流的頻譜分析來進(jìn)行的物理攻擊變得容易,這提出一個(gè)難以找到技術(shù)解決方案的缺點(diǎn)。而且,即使卡配備了密碼處理器,計(jì)算過程仍可能在一些交易時(shí)間必須要求非常短的應(yīng)用中被證明還是太慢,諸如在上面提到某些例子中。
本發(fā)明的目標(biāo)是指定一種公鑰加密方法,諸如身份驗(yàn)證和數(shù)字簽名方法。更準(zhǔn)確地說,本發(fā)明的目標(biāo)是在某種安全性級別上使用與RSA算法相同的密鑰,該安全性級別至少等于這種算法的安全性,同時(shí)仍允許預(yù)先執(zhí)行大部分的計(jì)算,這避了必須使用密碼處理器。
考慮一種可以在交易中使用的加密方法,對于該交易,第一實(shí)體用RSA私鑰產(chǎn)生可由第二實(shí)體用與所述私鑰相關(guān)聯(lián)的RSA公鑰驗(yàn)證的證明,所述公鑰包括第一指數(shù)和模數(shù),按照本發(fā)明的該方法值得注意的是-第一實(shí)體產(chǎn)生證明第一元素,其消耗相當(dāng)多資源的第一計(jì)算可以獨(dú)立于該交易執(zhí)行;
-第一實(shí)體產(chǎn)生與證明第一元素相關(guān)的證明第二元素并且依賴于專用于該交易的由第一和第二實(shí)體共享的公共數(shù),其第二計(jì)算消耗很少資源;以及-第二實(shí)體通過一種關(guān)系驗(yàn)證證明第一元素與具有第二指數(shù)的普通數(shù)的第一冪模模數(shù)相關(guān),第二指數(shù)等于公共數(shù)的全部或部分與公鑰的第一指數(shù)乘以證明第二元素的線性組合。
這些密鑰是RSA類型的事實(shí)具有能夠在沒有任何修改的情況下使用許多現(xiàn)有的產(chǎn)品、開發(fā)或基礎(chǔ)結(jié)構(gòu),諸如密鑰產(chǎn)生軟件、微處理器存儲區(qū)域的描述、公鑰證書格式等的優(yōu)點(diǎn)。
由于證明第一元素可以完全或部分地獨(dú)立于交易來計(jì)算,因此第一實(shí)體具有在交易之前執(zhí)行復(fù)雜計(jì)算的可能性,同時(shí)將該復(fù)雜計(jì)算的執(zhí)行保密,以便保證安全。因而,可從交易的開始立即看到第一實(shí)體快速地產(chǎn)生這樣一個(gè)證明第一元素,無需強(qiáng)大的資源諸如密碼處理器之類的資源。然后只有第一實(shí)體能夠產(chǎn)生證明第二元素,通過將它與證明第一元素相關(guān),使得通過簡單的運(yùn)算使證明第二元素依賴于專由交易共享的公共數(shù)。第一實(shí)體有可能在短時(shí)間內(nèi)執(zhí)行這些簡單運(yùn)算,這避免了交易的減慢,同時(shí)保持高級別的安全性。
非限制性地,交易的目標(biāo)可以是識別第一實(shí)體,以簽名一消息或者身份驗(yàn)證一消息。
具體地說,為允許第一實(shí)體被識別-由第一實(shí)體通過將普通數(shù)自乘到具有第三指數(shù)的第二冪模模數(shù)來產(chǎn)生證明第一元素,第三指數(shù)等于公鑰的第一指數(shù)乘以由第一實(shí)體保密的隨機(jī)整數(shù);-由第二實(shí)體在已經(jīng)收到證明第一元素之后隨機(jī)地從安全區(qū)間內(nèi)選擇公共數(shù)并且隨后發(fā)送;以及-由第二實(shí)體驗(yàn)證的關(guān)系是證明第一元素的冪與普通數(shù)的第一冪之間的相等關(guān)系。
其執(zhí)行是保密的復(fù)雜計(jì)算,在這種情況下涉及普通數(shù)的第二冪的自乘,以便產(chǎn)生證明第一元素。在交易期間隨機(jī)地選擇的公共數(shù)的選擇,不損害該交易的速度。
特別地,為了允許簽名一消息-由第一實(shí)體通過將一標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息并且應(yīng)用于被自乘到具有第三指數(shù)的第二冪模模數(shù)的普通數(shù)來產(chǎn)生證明第一元素,第三指數(shù)等于公鑰的第一指數(shù)乘以由第一實(shí)體保密的隨機(jī)整數(shù);-公共數(shù)等于證明第一元素;以及-由第二實(shí)體驗(yàn)證的關(guān)系是公共數(shù)與將標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息并且應(yīng)用于普通數(shù)的第一冪的結(jié)果之間的相等關(guān)系。
其執(zhí)行被保密的復(fù)雜計(jì)算在這種情況下涉及普通數(shù)的第二冪的自乘,以便產(chǎn)生證明的一種期望。將標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息并且應(yīng)用于證明的這種期望不再消耗相當(dāng)多的資源。第一實(shí)體在這種情況下可在交易之前計(jì)算證明的期望,在該交易中,證明第二元素和證明第一元素的傳送等于與第二實(shí)體共享的公共數(shù),隨后構(gòu)成消息的簽名的傳送。
特別地,為了身份驗(yàn)證由第二實(shí)體接收的消息來自于第一實(shí)體-由第一實(shí)體通過將標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息并且應(yīng)用于被自乘到具有第三指數(shù)的第二冪模模數(shù)的普通數(shù)來產(chǎn)生證明第一元素,第三指數(shù)等于公鑰的第一指數(shù)乘以由第一實(shí)體保密的隨機(jī)整數(shù);-由第二實(shí)體在已經(jīng)收到證明第一元素之后從安全區(qū)間內(nèi)選擇公共數(shù)并且隨后發(fā)送;以及-由第二實(shí)體驗(yàn)證的關(guān)系是證明第一元素與將標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息并且應(yīng)用于普通數(shù)的第一冪的結(jié)果之間的相等關(guān)系。
被保密的復(fù)雜計(jì)算這里涉及普通數(shù)的第二冪的自乘,以便產(chǎn)生證明第一元素。由第二實(shí)體在交易期間隨機(jī)地選擇的公共數(shù)的選擇,不損害該交易的速度。
一般而言,在交易之前執(zhí)行的復(fù)雜計(jì)算不直接涉及私鑰,因此其結(jié)果不給出關(guān)于私鑰的信息。
更特別地,該密碼方法值得注意的是-由第一實(shí)體通過從隨機(jī)整數(shù)中減去私鑰乘以公共數(shù)來產(chǎn)生證明第二元素;-等于第二指數(shù)的線性組合包括用于公共數(shù)的正單位系數(shù)和用于公鑰的第一指數(shù)乘以證明第二元素的正單位系數(shù);以及-在驗(yàn)證的關(guān)系中,認(rèn)為證明第一元素具有單位指數(shù)冪。
可替換地,并且最好在由第二實(shí)體選擇公共數(shù)時(shí),該密碼方法值得注意的是-由于將公共數(shù)分成第一基本公共數(shù)和第二基本公共數(shù),因此第一實(shí)體通過從隨機(jī)整數(shù)乘以第一基本公共數(shù)中減去私鑰乘以第二基本公共數(shù)來產(chǎn)生證明第二元素;-等于第二指數(shù)的線性組合包括用于第一基本公共數(shù)的零系數(shù),用于第二基本公共數(shù)的正單位系數(shù)和用于公鑰的第一指數(shù)乘以證明第二元素的正單位系數(shù);以及-在驗(yàn)證的關(guān)系中,認(rèn)為證明第一元素具有等于第一基本公共數(shù)的指數(shù)冪。
上述簡單的減法和乘法運(yùn)算使得有可能快速地計(jì)算交易內(nèi)的證明第二元素,并且通過每次經(jīng)由一個(gè)不同的隨機(jī)數(shù)產(chǎn)生與另一個(gè)證明第一元素相關(guān)的證明第二元素來重復(fù)該交易若干次,不給出關(guān)于私鑰的任何信息。
有利的是,該密碼方法值得注意的是,計(jì)算證明第二元素模通過Carmichael函數(shù)的模數(shù)的映象或者模普通數(shù)模模數(shù)的數(shù)量級的倍數(shù)。
可以選擇隨機(jī)整數(shù)比私鑰大非常多。如不應(yīng)用在前面的段落中提到的優(yōu)點(diǎn),則對于隨機(jī)整數(shù)必須比私鑰的值大非常多。有利的是,為了減少具有隨機(jī)數(shù)為指數(shù)的求冪所需的運(yùn)算數(shù)量,隨機(jī)整數(shù)小于通過Carmichael函數(shù)的模數(shù)的映象或者小于普通數(shù)模模數(shù)的數(shù)量級的倍數(shù)。這樣一個(gè)隨機(jī)數(shù)不能給出關(guān)于私鑰的任何可利用信息。
通過減少這樣獲得的證明第二元素的尺寸,有可能加速由第二實(shí)體進(jìn)行的計(jì)算而不損害安全性。
也有利的是,密碼方法值得注意的是,計(jì)算第三指數(shù)模通過Carmichael函數(shù)的模數(shù)的映象或者模普通數(shù)模模數(shù)的數(shù)量級的倍數(shù)。
通過減少這樣獲得的第三指數(shù)的大小,有可能加速由第一實(shí)體進(jìn)行的計(jì)算而不損害安全性。
賦給普通數(shù)的值二,方便了普通數(shù)的任何冪的求冪。也可將一個(gè)小的值賦給普通數(shù),使得有可能區(qū)分每個(gè)第一實(shí)體,通過將一個(gè)已知的散列函數(shù)應(yīng)用于模數(shù)并且應(yīng)用于公鑰的第一指數(shù)。
對用于區(qū)分第一實(shí)體的該密碼方法的一個(gè)值得重視的改進(jìn)是,由此與公鑰一起傳送普通數(shù),普通數(shù)等于具有私鑰作為指數(shù)的被自乘到一個(gè)冪模模數(shù)的基數(shù)。
第一實(shí)體隨后必須要做只是自乘該基數(shù)到具有隨機(jī)數(shù)作為指數(shù)的模模數(shù)的冪,使得通過自乘普通數(shù)到具有第三指數(shù)的模模數(shù)的第二冪,第三指數(shù)等于公鑰第一指數(shù)乘以隨機(jī)整數(shù)。通過將值二賦給該基數(shù),相當(dāng)大地加速了復(fù)雜計(jì)算,無論在交易期間還是在交易之前執(zhí)行該計(jì)算。
對密碼方法的另一值得重視的改進(jìn)是由此-第三實(shí)體接收證明第二元素,通過自乘普通數(shù)到具有證明第二元素作為指數(shù)的冪模模數(shù)來產(chǎn)生證明第三元素并將證明第三元素送到第二實(shí)體;以及-第二實(shí)體,自乘證明第三元素到具有第一指數(shù)的冪模模數(shù)并且將其結(jié)果乘以被自乘到其指數(shù)為公共數(shù)的冪的普通數(shù),以便驗(yàn)證將證明第一元素與證明第二元素相關(guān)的關(guān)系。
第三實(shí)體使得有可能減輕第二實(shí)體的負(fù)擔(dān)而不損害驗(yàn)證的完整性。
考慮一具有保密的RSA私鑰并受到不被侵入的保護(hù)的證明者設(shè)備,以便在與一驗(yàn)證者設(shè)備交易期間產(chǎn)生一證明,用與所述私鑰相關(guān)聯(lián)的公鑰對其驗(yàn)證,使得有可能保證驗(yàn)證者設(shè)備產(chǎn)生了所述證明,所述RSA公鑰包括第一指數(shù)和模數(shù),按照本發(fā)明的證明者設(shè)備值得注意的是它包括-計(jì)算裝置,設(shè)計(jì)為產(chǎn)生證明第一元素,其第一計(jì)算消耗相當(dāng)多的資源并可獨(dú)立于該交易執(zhí)行,并且依賴于專用于該交易的公共數(shù)產(chǎn)生與證明第一元素相關(guān)的證明第二元素;以及-通信裝置設(shè)計(jì)為傳送至少證明的第一和第二元素并且設(shè)計(jì)為將所述公共數(shù)傳送到驗(yàn)證者設(shè)備或者從其接收所述公共數(shù)。
特別地,按照本發(fā)明的證明者設(shè)備值得注意的是-在一方面,計(jì)算裝置設(shè)計(jì)為產(chǎn)生第一隨機(jī)數(shù)并且自乘普通數(shù)到具有指數(shù)的冪模模數(shù),該指數(shù)等于公鑰的第一指數(shù)乘以隨機(jī)整數(shù);以及-在另一方面,計(jì)算裝置設(shè)計(jì)為通過取隨機(jī)整數(shù)與私鑰乘以公共數(shù)之間的差,來產(chǎn)生證明第二元素。
可替換地,計(jì)算裝置可設(shè)計(jì)為執(zhí)行模通過Carmichael函數(shù)的模數(shù)的映象或者模普通數(shù)模模數(shù)的數(shù)量級的倍數(shù)的運(yùn)算。
考慮一驗(yàn)證者設(shè)備,用于驗(yàn)證一證明來源于一證明者設(shè)備,證明者設(shè)備具有由證明者設(shè)備保密的RSA私鑰,驗(yàn)證是用與所述私鑰相關(guān)聯(lián)的公鑰來進(jìn)行的,所述RSA公鑰包括指數(shù)和模數(shù),按照本發(fā)明的驗(yàn)證者設(shè)備值得注意的是它包括-通信裝置,設(shè)計(jì)為接收證明第一元素和證明第二元素或者證明第三元素,并且接收或者傳送專用于一交易的公共數(shù),在該交易內(nèi)接收證明的第一和第二或第三元素;以及-計(jì)算裝置,設(shè)計(jì)為通過一種關(guān)系驗(yàn)證證明第一元素與模模數(shù)的具有第二指數(shù)的普通數(shù)的第一冪相關(guān),第二指數(shù)等于公共數(shù)與公鑰第一指數(shù)乘以證明第二元素的線性組合。
特別地,驗(yàn)證者設(shè)備值得注意的是,通信裝置設(shè)計(jì)為接收證明第二元素,并且其中計(jì)算裝置設(shè)計(jì)為計(jì)算第二指數(shù)和普通數(shù)的所述第一冪。
可替換地,驗(yàn)證者設(shè)備值得注意的是,通信裝置設(shè)計(jì)為接收證明第三元素,并且其中計(jì)算裝置設(shè)計(jì)為自乘證明第三元素到公鑰第一指數(shù)的一個(gè)冪,以便將其結(jié)果乘以被自乘到具有公共數(shù)作為指數(shù)的第二冪的普通數(shù)。
通過下面參考附圖描述的例示性例子將更好地理解本發(fā)明,這些附圖是
圖1示出按照本發(fā)明用于識別第一實(shí)體的方法的步驟;圖2示出按照本發(fā)明用于簽名消息的方法的步驟;圖3示出按照本發(fā)明用于身份驗(yàn)證消息的方法的步驟;圖4示出用于促進(jìn)許多交易的身份驗(yàn)證方法的第一變化;以及圖5示出涉及中間實(shí)體的身份驗(yàn)證方法的第二變化。
這些描述的實(shí)施例是一種實(shí)體身份驗(yàn)證或認(rèn)證方法。它允許證明者A使驗(yàn)證者B確信其真實(shí)性。這種方法可變換成身份驗(yàn)證消息或數(shù)字消息簽名的方法,如下說明。它的安全性依賴于大整數(shù)因數(shù)分解的困難性。對于本領(lǐng)域的那些熟練技術(shù)人員,已知這種困難性至少與RSA算法的安全性所依賴的問題的困難性一樣大。在使驗(yàn)證任務(wù)能夠容易的選項(xiàng)中,該方法的安全性等價(jià)于RSA安全性。
應(yīng)當(dāng)記得,素?cái)?shù)是只能被一和被其自己整除的數(shù)。也應(yīng)記得,任何正整數(shù)z的歐拉(Euler)函數(shù)(z)給出小于z且與z互素(即除1之外與z沒有公因子)的任何正整數(shù)的集合的基數(shù)。也應(yīng)記得,任何正整數(shù)w的Carmichael(卡米克爾)函數(shù)λ(w)給出最小的嚴(yán)格正整數(shù)v,使得任何整數(shù)u滿足關(guān)系{uv=1模w},即,如已知的,uv除以w的整數(shù)除法的余數(shù)等于1。
按照上面說明的目標(biāo)和結(jié)果,這種方法使用RSA密鑰。為了構(gòu)成證明者設(shè)備,第一實(shí)體A首先擁有向任何第二實(shí)體B揭示的公鑰,第二實(shí)體B構(gòu)成驗(yàn)證者設(shè)備。第一實(shí)體A其次擁有保密的私鑰。公鑰包括模數(shù)n和第一指數(shù)e。私鑰包括第二指數(shù)d。模數(shù)n是一個(gè)整數(shù),等于兩個(gè)或多個(gè)素?cái)?shù)的乘積。當(dāng)數(shù)n是兩素?cái)?shù)p和q的乘積時(shí),那么(n)=(p-1)(q-1)。許多RSA描述規(guī)定模數(shù)n、第一指數(shù)e和第二指數(shù)d滿足方程{ed=1模(n)}。對于本領(lǐng)域那些熟練技術(shù)人員是熟知的,當(dāng)滿足方程{ed=1模(n)}時(shí),那么滿足方程{ed=1moduloλ(n)}。
更一般地,對于滿足方程{ed=1模λ(n)}的與私鑰相關(guān)聯(lián)的任何公鑰(n,e),該方法以相同級別的安全性運(yùn)算。
在所有選項(xiàng)中,假定驗(yàn)證者B已經(jīng)知道所有驗(yàn)證由第一實(shí)體證明者A給定的證明所需的所有公開參數(shù),即其身份、其公鑰,其公鑰證書等。
通過重復(fù)參考圖1在此描述的協(xié)議k次,由實(shí)體B對實(shí)體A進(jìn)行認(rèn)證。數(shù)k是正整數(shù),與小于或等于指數(shù)e一起定義一對安全參數(shù)。
在第一步驟9中,實(shí)體A產(chǎn)生比d大非常多的第一隨機(jī)整數(shù)r,計(jì)算x=ger(modn)并將x送到實(shí)體B。在已知的方式中,實(shí)體A和B是計(jì)算機(jī)或芯片卡類型的。整數(shù)g是實(shí)體A和B已知的普通數(shù)。普通數(shù)g的值等于2,便于其求冪。普通數(shù)g也可以是證明者的公鑰的函數(shù),例如g=h(n,e),其中h是眾所周知的散列函數(shù)。普通數(shù)g也可以由實(shí)體A定義并隨后與其公鑰一起傳送。例如,實(shí)體A將基數(shù)G自乘到冪d,其結(jié)果給出數(shù)g使得ge(mod n)=G。由于實(shí)體A一勞永逸地計(jì)算普通數(shù)g,因此簡化了x的計(jì)算,如在此情況下,x=Gr(mod n)。基數(shù)G的值等于2,便于其求冪,這是特別有利的。表達(dá)式(mod n)指模n,即,如已知的,計(jì)算結(jié)果等于整數(shù)n整除所述運(yùn)算的結(jié)果的余數(shù),整數(shù)n通常稱為模數(shù)。這里,整數(shù)x構(gòu)成證明第一元素,因?yàn)橹挥挟a(chǎn)生隨機(jī)數(shù)r的實(shí)體能夠產(chǎn)生數(shù)x。隨機(jī)數(shù)r不是由產(chǎn)生它的實(shí)體告知的。根據(jù)已知的數(shù)論,選擇一個(gè)足夠大的數(shù)r,使得在已知基數(shù)G的普通數(shù)g和模數(shù)n時(shí),也不能從x復(fù)原數(shù)r。
實(shí)體B接收證明第一元素x,確認(rèn)傳遞10,它隨后激活第二步驟11。
在步驟11中,實(shí)體B將從區(qū)間
(稱為安全區(qū)間)內(nèi)隨機(jī)選擇的整數(shù)c送到實(shí)體A。因而,數(shù)c對于實(shí)體A和B是公共的,而且對于任何滲入實(shí)體A與B之間對話的其它實(shí)體也是公共的。
實(shí)體A接受公共數(shù)c,確認(rèn)傳遞12,它隨后激活第三步驟13。
在步驟13中,實(shí)體A計(jì)算y=r-dc。因而,實(shí)體A以數(shù)r和數(shù)d的線性組合的形式產(chǎn)生私鑰的映象y,其乘法系數(shù)是公共數(shù)c。由于隨機(jī)數(shù)r非常大且不被告知,因此即使知道映象y也不能夠復(fù)原乘積dc,并且因此防止私鑰數(shù)d的復(fù)原,由此私鑰數(shù)被實(shí)體A保密。由于只有實(shí)體A知道數(shù)d,因此只有實(shí)體A能夠產(chǎn)生結(jié)合公共數(shù)c的映象。
考慮這里所述的協(xié)議,冒充者是試圖在不知道私鑰d的秘密的情況下象實(shí)體A一樣進(jìn)行??梢宰C明,當(dāng)整數(shù)的因數(shù)分解是一個(gè)難題時(shí),檢測不出冒充者的概率等于1/kt。因此這些協(xié)議的安全性至少與RSA的一樣。對于許多應(yīng)用,在身份驗(yàn)證背景中,乘積kt可選擇得相對小,例如為216。
這對安全參數(shù)的k和t的任何值是可能的。最好,k=1和t=e,在這種情況下上面定義的概率等于1/e,并且只要應(yīng)用一個(gè)驗(yàn)證方程。標(biāo)準(zhǔn)RSA公開指數(shù)值如e=65537,即216+1,可適用于許多應(yīng)用。
實(shí)體B接收證明第二元素y,確認(rèn)傳遞16,它隨后激活第四步驟17。
在步驟17中,實(shí)體B驗(yàn)證gey+c=x(mod n)。盡管如上面看到的,證明第二元素不告知關(guān)于私鑰d的信息,但證明第二元素y是這樣的ey+c=e(r-dc)+c.
因此,通過將普通數(shù)g自乘到其指數(shù)為公共數(shù)c和乘積ey的線性組合的冪,則gey+c=ger(g-ed+1)c=x(mod n).
而且,盡管按照數(shù)論普通數(shù)g不告知關(guān)于私鑰的信息,但普通數(shù)g事實(shí)上是這樣的(gdc)e=gc(mod n).
因而,在任何時(shí)候不告知r的情況下,等式(gy)egc=(gr)e=x(mod n).
證明實(shí)體A知道d。
通過預(yù)先計(jì)算加速這個(gè)驗(yàn)證,在步驟11的末尾或甚至在它之前v’=gc(mod n).
因而,在第四步驟中,B不再必須驗(yàn)證geyv’=x(mod n)。當(dāng)B接收y時(shí),有利的是,B一勞永逸地計(jì)算G=ge(mod n),以便在步驟11中驗(yàn)證Gyv’=x(modn)。其它優(yōu)化該驗(yàn)證計(jì)算的可能方法將在本說明書的其余部分給出。
許多優(yōu)化這個(gè)基本協(xié)議的不同方法是可能的。例如,x=ger(mod n)可用x=g-er(mod n)來代替,在這種情況下驗(yàn)證方程變成gey+cx=1(mod n)。
再次,例如,有可能用一對正或負(fù)整數(shù)(a,b)代替c并且用y=ar-bd代替y=r-dc,在這種情況下驗(yàn)證方程變成gey+b=xa(mod n)。
如果從A知道模數(shù)n的素?cái)?shù)因子,則可使用稱為″孫子剩余(Chineseremainders)″的技術(shù)來加速第一步驟。
可預(yù)先執(zhí)行第一步驟。而且,x的k值可形成A的公鑰的一部分,在這種情況下該協(xié)議直接在第二步驟開始。x的這些值也可由值得信任的外部實(shí)體來計(jì)算并存儲在實(shí)體A中。
當(dāng)證明第一元素的預(yù)先計(jì)算的值被結(jié)合到公鑰時(shí),在一個(gè)交易內(nèi)該協(xié)議直接以步驟11開始。實(shí)體B決定步驟11和13的重復(fù)數(shù)k,對于每一次重復(fù),實(shí)體B在步驟17中驗(yàn)證存在等于V的證明第一元素x的值。再次,只有實(shí)體A知道相應(yīng)于證明第一元素的隨機(jī)數(shù)。
為能夠在實(shí)體A的存儲器中存儲預(yù)先計(jì)算的最大數(shù),特別是當(dāng)實(shí)體A被集成到芯片卡(在信用卡或移動(dòng)電話的情況下)的微電路中時(shí),數(shù)x可用f(x)的值來代替,其中f是函數(shù),例如等于(或者包括)密碼散列函數(shù),在這種情況下驗(yàn)證方程變成f(gey+c(mod n))=f(x)。
可組合上述修改的全部或部分。
對該方法的一個(gè)有用的改進(jìn)在于通過Carmichael函數(shù)在實(shí)體A的存儲器中存儲模數(shù)的映象λ(n)。
為了減少證明第二元素y的大小,以便在因此不修改驗(yàn)證方程的情況下減少驗(yàn)證時(shí)間,在步驟13中計(jì)算模λ(n)的證明第二元素。在這種方法的實(shí)現(xiàn)中,有利的是,在步驟11中,選擇小于λ(n)的隨機(jī)數(shù)r。更一般地,表達(dá)式{y=r-dc}可用任何表達(dá)式{y=r-dc-iλ(n)}代替,其中i是任何整數(shù),最好是正整數(shù)。
為了加速步驟11的執(zhí)行,在將對普通數(shù)g進(jìn)行指數(shù)運(yùn)算之前,計(jì)算模λ(n)的乘積er。
一種等價(jià)的方法是用g模n的數(shù)量級代替λ(n),即最小非零整數(shù)l使得gl=1模n,或者更一般地用這個(gè)數(shù)量級l的任何倍數(shù)代替。
參考圖5,由實(shí)體B執(zhí)行驗(yàn)證計(jì)算也可部分地委托給除B之外的任何實(shí)體,不損失任何安全性。在這種情況下,A提供證明第二元素y給這個(gè)其它實(shí)體C。實(shí)體C從證明第二元素y產(chǎn)生證明第三元素Y并將證明第三元素Y送到實(shí)體B。首先,知道y不提供關(guān)于d的信息,因?yàn)槌朔edc被隨機(jī)數(shù)r″屏蔽″。其次,實(shí)際上欺騙者不可能用所有部分制造Y,即在沒有由第一實(shí)體A唯一地產(chǎn)生證明第二元素的情況下。這是因?yàn)?,如果因?shù)分解是難題,則給定n,e,x和c,找到滿足第四步驟的驗(yàn)證方程的Y值是行不通的。
公鑰是(n,e)對,并且實(shí)體B通過重復(fù)k次這里描述的協(xié)議來進(jìn)行對實(shí)體A的身份驗(yàn)證或認(rèn)證,其中C表示任何除B之外的任何實(shí)體。與已有技術(shù)中的其它協(xié)議(例如在離散對數(shù)情況下公鑰為四元組(n,e,g,v))相比,公鑰的組分?jǐn)?shù)量的減少,減少要執(zhí)行的運(yùn)算的數(shù)量而不損害安全性。有利的是,按照本發(fā)明,這里使用的公鑰是RSA類型的,可容易地將所述的協(xié)議集成到廣泛使用的RSA環(huán)境中。
該方法以與參考圖1直至步驟13所述的相同方式執(zhí)行。參考圖5,對步驟13的修改在于,實(shí)體A將私鑰d的映象y送到中間實(shí)體C。如上面看到的,映象y不給出關(guān)于私鑰的信息。
實(shí)體C接收映象y,確認(rèn)傳遞14,它因此激活第五步驟15。
在步驟15中,在這種情況下,中間實(shí)體C計(jì)算證明第三元素Y=gy(mod n)并將Y送到B。
該過程隨后繼續(xù)以與參考圖1所描述的相同的方式通過傳遞16和步驟17。然而,對步驟17的修改在于,第二實(shí)體B現(xiàn)在只需將證明第三元素Y自乘到指數(shù)為e的冪并用gc(mod n)乘以其結(jié)果。
物理上,例如,將中間實(shí)體C結(jié)合在一個(gè)芯片中,它是不需要安全保護(hù)的,包含在證明者的安全設(shè)備中(諸如芯片卡中)、包含在驗(yàn)證者的安全設(shè)備中(諸如付款終端中)或者包含在其他設(shè)備中(諸如計(jì)算機(jī)中)。安全性在于事實(shí)上實(shí)體C不能由它自己找到合適值Y,也就是說使得滿足驗(yàn)證方程。
可將上述協(xié)議轉(zhuǎn)換成消息身份驗(yàn)證協(xié)議或數(shù)字簽名方案。
圖3示出一種方法的步驟,該方法使得有可能驗(yàn)證由第二實(shí)體B收到的消息M是由第一實(shí)體A發(fā)送的。
在第一步驟20中,實(shí)體A產(chǎn)生比d大很多的第一隨機(jī)整數(shù)r并使用一個(gè)公式如P=ger(mod n)來計(jì)算證明P的一種期望(potential),如在證明第一元素的情況中的步驟9中。代替將P送到實(shí)體B,實(shí)體A通過將數(shù)P和函數(shù)h一起應(yīng)用于消息M來產(chǎn)生證明第一元素x,例如,函數(shù)h等于密碼散列函數(shù)或者包括密碼散列函數(shù)如下x=h(P,M).
接著,實(shí)體A將消息M和證明第一元素x送到實(shí)體B。
實(shí)體B接收消息M和證明第一元素x,確認(rèn)傳遞21,它激活第二步驟11。該過程隨后以參考圖1或圖5所述的相同方法繼續(xù)。
在步驟11中,實(shí)體B將在稱為安全區(qū)間的區(qū)間
內(nèi)隨機(jī)地選擇的整數(shù)c送到實(shí)體A。因而,數(shù)c對于實(shí)體A和B是公共的,并且對于滲入實(shí)體A與B之間的對話的其它任何實(shí)體也是公共的。
實(shí)體A接收公共數(shù)c,確認(rèn)傳遞12,它隨后激活第三步驟13。
在步驟13中,實(shí)體A計(jì)算y=r-dc。因而,實(shí)體A以數(shù)r和數(shù)d的線性組合的形式產(chǎn)生私鑰的映象y,其乘法系數(shù)是公共數(shù)c。由于隨機(jī)數(shù)r很大且沒有被告知,即使知道映象y也不能復(fù)原乘積dc,并且因此不能復(fù)原私鑰d,所以實(shí)體A繼續(xù)將它保密著。由于只有實(shí)體A知道數(shù)d,因此只有實(shí)體A能夠產(chǎn)生結(jié)合公共數(shù)c的映象。在這個(gè)圖3所示的例子中,實(shí)體A將私鑰映象y送到實(shí)體B,但也可如圖5所示將它送到中間實(shí)體C。如先前看到的,映象y不給出關(guān)于私鑰的任何信息。
實(shí)體B接收映象y,確認(rèn)傳遞16,它隨后激活第四步驟22。
在步驟22中,實(shí)體B如在步驟17中一樣用下面的公式計(jì)算驗(yàn)證值VV=gc+ey(mod n)并隨后用下面的驗(yàn)證方程來驗(yàn)證證明第二元素與證明第一元素的匹配h(V,M)=x.
在使用函數(shù)f的變化中,驗(yàn)證方程變成h(f(gc+ey(mod n)),M)=x。
在使用函數(shù)f并涉及中間實(shí)體C的變化中,驗(yàn)證方程變成h(f(Yegc(mod n)),M)=x。
若實(shí)體B從任何其它實(shí)體收到消息M,則由實(shí)體A簽名的消息M保持有效,從這一意義來說,消息簽名與發(fā)送者無關(guān),不同于消息身份驗(yàn)證。建議公鑰指數(shù)e的大小不小于二十四位,以便保證可接受的安全性級別。
參考圖2,在第一步驟18中,實(shí)體A產(chǎn)生第一隨機(jī)整數(shù)r并計(jì)算證明的一種期望P=ger(mod n)。
在緊接著第一步驟1的第二步驟23中,實(shí)體A通過與將數(shù)P函數(shù)h一起應(yīng)用于消息M來產(chǎn)生證明第一元素x,例如函數(shù)h等于密碼散列函數(shù)或者包括密碼散列函數(shù),如下x=h(P,M).
在步驟23中,實(shí)體A生成等于證明第一元素x的公共數(shù)c。
在緊接著步驟23的第三步驟24中,實(shí)體A計(jì)算y=r-dc。因而,實(shí)體A以數(shù)r和數(shù)d的線性組合的形式產(chǎn)生私鑰的映象y,其乘法系數(shù)是公共數(shù)c。由于隨機(jī)數(shù)r非常大并沒有被告知,即使知道映象y也不能復(fù)原乘積dc,并且因此不能復(fù)原私鑰數(shù)d,所以由實(shí)體A繼續(xù)將它保密。由于只有實(shí)體A知道數(shù)d,因此只有實(shí)體A能夠產(chǎn)生結(jié)合公共數(shù)c的映象。如上面看到的,映象y不給出關(guān)于私鑰的信息。(x,y)對構(gòu)成消息M的簽名,因?yàn)檫@個(gè)對既結(jié)合消息M又結(jié)合了私鑰元素,該私鑰元素保證實(shí)體A是這個(gè)簽名的源。
實(shí)體A隨后將消息M和簽名(x,y)送到實(shí)體B或者送到接下來能夠?qū)⒑炦^名的消息送到實(shí)體B的任何其它實(shí)體。
應(yīng)當(dāng)注意,消息M不必在步驟24發(fā)送。可在步驟19獨(dú)立于其簽名發(fā)送消息M,因?yàn)橄的任何修改將只有可以忽略不計(jì)的機(jī)會與其簽名兼容。
實(shí)體B從實(shí)體A或者從任何其它實(shí)體接收消息M及其簽名(x,y),確認(rèn)傳遞25,這隨后將激活步驟26。
在步驟26中,實(shí)體B取公共數(shù)c等于證明第一元素x。
在步驟26中,實(shí)體B如在步驟17中一樣用下面的公式計(jì)算驗(yàn)證值VV=gc+cy(mod n)并且隨后用下面的驗(yàn)證方程驗(yàn)證證明第二元素與證明第一元素的匹配h(V,M)=x.
在這種情況下,通過這個(gè)方程驗(yàn)證證明第一元素的匹配,因?yàn)槭聦?shí)上在步驟23中產(chǎn)生的公共數(shù)c本身匹配證明第一元素。
在使用函數(shù)f的變體中,驗(yàn)證方程變成h(f(gc+ey)),M)=x。
現(xiàn)在將參考圖4說明本發(fā)明的該方法的一個(gè)特別有效的實(shí)現(xiàn)。
步驟27產(chǎn)生并在實(shí)體A的存儲器中存儲一個(gè)或多個(gè)隨機(jī)數(shù)值r(j’),與它們每一個(gè)相關(guān)聯(lián)的是證明的一個(gè)期望P(j’)。索引j’用于在一個(gè)表中建立每一隨機(jī)數(shù)r(j’)與相關(guān)聯(lián)的證明的期望P(j’)之間的對應(yīng)。產(chǎn)生每一隨機(jī)數(shù)r(j’)使得或者實(shí)際上比私鑰d大得多,或者小于等于λ(n),如上面說明的。每一證明的期望P(j’)作為基數(shù)G以r(j’)為指數(shù)的冪來計(jì)算。通過在每次計(jì)算P(j’)之后將模長度k’的索引j’加1來為每行索引j’執(zhí)行步驟27。長度k’表示表的行數(shù),j’=0時(shí)表示索引表的第一行,當(dāng)j’再次變成零時(shí)停止步驟27的計(jì)算,或者繼續(xù)執(zhí)行以便更新包含在表中的值。長度k’具有等于或者大于k的值。
由實(shí)體A或者由機(jī)密實(shí)體執(zhí)行P(j’)的計(jì)算,機(jī)密實(shí)體從實(shí)體A接收隨機(jī)數(shù)r(j’)或者值λ(n)以便選擇小于或等于λ(n)的隨機(jī)數(shù)r(j’)。當(dāng)由實(shí)體A執(zhí)行P(j’)的計(jì)算時(shí),由傳遞28激活步驟27的每次執(zhí)行,傳遞28是在檢測到實(shí)體A的數(shù)字處理裝置空閑時(shí)被確認(rèn)的。
在初始步驟29中確定基數(shù)G。當(dāng)設(shè)置普通數(shù)g并因此眾所周知時(shí),實(shí)體A只需要告知公鑰(n,e),并且計(jì)算基數(shù)G使得G=ge模n。當(dāng)沒有設(shè)置普通數(shù)g時(shí),實(shí)體A選擇G的值,例如G=2,并且產(chǎn)生g=Gd模n。然后將普通數(shù)g與公鑰一起傳送。索引j’設(shè)置為零,使得從表的第一行開始步驟27的第一次執(zhí)行。每次步驟27的執(zhí)行的結(jié)束都被連接回到步驟29的出口,以便掃描傳遞28并按照順序掃描傳遞40、41、42。
由認(rèn)證交易確認(rèn)傳遞42,它隨后激活一系列步驟43和45。
步驟43決定重復(fù)索引j的位置,例如,等于包含隨機(jī)數(shù)和相關(guān)聯(lián)的證明的期望的表的當(dāng)前索引j’。
在步驟45中,實(shí)體A通過簡單地從表中讀出證明的期望P(j)來產(chǎn)生第一元素x。在由傳遞42的確認(rèn)檢測交易期間,證明第一元素的產(chǎn)生因此不要求冪計(jì)算。因而快速地傳送證明第一元素x。
由公共數(shù)c的接收確認(rèn)傳遞1,它隨后激活步驟2。
在步驟2中,實(shí)體A如上所述產(chǎn)生證明第二元素y。由于運(yùn)算僅限于少量乘法和加減法,因此它們需要很少的計(jì)算時(shí)間。因而在公共數(shù)c的接收之后能快速地傳送證明第二元素y。
在步驟2中,索引p以單位增量增加,使得重復(fù)步驟45和步驟2,只要在傳遞3中檢測到j(luò)不同于j’模k,直到傳遞4檢測到j(luò)等于j’模k,以便在步驟45的k次執(zhí)行之后返回到步驟29的出口。
由消息M的簽名交易確認(rèn)傳遞41。傳遞41隨后激活一系列步驟44和46。
步驟44確定重復(fù)索引j的位置,例如等于包含隨機(jī)數(shù)和相關(guān)聯(lián)的證明的期望的表的當(dāng)前索引j’。在步驟44發(fā)送消息M。
在步驟46中,實(shí)體A通過將標(biāo)準(zhǔn)散列函數(shù)h()施加于消息M并且施加于簡單地從表中讀出證明的期望P(j)的結(jié)果生成證明x的第一元素。取公共數(shù)c等于證明第一元素x。
在步驟46中,實(shí)體A產(chǎn)生證明第二元素y,如上面說明的。由于這些運(yùn)算僅限于少量乘法和加減法,因此它們需要很少的計(jì)算時(shí)間。因此,在由傳遞41的確認(rèn)檢測交易期間,由證明第一元素x和證明第二元素y組成的簽名的產(chǎn)生不需要冪計(jì)算。因而能快速地傳送簽名(x,y)。
在步驟46中可選地,用單位增量增加索引j,使得只要在傳遞3中檢測到j(luò)不同于j’模k就重復(fù)步驟46,直到傳遞檢測到j(luò)等于j’模k為止,以便在步驟46的k次執(zhí)行之后返回到步驟29的出口。
由用于身份驗(yàn)證消息M的交易確認(rèn)傳遞40。傳遞40隨后激活一系列的步驟43和47。
步驟43確定重復(fù)索引j的位置,例如等于包含隨機(jī)數(shù)和相關(guān)聯(lián)證明的期望的表的當(dāng)前索引j’。
在步驟47中,實(shí)體A傳送消息M和證明第一元素x。通過將標(biāo)準(zhǔn)散列函數(shù)h()施加于消息M并且施加于簡單地讀出表的證明的期望P(j)來產(chǎn)生證明第一元素x。
因此,在傳遞40的確認(rèn)檢測交易期間,證明第一元素的產(chǎn)生不需要冪計(jì)算。因而能快速地傳送證明第一元素x。
由公共數(shù)c的接收確認(rèn)傳遞1,它隨后激活步驟48。
在步驟48中,實(shí)體A產(chǎn)生證明第二元素y,如上面說明。由于這些運(yùn)算限于少量乘法和加減法,因此它們需要很少計(jì)算時(shí)間。因而在公共數(shù)c的接收之后能快速地傳送證明第二元素y。
在步驟48中,用單位增量增加索引p,使得只要在步驟3檢測到j(luò)不同于j’模k重復(fù)步驟47和步驟48,直到交易4檢測到p等于j’模k,以便在步驟47的k次執(zhí)行之后返回步驟29的出口。
參考圖6,分別由證明者設(shè)備30、驗(yàn)證者設(shè)備31和中間設(shè)備32在物理上形成上述實(shí)體A、B、C。證明者設(shè)備30例如是微處理器卡,諸如信用卡或移動(dòng)電話訂戶認(rèn)證卡。驗(yàn)證者設(shè)備31例如銀行終端或者電子商務(wù)服務(wù)器,或者移動(dòng)通信操作者設(shè)備。中間設(shè)備32例如是微處理卡擴(kuò)展,信用卡讀取終端或者移動(dòng)電話電子卡。
證明者設(shè)備30包括通信裝置34和計(jì)算裝置37。證明者設(shè)備30受到保護(hù)不被侵入。通信裝置34設(shè)計(jì)為按照參考圖1、3和4所述的步驟9、45或47傳送證明第一元素x;按照參考圖1和3所述的步驟13,在參考圖2所述的步驟24或者在參考圖4所述的步驟2和48,傳送證明第二元素y;按照參考圖1至4所述的步驟19、20、44或47傳送消息M;或者按照參考圖2和4所述的步驟24、46傳送公共數(shù)c,具體取決于要實(shí)現(xiàn)的方法的版本。當(dāng)要實(shí)現(xiàn)的方法相應(yīng)于認(rèn)證或身份驗(yàn)證時(shí),通信裝置34也設(shè)計(jì)為按照參考圖1至4所述的傳遞12或1接收公共數(shù)c。對于相應(yīng)于簽名的要實(shí)現(xiàn)的方法的版本,通信裝置34不必設(shè)計(jì)成接收公共數(shù)c。
計(jì)算裝置37設(shè)計(jì)為執(zhí)行參考圖1或5所述的步驟9和13,參考圖2所述的步驟18、19、23和24,以及參考圖3所述的步驟13和20或者參考圖4所述的步驟,具體取決于要實(shí)現(xiàn)的方法的版本。計(jì)算裝置37以已知的方式包括微處理器和微程序或者專用于上述計(jì)算的組合電路。
驗(yàn)證者裝置31包括通信裝置35和計(jì)算裝置38。當(dāng)要實(shí)現(xiàn)的方法的版本相應(yīng)于身份驗(yàn)證時(shí),通信裝置35設(shè)計(jì)為按照參考圖1、3和5所述的步驟11,傳送一個(gè)或多個(gè)公共數(shù)c。對于相應(yīng)于簽名的要實(shí)現(xiàn)的方法的版本,通信裝置35不必設(shè)計(jì)為傳送公共數(shù)c。通信裝置35也設(shè)計(jì)為按照參考圖1至3和5所述的傳遞10和16接收兩個(gè)證明的元素x和y;或按照參考圖3所述的傳遞21和16傳送帶有證明第一元素x與證明第二元素y的消息M;或者按照參考圖5所述的傳遞2和8傳送證明第二元素和帶有一個(gè)或多個(gè)公共數(shù)c及私鑰映象y的消息M。
計(jì)算裝置38設(shè)計(jì)為執(zhí)行參考圖1和5所述的步驟11和17,參考圖2所述的步驟26,或者參考圖3所述的步驟11和22,具體取決于要實(shí)現(xiàn)的方法的版本。計(jì)算裝置38以已知的方式包括微處理器和微程序或者專用于上述計(jì)算的組合電路。
中間設(shè)備32包括通信裝置36和計(jì)算裝置39。通信裝置36設(shè)計(jì)為按照參考圖5所述的步驟15傳送證明第三元素Y。通信裝置36還設(shè)計(jì)為按照參考圖5所述的傳遞14接收證明第二元素y。
計(jì)算裝置39設(shè)計(jì)為執(zhí)行參考圖5所述的步驟15。計(jì)算裝置39以已知的方式包括微處理器和程序或者專用于上述計(jì)算的組合電路。
作為改進(jìn),上述計(jì)算和通信裝置設(shè)計(jì)為重復(fù)上述步驟的執(zhí)行k次,每次用于不同的證明第一元素和證明第二元素。
權(quán)利要求
1.一種在交易中使用的密碼方法,為所述交易,第一實(shí)體(A)用RSA私鑰(d)產(chǎn)生一證明,所述證明可由第二實(shí)體(B)用與所述私鑰相關(guān)聯(lián)的一RSA公鑰來驗(yàn)證,所述公鑰包括第一指數(shù)(e)和模數(shù)(n),其特征在于-第一實(shí)體(A)產(chǎn)生證明第一元素(x),它的第一計(jì)算消耗相當(dāng)多的資源,可以獨(dú)立于所述交易執(zhí)行第一計(jì)算;-第一實(shí)體(A)產(chǎn)生與證明第一元素(x)相關(guān)的并且依賴于公共數(shù)(c)的證明第二元素(y),公共數(shù)(c)由第一和第二實(shí)體共享專用于所述交易,證明第二元素(y)的第二計(jì)算消耗少量資源;以及-第二實(shí)體(B)驗(yàn)證證明第一元素(x)通過一種關(guān)系與具有第二指數(shù)的普通數(shù)(g)的第一冪模模數(shù)(n)相關(guān),第二指數(shù)等于公共數(shù)(c)的全部或部分與公鑰的第一指數(shù)(e)乘以證明第二元素(y)的線性組合。
2.如權(quán)利要求1所述的密碼方法,其特征在于,為允許識別第一實(shí)體(A)-由第一實(shí)體(A)通過將普通數(shù)(g)自乘到具有第三指數(shù)的第二冪模模數(shù)(n)來產(chǎn)生證明第一元素(x),第三指數(shù)等于公鑰的第一指數(shù)(e)乘以由第一實(shí)體(A)保密的隨機(jī)整數(shù)(r);-由第二實(shí)體(B)在已經(jīng)收到證明第一元素(x)之后隨機(jī)地從安全區(qū)間
內(nèi)選擇公共數(shù)(c)并且隨后發(fā)送;以及-由第二實(shí)體(B)驗(yàn)證的關(guān)系是證明第一元素(x)的冪與普通數(shù)(g)的第一冪之間的相等關(guān)系。
3.如權(quán)利要求1所述的密碼方法,其特征在于,為了允許簽名一消息(M)-由第一實(shí)體(A)通過將一標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息(M)并且應(yīng)用于被自乘到具有第三指數(shù)的第二冪模模數(shù)(n)的普通數(shù)(g)來產(chǎn)生證明第一元素(x),第三指數(shù)等于公鑰的第一指數(shù)(e)乘以由第一實(shí)體(A)保密的隨機(jī)整數(shù)(r);-公共數(shù)(c)等于證明第一元素(x);以及-由第二實(shí)體(B)驗(yàn)證的關(guān)系是證明第一元素(x)與將標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息(M)并且應(yīng)用于普通數(shù)(g)的第一冪的結(jié)果之間的相等關(guān)系。
4.如權(quán)利要求1所述密碼方法,其特征在于,為了身份驗(yàn)證由第二實(shí)體(B)收到的消息(M)來自第一實(shí)體(A)-由第一實(shí)體(A)通過將標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息(M)并且應(yīng)用于被自乘到具有第三指數(shù)的第二冪模模數(shù)(n)的普通數(shù)(g)來產(chǎn)生證明第一元素(x),第三指數(shù)等于公鑰的第一指數(shù)(e)乘以由第一實(shí)體(A)保密的隨機(jī)整數(shù)(r);-由第二實(shí)體(B)在已經(jīng)收到證明第一元素(x)之后從安全區(qū)間
內(nèi)隨機(jī)選擇公共數(shù)(c)并且隨后發(fā)送;以及-由第二實(shí)體(B)驗(yàn)證的關(guān)系是證明第一元素(x)與將標(biāo)準(zhǔn)散列函數(shù)應(yīng)用于消息(M)并且應(yīng)用于普通數(shù)(g)的第一冪的結(jié)果之間的相等關(guān)系。
5.如權(quán)利要求2至4之一所述的密碼方法,其特征在于-由第一實(shí)體(A)通過從隨機(jī)整數(shù)(r)中減去私鑰(d)乘以公共數(shù)(c)來產(chǎn)生證明第二元素(y);-等于第二指數(shù)的線性組合包括用于公共數(shù)(c)的正單位系數(shù)和用于公鑰的第一指數(shù)(e)乘以證明第二元素(y)的正單位系數(shù);以及-在驗(yàn)證的關(guān)系中,認(rèn)為證明第一元素具有單位指數(shù)冪。
6.如權(quán)利要求2和4任意之一所述的密碼方法,其特征在于-由于將公共數(shù)(c)分成第一基本公共數(shù)(a)和第二基本公共數(shù)(b),因此第一實(shí)體(A)通過從隨機(jī)整數(shù)(r)乘以第一基本公共數(shù)(a)中減去私鑰(d)乘以第二基本公共數(shù)(b)來產(chǎn)生證明第二元素(y);-等于第二指數(shù)的線性組合包括用于第一基本公共數(shù)(a)的零系數(shù),用于第二基本公共數(shù)(b)的正單位系數(shù)和用于公鑰的第一指數(shù)(e)乘以證明第二元素(y)的正單位系數(shù);以及-在驗(yàn)證的關(guān)系中,認(rèn)為證明第一元素具有等于第一基本公共數(shù)(a)的指數(shù)冪。
7.如權(quán)利要求5和6任意之一所述的密碼方法,其特征在于,計(jì)算證明第二元素(y)模通過Carmichael函數(shù)(λ)的模數(shù)(n)的映象或者模普通數(shù)(g)模模數(shù)(n)的數(shù)量級的倍數(shù)。
8.如權(quán)利要求5和6任意之一所述的密碼方法,其特征在于,隨機(jī)數(shù)(r)比私鑰(d)大得多。
9.如權(quán)利要求7所述的密碼方法,其特征在于,隨機(jī)整數(shù)(r)小于通過Carmichael函數(shù)(λ)的模數(shù)(n)的映象或者小于普通數(shù)(g)模模數(shù)(n)的數(shù)量級的倍數(shù)。
10.如權(quán)利要求5至9之一所述的密碼方法,其特征在于,計(jì)算第三指數(shù)模通過Carmichael函數(shù)(λ)的模數(shù)(n)的映象或者模普通數(shù)(g)模模數(shù)(n)的數(shù)量級的倍數(shù)。
11.如前面的權(quán)利要求之一所述的密碼方法,其特征在于,與公鑰一起傳送普通數(shù)(g),普通數(shù)(g)等于具有私鑰(d)作為指數(shù)的被自乘到一個(gè)冪模模數(shù)(n)的基數(shù)(G)。
12.如前面的權(quán)利要求之一所述的密碼方法,其特征在于-第三實(shí)體(C)接收證明第二元素(y),通過自乘普通數(shù)(g)到具有證明第二元素(y)作為指數(shù)的冪模模數(shù)(n)來產(chǎn)生證明第三元素(Y)并將證明第三元素(Y)送到第二實(shí)體(B);以及-第二實(shí)體(B),模模數(shù)(n),自乘證明第三元素(Y)到第一指數(shù)(e)的冪并且將其結(jié)果乘以被自乘到其指數(shù)為公共數(shù)(c)的冪的普通數(shù)(g),以便驗(yàn)證將證明第一元素與證明第二元素相關(guān)的關(guān)系。
13.一種證明者設(shè)備(30),其具有保密的RSA私鑰(d)并受到不被侵入的保護(hù),用于在與一驗(yàn)證者設(shè)備交易期間產(chǎn)生一證明,用與所述私鑰相關(guān)聯(lián)的公鑰對其驗(yàn)證,使得有可能保證設(shè)備(30)產(chǎn)生了所述證明,所述RSA公鑰包括第一指數(shù)(e)和模數(shù)(n),其特征在于,它包括-計(jì)算裝置(37),設(shè)計(jì)為完全或者部分地獨(dú)立于交易產(chǎn)生證明第一元素(x)并且依賴于專用于交易的公共數(shù)(c)產(chǎn)生與證明第一元素相關(guān)的證明第二元素(y);以及-通信裝置(34)設(shè)計(jì)為傳送至少證明的第一和第二元素并且設(shè)計(jì)為將所述公共數(shù)(c)傳送到驗(yàn)證者設(shè)備或者從其接收所述公共數(shù)。
14.如權(quán)利要求13所述的證明者設(shè)備(30),其特征在于-在一方面,計(jì)算裝置(37)設(shè)計(jì)為產(chǎn)生第一隨機(jī)數(shù)(r)并且自乘普通數(shù)(g)到具有第三指數(shù)的第二冪模模數(shù)(n),第三指數(shù)等于公鑰的第一指數(shù)(e)乘以隨機(jī)整數(shù)(r);以及-在另一方面,計(jì)算裝置(37)設(shè)計(jì)為通過取隨機(jī)整數(shù)(r)與私鑰(d)乘以公共數(shù)(c)之間的差,或者將公共數(shù)(c)分成兩個(gè)基本公共數(shù)(a,b),通過從隨機(jī)整數(shù)(r)乘以第一基本公共數(shù)(a)中減去私鑰(d)乘以第二基本公共數(shù)(b),來產(chǎn)生證明第二元素(y)。
15.如權(quán)利要求14所述的證明者設(shè)備(30),其特征在于,計(jì)算裝置(37)設(shè)計(jì)為執(zhí)行模通過Carmichael函數(shù)(λ)的模數(shù)(n)的映象或者普通數(shù)(g)模模數(shù)(n)的數(shù)量級的倍數(shù)的運(yùn)算。
16.一種驗(yàn)證者設(shè)備(31),用于驗(yàn)證一證明來源于一證明者設(shè)備,其具有由證明者設(shè)備保密的RSA私鑰(d),驗(yàn)證是用與所述私鑰相關(guān)聯(lián)的公鑰來進(jìn)行的,所述RSA公鑰包括指數(shù)(e)和模數(shù)(n),其特征在于,它包括-通信裝置(35),設(shè)計(jì)為接收證明第一元素(x)和證明第二元素(y)或者證明第三元素(Y),并且接收或者傳送專用于一交易的公共數(shù)(c),在所述交易內(nèi)接收證明的第一和第二或第三元素;以及-計(jì)算裝置(38),設(shè)計(jì)為驗(yàn)證證明第一元素(x)通過一種關(guān)系與模模數(shù)(n)的具有第二指數(shù)普通數(shù)(g)的第一冪相關(guān),第二指數(shù)等于公共數(shù)(c)的全部或部分與公鑰的第一指數(shù)(e)乘以證明第二元素(y)的線性組合。
17.如權(quán)利要求16所述的驗(yàn)證者設(shè)備(31),其特征在于,通信裝置設(shè)計(jì)為接收證明第二元素(y),并且其中計(jì)算裝置(38)設(shè)計(jì)為計(jì)算第二指數(shù)和普通數(shù)(g)的所述第一冪。
18.如權(quán)利要求16所述的驗(yàn)證者設(shè)備(31),其特征在于,通信裝置設(shè)計(jì)為接收證明第三元素(Y),并且其中計(jì)算裝置(38)設(shè)計(jì)為自乘證明第三元素(Y)到公鑰的第一指數(shù)(e)的一個(gè)冪,以便將其結(jié)果乘以被自乘到具有公共數(shù)(c)為指數(shù)的第二冪的普通數(shù)(g)。
全文摘要
本發(fā)明涉及在交易中使用的一種加密方法,為該交易,第一實(shí)體(A)用一RSA私鑰產(chǎn)生一證明,該證明可由第二實(shí)體(B)用與所述私鑰相關(guān)聯(lián)的RSA公鑰來驗(yàn)證該證明。公鑰包括第一指數(shù)(e)和模數(shù)(n)。在所述方法中,第一實(shí)體(A)產(chǎn)生證明第一元素(x),可獨(dú)立于該交易獲得其的一個(gè)計(jì)算,并且產(chǎn)生與證明第一元素(x)相關(guān)的證明第二元素(y),而且它依賴于由第一和第二實(shí)體專用于該交易而共享的公共數(shù)(c)。第二實(shí)體(B)驗(yàn)證證明第一元素(x)通過一種關(guān)系與普通數(shù)(g)的第一冪模模數(shù)(n)相關(guān)。
文檔編號H04L9/10GK1666458SQ03815869
公開日2005年9月7日 申請日期2003年6月27日 優(yōu)先權(quán)日2002年7月5日
發(fā)明者M·吉?jiǎng)跔柼? J·-C·派勒斯 申請人:法國電信局