專利名稱:快速rsa簽名驗(yàn)證的制作方法
快速RSA簽名驗(yàn)證
背景技術(shù):
數(shù)字簽名用于數(shù)字地證明經(jīng)簽署的數(shù)據(jù)是由特定實(shí)體發(fā)送的。諸如計(jì)算機(jī)用 戶等每個(gè)實(shí)體導(dǎo)出一組被稱為密鑰對(duì)的數(shù)據(jù)。密鑰對(duì)中的一個(gè)密鑰被稱為公鑰且可
以被自由分發(fā)。密鑰對(duì)的第二個(gè)密鑰被稱為私鑰,并且數(shù)字簽名唯一地標(biāo)識(shí)特定實(shí) 體的能力取決于實(shí)體有多小心地保護(hù)其私鑰??梢允褂盟借€來(lái)"簽署"任何數(shù)據(jù)。 更具體地,要簽署的數(shù)據(jù)和私鑰作為輸入提供給已知數(shù)學(xué)函數(shù)。這種函數(shù)的輸出是 數(shù)據(jù)的數(shù)字簽名。
接著可以使用公鑰來(lái)驗(yàn)證自從數(shù)據(jù)被簽署后沒(méi)有被更改過(guò)。更具體地,經(jīng)簽 署的數(shù)據(jù)、數(shù)字簽名和公鑰作為輸入提供給已知的數(shù)學(xué)函數(shù)。如果經(jīng)簽署的數(shù)據(jù)在 它被簽署之后被修改,則數(shù)學(xué)函數(shù)將如此指示 一般地通過(guò)要不是對(duì)數(shù)據(jù)的修改應(yīng) 該是相等的所得值的不相等。假設(shè)僅私鑰可以生成將在數(shù)學(xué)上用對(duì)應(yīng)的公鑰驗(yàn)證的 簽名,則對(duì)簽名的這種數(shù)學(xué)驗(yàn)證指示數(shù)據(jù)沒(méi)有改變,因?yàn)樗怯蓳碛性撍借€的某人 來(lái)簽署的。如果僅有一個(gè)實(shí)體擁有該私鑰,則簽名的驗(yàn)證用于驗(yàn)證數(shù)據(jù)實(shí)際上是由 該實(shí)體發(fā)送的,并且它在傳輸過(guò)程中沒(méi)有被修改過(guò)。
一種常用的數(shù)字簽名算法被稱為RSA算法,其借用有功于其發(fā)明的三個(gè)人的 姓的第一個(gè)字母。RSA公鑰包括通常用字母"e"指示的"公共指數(shù)"以及通常用 字母指示的模數(shù)。某些數(shù)據(jù)(通常稱為"消息"并且由變量表示)的 RSA簽名可以通過(guò)檢查/mod"等于F(m,")來(lái)驗(yàn)證,其中"F"是所協(xié)商的填 充函數(shù)(padding function)。
隨著對(duì)數(shù)字通信的使用的增加,經(jīng)簽署的消息的數(shù)目也同樣增加。因此,驗(yàn) 證經(jīng)簽署的消息所花費(fèi)的時(shí)間會(huì)是重要的,尤其是因?yàn)楸M管消息僅需要被簽署一 次,但其簽名可以被驗(yàn)證多次——每個(gè)接收者驗(yàn)證一次。結(jié)果,簽名驗(yàn)證的執(zhí)行次 數(shù)要比消息簽署多得多。
對(duì)于RSA算法,簽名驗(yàn)證要求計(jì)算F(m,")和/ mod "兩者,其中"F"是所 協(xié)商的填充函數(shù)。在這兩個(gè)表達(dá)式中,傳統(tǒng)上后者計(jì)算起來(lái)在計(jì)算上更為密集。實(shí) 際上, 一般地使用單獨(dú)的模乘和模平方以逐步的方式來(lái)對(duì)/mod"求值。如本領(lǐng)域 的技術(shù)人員所公知的,直接計(jì)算/ mod "并且避免這種逐步的方式將導(dǎo)致可能是非常大的/項(xiàng)的計(jì)算,結(jié)果是損失了性能。
概述
為了驗(yàn)證RSA簽名,消息數(shù)據(jù)"m"和簽名、"的接收者需要驗(yàn)證/mod" 等于F(m,M),其中"F"是所協(xié)商的填充函數(shù),且"e"和"""是對(duì)應(yīng)于該消息的 簽署者的RSA公鑰的元素。然而,驗(yàn)證/ mod "等于F(m,w)具有非常接近于1的 概率在數(shù)學(xué)上是足夠的,而非驗(yàn)證相等絕對(duì)為真。用于此的一個(gè)機(jī)制是驗(yàn)證對(duì)于適 當(dāng)選擇的的值,(/mod") mod p等于F(m,") mod; 。
根據(jù)模運(yùn)算的特性,如果"《"值被定義為/div",則/mod"可以被表示為 ^-《"。將該表達(dá)式代入以上模p的等式,得到(/_《")!110£1;7 = (/ ,")1110(1/ 。等 號(hào)左邊的表達(dá)式可以計(jì)算為((s mod; )e -(尺mod p)(" mod; )) mod; ??紤]到該表達(dá) 式的各項(xiàng), 一開(kāi)始需要計(jì)算以下值(1) smodp, (2)尺mod; 以及(3) "mod 戶這些項(xiàng)中的每一個(gè)都是對(duì)/7的模,并且因此得到相對(duì)小的值,因?yàn)榭梢赃x擇p 為易于處理的小的值,且任何模p的項(xiàng)在數(shù)學(xué)上肯定比p小。使用單獨(dú)的模平方和 模乘來(lái)計(jì)算求冪,剩余的計(jì)算都可以通過(guò)模; 來(lái)完成。
然而,值留待確定。如果選擇指數(shù)"e"足夠小,諸如e = 2或e = 3, 則K的值同樣將相對(duì)地小,因?yàn)镵與/成正比。相對(duì)小的《值使得能夠更高效地 計(jì)算《modp項(xiàng),并且也使得能夠更高效地傳輸《。假設(shè)《涉及指數(shù)項(xiàng),即/,則 推導(dǎo)出《值在計(jì)算上會(huì)是高耗費(fèi)的。然而,由于可以高效地傳輸尺,因此它可以 由除尋求驗(yàn)證簽名s的計(jì)算設(shè)備之外的計(jì)算設(shè)備來(lái)確定,接著被簡(jiǎn)單地發(fā)送給執(zhí)行 驗(yàn)證的計(jì)算設(shè)備。出于更為重要的安全性考慮,《值完全基于公開(kāi)可用的信息,包 括簽名s、公共指數(shù)e以及模數(shù)"。因此,發(fā)送《不會(huì)引起RSA簽名方案的安全性 的任何降低。
在一個(gè)實(shí)施例中,《值可以用除接收經(jīng)簽署的消息的計(jì)算設(shè)備之外的計(jì)算設(shè) 備來(lái)計(jì)算,并且接著可以被發(fā)送到接收該經(jīng)簽署的消息的一個(gè)或多個(gè)計(jì)算設(shè)備。例 如,《值可以用發(fā)送和簽署消息的計(jì)算設(shè)備來(lái)計(jì)算。與簽署消息自身的計(jì)算成本相 比,計(jì)算《的計(jì)算成本是極小的。因此,簽署計(jì)算設(shè)備所執(zhí)行的工作沒(méi)有顯著的 增加。
在一替換實(shí)施例中,尺值可以用集中式服務(wù)器來(lái)計(jì)算,如負(fù)責(zé)將經(jīng)簽署的消 息的各個(gè)副本分發(fā)到作為服務(wù)器的客戶機(jī)的那些計(jì)算設(shè)備的電子郵件服務(wù)器、或者 在一個(gè)或多個(gè)客戶機(jī)之間共享經(jīng)簽署的數(shù)據(jù)的文件服務(wù)器。通過(guò)在中央位置計(jì)算《,可以使得由經(jīng)簽署的消息的接收者所執(zhí)行的每個(gè)單獨(dú)的簽名驗(yàn)證變得更為高 效。
在另一替換實(shí)施例中,接收經(jīng)簽署的消息的計(jì)算設(shè)備可以計(jì)算一次K,并將 其與經(jīng)簽署的消息一起存儲(chǔ)。隨后通過(guò)參考已經(jīng)計(jì)算出的K值,可以更高效地執(zhí) 行任何后續(xù)的簽名驗(yàn)證。
在又一替換實(shí)施例中,使用RSA簽名方案的Rabin變量,可以選擇公共指數(shù) e為e = 2。選擇這種小的e值提供可以用高效的方式發(fā)送并且隨后可以由驗(yàn)證計(jì)算 設(shè)備用高效的方式來(lái)使用的相對(duì)小的《值。在又一替換實(shí)施例中,可以選擇公共 指數(shù)e為e:3。即使6 = 3,尺值也可以保持相對(duì)小,但是避免了 Rabin變量的缺 點(diǎn)。在這兩種情況下"=2和^ = 3),選擇填充函數(shù)F來(lái)最小化由于選擇小公共 指數(shù)而造成的任何安全性降級(jí)。
在又一替換實(shí)施例中,可以使用現(xiàn)有格式來(lái)發(fā)送K值以便提供向后兼容性。 例如,許多簽名是編碼在提供附加字段以供添加的格式中的?!吨悼梢越?jīng)由這種附 加字段來(lái)提供。知道要查找這種字段的接收計(jì)算設(shè)備可以利用通過(guò)預(yù)先計(jì)算《所 獲得的計(jì)算效率,而尚未更新的接收計(jì)算設(shè)備仍可以驗(yàn)證簽名并可以簡(jiǎn)單地忽略包 括《值的附加字段。因此,《可以用向后兼容的方式來(lái)提供。
提供本概述以便以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概 念。本概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限 制所要求保護(hù)的主題的范圍。
附加特征和優(yōu)點(diǎn)將從以下參考附圖進(jìn)行的詳細(xì)描述中顯而易見(jiàn)。
附圖簡(jiǎn)述
結(jié)合附圖,可以最好地理解以下詳細(xì)描述,其中
圖l是傳統(tǒng)簽名方案的框圖2是示例性計(jì)算設(shè)備的框圖3是示出由執(zhí)行簽名驗(yàn)證的計(jì)算設(shè)備接收到的元素的框圖4是示出根據(jù)一個(gè)實(shí)施例的將元素傳輸?shù)接?jì)算設(shè)備的框圖;以及
圖5是示出根據(jù)另一實(shí)施例的將元素傳輸?shù)接?jì)算設(shè)備的框圖。
詳細(xì)描述
以下描述涉及用于更高效地驗(yàn)證消息簽名的機(jī)制。可以通過(guò)驗(yàn)證/ mod "=
6F(w,")來(lái)驗(yàn)證RSA消息簽名,其中、"是簽名,"e"是來(lái)自RSA公鑰的指數(shù), "w"是來(lái)自RSA公鑰的模數(shù),是經(jīng)簽署的數(shù)據(jù),以及函數(shù)是所協(xié)商 的填充函數(shù)。如果預(yù)先計(jì)算定義為《二/div" (/除以"^的《值并且將其作為輸 入提供給驗(yàn)證簽名的計(jì)算設(shè)備,則可以將驗(yàn)證等式/ mod n = F(m,w)的效率提高一 個(gè)或多個(gè)數(shù)量級(jí)。為了避免傳輸大的《值以及對(duì)其的數(shù)學(xué)運(yùn)算(它們本身可能是 低效的),可以選擇相對(duì)小的指數(shù)e,如6 = 2或£ = 3。
在一個(gè)實(shí)施例中,《值可以由簽署消息的計(jì)算設(shè)備來(lái)計(jì)算,并且與消息和簽 名一起發(fā)送。計(jì)算K值的計(jì)算復(fù)雜度比計(jì)算消息簽名的計(jì)算復(fù)雜度小得多,并且 因此不會(huì)對(duì)簽署消息的計(jì)算設(shè)備增加顯著的計(jì)算負(fù)擔(dān)。
在另一實(shí)施例中,《值可以由諸如電子郵件或文件服務(wù)器等集中式計(jì)算設(shè)備 來(lái)計(jì)算。在一個(gè)示例中,電子郵件或文件服務(wù)器可以在接收到經(jīng)簽署的消息后且在 服務(wù)器的任何客戶機(jī)接收該經(jīng)簽署的消息之前計(jì)算《值。通過(guò)以集中式的方式執(zhí) 行一次K的計(jì)算,可以更高效地實(shí)施多個(gè)單獨(dú)的簽名驗(yàn)證,從而基本上補(bǔ)償服務(wù) 器計(jì)算設(shè)備的附加計(jì)算努力。
在又一實(shí)施例中,接收消息和簽名的計(jì)算機(jī)可以計(jì)算一次《并存儲(chǔ)它以供在 后續(xù)簽名驗(yàn)證時(shí)使用。為了便于訪問(wèn),可以將《存儲(chǔ)在接收計(jì)算機(jī)上,這樣使得 它可以與消息和簽名處于一個(gè)位置。
在又一實(shí)施例中,可以將公共指數(shù)e的值選為2,以提供可由驗(yàn)證簽名的計(jì)算 設(shè)備高效發(fā)送和高效使用的相對(duì)小的《值。在又一實(shí)施例中,可以將公共指數(shù)e 的值選為3,以在保持〖值相對(duì)小的同時(shí)提供附加的安全性。使用e = 2或e = 3 要求適當(dāng)?shù)剡x擇適當(dāng)?shù)仉S機(jī)化結(jié)果中的所有位的填充函數(shù)F。
此處所描述的技術(shù)集中在但不限于,通過(guò)使用預(yù)先計(jì)算的《值來(lái)更高效地實(shí) 施驗(yàn)證的RSA簽名的驗(yàn)證。如將要示出的,可以用任何數(shù)量的計(jì)算設(shè)備來(lái)計(jì)算/C 值。此外,假設(shè)適當(dāng)?shù)剡x擇公共指數(shù)e并假設(shè)簽名驗(yàn)證無(wú)需無(wú)限的準(zhǔn)確度,則所述 驗(yàn)證可以比傳統(tǒng)的RSA簽名驗(yàn)證快一個(gè)或多個(gè)數(shù)量級(jí)。
轉(zhuǎn)向圖l,示出部分地包括發(fā)送計(jì)算設(shè)備20和接收計(jì)算設(shè)備IO的示例性系統(tǒng) 99,所述兩個(gè)計(jì)算設(shè)備經(jīng)由網(wǎng)絡(luò)90連接。發(fā)送計(jì)算機(jī)20可以生成兩個(gè)密鑰公鑰 21和私鑰22。密鑰的生成是用本領(lǐng)域技術(shù)人員所公知的方法來(lái)進(jìn)行的,諸如根據(jù) 普遍存在的RSA算法或RSA算法的Rabin變量。之所以稱為公鑰21是因?yàn)樗?在被自由地分發(fā)并且由諸如接收計(jì)算設(shè)備10等接收者用于驗(yàn)證使用私鑰22簽署的 消息的簽名。
7消息30可以由發(fā)送計(jì)算設(shè)備20生成并且包括發(fā)送計(jì)算設(shè)備希望發(fā)送的任何數(shù)據(jù)集合。消息30可以例如是電子郵件消息,但不限于此。同樣地,消息30可以 是由發(fā)送計(jì)算設(shè)備20發(fā)送的文件、組件、模塊或任何其它數(shù)據(jù)集合。在發(fā)送消息30之前,計(jì)算設(shè)備可以使用私鑰22用諸如RSA算法所描述的方 式等本領(lǐng)域技術(shù)人員公知的方式來(lái)生成經(jīng)簽署的消息31。用這樣的方式使用私鑰 22來(lái)簽署消息30以使得可以使用消息數(shù)據(jù)、簽名自身以及包含在公鑰21中的信 息來(lái)驗(yàn)證經(jīng)簽署的消息的簽名。更具體地,私鑰22用于基于由變量"m"表示的 消息30的數(shù)據(jù)來(lái)生成由變量、"表示的簽名,使得"臠足等式/modw二尸(m"), 其中m和e都是公鑰21的部分。一旦計(jì)算設(shè)備20生成了包括消息數(shù)據(jù)和簽名的經(jīng)簽署的消息31,則可以諸如 通過(guò)網(wǎng)絡(luò)90將其發(fā)送至計(jì)算設(shè)備10。計(jì)算設(shè)備10可以通過(guò)驗(yàn)證簽名滿足等式/ mod":/^m,"j來(lái)驗(yàn)證經(jīng)簽署的消息31的簽名。如果簽名滿足等式,則所接收到的 消息數(shù)據(jù)很可能是與發(fā)送計(jì)算設(shè)備20所發(fā)送的相同的消息數(shù)據(jù),并且發(fā)送計(jì)算設(shè) 備20或更適當(dāng)?shù)匕l(fā)送計(jì)算設(shè)備的用戶還很可能是消息的發(fā)送者,因?yàn)樵撚脩魬?yīng)該 是可以使用密鑰22的唯一的人,并且要求該私鑰來(lái)生成滿足等式/ mod = 的簽名。因此,通過(guò)驗(yàn)證經(jīng)簽署消息31的簽名,接收計(jì)算設(shè)備10接收消息的內(nèi)容 確實(shí)是由其聲明的發(fā)送者發(fā)送的數(shù)字保證。如
圖1所示,為了驗(yàn)證/ mod m = F(m,m),接收計(jì)算設(shè)備10從經(jīng)簽署的消息 31獲取簽名s的值以及消息數(shù)據(jù)w,并且從公鑰21獲取m和e的值。由此,如所 示的,接收計(jì)算設(shè)備10使用公鑰21來(lái)驗(yàn)證經(jīng)簽署的消息31。盡管被示為分開(kāi)的 消息,但經(jīng)驗(yàn)證的消息32只不過(guò)僅是結(jié)合了經(jīng)簽署的消息的簽名己被驗(yàn)證的知識(shí) 的經(jīng)簽署的消息31。雖然并非所需,但是以下描述是在由一個(gè)或多個(gè)計(jì)算設(shè)備執(zhí)行的諸如程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文中的。更具體地,除非另外指明,否則描述將 參考由一個(gè)或多個(gè)計(jì)算設(shè)備或外圍設(shè)備執(zhí)行的動(dòng)作或操作的符號(hào)表示。這樣,可以 理解,有時(shí)被稱為是計(jì)算機(jī)執(zhí)行的這些動(dòng)作和操作包括用結(jié)構(gòu)化形式表示數(shù)據(jù)的電 信號(hào)或諸如光量子等光信號(hào)的處理單元所做的操縱。該操縱轉(zhuǎn)換數(shù)據(jù)或?qū)⑵渚S護(hù)在 存儲(chǔ)器中的各個(gè)位置,這用本領(lǐng)域的技術(shù)人員很好理解的方式重新配置或者用其它 方式更改計(jì)算設(shè)備或外圍設(shè)備的操作。其中維護(hù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是具有該數(shù)據(jù)的格 式所定義的特定屬性的物理位置。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程8序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。而且,本領(lǐng)域的技術(shù)人員可以理解,計(jì)算設(shè)備不必 限于常規(guī)個(gè)人計(jì)算機(jī),并且包括其它計(jì)算配置,包括手持式設(shè)備、多處理器系統(tǒng)、 基于微處理器的或可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計(jì)算機(jī)等。類似 地,計(jì)算設(shè)備不必限于獨(dú)立式計(jì)算設(shè)備,因?yàn)闄C(jī)制也可以在其中任務(wù)由通過(guò)通信網(wǎng) 絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中,程序 模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備兩者中。參考圖2,示出示例性計(jì)算設(shè)備100。示例性計(jì)算設(shè)備100可包括但不限于,一個(gè)或多個(gè)中央處理單元(CPU) 120、系統(tǒng)存儲(chǔ)器130以及將包括系統(tǒng)存儲(chǔ)器的 各類系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干種總 線結(jié)構(gòu)的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各種總線體 系結(jié)構(gòu)的任一種的局部總線。計(jì)算設(shè)備100通常也包括計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可包括可由計(jì) 算設(shè)備100訪問(wèn)的任何可用介質(zhì),并包括易失性和非易失性介質(zhì)以及可移動(dòng)和不可 移動(dòng)介質(zhì)。作為示例而非局限,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。 計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于儲(chǔ)存諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或 其它光盤存儲(chǔ)、磁盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)儲(chǔ)存所需信 息并可由計(jì)算設(shè)備100訪問(wèn)的任何其它介質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸 機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù), 并包括任何信息傳送介質(zhì)。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng) 絡(luò)或直接連線連接,以及無(wú)線介質(zhì),如聲學(xué)、RF、紅外和其它無(wú)線介質(zhì)。上述任 何的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲(chǔ)器130包括諸如只讀存儲(chǔ)器(ROM) 131和隨機(jī)存取存儲(chǔ)器(RAM) 132等易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì)。基本輸入/輸出系統(tǒng)133 (BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算設(shè)備100內(nèi)的元件之間傳輸信息的基本例程, 它通常儲(chǔ)存在ROM 131中。RAM 132通常包含處理單元120立即可訪問(wèn)和/或當(dāng) 前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖2示出操作系統(tǒng)134、其 它程序模塊135和程序數(shù)據(jù)136。計(jì)算設(shè)備100也可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介 質(zhì)。僅作為示例,圖2示出對(duì)不可移動(dòng)、非易失性磁介質(zhì)進(jìn)行讀寫(xiě)的硬盤驅(qū)動(dòng)器141。可以與該示例性計(jì)算設(shè)備一起使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失 性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器141通常通過(guò)不可移動(dòng)存儲(chǔ)器接口,如 接口 140連接到系統(tǒng)總線121。上文討論并在圖2示出的驅(qū)動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算設(shè)備100 提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖2 中,示出硬盤驅(qū)動(dòng)器141儲(chǔ)存操作系統(tǒng)144、其它程序模塊145和程序數(shù)據(jù)146。 注意,這些組件可以與操作系統(tǒng)134、其它程序模塊135和程序數(shù)據(jù)136相同,也 可以與它們不同。這里對(duì)操作系統(tǒng)144、其它程序模塊145和程序數(shù)據(jù)146給予不 同的標(biāo)號(hào)來(lái)說(shuō)明至少它們是不同的副本。相關(guān)于下文中的描述,計(jì)算設(shè)備100可以在使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的 邏輯連接的聯(lián)網(wǎng)環(huán)境中操作。為了說(shuō)明簡(jiǎn)單起見(jiàn),圖2示出了計(jì)算設(shè)備100連接到 網(wǎng)絡(luò)90,網(wǎng)絡(luò)90不限于任何特定的網(wǎng)絡(luò)或聯(lián)網(wǎng)協(xié)議。圖2中所示的邏輯連接是通 用網(wǎng)絡(luò)連接171,其可以是局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或其它網(wǎng)絡(luò)。計(jì)算 設(shè)備IOO通過(guò)網(wǎng)絡(luò)接口或適配器170連接到通用網(wǎng)絡(luò)連接,網(wǎng)絡(luò)接口或適配器170 進(jìn)而連接到系統(tǒng)總線121。在聯(lián)網(wǎng)環(huán)境中,相關(guān)于計(jì)算設(shè)備IOO、其部分或外圍設(shè) 備所描述的程序模塊可以存儲(chǔ)在通過(guò)通用網(wǎng)絡(luò)連接171通信上耦合到計(jì)算設(shè)備100 的一個(gè)或多個(gè)其它計(jì)算設(shè)備的存儲(chǔ)器中??梢岳斫猓镜木W(wǎng)絡(luò)連接是示例性的, 并且可以使用建立通信鏈接的其它手段。再次返回簽名驗(yàn)證,/mod"、 F(m,w)的計(jì)算以及它們相等性的判定要求CPU 120結(jié)合系統(tǒng)存儲(chǔ)器130執(zhí)行特定數(shù)學(xué)函數(shù)。如本領(lǐng)域技術(shù)人員公知的,項(xiàng)/的值 可能是非常大的。因此,使用單獨(dú)的模平方和模乘來(lái)遞增地執(zhí)行/modn的計(jì)算, 而非首先計(jì)算/,然后計(jì)算它對(duì)"的模。更具體地,遞增地計(jì)算/modn是通過(guò)首 先計(jì)算(/mod"),接著取結(jié)果對(duì)w的模,接著可能將結(jié)果乘以s,接著取該結(jié) 果對(duì)n的模,接著將結(jié)果平方,接著取結(jié)果對(duì)n的模等來(lái)進(jìn)行的。對(duì)于大的e值, 諸如通常使用的6 = 65537,計(jì)算/mod"可以是相當(dāng)耗時(shí)的,并且比計(jì)算F(m,w) 項(xiàng)在計(jì)算上會(huì)耗費(fèi)多得多。換言之,驗(yàn)證/mod":F(m,")所需的時(shí)間大多數(shù)耗費(fèi) 在計(jì)算/ mod"項(xiàng)上。如先前所解釋的,變量"m"表示消息30的數(shù)據(jù),而變量、"表示為消息30 生成來(lái)創(chuàng)建經(jīng)簽署的消息31的簽名。變量"""和"e"表示的項(xiàng)是從公鑰21獲得 的。更具體地,公鑰21和私鑰22的生成需要選擇兩個(gè)隨機(jī)數(shù),這兩個(gè)隨機(jī)數(shù)相乘在一起以產(chǎn)生成為"""值的且被稱為公鑰21和私鑰22的"模數(shù)"的大隨機(jī)數(shù)。變量"e"是"公共指數(shù)"并且以本領(lǐng)域技術(shù)人員公知的方式結(jié)合私有指數(shù)來(lái)選擇。 公共指數(shù)e結(jié)合模數(shù)《構(gòu)成公鑰21,而私鑰22包括模數(shù)w結(jié)合私有指數(shù)。如果可以示出在數(shù)學(xué)上/ mod w等于F(m,w)的概率非常高則可以驗(yàn)證簽名, 而非絕對(duì)地驗(yàn)證/ mod "等于F(m,")。用于此的一種機(jī)制是驗(yàn)證等式/ mod "= F(m,")對(duì)相對(duì)小的值p的模。根據(jù)模運(yùn)算的特性,如果(/ mod ") modp等于 mod; ,則/ mod w =尸(m")或/ mod "恰好在F(m,")的某倍/ 的范圍中。作為一個(gè) 簡(jiǎn)單的示例,假設(shè)p二3, /modw= 16iF(m, )= 16。如可以看到的,/ mod "= F(m,"),但是考慮計(jì)算(/mod") modp和尸—,")mod; 的效果。在每個(gè)情況下, 結(jié)果會(huì)是l,因?yàn)?6除以3得出商為5以及余數(shù)為1。然而,如果/mod"等于 19或22或者通過(guò)向16加上或從16減去3的倍數(shù)得出的任何其它值,(/mod") mod; 也會(huì)等于l。因此,如果(/mod") mod; 等于F(m,")mod; ,則/modw: F(m,")或/ mod "都恰好在F(m,")的某倍p的范圍中。當(dāng)然,對(duì)本領(lǐng)域的技術(shù)人員顯而易見(jiàn)的是,/modw和F(m,")的值不僅僅是二 位數(shù)字,而是有幾百個(gè)位數(shù)長(zhǎng)度的非常大的數(shù)字。因此,可以從一組特定的、足夠 大的值選擇;?的隨機(jī)值,這樣使得(/mod") modp等于mod; 的驗(yàn)證可 以具有很大確信度地證明/ mod "=尸(m,w)。然而,(/mod") mod; 的計(jì)算仍然面對(duì)計(jì)算指數(shù)項(xiàng)的任務(wù),如上所示,這 可以在計(jì)算上是高耗費(fèi)的。然而,根據(jù)模運(yùn)算的特性,給定任何除數(shù),任何數(shù)字可 以被表示為某倍除數(shù)加上小于除數(shù)的某個(gè)余數(shù)。同樣,考慮上述的簡(jiǎn)單示例,數(shù)字 16可以被表示為3的五倍(即15)加上余數(shù)l。因此,項(xiàng)/mod"給出的余數(shù)可 以被表示為原始se減去某倍除數(shù)n。數(shù)學(xué)上,這可以表示為/ mod " = / - (/ div ")"。 如果將值"《"定義為等于/div",則該等式變成/modw二/-^。在以上模p公式中用/ - AT"代替/ div "得出(/ -《《) mod= mod ; 。根據(jù)模運(yùn)算的特性,等號(hào)左邊的項(xiàng)可以被擴(kuò)展,且等式可以被重寫(xiě)為((smod p)e - (ATmodmod; ))mod; =mod/ 。左邊的值取決于(1 h mod/ ,(2) Kmodp以及(3) wmodp。這些項(xiàng)中的每一個(gè)都是對(duì)p的模,并且因此得出 相對(duì)小的值,因?yàn)榭梢赃x擇p為易于處理的小的值,且任何模p的項(xiàng)在數(shù)學(xué)上肯定 比p小。此外,使用模p平方和模p乘,可以相當(dāng)高效地計(jì)算指數(shù)項(xiàng)G mod p)e。 這確保了在計(jì)算中使用的值保持很小,并且因此計(jì)算相對(duì)高效。如上所示,可以從一組特定的、足夠大的值中隨機(jī)地選擇p。在一個(gè)實(shí)施例中,11特定值的集合可以是素?cái)?shù)的集合。為了確保從中選擇p的素?cái)?shù)足夠大,可以使用 128位或更大的素?cái)?shù)。在替換實(shí)施例中,可以選擇戶為兩個(gè)素?cái)?shù)a和化的乘積,其中每個(gè)素?cái)?shù)可以是64位長(zhǎng)。如所示的,用這種方式選擇;p的一個(gè)優(yōu)點(diǎn)是可以用 一次模a和一次?;瘉?lái)執(zhí)行所需的計(jì)算,其中使用現(xiàn)代的64位處理器每次計(jì)算都 可以特別高效。在另一實(shí)施例中,p可以在特定的范圍內(nèi)隨機(jī)地選擇為三個(gè)或更多 素?cái)?shù)的乘積,或者從不包括僅僅是小素?cái)?shù)的乘積的任何"平滑"數(shù)字的一組數(shù)字中 選擇。轉(zhuǎn)向圖3,示出示例性環(huán)境200,包括接收計(jì)算設(shè)備10和經(jīng)簽署的消息31、 公鑰21以及預(yù)先計(jì)算的AT值210。如所示的,如果接收計(jì)算設(shè)備IO接收預(yù)先計(jì)算 的《值210,則它可以更高效地驗(yàn)證簽名s232,如圖3所示,該簽名^232如同消 息數(shù)據(jù)m231 —樣是經(jīng)簽署的消息31的分量。圖3中同樣示出公鑰21的分量,即 模數(shù)"221和公共指數(shù)e222。在一個(gè)實(shí)施例中,可以經(jīng)由向后兼容的機(jī)制將預(yù)先計(jì)算的《值210提供給接 收計(jì)算設(shè)備10。諸如簽名s 232等許多簽名可以與經(jīng)簽署的消息31 —起用經(jīng)編碼 的格式提供,所述經(jīng)編碼的格式提供附加字段以供添加。通常用于提供簽名的這種 格式的示例包括符合ASN.l標(biāo)準(zhǔn)或XML標(biāo)準(zhǔn)的格式。使用這種可擴(kuò)展格式來(lái)提供 簽名允許添加可以包括預(yù)先計(jì)算的《值210的新字段。如果接收計(jì)算設(shè)備IO包括 經(jīng)更新的確認(rèn)軟件,則這種經(jīng)更新的軟件可以解析簽名s 232、標(biāo)識(shí)新字段、提取 預(yù)先計(jì)算的《值210,并進(jìn)而使用此處所描述的更為高效的機(jī)制來(lái)驗(yàn)證簽名。另一 方面,如果接收計(jì)算設(shè)備IO包括傳統(tǒng)確認(rèn)軟件,則這種傳統(tǒng)軟件仍舊可以獲取簽 名s232,并且可以簡(jiǎn)單地忽略包括預(yù)先計(jì)算的《值210的新字段。在這種情況下, 傳統(tǒng)確認(rèn)軟件可以根據(jù)已知的較不高效的機(jī)制,通過(guò)驗(yàn)證/ mod w =尸(>,")來(lái)簡(jiǎn)單 地確認(rèn)簽名s232。如果用這種向后兼容的方式來(lái)提供預(yù)先計(jì)算的K值210,則該《值將作為簽 名s232的一部分、由此作為經(jīng)簽署的消息31k的一部分來(lái)提供,而非在圖3中所 示獨(dú)立地提供。然而,如圖3中所示的,在替換實(shí)施例中,可以獨(dú)立地提供預(yù)先計(jì) 算的《值210,由此使任何計(jì)算設(shè)備能夠預(yù)先計(jì)算尺,而無(wú)需這一計(jì)算設(shè)備解析簽 名s232。如可以從圖3中看到的,預(yù)先計(jì)算的《值210僅基于s、 e禾Hw的值,其中每 個(gè)已經(jīng)存在于經(jīng)簽署的消息31或公鑰21中。因此,將預(yù)先計(jì)算的尺值210提供 給接收計(jì)算設(shè)備10沒(méi)有任何附加的安全風(fēng)險(xiǎn),因?yàn)槌艘呀?jīng)存在于經(jīng)簽署的消息1231和公鑰21中的信息之外,尺不包含任何附加信息。同樣地,在不同于接收計(jì)算 設(shè)備10的計(jì)算設(shè)備上計(jì)算《值210沒(méi)有任何附加的安全風(fēng)險(xiǎn)。然而,如先前所示的,預(yù)先計(jì)算的《值210與項(xiàng)/成正比。對(duì)于大的e值, 《值同樣將是大的。這樣的大的尺發(fā)送起來(lái)可能不是高效的,并且可能更為重要 地,這樣大的K對(duì)于接收計(jì)算設(shè)備IO用于計(jì)算項(xiàng)(《modp)來(lái)驗(yàn)證簽名s232時(shí) 可能不是高效的。為了維持適當(dāng)大小的《值,可以選擇公共指數(shù)e222為小的值, 諸如2或3。如果使用6 = 2,則由計(jì)算設(shè)備10執(zhí)行的所得計(jì)算會(huì)是非常高效的。 然而,如本領(lǐng)域技術(shù)人員所公知的,使用£ = 2有一些缺點(diǎn)。這些缺點(diǎn)可以通過(guò)選 擇e = 3結(jié)合適當(dāng)?shù)暮瘮?shù)F(m,")來(lái)避免。如本領(lǐng)域的技術(shù)人員所公知的,如果 不充分隨機(jī)化或者更精確地偽隨機(jī)化結(jié)果的各個(gè)位,則e = 3可能提供較少的安全 性。然而,對(duì)于e-3,適當(dāng)?shù)剡x擇的確實(shí)隨機(jī)化結(jié)果的各位的F(m,")可以提供足 夠的安全性。如上所示,可以通過(guò)驗(yàn)證(Cy mod ; )e —(《mod mod ; ))mod ; = mod p來(lái)驗(yàn)證簽名s232。因此,為了求等式左邊的表達(dá)式的值,計(jì)算設(shè)備10可以確定 (1) smodp, (2)尺mod; 以及(3) wmod; 。如果;?是兩個(gè)64位數(shù)字p!和尸2 的乘積所形成的,則計(jì)算設(shè)備10可以確定(lhmod; p (2)smod/72, (3)〖mod 化,(4)〖mod/ 2, (5) "mod化和(6) "mod/ 2。如本領(lǐng)域的技術(shù)人員所公知 的,假設(shè)"是2048位長(zhǎng),貝"mod^的計(jì)算會(huì)要求大約64X64比特的32次基本 乘法。對(duì)于6 = 3,〖可以是s的兩倍長(zhǎng),并且因此,《mod a的計(jì)算會(huì)要求大約 64 X 64比特的64次基本乘法。最后,"mod化同樣會(huì)要求32次基本乘法。因?yàn)?這些項(xiàng)的每一個(gè)模p2會(huì)要求相似數(shù)量的基本乘法,在64位處理器上所以(O modp)e - (《modmod p))mod / 的整個(gè)計(jì)算只不過(guò)會(huì)要求256次基本乘法加上一些附 加操作,其中p是兩個(gè)64位數(shù)字A和; 2的乘積。用作比較,使用與上述示例中相 同的所有變量,/ mod "的計(jì)算會(huì)要求大約3000-4000次基本乘法。因此,通過(guò)從 外部源獲得預(yù)先計(jì)算的《值210并選擇6 = 2或6 = 3,以及適當(dāng)大小的;7,所描述 的計(jì)算可以比常規(guī)簽名驗(yàn)證快10倍以上。 '轉(zhuǎn)向圖4,示出根據(jù)一個(gè)實(shí)施例的示例性環(huán)境300。如所示的,發(fā)送計(jì)算設(shè)備 20不僅計(jì)算相關(guān)簽名s 232來(lái)創(chuàng)建經(jīng)簽署的消息31 ,而且計(jì)算預(yù)先計(jì)算的《值210。 如本領(lǐng)域的技術(shù)人員所認(rèn)識(shí)到的,與簽名s232的計(jì)算相比,預(yù)先計(jì)算的《值210 的計(jì)算是極小的。因此,雖然如果接收計(jì)算設(shè)備10從外部源接收預(yù)先計(jì)算的《值 210,它可以用高10倍的效率來(lái)驗(yàn)證簽名s232,但是發(fā)送計(jì)算設(shè)備20在計(jì)算預(yù)先計(jì)算的尺值210以及計(jì)算簽名^232時(shí)沒(méi)有受到對(duì)應(yīng)的性能懲罰。因此,如圖4所 示,在一個(gè)實(shí)施例中,發(fā)送計(jì)算設(shè)備20可以向接收計(jì)算設(shè)備10提供預(yù)先計(jì)算的《 值210。轉(zhuǎn)向圖5,示出根據(jù)一個(gè)替換實(shí)施例的示例性環(huán)境400。如所示的,發(fā)送計(jì)算 設(shè)備20簽署消息來(lái)創(chuàng)建經(jīng)簽署的消息31 ,并且無(wú)需擁有計(jì)算預(yù)先計(jì)算的K值210 的能力。相反,預(yù)先計(jì)算的《值210可以由諸如服務(wù)器計(jì)算設(shè)備410等中間計(jì)算 設(shè)備來(lái)計(jì)算。在一個(gè)實(shí)施例中,服務(wù)器計(jì)算設(shè)備410可以用上述方式將預(yù)先計(jì)算的 《值210插入到新字段中以便提供向后兼容性?;蛘?,服務(wù)器計(jì)算設(shè)備410可以僅 將預(yù)先計(jì)算的《值210附加到經(jīng)簽署的消息31上。在任一情況下,由服務(wù)器計(jì)算 設(shè)備410作出的對(duì)預(yù)先計(jì)算的《值210的單個(gè)計(jì)算在驗(yàn)證簽名s 232時(shí)可以提供 IO倍的效率,這一驗(yàn)證將由諸如計(jì)算設(shè)備10、 11和12等經(jīng)簽署的消息31的每個(gè) 接收者單獨(dú)地執(zhí)行,計(jì)算設(shè)備10、 11和12中的每一個(gè)被示為擔(dān)當(dāng)服務(wù)器計(jì)算設(shè)備 410的客戶機(jī)。因此,服務(wù)器計(jì)算設(shè)備410在計(jì)算預(yù)先計(jì)算的《值210時(shí)所經(jīng)歷的 計(jì)算的任何增加,可由接收經(jīng)簽署的消息31的計(jì)算設(shè)備10、 11和12的每一個(gè)在 試圖驗(yàn)證簽名s232時(shí)所經(jīng)歷的計(jì)算效率中的伴隨增加來(lái)更多地補(bǔ)償。雖然圖4和5中所示的以及以上描述的實(shí)施例的每一個(gè)集中在從一個(gè)或多個(gè) 外部計(jì)算設(shè)備傳遞經(jīng)簽署的消息31、公鑰21以及預(yù)先計(jì)算的《值210,但是替換 實(shí)施例構(gòu)想了同一計(jì)算設(shè)備的不同部分擔(dān)當(dāng)發(fā)送者和接收者。例如,計(jì)算設(shè)備上的 一個(gè)應(yīng)用程序可以發(fā)送包括預(yù)先計(jì)算的K值210的經(jīng)簽署的消息31,而同一計(jì)算 設(shè)備上的另一應(yīng)用程序可以接收并驗(yàn)證簽名。換言之,前面的應(yīng)用程序擔(dān)當(dāng)圖4 的計(jì)算設(shè)備20,而后面的應(yīng)用程序擔(dān)當(dāng)圖4的計(jì)算設(shè)備10。類似地,參考圖5,計(jì)算設(shè)備上的一個(gè)應(yīng)用程序可以擔(dān)當(dāng)中央服務(wù)器410并可 為同一計(jì)算設(shè)備上的可能需要尺的一個(gè)或多個(gè)其它應(yīng)用程序確定預(yù)先計(jì)算的《值 210。在一個(gè)示例性實(shí)施例中,經(jīng)簽署的消息31 (無(wú)論是經(jīng)由計(jì)算設(shè)備內(nèi)部的通信 還是計(jì)算設(shè)備之間的通信接收到)與預(yù)先計(jì)算的《值210—起存儲(chǔ),以供稍后在 接收計(jì)算設(shè)備上使用。因此,前面的應(yīng)用程序?yàn)楹竺娴膽?yīng)用程序確定預(yù)先計(jì)算的^ 值210,并且可以進(jìn)一步方便《的存儲(chǔ),使得它與經(jīng)簽署的消息31相關(guān)聯(lián)并可選 地與其處于同一個(gè)位置。在另一實(shí)施例中,諸如計(jì)算設(shè)備10等接收計(jì)算設(shè)備無(wú)需 特定的應(yīng)用程序來(lái)確定預(yù)先計(jì)算的《值210,而是相反可以使用它通常使用的任何 應(yīng)用程序,除保存所確定的《值并與經(jīng)簽署的消息31相關(guān)聯(lián)并且可選地與其處于 一個(gè)位置之外。在這種情況下,對(duì)簽名232的后續(xù)驗(yàn)證可以變得更加高效。在又一實(shí)施例中,簽名232不僅包括值S,也包括可以用作填充函數(shù)F的輸入的一個(gè)或多個(gè)附加值L當(dāng)簽署消息30時(shí),簽署者可以生成適當(dāng)?shù)腪值并計(jì)算s值 使得/mod":F(m,w力。簽名現(xiàn)在可以包括s值和H直兩者。可以如上詳細(xì)描述地 計(jì)算預(yù)先計(jì)算的《值210。包括s和f兩者的新簽名的驗(yàn)證者可以提取/以供用作 F的附加輸入,并且可以提取s以便用上文詳細(xì)描述的相同的方式來(lái)驗(yàn)證簽名。如可以從以上描述中看出的,向?qū)で篁?yàn)證簽名的計(jì)算設(shè)備提供特定預(yù)先計(jì)算 的信息可以十倍或更多的減少為驗(yàn)證這種簽名所需的計(jì)算耗費(fèi)??紤]到此處描述的 主題的多個(gè)可能的變型,對(duì)本發(fā)明可能在所附權(quán)利要求及其等效物的范圍內(nèi)的所有 這樣的實(shí)施例提出權(quán)利要求。
權(quán)利要求
1.一種或多種包括用于驗(yàn)證簽名的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令針對(duì)以下步驟,包括接收包括消息數(shù)據(jù)和所述簽名的經(jīng)簽署的消息,所述經(jīng)簽署的消息已經(jīng)使用包括模數(shù)值的私鑰來(lái)簽署,所述私鑰與包括公共指數(shù)和所述模數(shù)值的公鑰配對(duì);接收對(duì)應(yīng)于所述簽名用所述公共指數(shù)乘方接著除以所述模數(shù)值的商的預(yù)先計(jì)算的值;以及使用所述預(yù)先計(jì)算的值來(lái)驗(yàn)證所述簽名。
2. 如權(quán)利要求l所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述經(jīng)簽署的消息還 包括附加簽名值,并且其中針對(duì)使用所述預(yù)先計(jì)算的值來(lái)驗(yàn)證所述簽名的所述計(jì)算 機(jī)可執(zhí)行指令還包括針對(duì)使用所述預(yù)先計(jì)算的值和所述附加簽名值來(lái)驗(yàn)證所述簽 名的計(jì)算機(jī)可執(zhí)行指令。
3. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述公共指數(shù)值為3。
4. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述經(jīng)簽署的消息以 及所述預(yù)先計(jì)算機(jī)值是在發(fā)送計(jì)算設(shè)備處發(fā)起的。
5. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述經(jīng)簽署的消息以 及所述預(yù)先計(jì)算的值是在不同的計(jì)算設(shè)備處發(fā)起的。
6. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述預(yù)先計(jì)算的值和 所述簽名是使用簽名記錄來(lái)編碼的。
7. 如權(quán)利要求l所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述預(yù)先計(jì)算的值是 在所述簽名的驗(yàn)證之外無(wú)限期保留的。
8. —種或多種包括用于幫助簽名的簽證的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介 質(zhì),所述計(jì)算機(jī)可執(zhí)行指令針對(duì)以下步驟,包括發(fā)送包括消息數(shù)據(jù)和所述簽名的經(jīng)簽署的消息,所述經(jīng)簽署的消息已經(jīng)使用 包括模數(shù)值的私鑰來(lái)簽署,所述私鑰與包括公共指數(shù)和所述模數(shù)值的公鑰配對(duì);生成對(duì)應(yīng)于所述簽名用所述公共指數(shù)乘方接著除以所述模數(shù)值的商的預(yù)先計(jì) 算的值;以及發(fā)送所述預(yù)先計(jì)算的值。
9. 如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括針對(duì)以下步驟 的計(jì)算機(jī)可執(zhí)行指令,所述步驟包括生成所述經(jīng)簽署的消息。
10. 如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述經(jīng)簽署的消息 還包括驗(yàn)證所述簽名所需的附加簽名值。
11. 如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述公共指數(shù)值為3。
12. 如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括針對(duì)以下步驟的計(jì)算機(jī)可執(zhí)行指令,所述步驟包括使用簽名記錄來(lái)編碼所述預(yù)先計(jì)算的值和 所述簽名。
13. 如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,編碼所述預(yù)先計(jì)算的值還包括使用所述簽名記錄的額外字段來(lái)編碼所述預(yù)先計(jì)算的值。
14. 一種驗(yàn)證簽名的方法,包括接收包括消息數(shù)據(jù)和所述簽名的經(jīng)簽署的消息,所述經(jīng)簽署的消息已經(jīng)使用包括模數(shù)值的私鑰來(lái)簽署,所述私鑰與包括公共指數(shù)和所述模數(shù)值的公鑰配對(duì);接收對(duì)應(yīng)于所述簽名用所述公共指數(shù)乘方接著除以所述模數(shù)值的商的預(yù)先計(jì)算的值;以及使用所述預(yù)先計(jì)算的值來(lái)驗(yàn)證所述簽名。
15. 如權(quán)利要求14所述的方法,其特征在于,還包括接收附加簽名值,其 中所述使用預(yù)先計(jì)算的值來(lái)驗(yàn)證所述簽名還包括使用所述預(yù)先計(jì)算的值和所述附 加簽名值來(lái)驗(yàn)證所述簽名。
16. 如權(quán)利要求14所述的方法,其特征在于,所述公共指數(shù)值為3。
17. 如權(quán)利要求14所述的方法,其特征在于,所述經(jīng)簽署的消息和所述預(yù)先 計(jì)算的值是在發(fā)送計(jì)算設(shè)備處發(fā)起的。
18. 如權(quán)利要求14所述的方法,其特征在于,所述經(jīng)簽署的消息以及所述預(yù) 先計(jì)算的值是在不同的計(jì)算設(shè)備處發(fā)起的。
19. 如權(quán)利要求14所述的方法,其特征在于,其中所述預(yù)先計(jì)算的值和所述 簽名是使用簽名記錄來(lái)編碼的。
20. 如權(quán)利要求14所述的方法,其特征在于,其中所述預(yù)先計(jì)算的值是在所 述簽名的驗(yàn)證之外無(wú)限期地保留的。
全文摘要
RSA消息簽名可以通過(guò)驗(yàn)證s<sup>e</sup> mod n=F(m,n)來(lái)驗(yàn)證。如果預(yù)先計(jì)算被定義為K=s<sup>e</sup> div n的K值,并將其作為輸入提供給驗(yàn)證該簽名的計(jì)算設(shè)備,則簽名驗(yàn)證可以顯著地更快。為了避免對(duì)大的K值的傳輸和數(shù)學(xué)運(yùn)算(它們自身可以是低效的),可以選擇相對(duì)小的RSA公共指數(shù)e,諸如e=2或e=3。K是基于公開(kāi)可用的信息且可以由簽署消息的計(jì)算設(shè)備或由中間計(jì)算設(shè)備來(lái)計(jì)算,并且被發(fā)送給驗(yàn)證該簽名的設(shè)備而不影響安全性。
文檔編號(hào)H04L9/30GK101558600SQ200780046426
公開(kāi)日2009年10月14日 申請(qǐng)日期2007年11月29日 優(yōu)先權(quán)日2006年12月18日
發(fā)明者N·弗格森 申請(qǐng)人:微軟公司