專利名稱:基于公鑰的認(rèn)證用小數(shù)字簽名的制作方法
基于公鑰的認(rèn)證用小數(shù)字簽名 背景本發(fā)明一般涉及密碼術(shù),尤其涉及認(rèn)證。 相關(guān)技術(shù)說(shuō)明認(rèn)證涉及某種形式的數(shù)字簽名或消息認(rèn)證碼。數(shù)字簽名和消息認(rèn)證碼是基于 公鑰和/或?qū)ΨQ密鑰密碼系統(tǒng)。這兩種系統(tǒng)具有不同的特性,從而使得在一種情況 下其中一種更為適用,而在一不同情況下另一種更為適用。一般而言,公鑰系統(tǒng)在密鑰管理和分發(fā)方面具有優(yōu)勢(shì)。但是,公鑰系統(tǒng)常常 會(huì)是計(jì)算困難的,并且會(huì)涉及大數(shù)字簽名。相應(yīng)地,公鑰系統(tǒng)將需要強(qiáng)大的處理器, 這將導(dǎo)致設(shè)備成本、重量和/或尺寸的增大;可能需要額外的處理器時(shí)間,這將導(dǎo) 致延遲、使用更多能量和/或耗盡電池;或可能會(huì)導(dǎo)致上述結(jié)果的組合。由此,計(jì)算要求和小輸出的需要兩者迫使大多數(shù)小型認(rèn)證設(shè)備使用對(duì)稱密鑰 密碼術(shù)。但是,隨著諸如移動(dòng)電話等設(shè)備中處理器的能力越來(lái)越強(qiáng),計(jì)算要求可能 不再是主導(dǎo)因素。然而,仍然需要較小的數(shù)字簽名。概要在一個(gè)方面, 一種具有可供在已就共同模數(shù)W達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn) 證中使用的手段的方法和裝置,包括根據(jù)輸入值生成一偽隨機(jī)串值;基于模數(shù)W 和偽隨機(jī)串值生成第一公鑰值;生成對(duì)應(yīng)于第一公鑰值的第一私鑰值;接收第二公 鑰值;以及基于模數(shù)W、第一私鑰值和第二公鑰值生成一共享機(jī)密值。此后,可使 用該共享機(jī)密值來(lái)計(jì)算認(rèn)證簽名值;并將其發(fā)送。在另一個(gè)方面, 一種可供在已就共同模數(shù)^達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證 中使用的裝置,該裝置可包括偽隨機(jī)生成器,被配置成根據(jù)輸入值生成一偽隨機(jī) 串值;密鑰生成單元,被配置成基于模數(shù)iV和偽隨機(jī)串值生成第一公鑰值,并生 成對(duì)應(yīng)于該第一公鑰值的第一私鑰值;接收器單元,被配置成接收第二公鑰值;以
及機(jī)密值生成單元,被配置成基于模數(shù)W、第一私鑰值和第二公鑰值生成一共享機(jī) 密值。在又一個(gè)方面, 一種具有可供在已就共同模數(shù)W的使用達(dá)成一致的兩個(gè)實(shí)體 之間的認(rèn)證中使用的手段的方法和裝置,包括接收第一認(rèn)證簽名值;根據(jù)輸入值 生成偽隨機(jī)串值;基于模數(shù)W和偽隨機(jī)串值生成第一公鑰值;基于模數(shù)7V、 一私 鑰值和第一公鑰值生成一共享機(jī)密值;使用該共享機(jī)密值生成一第二認(rèn)證簽名值; 以及將第一認(rèn)證簽名值與第二認(rèn)證簽名值相比較。在另一個(gè)方面, 一種可供在已就共同模數(shù)W的使用達(dá)成一致的兩個(gè)實(shí)體之間 的認(rèn)證中使用的裝置,可包括接收器單元,被配置成接收第一認(rèn)證簽名值;偽隨 機(jī)生成器,被配置成根據(jù)輸入值生成一偽隨機(jī)串;密鑰生成單元,被配置成基于模 數(shù)W和偽隨機(jī)串值生成第一公鑰值;共享機(jī)密值生成單元,被配置成基于模數(shù)W、 一私鑰值和第一公鑰值生成一共享機(jī)密值;消息認(rèn)證碼單元,被配置成使用共享機(jī) 密值來(lái)計(jì)算第二認(rèn)證簽名值;以及比較單元,被配置成將第一認(rèn)證簽名值與第二認(rèn)證簽名值相比較。在又一個(gè)方面, 一種具有可供在已就共同模數(shù)W的使用達(dá)成一致的兩個(gè)實(shí)體 之間的認(rèn)證中使用的手段的方法和裝置,包括接收基于模數(shù)W生成的公鑰值; 通過(guò)求解模數(shù)W的離散對(duì)數(shù)問(wèn)題生成與公鑰值相對(duì)應(yīng)的私鑰;以及將該私鑰用作 為共享機(jī)密密鑰。以上方法可由處理器實(shí)現(xiàn)和/或控制。類似地,以上方法可由存儲(chǔ)在機(jī)器可讀 介質(zhì)中的指令實(shí)現(xiàn)和/或執(zhí)行。附圖簡(jiǎn)要說(shuō)明將參考以下附圖對(duì)各種實(shí)施例進(jìn)行詳細(xì)說(shuō)明,在附圖中相同的附圖標(biāo)記標(biāo)示 相似的要素,其中
圖1示出可由一實(shí)體用來(lái)生成數(shù)字簽名的一種示例設(shè)備;圖2示出可由一驗(yàn)證實(shí)體用來(lái)認(rèn)證數(shù)字簽名的一種示例設(shè)備;圖3示出可在生成數(shù)字簽名時(shí)使用的一種示例方法;圖4示出可在認(rèn)證數(shù)字簽名時(shí)使用的一種示例方法;圖5示出可在認(rèn)證時(shí)使用的另一種示例方法;以及圖6示出可在認(rèn)證中使用的另一種示例設(shè)備。
具體說(shuō)明在以下說(shuō)明中,給出了具體的細(xì)節(jié)以提供對(duì)這些實(shí)施例的透徹理解。但是, 本領(lǐng)域普通技術(shù)人員將可理解,無(wú)需這些具體細(xì)節(jié)也可實(shí)踐這些實(shí)施例。例如,電 路可以框圖形式示出以免不必要的細(xì)節(jié)混淆這些實(shí)施例。在其它實(shí)例中,公知的電 路、結(jié)構(gòu)和技術(shù)可能不被具體示出以免混淆這些實(shí)施例。還注意到,這些實(shí)施例可能以被圖示為流程圖、流圖、結(jié)構(gòu)圖或框圖的進(jìn)程 的形式來(lái)描述。盡管流程圖可能將各操作描述為一順序進(jìn)程,但是其中許多操作可 并行或并發(fā)執(zhí)行。此外,各操作的次序可被重排。進(jìn)程在其操作完成時(shí)終止。進(jìn)程 可對(duì)應(yīng)于方法、函數(shù)、過(guò)程、子例程、子程序等等。當(dāng)進(jìn)程對(duì)應(yīng)于函數(shù)時(shí),其終止 對(duì)應(yīng)于該函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。此外,各實(shí)施例可由硬件、軟件、固件、中間件、微代碼或其任意組合來(lái)實(shí) 現(xiàn)。當(dāng)用軟件、固件、中間件或微代碼實(shí)現(xiàn)時(shí),執(zhí)行必要任務(wù)的程序代碼或代碼片 段可被存儲(chǔ)在諸如各種存儲(chǔ)介質(zhì)的機(jī)器可讀介質(zhì)中。處理器可執(zhí)行這些必要的任 務(wù)。代碼片段可代表過(guò)程、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、 類、或是指令、數(shù)據(jù)結(jié)構(gòu)或程序語(yǔ)句的任意組合。 一代碼片段可通過(guò)傳遞和/或接 收信息、數(shù)據(jù)、自變量、參數(shù)、或存儲(chǔ)器內(nèi)容等被耦合到另一代碼片段或硬件電路。 信息、自變量、參數(shù)、數(shù)據(jù)等可經(jīng)由包括存儲(chǔ)器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò) 傳輸?shù)热我夂线m手段被傳遞、轉(zhuǎn)發(fā)或發(fā)送。一般而言,以下說(shuō)明允許數(shù)字簽名相對(duì)較小,例如,在6位數(shù)的量級(jí)。這允 許簽名在各種情況下——諸如簽名在低帶寬信道上被傳送或簽名需要由人來(lái)鍵入 的場(chǎng)合,通常是為驗(yàn)證目的——被方便、容易、廉價(jià)和/或有效地使用。在后一種 情形中,小數(shù)字簽名還將是用戶友好的。在下文中,為了解釋和/或?yàn)榱烁玫乩斫獗景l(fā)明,將對(duì)與本發(fā)明相關(guān)的概念 進(jìn)行討論。對(duì)特定情況、定理和/或公式的引述是示例,并且不應(yīng)被解釋為限定本 發(fā)明的范圍。公鑰簽名一般而言,如今在使用的有兩類主要的公鑰數(shù)字簽名算法。 最常用的一類是RSA系統(tǒng),其中公鑰是一個(gè)大合數(shù)W,并且根本的數(shù)學(xué)"難 題"是將W因數(shù)分解成; "的困難。當(dāng)前的因數(shù)分解算法的復(fù)雜度是次指數(shù)的。 因此,為等效于破解例如80位的密鑰的對(duì)稱算法的安全度,模數(shù)W必需是約1024
位。RSA系統(tǒng)中的數(shù)字簽名是約與W等長(zhǎng)的整數(shù)。數(shù)字簽名的驗(yàn)證需要執(zhí)行對(duì)(通 常很小的)冪e的取冪模W,并且是相對(duì)高效的。另一種常用數(shù)字簽名方案根據(jù)其確切實(shí)現(xiàn)被稱為El Gamal、 Schnorr或數(shù)字簽 名(標(biāo)準(zhǔn))算法DSA。這些方案是基于計(jì)算模素?cái)?shù)尸離散對(duì)數(shù)的難度。Diffie-Hdlman (D-H)密鑰協(xié)定算法是所發(fā)明的第一種公鑰系統(tǒng),并且依賴于此離散對(duì)數(shù)問(wèn)題。 El Gamal是D-H對(duì)數(shù)字簽名的應(yīng)用。Schnorr和DSA使用一技巧來(lái)減小數(shù)字簽名 的長(zhǎng)度。模數(shù)尸通常也是1024位。盡管沒(méi)有證據(jù)證明因數(shù)分解問(wèn)題和離散對(duì)數(shù)問(wèn)題是有聯(lián)系的,但是求解其中 任一問(wèn)題的算法通常有適用于另一問(wèn)題的類似算法,這就是為什么相似的密鑰長(zhǎng)度 得到安全度相當(dāng)?shù)南到y(tǒng)的原因。ElGamal數(shù)字簽名是一對(duì)數(shù)字(r,力,各自的長(zhǎng)度均 與尸相當(dāng),而Schnorr的方法允許較小的簽名,其中r和s各自為160位(以等效 于80位的安全度)。橢圓曲線數(shù)字簽名也是E1 Gamal的一種變形,它使用較小的密鑰和不同的計(jì) 算,但是結(jié)果所得的簽名仍然有約320位以實(shí)現(xiàn)最小安全度。使用以上技術(shù)中的任何一種的最短實(shí)際數(shù)字簽名由此將是320位。以十進(jìn)制 表達(dá)是卯位數(shù)的數(shù)字,或使用大小寫字母、數(shù)字和兩三個(gè)標(biāo)點(diǎn)字符的慣常編碼來(lái) 表達(dá)是約55字符。由此,用戶要例如可靠地鍵入該數(shù)字簽名是非常不方便且困難 的。數(shù)學(xué)背景在以下討論中,將對(duì)計(jì)算離散對(duì)數(shù)的根本問(wèn)題進(jìn)行說(shuō)明。此問(wèn)題本質(zhì)上是 Diffie-Hellman,但要模一因數(shù)分解并非公知的合數(shù)W,這與RSA系統(tǒng)相似。例如,離散對(duì)數(shù)問(wèn)題可陳述如下給定整數(shù)W、 g和X其中Z^^(modA0, 找到;c。在傳統(tǒng)的離散對(duì)數(shù)系統(tǒng)中,W通常是一素?cái)?shù),而g是模iV乘法群的大素?cái)?shù) 階子群的生成元。為便于解釋,使用合數(shù)W。求解此模W離散對(duì)數(shù)問(wèn)題蘊(yùn)涵因數(shù) 分解W的能力,只要A^3(mod4),并且A^pg,其中; 和《是素?cái)?shù);W是所謂的Blum整數(shù)。以下,W是指素?cái)?shù)p和g的乘積。
中國(guó)余數(shù)定理(CRT)也是一種有用的技術(shù)。在一簡(jiǎn)單情形中,任意整數(shù)Z 模;V可被表達(dá)為一對(duì)整數(shù)(fl, 6),其中aEX(mod; ),并且6三Z(moc^)。在這兩種表示法之間轉(zhuǎn)換是簡(jiǎn)單直接的。在轉(zhuǎn)換回所需的模iV答案之前使用后一種表示法 來(lái)執(zhí)行諸如乘法和取冪等運(yùn)算常常是方便的。它被表達(dá)為兩個(gè)因數(shù)的形式,但是它
可歸納到多個(gè)因數(shù)。唯一析因定理陳述,每一整數(shù)具有作為素?cái)?shù)冪的乘積的唯一性表達(dá)。因此,CRT—般可對(duì)素因數(shù)使用。此外,僅有小素因數(shù)的整數(shù)被稱為是平滑的。"小"在這里通常是在平滑度 界限^的意義下定義的。如果對(duì)于素因數(shù)之一; , 1是平滑的,則可使用Pollard 的p-l算法來(lái)因數(shù)分解合數(shù)。如果尸-l是平滑的,則可使用相同算法的變形來(lái) 計(jì)算模素?cái)?shù)尸離散對(duì)數(shù)。如果計(jì)算模合數(shù)W的所有因數(shù)的離散對(duì)數(shù)是可能的,則 Pohlig-Hellman算法本質(zhì)上可通過(guò)使用CRT構(gòu)建W來(lái)計(jì)算模W離散對(duì)數(shù)。此夕卜,Diffle-Hellman密鑰協(xié)定協(xié)議操作如下。兩方或兩個(gè)實(shí)體——諸如,Alice 和Bob——就共同模數(shù)W以及模7V單位群的一大子群的生成元g的使用達(dá)成一致。 正常情況下,D-H以一素模數(shù)來(lái)運(yùn)算,但在此使用一合模數(shù)。通常,Alice和Bob 分別選擇其密鑰fl和6,然后分別計(jì)算J = ga(modAC^t^ = g6(modA0,并交換爿和 B。 Alice然后可計(jì)算共享機(jī)密S = S。(modW) e g,modW),而Bob也可計(jì)算共享機(jī) 密S = ^(modA0 ^g,modA0 。竊聽者通常不求解模iV離散對(duì)數(shù)問(wèn)題就無(wú)法計(jì)算出 S。此外,以下將對(duì)幾種密碼原語(yǔ)進(jìn)行說(shuō)明。其中一種是消息認(rèn)證碼(MAC), 在此使用一機(jī)密對(duì)稱密鑰在消息上創(chuàng)建一標(biāo)簽。具有相同機(jī)密密鑰的實(shí)體可驗(yàn)證該 標(biāo)簽正確,這意味著該標(biāo)簽是由知道該密鑰的某人創(chuàng)建的且該消息未被改動(dòng)。偽隨 機(jī)發(fā)生器(PRG)也能取相對(duì)較小的輸入并將其"拉長(zhǎng)"成任何所需長(zhǎng)度的看似隨 機(jī)的輸出。這兩種原語(yǔ)均可從散列函數(shù)、流密碼、或分塊密碼以公知方式構(gòu)建。例如, 可使用諸如SHA-256等散列函數(shù)(HASH),以通過(guò)散列從Diffie-Hellman密鑰協(xié)定推導(dǎo)出的共享機(jī)密來(lái)推導(dǎo)密鑰。最終,對(duì)于密鑰生成,可使用密碼安全的隨機(jī)數(shù) 發(fā)生器來(lái)創(chuàng)建密鑰。系統(tǒng)概觀使用基于離散對(duì)數(shù)的系統(tǒng)的數(shù)字簽名一般有兩部分其一是一臨時(shí)公鑰,另 一是使用從Diffie-Hellman共享機(jī)密S推導(dǎo)出的對(duì)稱密鑰簽名的文檔的MAC。該 臨時(shí)公鑰通常很大,因?yàn)楹灻摺鏏lice~~"從隨機(jī)選取的機(jī)密密鑰創(chuàng)建此 臨時(shí)公鑰,并且通常在創(chuàng)建該公鑰時(shí)很少或根本沒(méi)有控制。在以下描述的實(shí)施例中,該臨時(shí)公鑰是通過(guò)使用PRG將小字或少數(shù)字符拉長(zhǎng) 成可被用作公鑰的某物來(lái)創(chuàng)建的。該小字可以是例如數(shù)列、選定的數(shù)字、隨機(jī)數(shù)、 時(shí)間、字母或字母數(shù)字的字、符號(hào)字符、或其組合。然后,利用模數(shù)W的特殊構(gòu)造并知道其因數(shù),Alice可有效地"破解"她自己的公鑰以找到相對(duì)應(yīng)的機(jī)密密鑰。 不知道此因數(shù)分解的攻擊者則不能這么做。將MAC函數(shù)與待簽名的數(shù)據(jù)和所推導(dǎo) 出的被截?cái)嘀猎谠摫尘跋掠杏玫娜魏伍L(zhǎng)度的密鑰一起使用來(lái)認(rèn)證該數(shù)據(jù)。在此,用 于生成輸出MAC的密鑰隨后在合適的情況下還可被用作任意通信的會(huì)話密鑰。應(yīng)當(dāng)注意,短簽名可能固有地易受離線計(jì)算的攻擊。相應(yīng)地,這些簽名可被 定向到一特定驗(yàn)證方。它們對(duì)于當(dāng)場(chǎng)認(rèn)證(登錄、ATM交易等)或者證實(shí)短的時(shí) 間敏感消息可能更為有用。該驗(yàn)證方可采取額外措施,諸如在檢測(cè)到太多失敗時(shí)使 用雙因數(shù)認(rèn)證和禁用帳戶來(lái)防止蠻力攻擊。相應(yīng)地,可使用某種設(shè)備來(lái)存儲(chǔ)機(jī)密密鑰并執(zhí)行必要的計(jì)算。這構(gòu)成了認(rèn)證 因素之一。對(duì)于雙因素認(rèn)證,可實(shí)現(xiàn)各種第二因素,諸如但不限于,口令、個(gè)人標(biāo) 識(shí)號(hào)(PIN)或生物統(tǒng)計(jì)信息。例如,可將一PIN輸入到一驗(yàn)證設(shè)備,可使用其來(lái) 將簽名設(shè)備解鎖,和/或可將其納入到簽名計(jì)算本身中。因此,Alice的機(jī)密密鑰可被保存在諸如蜂窩電話等她可隨身攜帶的某種設(shè)備 中。 一般而言,該機(jī)密密鑰是在設(shè)備內(nèi)部從隨機(jī)數(shù)生成的,并且從不離開該設(shè)備, 除非可能在她得到一新的電話時(shí)以可用于重構(gòu)該機(jī)密密鑰的"機(jī)密共享",即一種 備份的形式離開該設(shè)備。在以下討論中,為便于解釋使用"6位數(shù)"的簽名。但是,對(duì)本領(lǐng)域技術(shù)人員 顯而易見的是,可實(shí)現(xiàn)6位數(shù)以上或以下的其它字、十六進(jìn)制數(shù)字、已編碼字母數(shù) 字、或任何適合于該輸入裝置的信息。這對(duì)于不同的驗(yàn)證方可以是不同的。6 (十 進(jìn)制)位數(shù)有約22°種可能性,而8字母數(shù)字字符的字有24()種可能性,這足以防備 蠻力攻擊。 一些用途可如下。仍應(yīng)注意,這些用途僅是示例,并且對(duì)于本領(lǐng)域技術(shù) 人員將顯而易見的是,可實(shí)現(xiàn)落在下述用途范圍內(nèi)的其它用途和/或變形。 內(nèi)聯(lián)網(wǎng)登錄為登錄到她公司的內(nèi)聯(lián)網(wǎng)上,Alice使用諸如她的電話等設(shè)備 來(lái)輸入"BigCom",并且其顯示6位數(shù)字。Alice隨即可鍵入她的用戶名,并且在 口令字段鍵入她的口令和認(rèn)證號(hào)碼。在此情形中,數(shù)字簽名可基于每次被請(qǐng)求時(shí)遞 增的序列號(hào)。內(nèi)聯(lián)網(wǎng)認(rèn)證服務(wù)器驗(yàn)證口令和號(hào)碼兩者,并使用該序列號(hào)來(lái)防止重放 攻擊。 電話認(rèn)證假設(shè)Alice想要通過(guò)電話向諸如她的股票經(jīng)紀(jì)等第三實(shí)體認(rèn)證她 自己。Alice的口令可被輸入到她的電話中。該口令隨即將被納入到簽名計(jì)算中。 結(jié)果所得的數(shù)字將作為口令被鍵入。此方法在例如要在電話上讀出該簽名或要將其
作為DTMF音調(diào)來(lái)發(fā)送時(shí)將是有利的。其合乎需要之處還在于口令無(wú)須被泄露給 股票經(jīng)紀(jì)人或任何竊聽者。,物理訪問(wèn)為進(jìn)入諸如辦公大樓等結(jié)構(gòu),Alice可在她的電話應(yīng)用上選擇"辦 公室",并鍵入她的職員編號(hào)和簽名號(hào)碼。這可通過(guò)使用聲音、DTMF音調(diào)、紅外 線、藍(lán)牙或RFID發(fā)送來(lái)自動(dòng)化。*家門進(jìn)入當(dāng)Alice回到家時(shí),她可通過(guò)將她的PIN輸入到電話中以起到將 認(rèn)證應(yīng)用解鎖的作用來(lái)打開她家的門。這意味著門的控制器無(wú)須為她的密鑰配置一 口令,但是偷竊Alice的電話將不足以破門而入。她隨后將所得的號(hào)碼輸入到控制 門的獨(dú)立設(shè)備。此設(shè)備事先被配置成識(shí)別對(duì)應(yīng)于Alice和她的家人的數(shù)個(gè)不同的公 鑰,并且使用該簽名號(hào)碼來(lái)確定要準(zhǔn)許可能密鑰中的哪一個(gè)(由此哪一家庭成員) 進(jìn)入。(自動(dòng)化的發(fā)送方法也可能是優(yōu)選的。)系統(tǒng)實(shí)現(xiàn)一般而言,認(rèn)證進(jìn)程可能有幾個(gè)階段。為便于解釋,假設(shè)Alice是簽名實(shí)體, 而Victor是驗(yàn)證實(shí)體,認(rèn)證進(jìn)程可如下1. Alice創(chuàng)建她的公鑰。Alice可僅做此一次,因?yàn)樗蓪?duì)她想要的任意多個(gè) 不同驗(yàn)證方使用她的公鑰。但是,本領(lǐng)域技術(shù)人員將可顯而易見的是,也可對(duì)不同 的驗(yàn)證方或不同組的驗(yàn)證方創(chuàng)建兩個(gè)以上或多個(gè)公鑰。2. Victor接收并存儲(chǔ)Alice的公鑰,將其與適當(dāng)?shù)膶?duì)象相關(guān)聯(lián)以保護(hù)諸如帳 戶、鎖和車輛等。注意,可有多個(gè)驗(yàn)證方,它們無(wú)須彼此信任。3. Victor創(chuàng)建他自己的對(duì)Alice使用的私鑰-公鑰對(duì),并將其發(fā)送給Alice。 Alice將其存儲(chǔ)以供與Victor交互使用。注意,此密鑰對(duì)必須模Alice的W計(jì)算, 并不能對(duì)不同的簽名者使用。4. Alice和Victor同步一輸入值。盡管此輸入值可以是隨機(jī)數(shù)或字母數(shù)字值, 但是使用數(shù)列將是實(shí)現(xiàn)此目的的有效方式。如果使用一數(shù)列,則對(duì)此簽名進(jìn)程的輸 入無(wú)須被發(fā)送。或者,諸如短隨機(jī)數(shù)等輸入值可被用作該簽名的一部分。5. 每當(dāng)Alice想要向Victor認(rèn)證她自己時(shí),她就能基于該輸入值的當(dāng)前值有 效地生成一短認(rèn)證碼,并根據(jù)需要將其鍵入到電話中,在電話上讀出該認(rèn)證碼,使 用DTMF音調(diào)來(lái)可聽地發(fā)送該認(rèn)證碼,或按需使用其它各種手段來(lái)發(fā)送該認(rèn)證碼。在以上進(jìn)程中,第一步驟可發(fā)生一次。因?yàn)槠浣Y(jié)果是一公鑰,所以可將其提 交給例如證書授權(quán)機(jī)構(gòu)以便于驗(yàn)證方后續(xù)的驗(yàn)證,可使其在公共目錄上可用,諸如
此類。步驟2 - 4專用于每一驗(yàn)證方,并且步驟2和3可能需要在線執(zhí)行,因?yàn)锳lice 和Victor兩人的公鑰可能都很大。注意,知道模數(shù)W的因數(shù)分解的Alice可"破解" Victor的公鑰以恢復(fù)他的機(jī)密密鑰,但此機(jī)密密鑰是專用于Alice的。由此,Alice將沒(méi)有特別動(dòng)機(jī)來(lái)這樣做。圖1示出可由例如Alice用來(lái)生成數(shù)字簽名的一示例設(shè)備100。設(shè)備100可包 括被配置成根據(jù)輸入值生成一偽隨機(jī)串值的偽隨機(jī)生成(PRG)單元110。設(shè)備100 還可包括被配置成基于模數(shù)W和偽隨機(jī)串值生成一要被用作公鑰的值的密鑰生成 單元120。密鑰生成單元120被進(jìn)一步配置成生成與所生成公鑰相對(duì)應(yīng)的私鑰值。 此外,設(shè)備100可包括被配置成接收驗(yàn)證實(shí)體的公鑰值的接收器130;被配置成 基于模數(shù)W、私鑰值和驗(yàn)證方的公鑰值生成一共享機(jī)密值的機(jī)密值生成單元140; 被配置成使用共享機(jī)密值來(lái)生成認(rèn)證簽名值的MAC單元150;以及被配置成發(fā)送 認(rèn)證簽名值或數(shù)字簽名的發(fā)送器單元160。圖2示出與設(shè)備100相對(duì)應(yīng)的、并可由例如Victor用來(lái)認(rèn)證接收到的數(shù)字簽 名的示例設(shè)備200。設(shè)備200可包括被配置成接收認(rèn)證簽名值的接收器單元210; 被配置成根據(jù)輸入值生成偽隨機(jī)串值的PRG單元220;被配置成基于模數(shù)iV和偽 隨機(jī)串值生成公鑰值的密鑰生成單元230;被配置成基于模數(shù)W、 一私鑰值和公鑰 值生成一共享機(jī)密值的機(jī)密值生成單元240;被配置成使用共享機(jī)密值計(jì)算一認(rèn)證 簽名值的MAC單元250;以及被配置成將所接收的認(rèn)證簽名值與計(jì)算出的認(rèn)證簽 名值相比較的比較單元260。如果這兩個(gè)認(rèn)證簽名匹配,則可認(rèn)證所接收的認(rèn)證簽 名。一般而言, 一個(gè)實(shí)體的數(shù)字簽名可由另一實(shí)體來(lái)認(rèn)證,其中如將在以下說(shuō)明 的,這兩個(gè)實(shí)體已就共同模數(shù)W的使用達(dá)成一致。應(yīng)當(dāng)注意,設(shè)備100可包括其 它元件,諸如但不限于,被配置成根據(jù)需要存儲(chǔ)各種信息或數(shù)據(jù)的存儲(chǔ)單元170; 被配置成根據(jù)需要執(zhí)行加密的加密單元180;以及被配置成允許用戶與設(shè)備100交 互的用戶接口 190。類似地,設(shè)備200可包括其它元件,諸如但不限于,被配置成 根據(jù)需要存儲(chǔ)各種信息或數(shù)據(jù)的存儲(chǔ)單元270;以及被配置成根據(jù)需要執(zhí)行解密的 解密單元280。還應(yīng)注意,元件110-190中的一個(gè)或一種組合可被重新排列而不會(huì)影響設(shè)備 100的操作。類似地,元件210 - 280中的一個(gè)或一種組合可被重新排列而不會(huì)影 響設(shè)備200的操作。最后,元件IIO-190中的一個(gè)或一種組合可被實(shí)現(xiàn)為組合的 而不會(huì)影響設(shè)備100的操作,并且元件210-280中的一個(gè)或一種組合可被實(shí)現(xiàn)為
組合的而不會(huì)影響設(shè)備200的操作。設(shè)備100和200的操作將在以下更詳細(xì)地說(shuō)明。 在以下說(shuō)明中,為便于解釋,假定模數(shù)iV是1024位。但是,應(yīng)當(dāng)顯而易見的 是,此長(zhǎng)度可以小于或大于1024位。實(shí)際的長(zhǎng)度不是根本的,并且增加長(zhǎng)度將得 到更高的密碼安全度,但其代價(jià)是更高的計(jì)算額外開銷。此外,對(duì)其它特定值、定 理和/或算法的引述是用于說(shuō)明目的的示例。相應(yīng)地,本領(lǐng)域技術(shù)人員將可顯而易 見的是,也可實(shí)現(xiàn)不同的值、定理和/或算法。步驟l:創(chuàng)建Alice的公鑰此系統(tǒng)中的公鑰可由合模數(shù)W以及單位(即,具有模A/"乘法逆元的元素)群 的生成元g構(gòu)成。 一般而言,例如2在至少一半的時(shí)間將可是令人滿意的生成元, 因此生成可能的W直至此為真、并忽略可變g的可能性將是值得的。#是隨機(jī)生成的,由此它滿足以下準(zhǔn)則1. iV是素?cái)?shù)/ 和g的乘積。7Vs3mod4 (即,Blum整數(shù))。2. 或者2是模W單位群的生成元,或者找到是這樣一個(gè)生成元的小g。3. (/ ~1)/2是大素?cái)?shù)/ 1和"2的乘積。類似地,(《-1)/2是大素?cái)?shù)《1和的 乘積。4. pl、 p2、 gl和各自是平滑的,即,(pl-l)以及(p2—1)、 (gl—1)、 (g2-1) 分別是小于例如1,000,000的相異素?cái)?shù)的乘積。此創(chuàng)建W的進(jìn)程實(shí)際上將自下向上進(jìn)行。有約50,000個(gè)素?cái)?shù)小于1,000,000, 并且這4個(gè)第3階段因數(shù)中的每一個(gè)需要其中的約12個(gè)(總共約50個(gè))。有約 2.8xl0^種這樣的組合,因此并不缺乏候選;該進(jìn)程可能很長(zhǎng),但是它僅進(jìn)行一次。 可能的^的數(shù)目盡管相對(duì)于約103°5個(gè)1024位素?cái)?shù)只是微小的一個(gè)零頭,但是仍然 能足夠令人滿意地防止基于其特殊性質(zhì)的任何種類的搜索。這50,000個(gè)左右的基素?cái)?shù)的表可被提供給該應(yīng)用,并在密鑰生成之后被丟棄, 或可使用Eratosthenes篩法來(lái)動(dòng)態(tài)創(chuàng)建。檢查候選的較大素?cái)?shù)的素性將可能使用如 試除法等公知算法,繼之以多輪如Miller-Rabin等概率素性檢查算法。Alice的機(jī)密密鑰是所有上面提到的各個(gè)素?cái)?shù),以及它們?nèi)绾谓Y(jié)合在一起以形 成W。其它便于各種中國(guó)余數(shù)定理計(jì)算的數(shù)據(jù)也可被存儲(chǔ)。步驟2:得出公鑰Alice的公鑰是基于模數(shù)W (以及g,若其不是常數(shù)2)的。這可在Alice向
Victor證明她的身份之際被直接發(fā)送給Victor,或它可被發(fā)送給一證書授權(quán)機(jī)構(gòu), 該機(jī)構(gòu)將創(chuàng)建包含她的公鑰的證書,并根據(jù)需要來(lái)分發(fā)該證書。作為公鑰,它如何 到達(dá)Victor實(shí)際上并不要緊,只要使他確信該公鑰與Alice的關(guān)系即可。因?yàn)槭腔诠€的,所以同一基礎(chǔ)密鑰可用于許多不同情況下的認(rèn)證,并且 該密鑰得以分發(fā)的方式可以非常靈活,包括使用公鑰基礎(chǔ)結(jié)構(gòu)(PKI)證書、LDAP/ 活動(dòng)目錄、諸如此類。步驟3: Victor的公鑰對(duì)Victor可用Diffie-Hellman密鑰協(xié)定的正常方式創(chuàng)建他要對(duì)Alice使用的密鑰 對(duì),即,他選擇一隨機(jī)v并計(jì)算V=/(modA0。 F是需要發(fā)送給Alice的公鑰(并 且不是敏感信息,只要使Alice確信該公鑰與Victor的關(guān)系即可)。Victor的機(jī)密 密鑰v對(duì)Alice應(yīng)當(dāng)是獨(dú)特的,即,他應(yīng)當(dāng)對(duì)不同的用戶使用不同的v。他將v連 同與Alice相關(guān)聯(lián)的任何口令/生物統(tǒng)計(jì)信息一起存儲(chǔ)在他的認(rèn)證/授權(quán)數(shù)據(jù)庫(kù)中。步驟4:同步一序列號(hào)當(dāng)生成認(rèn)證簽名時(shí),需要某個(gè)可由Alice和Victor兩人使用的輸入項(xiàng)或輸入值。 對(duì)于短簽名,此輸入或可如數(shù)列那樣是隱式同步的,或者它可以是小隨機(jī)數(shù),或可 與當(dāng)前時(shí)間相關(guān),或甚至可以是該簽名將施加其上的數(shù)據(jù)。對(duì)重放攻擊的防備也是 重要的,并且數(shù)列可用簡(jiǎn)單方式提供此防備。如果簽名要以某種方式施加于所發(fā)送 的數(shù)據(jù)上,則該數(shù)據(jù)本身應(yīng)以某種方式考慮到重放攻擊。為便于說(shuō)明,假定Alice和Victor使用一數(shù)列。該數(shù)列可被初始化為0,并在 每次生成/接受一認(rèn)證號(hào)碼時(shí)遞增。如果Victor最后看到數(shù)列/的簽名,則他可假 定序列號(hào)Z+l、 /+2、……直至某個(gè)相當(dāng)小的極限來(lái)檢查該簽名。當(dāng)一簽名被接受時(shí), 序列號(hào)得以更新成該值以防止重放攻擊?;跁r(shí)間的系統(tǒng)可接受例如基于在當(dāng)前時(shí) 間的小范圍內(nèi)的時(shí)間值的簽名。步驟5:生成/檢査認(rèn)證簽名為便于說(shuō)明,進(jìn)一步假定待簽名的輸入值或數(shù)據(jù)項(xiàng)(無(wú)論其是序列號(hào)、時(shí)戳、 還是某種類型的短消息)被稱為^。1. ^被拉長(zhǎng)。計(jì)算Z)二PRGC4)modW。重申P(guān)RG根據(jù)其輸入生成任意長(zhǎng)度的 偽隨機(jī)串。PRG可生成與模數(shù)中一樣多的位。盡管可生成比這更多或更少的位,
但是它可能不是那么有用,并且為安全性考慮,需要在整數(shù)模W上近似均勻地分 布。不良D值的生成概率是可忽略的;這些將或者是非常小的值,或者是滿足GCD(D,AO"的那些值(在此情形中W己被意外地因數(shù)分解)。2. D將在Diffie-Hellman密鑰協(xié)定中被用作Alice的公共值。為便于她完成此 進(jìn)程,她需要知道相對(duì)應(yīng)的機(jī)密值(d)。為此,她可求解模7V離散對(duì)數(shù)問(wèn)題。Alice 能這樣做,因?yàn)樗栏鱾€(gè)數(shù)字的因數(shù)的所有詳情。a. 從相對(duì)應(yīng)的模p和?!峨x散對(duì)數(shù)使用中國(guó)余數(shù)定理,可計(jì)算出該機(jī)密值丄b. 使用Pohlig-Hellman算法,可通過(guò)計(jì)算模pl和離散對(duì)數(shù)來(lái)確定模 p離散對(duì)數(shù)。對(duì)于《也是一樣。c. 再次使用Pohlig-Hdlman,可通過(guò)得到模p1-1的所有素因數(shù)的離散對(duì) 數(shù)來(lái)確定模pl離散對(duì)數(shù)。d. 計(jì)算模/離散對(duì)數(shù),其中/是小于l,OOO,OOO的素?cái)?shù),可通過(guò)Pollard 的Rho算法、指數(shù)計(jì)算法、或甚至蠻力在可管理的時(shí)間里完成。在本例中,這必 須對(duì)約50個(gè)值進(jìn)行。3. Alice可用正常的Diffie-Hellman方式來(lái)計(jì)算該共享機(jī)密S。 S = HASH (一(modAO)。應(yīng)當(dāng)注意,如果使用序列號(hào),則至此點(diǎn)的步驟全部都可在要發(fā)送認(rèn)證 簽名之前計(jì)算。在這樣的情形中,諸如電話等于設(shè)備可利用已計(jì)算出的S值,并且 在接下來(lái)的步驟完成之后開始下一 S的相對(duì)較昂貴的計(jì)算。4. Alice可計(jì)算待發(fā)送的認(rèn)證簽名或數(shù)字簽名為"-MAC(Q?;蛘?,可使用 其它值作為輸入來(lái)生成該認(rèn)證簽名,諸如但不限于,a = MAC(&輸入值)、fl = MAC(& 《PIN])、 fl = MAC(&輸入值,4PIN])或a = MAC(&4輸入值,PIN]),其中4]是指使 用d對(duì)[]進(jìn)行加密。該認(rèn)證簽名然后可被適當(dāng)?shù)亟財(cái)嗖⑥D(zhuǎn)換成所需的表示。如果PIN/ 口令和/或輸入值要被獨(dú)立發(fā)送,則它可不被包括在此計(jì)算中。5. Alice以某種方式發(fā)送她的消息(可能為空)和認(rèn)證簽名a。這可簡(jiǎn)單地通 過(guò)在數(shù)字小鍵盤上鍵入6位數(shù)來(lái)進(jìn)行。6. Victor接收該認(rèn)證簽名,并知道^是什么(或者因?yàn)樗钱?dāng)前序列號(hào),或 者因?yàn)樗钱?dāng)前時(shí)間、或接收到的消息)。他以與Alice相同的方式計(jì)算Z)= PRG(J)。7. Victor計(jì)算共享機(jī)密<formula>formula see original document page 18</formula>)。8. Victor檢査接收到的a和他以與Alice相同的方式計(jì)算出的那個(gè)相同。9.如果這兩個(gè)簽名匹配,并且如果PIN/口令被獨(dú)立發(fā)送,且它也匹配,則可 認(rèn)為認(rèn)證成功。如果使用的是序列號(hào)方法,則Victor將當(dāng)前序列號(hào)更新到」+l。應(yīng)當(dāng)注意,如果W的因數(shù)之一減一是平滑的,貝lj Pollard的p-l算法可將AA因 數(shù)分解。p和《兩者均被特別選擇以避免此可能性。(注意,在和g-l兩者皆 平滑時(shí)使用此方法是可行的;這要求對(duì)p-l和g-l的所有因數(shù)進(jìn)行特別選擇,并最 終導(dǎo)致Alice破解公鑰的工作是攻擊者將TV因數(shù)分解的工作的平方根的方法。通過(guò) 引入另一層大素?cái)?shù),獲得了顯著的優(yōu)勢(shì)。)沒(méi)有理由相信W的結(jié)構(gòu)允許任何其它 因數(shù)分解算法能以比其對(duì)隨機(jī)TV更高的概率成功。還應(yīng)注意,在成功認(rèn)證結(jié)束時(shí),共享機(jī)密S可被用作會(huì)話密鑰或共享機(jī)密密 鑰,盡管在有限帶寬的假定下它可能并不高效。替換地,當(dāng)Alice接收到Victor的 公鑰F時(shí),她可用與對(duì)她自己的臨時(shí)值的方式來(lái)"破解"此公鑰F以獲得v(Victor 對(duì)Alice使用的機(jī)密密鑰)。實(shí)際上,所發(fā)生的是Victor使用此公鑰方法將其v發(fā) 送給Alice。然后在Alice的設(shè)備和Victor的設(shè)備中等同地執(zhí)行以上討論的其余處 理,甚至將該共享v用作為會(huì)話密鑰或共享機(jī)密密鑰。相應(yīng)地,可執(zhí)行數(shù)字簽名的生成和認(rèn)證。圖3示出可在如上就共同模數(shù)W的 使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的示例方法300。在方法300中,根據(jù) 輸入值生成(310) —偽隨機(jī)串值。該輸入值可如上所述并可基于用戶輸入數(shù)據(jù)。 例如,用戶輸入數(shù)據(jù)可以是但不限于,數(shù)列、隨機(jī)數(shù)、當(dāng)前時(shí)間、字母字、字母短 語(yǔ)、字母數(shù)字作品或字母數(shù)字短語(yǔ)。然后基于模數(shù)W和偽隨機(jī)串值,如上所述地,即通過(guò)拉長(zhǎng)或擴(kuò)展輸入值然后 求解拉長(zhǎng)輸入值模W來(lái)生成(320)用于認(rèn)證或簽名實(shí)體的公鑰值。還生成(330) 與公鑰值相對(duì)應(yīng)的私鑰值。該私鑰值可通過(guò)求解模W離散對(duì)數(shù)問(wèn)題來(lái)生成。例如, 該私鑰值可使用中國(guó)余數(shù)定理、Pohlig-Hellman算法以及Pollard的Rho算法來(lái)生 成。然后基于模數(shù)W、私鑰值和驗(yàn)證方的公鑰值來(lái)生成(340)共享機(jī)密值。在此, 驗(yàn)證方的公鑰可在生成共享機(jī)密值之前的任何時(shí)候接收。使用共享機(jī)密值來(lái)計(jì)算 (350)認(rèn)證簽名值或數(shù)字簽名。在此,認(rèn)證簽名也可使用輸入值或加密的輸入值 來(lái)生成。替換地,認(rèn)證簽名可以使用共享機(jī)密值和PIN或口令來(lái)生成。再替換地, 認(rèn)證簽名可使用共享機(jī)密值、輸入值和PIN來(lái)生成。在使用PIN的情形中,PIN 可從簽名實(shí)體接收,并被加密以便于在認(rèn)證簽名時(shí)使用。輸入值一一如有需要—— 和PIN可使用私鑰或其它達(dá)成一致的密碼密鑰來(lái)加密,只要驗(yàn)證方能解密該加密 密鑰即可。如果該(加密的)輸入值和/或加密的PIN被用于生成認(rèn)證簽名值,則 也被發(fā)送給驗(yàn)證方。注意,在一些情形中,輸入值可在認(rèn)證簽名中使用,但可能不 被發(fā)送,例如在使用數(shù)列的情況下就是這樣。此后,認(rèn)證簽名值可被發(fā)送給驗(yàn)證方。認(rèn)證簽名值在發(fā)送之前可被截?cái)唷?蓪?shí)現(xiàn)各種裝置來(lái)實(shí)現(xiàn)和/或執(zhí)行方法300。如果使用示例設(shè)備100,則PRG 單元110可生成偽隨機(jī)串值,密鑰生成單元120可生成公鑰和私鑰,機(jī)密值生成單 元140可生成機(jī)密值,并且MAC單元150可計(jì)算認(rèn)證簽名。存儲(chǔ)單元170可存儲(chǔ) 與達(dá)成一致的共同模數(shù)相關(guān)的數(shù)據(jù)和/或信息、以及設(shè)備100的操作所需的其它數(shù) 據(jù)和/或信息。接收器單元130可接收驗(yàn)證方的公鑰。發(fā)送器單元160可發(fā)送認(rèn)證 簽名以及在需要時(shí)發(fā)送輸入值。此外,加密單元180可加密輸入值和/或PIN,并 且用戶接口 1卯可用于接收用戶輸入數(shù)據(jù)和PIN。此外,認(rèn)證簽名可在生成之后由 MAC單元150截?cái)啵蛟诎l(fā)送之前由諸如處理器(未示出)或發(fā)送器單元160等 獨(dú)立元件截?cái)?。圖4示出與方法300相對(duì)應(yīng)的便于在就共同模數(shù)V的使用達(dá)成一致的兩個(gè)實(shí) 體之間的認(rèn)證中使用的示例方法400。在方法400中,接收(410)待認(rèn)證的認(rèn)證 簽名值。為進(jìn)行認(rèn)證,根據(jù)輸入值生成(420) —偽隨機(jī)串值。在此,該偽隨機(jī)串 值可用與方法300中相同的方式來(lái)生成。然后以與方法300相同的方式基于模數(shù)W和偽隨機(jī)串值來(lái)生成(430) —公鑰 值;并以與方法300相同的方式基于模數(shù)W、 一私鑰值和公鑰值來(lái)生成(440) — 共享機(jī)密值。在此,該私鑰將是與簽名實(shí)體的公鑰相對(duì)應(yīng)的私鑰,并且也可用與方 法300相同的方式生成。即,該私鑰可通過(guò)求解模W離散對(duì)數(shù)問(wèn)題來(lái)生成。以與方法300中相同的方式使用共享機(jī)密值來(lái)生成(450) —認(rèn)證簽名值。相 應(yīng)地,認(rèn)證簽名值也可使用輸入值或加密的輸入值來(lái)生成。替換地,認(rèn)證簽名可使 用共享機(jī)密值以及PIN或口令來(lái)生成。再替換地,認(rèn)證簽名可使用共享機(jī)密值、 輸入值和PIN來(lái)生成。在使用PIN的情形中,從簽名實(shí)體接收一加密的PIN,并 將其用在認(rèn)證簽名中。在使用輸入值的情形中,在一些情形中輸入值可從簽名實(shí)體 接收。但是,在一些情形中輸入值無(wú)須被接收,例如在使用數(shù)列的情況下就是這樣。將接收到的認(rèn)證簽名值與計(jì)算出的認(rèn)證簽名值相比較(460)。由于接收到的 認(rèn)證可能是認(rèn)證簽名的被截?cái)嗖糠?,因此可將接收到的認(rèn)證簽名值與計(jì)算出的認(rèn)證 簽名值的一截?cái)嗖糠窒啾容^。如果兩個(gè)簽名值匹配,則接收到的認(rèn)證簽名可被認(rèn)證。
在此,在認(rèn)證過(guò)程中也可使用PIN。即,為了提供雙因素認(rèn)證,與簽名實(shí)體相對(duì)應(yīng)的PIN可被存儲(chǔ)。由此,如果接收到加密的PIN,則該P(yáng)IN可被解密并與所存儲(chǔ) 的PIN相比較。如果認(rèn)證簽名值和PIN兩者皆匹配,則認(rèn)證簽名被認(rèn)證。輸入值—— 如果需要——以及PIN可使用簽名實(shí)體的私鑰或是其它達(dá)成一致的密碼密鑰來(lái)解 密,只要驗(yàn)證方能解密該加密密鑰即可??蓪?shí)現(xiàn)各種手段來(lái)達(dá)成和/或執(zhí)行方法400。如果使用示例設(shè)備200,則接收器 單元210可接收認(rèn)證簽名值,并且在需要時(shí)接收輸入值和/或加密的PIN。 PRG單 元220可生成偽隨機(jī)串值,密鑰生成單元230可生成公鑰和私鑰,機(jī)密值生成單元 240可生成共享機(jī)密值,MAC單元250可計(jì)算認(rèn)證簽名,并且比較單元260可比 較認(rèn)證簽名,并且在需要時(shí)比較PIN。存儲(chǔ)單元270可存儲(chǔ)與達(dá)成一致的共同模數(shù) 相關(guān)的數(shù)據(jù)和/或信息,以及設(shè)備200的操作所需的其它數(shù)據(jù)和/或信息。解密單元 280可在需要時(shí)解密輸入值和/或PIN。由此,可生成、發(fā)送和認(rèn)證數(shù)字簽名。應(yīng)當(dāng)注意,可實(shí)現(xiàn)各種其它認(rèn)證。例如,圖5示出一替換方法500,其中接收 (510)基于另一實(shí)體的模數(shù)W生成的公鑰。也可通過(guò)求解模W離散對(duì)數(shù)問(wèn)題來(lái)生 成(520)與接收到的公鑰相對(duì)應(yīng)的私鑰。此后,可使用(530)與驗(yàn)證方的公鑰相 對(duì)應(yīng)的私鑰作為兩個(gè)實(shí)體間將來(lái)通信中的共享機(jī)密值或?qū)ΨQ密鑰。此外,應(yīng)當(dāng)注意,方法300、 400和500可由如圖600中所示的存儲(chǔ)介質(zhì)610 和處理器620來(lái)實(shí)現(xiàn)。存儲(chǔ)介質(zhì)610可包含被配置成執(zhí)行方法300、 400和500的 指令。處理器620可通過(guò)例如執(zhí)行存儲(chǔ)在該存儲(chǔ)裝置中的指令來(lái)控制方法300、 400 和500的操作。另外,由于這些數(shù)字簽名可以很短,因此它們適應(yīng)各種各樣的空間或帶寬約 束情況,例如,它們可在電話上被讀出,輸入到小鍵盤中,或甚至在表單上手寫。 因此,它們未必可完全防止一般情況下的偽造。然而,存在可在一般情況下使用這 樣的簽名的方式。例如,該簽名可被實(shí)現(xiàn)為時(shí)間相關(guān)的,并且僅在很短時(shí)間里有效。 還可使該簽名輸入相對(duì)不可竊聽(例如,將簽名輸入到門上進(jìn)行本地驗(yàn)證的小鍵盤 中)。如果短時(shí)間里接連有兩三次以上不成功的認(rèn)證嘗試,則驗(yàn)證實(shí)體可禁用、或 封鎖一段時(shí)間。這在原理上與在連續(xù)三次輸錯(cuò)PIN的情況下ATM "吃"卡的方式 是相似的。替換地,可為具體驗(yàn)證實(shí)體創(chuàng)建簽名,g卩,定向于一個(gè)特定驗(yàn)證方自己的公 鑰。如果作了太多次不成功的認(rèn)證嘗試,則該驗(yàn)證方也可"封鎖"帳戶。然而,該
簽名無(wú)須是時(shí)間相關(guān)的,并且這些嘗試可能在時(shí)間上間隔開。這與當(dāng)前對(duì)登錄口令 的處理相似。最后,盡管參考了實(shí)體Alice和Victor對(duì)這些實(shí)施例進(jìn)行了說(shuō)明,但是應(yīng)當(dāng)顯 而易見的是,其它類型的實(shí)體也是適用的。盡管是參考具體條件和值對(duì)這些實(shí)現(xiàn)進(jìn) 行說(shuō)明,但是也應(yīng)顯而易見的是,可應(yīng)用不同的條件和值而不會(huì)影響總的認(rèn)證過(guò)程。由此,以上實(shí)施例純粹是示例,而不應(yīng)被理解為限定本發(fā)明。對(duì)這些實(shí)施例 的描述旨在是說(shuō)明性的,而非限定所附權(quán)利要求的范圍。由此,本示教易于被應(yīng)用 于其它類型的裝置,并且許多替換、修改和變體對(duì)于本領(lǐng)域技術(shù)人員將是顯而易見 的。
權(quán)利要求
1.一種在已就共同模數(shù)N的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的方法,所述方法包括根據(jù)一輸入值生成一偽隨機(jī)串值;基于所述模數(shù)N和所述偽隨機(jī)串值生成第一公鑰值;生成與所述第一公鑰值相對(duì)應(yīng)的第一私鑰值;接收第二公鑰值;以及基于所述模數(shù)N、所述第一私鑰值和所述第二公鑰值生成一共享機(jī)密值。
2. 如權(quán)利要求l所述的方法,其特征在于,進(jìn)一步包括 使用所述共享機(jī)密值計(jì)算一認(rèn)證簽名值;以及發(fā)送所述認(rèn)證簽名值。
3. 如權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括 截?cái)嗨稣J(rèn)證簽名值;并且其中發(fā)送所述認(rèn)證簽名值包括發(fā)送經(jīng)截?cái)嗟恼J(rèn)證簽名值。
4. 如權(quán)利要求2或3所述的方法,作為從屬,其特征在于,計(jì)算所述認(rèn)證簽 名值包括使用所述共享機(jī)密值和所述輸入值計(jì)算所述認(rèn)證簽名值。
5. 如權(quán)利要求2或3 - 4中任意一項(xiàng)所述的方法,作為從屬,其特征在于,進(jìn)一步包括接收一口令值;使用所述第一私鑰值來(lái)加密所述口令值;以及 發(fā)送經(jīng)加密的口令值。
6. 如權(quán)利要求5所述的方法,其特征在于,計(jì)算所述認(rèn)證簽名值包括使用所 述共享機(jī)密值和所述經(jīng)加密的口令值來(lái)計(jì)算所述認(rèn)證簽名值。
7. 如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其特征在于,生成所述第一私鑰值包括通過(guò)求解模w離散對(duì)數(shù)問(wèn)題來(lái)生成所述第一私鑰值。
8. 如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其特征在于,進(jìn)一步包括 接收用戶輸入數(shù)據(jù),并且其中所述輸入值基于所述用戶輸入數(shù)據(jù)。
9. 如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其特征在于,進(jìn)一步包括 發(fā)送所述輸入值。
10. 如以上權(quán)利要求中的任意一項(xiàng)所述的方法,其特征在于,進(jìn)一步包括 通過(guò)求解模iV離散對(duì)數(shù)問(wèn)題來(lái)生成與所述第二公鑰值相對(duì)應(yīng)的第二私鑰;以及將所述第二私鑰用作為共享機(jī)密密鑰。
11. 一種被配置成控制如以上權(quán)利要求中的任意一項(xiàng)所述的方法的執(zhí)行的處 理器。
12. —種被配置成存儲(chǔ)執(zhí)行如權(quán)利要求1或其從屬權(quán)利要求2-10中任意一 項(xiàng)所述的方法的指令的存儲(chǔ)介質(zhì)。
13. —種在已就共同模數(shù)W的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的 裝置,所述裝置包括用于根據(jù)一輸入值生成一偽隨機(jī)串值的裝置; 用于基于所述模數(shù)7V和所述偽隨機(jī)串值生成第一公鑰值的裝置; 用于生成與所述第一公鑰值相對(duì)應(yīng)的第一私鑰值的裝置; 用于接收第二公鑰值的裝置;以及用于基于所述模數(shù)W、所述第一私鑰值和所述第二公鑰值生成一共享機(jī)密值 的裝置。
14. 如權(quán)利要求13所述的裝置,其特征在于,進(jìn)一步包括 用于使用所述共享機(jī)密值生成一認(rèn)證簽名值的裝置;以及 用于發(fā)送所述認(rèn)證簽名值的裝置。
15. 如權(quán)利要求14所述的裝置,其特征在于,進(jìn)一步包括 用于截?cái)嗨稣J(rèn)證簽名值的裝置;并且其中發(fā)送所述認(rèn)證簽名值包括發(fā)送經(jīng)截?cái)嗟恼J(rèn)證簽名值。
16. 如如權(quán)利要求14或其從屬權(quán)利要求15所述的裝置,其特征在于,所述 用于計(jì)算認(rèn)證簽名值的裝置包括用于使用所述共享機(jī)密值和/或所述輸入值來(lái)計(jì)算 所述認(rèn)證簽名值的裝置。
17. 如權(quán)利要求14或其從屬權(quán)利要求15 - 16中的任意一項(xiàng)所述的裝置,其 特征在于,進(jìn)一步包括用于接收口令值的裝置;用于使用所述第一私鑰值來(lái)加密所述口令值的裝置;以及 用于發(fā)送經(jīng)加密的口令值的裝置。
18. 如權(quán)利要求17所述的裝置,其特征在于,所述用于計(jì)算認(rèn)證簽名值的裝 置包括用于使用所述共享機(jī)密值和所述經(jīng)加密的口令值來(lái)計(jì)算所述認(rèn)證簽名值的 裝置。
19. 如權(quán)利要求13或其從屬權(quán)利要求14 - 18中的任意一項(xiàng)所述的裝置,其特征在于,所述用于生成第一私鑰值的裝置包括用于通過(guò)求解模w離散對(duì)數(shù)問(wèn)題來(lái)生成所述第一私鑰值的裝置。
20. 如權(quán)利要求13或其從屬權(quán)利要求14- 19中的任意一項(xiàng)所述的裝置,其特征在于,進(jìn)一步包括用于通過(guò)求解模離散對(duì)數(shù)問(wèn)題來(lái)生成與所述第二公鑰值相對(duì)應(yīng)的第二私鑰 的裝置;以及用于將所述第二私鑰用作為共享機(jī)密密鑰的裝置。
21. —種在已就共同模數(shù)W的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的 裝置,所述裝置包括偽隨機(jī)發(fā)生器,被配置成根據(jù)一輸入值生成一偽隨機(jī)串;密鑰生成單元,被配置成基于所述模數(shù)W和所述偽隨機(jī)串值生成第一公鑰值, 并生成與所述第一公鑰值相對(duì)應(yīng)的第一私鑰值;接收器單元,被配置成接收第二公鑰值;以及機(jī)密值生成單元,被配置成基于所述模數(shù)W、所述第一私鑰值和所述第二公 鑰值生成一共享機(jī)密值。
22. 如權(quán)利要求21所述的裝置,其特征在于,進(jìn)一步包括 消息認(rèn)證碼單元,被配置成使用所述共享機(jī)密值來(lái)計(jì)算一認(rèn)證簽名值;以及 發(fā)送器單元,被配置成發(fā)送所述認(rèn)證簽名值。
23. 如權(quán)利要求22所述的裝置,其特征在于,所述發(fā)送器單元發(fā)送經(jīng)截?cái)嗟?認(rèn)證簽名。
24. —種在已就共同模數(shù)W的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的 方法,所述方法包括接收第一認(rèn)證簽名值;根據(jù)一輸入值生成一偽隨機(jī)串值;基于所述模數(shù)W和所述偽隨機(jī)串值生成第一公鑰值;基于所述模數(shù)W、 一私鑰值和所述第一公鑰值生成一共享機(jī)密值;使用所述共享機(jī)密值來(lái)計(jì)算第二認(rèn)證簽名值; 將所述第一認(rèn)證簽名值與所述第二認(rèn)證簽名值相比較。
25. 如權(quán)利要求24所述的方法,其特征在于,將所述第一和第二認(rèn)證簽名值 相比較包括將所述第一認(rèn)證簽名值與所述第二認(rèn)證簽名值的一截?cái)嗖糠窒啾容^。
26. 如權(quán)利要求24或其從屬權(quán)利要求25所述的方法,其特征在于,所述方 法進(jìn)一步包括接收所述輸入值。
27. 如權(quán)利要求24或其從屬權(quán)利要求25 - 26中的任意一項(xiàng)所述的方法,其 特征在于,計(jì)算所述認(rèn)證簽名值包括使用所述共享機(jī)密值和所述輸入值來(lái)計(jì)算所述 認(rèn)證簽名值。
28. 如權(quán)利要求24或其從屬權(quán)利要求25 - 27中的任意一項(xiàng)所述的方法,其 特征在于,進(jìn)一步包括接收一加密的口令值;使用所述第一公鑰值來(lái)解密所述口令值;以及 證實(shí)經(jīng)解密的口令值。
29. 如權(quán)利要求28所述的方法,其特征在于,計(jì)算所述認(rèn)證簽名值包括使用 所述共享機(jī)密值和所述加密的口令值來(lái)計(jì)算所述認(rèn)證簽名值。
30. —種被配置成控制如權(quán)利要求24或其從屬權(quán)利要求25 - 29中的任意一 項(xiàng)所述的方法的執(zhí)行的處理器。
31. —種被配置成存儲(chǔ)執(zhí)行如權(quán)利要求24或其從屬權(quán)利要求25 - 29中的任 意一項(xiàng)所述的方法的指令的存儲(chǔ)介質(zhì)。
32. —種在已就共同模數(shù)的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的 裝置,所述裝置包括用于接收第一認(rèn)證簽名值的裝置; 用于根據(jù)一輸入值生成一偽隨機(jī)串值的裝置; 用于基于所述模數(shù)7V和所述偽隨機(jī)串值生成第一公鑰的裝置; 用于基于所述模數(shù)W、 一私鑰值和所述第一公鑰值來(lái)生成一共享機(jī)密值的裝置;用于使用所述共享機(jī)密值來(lái)計(jì)算第二認(rèn)證簽名值的裝置;以及 用于將所述第一認(rèn)證簽名值與所述第二認(rèn)證簽名值相比較的裝置。
33. 如權(quán)利要求32所述的裝置,其特征在于,所述用于將第一和第二認(rèn)證簽 名值相比較的裝置包括將所述第一認(rèn)證簽名值與所述第二認(rèn)證簽名值的一截?cái)嗖糠窒啾容^。
34. 如權(quán)利要求32或其從屬權(quán)利要求33所述的裝置,其特征在于,進(jìn)一步 包括用于接收所述輸入值的裝置。
35. 如權(quán)利要求32或其從屬權(quán)利要求33 - 34中的任意一項(xiàng)所述的裝置,其 特征在于,所述用于計(jì)算認(rèn)證簽名值的裝置包括用于使用所述共享機(jī)密值和所述輸 入值來(lái)計(jì)算所述認(rèn)證簽名值的裝置。
36. 如權(quán)利要求32或其從屬權(quán)利要求33 - 35中的任意一項(xiàng)所述的裝置,其 特征在于,進(jìn)一步包括用于接收加密的口令值的裝置;用于使用所述第一公鑰值來(lái)解密所述口令值的裝置;以及 用于證實(shí)經(jīng)解密的口令值的裝置。
37. 如權(quán)利要求36所述的裝置,其特征在于,所述用于計(jì)算認(rèn)證簽名值的裝 置包括使用所述共享機(jī)密值和所述加密的口令值來(lái)計(jì)算所述認(rèn)證簽名值的裝置。
38. —種在已就共同模數(shù)W的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的 裝置,所述裝置包括接收器單元,被配置成接收第一認(rèn)證簽名值; 偽隨機(jī)發(fā)生器,被配置成根據(jù)一輸入值生成一偽隨機(jī)串值; 密鑰生成單元,被配置成基于所述模數(shù)W和所述偽隨機(jī)串值生成第一公鑰值; 共享機(jī)密值生成單元,被配置成基于所述模數(shù)W、 一私鑰值和所述第一公鑰 值生成一共享機(jī)密值;消息認(rèn)證碼單元,被配置成使用所述共享機(jī)密值來(lái)計(jì)算一第二認(rèn)證簽名值;以及計(jì)算單元,被配置成將所述第一認(rèn)證簽名值與所述第二認(rèn)證簽名值相比較。
39. 如權(quán)利要求38所述的裝置,其特征在于,所述比較單元將所述第一認(rèn)證 簽名值與所述第二認(rèn)證簽名值的一截?cái)嗖糠窒啾容^。
40. —種在已就共同模數(shù)W的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的 方法,所述方法包括接收基于所述模數(shù)W生成的公鑰值;通過(guò)求解模iV離散對(duì)數(shù)問(wèn)題來(lái)生成與所述公鑰值相對(duì)應(yīng)的私鑰;以及 將所述私鑰用作為共享機(jī)密密鑰。
41. 如權(quán)利要求40所述的方法,其特征在于,生成所述私鑰包括 使用中國(guó)余數(shù)定理來(lái)計(jì)算所述私鑰。
42. —種在已就共同模數(shù)AA的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證中使用的裝置,所述裝置包括用于接收基于所述模數(shù)W生成的公鑰值的裝置;用于通過(guò)求解模W離散對(duì)數(shù)問(wèn)題來(lái)生成與所述公鑰值相對(duì)應(yīng)的私鑰的裝置;以及用于將所述私鑰用作為共享機(jī)密密鑰的裝置。
全文摘要
所公開的實(shí)施例允許已就共同模數(shù)N的使用達(dá)成一致的兩個(gè)實(shí)體之間的認(rèn)證。此認(rèn)證包括生成一偽隨機(jī)串值;基于模數(shù)N和偽隨機(jī)串值生成一公鑰值;生成對(duì)應(yīng)于公鑰值的一私鑰值;接收驗(yàn)證方的公鑰值;基于模數(shù)N、私鑰值和驗(yàn)證方的公鑰值生成一共享機(jī)密值;使用共享機(jī)密值計(jì)算一認(rèn)證簽名值;以及發(fā)送該認(rèn)證簽名值以供認(rèn)證。當(dāng)接收到該認(rèn)證簽名時(shí),生成公鑰值和共享值以計(jì)算一認(rèn)證簽名值。此后比較并認(rèn)證這些認(rèn)證簽名值。
文檔編號(hào)H04L9/32GK101129018SQ200680006191
公開日2008年2月20日 申請(qǐng)日期2006年2月24日 優(yōu)先權(quán)日2005年2月25日
發(fā)明者A·格恩特曼, G·G·羅斯, J·W·諾倫伯格二世, P·M·豪克斯 申請(qǐng)人:高通股份有限公司