專(zhuān)利名稱(chēng):聯(lián)網(wǎng)環(huán)境中秘密的新隨機(jī)數(shù)的管理與利用的制作方法
本申請(qǐng)的主題涉及1997年12月19日提交的名為“聯(lián)網(wǎng)環(huán)境中專(zhuān)用密鑰的管理與利用”的這里的發(fā)明人之一的申請(qǐng)。
本發(fā)明涉及聯(lián)網(wǎng)環(huán)境中的秘密的新隨機(jī)數(shù)的管理和利用的方法與系統(tǒng),例如采用El-Gamal算法的數(shù)字簽名或加密操作。
在多種密碼系統(tǒng)中利用這里稱(chēng)作“秘密的新隨機(jī)數(shù)”的以前未曾使用過(guò)的秘密的隨機(jī)數(shù)。這種用途之一是在采用El-Gamal算法的公用密鑰密碼系統(tǒng)中用于執(zhí)行數(shù)字簽名或加密。在公用密鑰密碼系統(tǒng)中可為各用戶(hù)或客戶(hù)分配一對(duì)對(duì)應(yīng)的公用密鑰和專(zhuān)用密鑰。
當(dāng)在數(shù)字簽名或加密中采用El-Gamal算法時(shí)需要秘密的新隨機(jī)數(shù)是由于兩個(gè)主要弱點(diǎn)1)任意隨機(jī)數(shù)都不能被攻擊者知道;及2)禁止使用相同的隨機(jī)數(shù)來(lái)簽名或加密兩個(gè)不同文件。任一情況中的失敗使攻擊者有足夠的信息來(lái)恢復(fù)用于數(shù)字簽名的專(zhuān)用密鑰或恢復(fù)用公用密鑰加密了的項(xiàng)目。竊聽(tīng)者對(duì)特定專(zhuān)用密鑰的恢復(fù)被認(rèn)為是系統(tǒng)的災(zāi)難性失敗,取決于消息的性質(zhì)而用特定公用密鑰加密的發(fā)送消息的恢復(fù)可被認(rèn)為是災(zāi)難性失敗。
采用El-Gamal算法的數(shù)字簽名利用簽名者的專(zhuān)用密鑰、秘密的新隨機(jī)數(shù)和通常將安全散列函數(shù)(諸如SHA-1或RIPEMD)作用在諸如文本、文件、程序或密鑰(為了簡(jiǎn)明此后稱(chēng)作“文件”)等一或多個(gè)數(shù)據(jù)項(xiàng)上的結(jié)果,來(lái)表明簽名者的創(chuàng)作、批準(zhǔn)或證明。加上簽名的文件通常與簽名一起發(fā)送,除非它們已存在于接收者處或可被其獲得。在接收端上,進(jìn)行包含利用始發(fā)者的公用密鑰的驗(yàn)證,該公用密鑰已用來(lái)自可信任的來(lái)源的證明而獲得;并將散列函數(shù)應(yīng)用在所接收的或以其它方式獲得的文件上。
為了傳輸?shù)浇邮照叨捎肊l-Gamal算法的數(shù)據(jù)加密通常包含利用從來(lái)自可信任的來(lái)源的證明獲得的接收者的公用密鑰及秘密的新隨機(jī)數(shù)。這樣加密的數(shù)據(jù)可包括一次性使用的對(duì)稱(chēng)密鑰,該密鑰已以計(jì)算上高效的方式采用對(duì)稱(chēng)加密算法用來(lái)加密相關(guān)的項(xiàng)目,加密的對(duì)稱(chēng)密鑰與相關(guān)項(xiàng)目構(gòu)成一組。在接收端上,用包含使用接收者的專(zhuān)用密鑰解密的操作,解密所加密的數(shù)據(jù)或組。在組的情況中,使用專(zhuān)用密鑰解密產(chǎn)生對(duì)稱(chēng)密鑰,然后用它以計(jì)算上高效的方式解密相關(guān)項(xiàng)目。
在用戶(hù)設(shè)備上需要能獲得秘密的新隨機(jī)數(shù),通常要求用根據(jù)諸如在其電流中表現(xiàn)散粒噪聲的反向偏置的齊納二極管等自然隨機(jī)現(xiàn)象的隨機(jī)數(shù)發(fā)生器裝備所有用戶(hù)設(shè)備為代價(jià)。如果在服務(wù)器上生成秘密的新隨機(jī)數(shù)并在需要時(shí)以安全方式通過(guò)網(wǎng)絡(luò)提供給用戶(hù)設(shè)備便可避免這一代價(jià)。然而,即使通過(guò)交換公用密鑰在服務(wù)器與用戶(hù)之間建立了加密信道,并且存在證明系統(tǒng)來(lái)證明這些公用密鑰,借此防止中間人攻擊,新鮮度要求仍會(huì)使系統(tǒng)易受塊重播攻擊,在其中攻擊者重播前面加密的傳輸或其部分。
在上述相關(guān)專(zhuān)利申請(qǐng)中,曾提出將用戶(hù)的專(zhuān)用密鑰以使用用戶(hù)標(biāo)識(shí)密鑰加密的加密形式保持在服務(wù)器上,并只在諸如用于執(zhí)行數(shù)字簽名或加密等需要時(shí)才通過(guò)網(wǎng)絡(luò)提供給用戶(hù)或客戶(hù)設(shè)備。用戶(hù)標(biāo)識(shí)密鑰是從假定要求用戶(hù)實(shí)際出現(xiàn)在用戶(hù)設(shè)備外的用戶(hù)標(biāo)識(shí)信息中導(dǎo)出的,具體地為用戶(hù)輸入的口令短語(yǔ)的散列或者通過(guò)與實(shí)際出現(xiàn)的用戶(hù)的交互作用測(cè)定或掃描到的生物測(cè)量信息(指紋、聲波紋、視網(wǎng)膜掃描或面部掃描)。
在現(xiàn)有技術(shù)中,詢(xún)問(wèn)應(yīng)答協(xié)議也是已知使服務(wù)器能證實(shí)客戶(hù)或用戶(hù)的,即在將任何專(zhuān)用信息出示給用戶(hù)之前驗(yàn)證該用戶(hù)擁有其專(zhuān)用密鑰。通常,詢(xún)問(wèn)應(yīng)答協(xié)議包括服務(wù)器生成隨機(jī)數(shù)并通過(guò)網(wǎng)絡(luò)用明文將其發(fā)送給用戶(hù),及用戶(hù)通過(guò)用其專(zhuān)用密鑰簽名該隨機(jī)數(shù)并將其簽名發(fā)送回服務(wù)器。服務(wù)器能用用戶(hù)的專(zhuān)用密鑰與該隨機(jī)數(shù)驗(yàn)證簽名(并保證這便是發(fā)送的同一隨機(jī)數(shù))。然而,如果將El-Gamal算法用于簽名,在用戶(hù)設(shè)備上必須有隨機(jī)數(shù)發(fā)生器以提供與用戶(hù)的專(zhuān)用密鑰一起用于簽名的另一隨機(jī)數(shù)。要簽名的隨機(jī)數(shù)不能同時(shí)用作El-Gamal簽名所需的隨機(jī)數(shù),因?yàn)閷?duì)用戶(hù)設(shè)備缺乏保證這一隨機(jī)數(shù)既是秘密的又是新的。
本發(fā)明的目的為提供管理與使用秘密的新隨機(jī)數(shù)的方法,其中這些隨機(jī)數(shù)是在服務(wù)器上生成的并在諸如用于采用El-Gamal算法數(shù)字簽名或加密需要時(shí)以安全方式提供給用戶(hù)。
本發(fā)明的又一目的為以下述方式將一或多個(gè)秘密的新隨機(jī)數(shù)從服務(wù)器傳遞給用戶(hù)設(shè)備,即不僅保證所傳遞的隨機(jī)數(shù)是秘密與新的,并且還用于以詢(xún)問(wèn)應(yīng)答協(xié)議的性質(zhì)向服務(wù)器證實(shí)該用戶(hù)。
本發(fā)明的另一目的為結(jié)合管理與使用專(zhuān)用密鑰的方法提供這一隨機(jī)數(shù)管理與利用方法,其中用戶(hù)的專(zhuān)用密鑰不保持在用戶(hù)設(shè)備上,而是保持在服務(wù)器能訪問(wèn)的存儲(chǔ)裝置中并在諸如采用El-Gamal算法的數(shù)字簽名或加密需要時(shí)通過(guò)網(wǎng)絡(luò)以加密形式傳輸給用戶(hù)設(shè)備。
本發(fā)明的又另一目的為提供以集中方式管理秘密的新隨機(jī)數(shù)與用戶(hù)的專(zhuān)用密鑰及以對(duì)抽取與塊重播攻擊高度安全的方式將這些隨機(jī)數(shù)與密鑰分配給用戶(hù)設(shè)備的方法與系統(tǒng)。
簡(jiǎn)要地,這些與其它目的是用下述方法與系統(tǒng)滿(mǎn)足的,即在其中將各用戶(hù)與各自的一組專(zhuān)用密鑰、對(duì)應(yīng)于該專(zhuān)用密鑰的公用密鑰、ID、及最好只能通過(guò)與實(shí)際出現(xiàn)在用戶(hù)設(shè)備處的用戶(hù)的交互作用獲得的唯一的用戶(hù)標(biāo)識(shí)密鑰相關(guān)聯(lián)。
從服務(wù)器的觀點(diǎn),本發(fā)明指向供在服務(wù)器耦合在其上的聯(lián)網(wǎng)環(huán)境中使用的秘密的新隨機(jī)數(shù)的管理方法,所述方法既保證隨機(jī)數(shù)是秘密與新的并且還在詢(xún)問(wèn)應(yīng)答協(xié)議的性質(zhì)中,其中通過(guò)網(wǎng)絡(luò)接收用戶(hù)的ID;至少生成第一隨機(jī)數(shù)并用用戶(hù)的公用密鑰加密;構(gòu)成對(duì)應(yīng)于當(dāng)前日期/時(shí)間的新鮮度值;散列包含第一隨機(jī)數(shù)與新鮮度值的項(xiàng)目以形成第一散列;使用服務(wù)器的專(zhuān)用密鑰形成第一散列的第一簽名;將至少包含第一隨機(jī)數(shù)、新鮮度值、及第一簽名的加密的部分的組通過(guò)網(wǎng)絡(luò)發(fā)送給用戶(hù);及隨后接收從至少第一隨機(jī)數(shù)導(dǎo)出的數(shù)據(jù)的第二簽名,所述第二簽名是用用戶(hù)的專(zhuān)用密鑰形成的;及使用用戶(hù)的公用密鑰,首先驗(yàn)證第二簽名是否是為服務(wù)器發(fā)送的同一第一隨機(jī)數(shù)作出的。
此外,有鑒于以公用密鑰將El-Gamal算法用于所有上述加密及以專(zhuān)用密鑰用于所有上述簽名,實(shí)際上在構(gòu)成組時(shí)生成與利用了至少第一、第二、第三及第四隨機(jī)數(shù)。具體地,在服務(wù)器上構(gòu)成組時(shí),在用用戶(hù)的公用密鑰與第三隨機(jī)數(shù)構(gòu)成的加密部分中至少包含第一與第二隨機(jī)數(shù);第一散列是通過(guò)包含在組(可能包含第二隨機(jī)數(shù))中的第一與至少另一隨機(jī)數(shù)與新鮮度值一起散列而構(gòu)成的;第一散列的第一簽名是用服務(wù)器的專(zhuān)用密鑰與第四隨機(jī)數(shù)構(gòu)成的。關(guān)于隨后接收的數(shù)據(jù)的第二簽名,該數(shù)據(jù)包括在用戶(hù)設(shè)備上通過(guò)將包含在組(可能包含第二隨機(jī)數(shù))中的第一與至少另一隨機(jī)數(shù)一起散列構(gòu)成的第二散列,而其簽名則用用戶(hù)的專(zhuān)用密鑰與第二隨機(jī)數(shù)構(gòu)成。然后,第一驗(yàn)證步驟為第二簽名是否是為服務(wù)器發(fā)送的相同隨機(jī)數(shù)作出的。這留給用戶(hù)設(shè)備至少新的、秘密的及最終可用于以后的簽名或加密操作的至少第一隨機(jī)數(shù),同時(shí)也使服務(wù)器能用用戶(hù)能用其專(zhuān)用密鑰與第二隨機(jī)數(shù)簽名包含在組中的第一與至少另一隨機(jī)數(shù)這一事實(shí)來(lái)證實(shí)用戶(hù)。
如在上述相關(guān)申請(qǐng)中,從服務(wù)器的觀點(diǎn)該方法還包含從存儲(chǔ)裝置中讀取對(duì)應(yīng)于具有所接收的ID的用戶(hù)的數(shù)據(jù),該數(shù)據(jù)包括用從該用戶(hù)的標(biāo)識(shí)信息確定的密鑰加密的該用戶(hù)的專(zhuān)用密鑰。讀自存儲(chǔ)裝置的用戶(hù)的這一加密的專(zhuān)用密鑰包含在發(fā)送給用戶(hù)的上述組中。用戶(hù)標(biāo)識(shí)信息包括用戶(hù)在用戶(hù)設(shè)備上輸入的口令短語(yǔ),或通過(guò)在用戶(hù)設(shè)備上的適當(dāng)測(cè)定或掃描從用戶(hù)得出的生物測(cè)量信息。
從用戶(hù)設(shè)備的觀點(diǎn),本發(fā)明指向用于在服務(wù)器耦合在其上的聯(lián)網(wǎng)環(huán)境中的用戶(hù)設(shè)備上獲取及使用秘密的新隨機(jī)數(shù)的方法,其中傳輸用戶(hù)的ID;接收包含至少具有用用戶(hù)的公用密鑰構(gòu)成的第一隨機(jī)數(shù)、對(duì)應(yīng)于日期/時(shí)間的新鮮度值及第一散列的第一簽名的加密部分的組,所述第一散列是通過(guò)將包含所述第一隨機(jī)數(shù)與新鮮度值的項(xiàng)目一起散列而構(gòu)成的,及所述第一簽名是用服務(wù)器的專(zhuān)用密鑰構(gòu)成的;用用戶(hù)的專(zhuān)用密鑰解密至少第一隨機(jī)數(shù);判定當(dāng)前日期/時(shí)間是否不晚于新鮮度值預(yù)定的量;獨(dú)立計(jì)算第一散列;用服務(wù)器的公用密鑰與獨(dú)立計(jì)算的第一散列驗(yàn)證第一簽名;以及如果判定與驗(yàn)證結(jié)果是肯定的,用該用戶(hù)的專(zhuān)用密鑰構(gòu)成從至少第一隨機(jī)數(shù)導(dǎo)出的數(shù)據(jù)的第二簽名,及通過(guò)網(wǎng)絡(luò)將其發(fā)送給服務(wù)器。
如上所述所接收的組實(shí)際上是用至少第一、第二、第三與第四隨機(jī)數(shù)構(gòu)成的,其中用用戶(hù)的公用密鑰與第三隨機(jī)數(shù)構(gòu)成的加密部分包含至少第一與第二隨機(jī)數(shù),第一散列是通過(guò)將所述第一隨機(jī)數(shù)、包含在該組(可能包含第二隨機(jī)數(shù))中的至少另一個(gè)隨機(jī)數(shù)與所述新鮮度值一起散列而構(gòu)成的,以及其第一簽名是用服務(wù)器的專(zhuān)用密鑰與第四隨機(jī)數(shù)構(gòu)成的。結(jié)果,在用戶(hù)設(shè)備上,用用戶(hù)的專(zhuān)用密鑰至少解密第一與第二隨機(jī)數(shù),該數(shù)據(jù)是通過(guò)一起散列解密的至少第一隨機(jī)數(shù)與包含在組(可能包含第二隨機(jī)數(shù))中的另一隨機(jī)數(shù)以構(gòu)成第二散列而構(gòu)成的,而其第二簽名是用用戶(hù)的專(zhuān)用密鑰與第二隨機(jī)數(shù)構(gòu)成的。
此外,從服務(wù)器的觀點(diǎn)該方法涉及所接收的組中還包含用與用戶(hù)關(guān)聯(lián)的用戶(hù)標(biāo)識(shí)密鑰加密的用戶(hù)的專(zhuān)用密鑰,及該加密的專(zhuān)用密鑰是用從在用戶(hù)設(shè)備上與用戶(hù)的交互作用中確定的用戶(hù)標(biāo)識(shí)密鑰解密的。通過(guò)在用戶(hù)設(shè)備上與用戶(hù)交互作用確定的用戶(hù)標(biāo)識(shí)密鑰是從用戶(hù)在用戶(hù)設(shè)備上輸入的口令短語(yǔ)或通過(guò)在用戶(hù)設(shè)備上適當(dāng)測(cè)定而從用戶(hù)獲得的生物測(cè)量信息而確定的。
本發(fā)明還指向用于為多個(gè)用戶(hù)提供在采用El-Gamal算法的簽名或加密操作中使用的項(xiàng)目;該系統(tǒng)包括用于至少生成第一、第二、第三與第四隨機(jī)數(shù)的隨機(jī)數(shù)發(fā)生器;以及用于構(gòu)成包含下述各項(xiàng)的組的裝置用用戶(hù)的公用密鑰與第三隨機(jī)數(shù)一起加密的至少第一與第二隨機(jī)數(shù);新鮮度值;通過(guò)一起散列所述第一與第二隨機(jī)數(shù)及所述新鮮度值構(gòu)成的第一散列的第一簽名;所述第一簽名是用服務(wù)器的專(zhuān)用密鑰與第四隨機(jī)數(shù)構(gòu)成的。該服務(wù)器系統(tǒng)的特征還在于它進(jìn)一步包括用于驗(yàn)證所接收的第二與第三簽名的驗(yàn)證裝置,第二簽名具有通過(guò)將第一與包含在組中的至少另一隨機(jī)數(shù)一起散列構(gòu)成的及用用戶(hù)的專(zhuān)用密鑰與第二隨機(jī)數(shù)構(gòu)成的第二散列,而第三簽名具有文件的散列,并用用戶(hù)的專(zhuān)用密鑰與第一隨機(jī)數(shù)構(gòu)成。同時(shí),服務(wù)器系統(tǒng)包括計(jì)算機(jī)可讀的存儲(chǔ)裝置,其特征在于其中存儲(chǔ)有用于各自的用戶(hù)的加密的專(zhuān)用密鑰,這些專(zhuān)用密鑰用從各自的用戶(hù)標(biāo)識(shí)信息(諸如口令短語(yǔ)或生物測(cè)量信息)確定的各自的密鑰加密,及其中該組還包含用戶(hù)的加密的專(zhuān)用密鑰。
詳細(xì)閱讀了結(jié)合附圖作出的下面的詳細(xì)描述之后,本發(fā)明的其它目的、特征與優(yōu)點(diǎn)將是清楚的,附圖中
圖1為按照本發(fā)明用于為多個(gè)用戶(hù)管理用于采用El-Gamal算法數(shù)字簽名文件的隨機(jī)數(shù)及專(zhuān)用密鑰的示范性系統(tǒng)的示意圖,該系統(tǒng)包含用戶(hù)設(shè)備與服務(wù)器;以及圖2為在分開(kāi)的列中指出圖1的系統(tǒng)在操作中用戶(hù)、用戶(hù)設(shè)備與服務(wù)器執(zhí)行的方法步驟的數(shù)據(jù)流程圖。
應(yīng)理解下面雖然用在聯(lián)網(wǎng)環(huán)境中獲取已采用El-Gamal算法簽名的多個(gè)用戶(hù)的數(shù)字簽名文件的示范性系統(tǒng)與方法討論本發(fā)明,本發(fā)明的原理也同樣適用于用于其它目的的秘密的新隨機(jī)數(shù)的分配與/或秘密的新隨機(jī)數(shù)與加密的專(zhuān)用密鑰的組合的分配。此外,當(dāng)用于數(shù)字簽名時(shí),應(yīng)理解這種簽名可應(yīng)用在各種各樣的數(shù)據(jù)、文件、程序或其它“文本”上,不論是用戶(hù)創(chuàng)作的、修改的或?qū)彶榈?。在任何情況中可認(rèn)為數(shù)字簽名是用戶(hù)對(duì)文件表示批準(zhǔn)。
本發(fā)明一個(gè)方面在于它為各用戶(hù)采用用戶(hù)標(biāo)識(shí)密鑰Kpass來(lái)保護(hù)專(zhuān)用密鑰KprUser。用戶(hù)標(biāo)識(shí)密鑰Kpass只能從通過(guò)與實(shí)際出現(xiàn)在用戶(hù)設(shè)備處的用戶(hù)的交互作用獲得的用戶(hù)標(biāo)識(shí)信息中導(dǎo)出。用戶(hù)標(biāo)識(shí)信息可以是用戶(hù)輸入的稱(chēng)作口令短語(yǔ)的想象的字序列或者是通過(guò)測(cè)量或掃描用戶(hù)得到的諸如指紋、聲波紋、視網(wǎng)膜掃描或面部掃描等生物測(cè)量信息。
由于存在許多可能的短語(yǔ),與口令字不同,非常難予猜測(cè)口令短語(yǔ)。例如,特別好的口令短語(yǔ)可連接不同語(yǔ)言的兩個(gè)短語(yǔ)。利用通??色@得的計(jì)算機(jī)能力來(lái)猜測(cè)這種口令短語(yǔ)是極度困難的。同時(shí),生物測(cè)量信息特別獨(dú)一無(wú)二及對(duì)猜測(cè)攻擊具有免疫力。
首先參見(jiàn)圖中的圖1,其中示出了互聯(lián)的或能通過(guò)有線或無(wú)線網(wǎng)14通信的多個(gè)計(jì)算機(jī)站、終端或其它用戶(hù)計(jì)算與/或通信設(shè)備12及服務(wù)器16組成的聯(lián)網(wǎng)系統(tǒng)10??梢允腔虬琑AM、ROM、硬盤(pán)、或其它存儲(chǔ)器或介質(zhì)的存儲(chǔ)器18耦合在服務(wù)器16上或構(gòu)成其一部分,并包含用于為所有用戶(hù)分別存儲(chǔ)用戶(hù)ID、加密的專(zhuān)用密鑰、公用密鑰、文件及數(shù)字簽名的相應(yīng)部分18a-e或數(shù)據(jù)結(jié)構(gòu)中的字段,它們是加索引的或可用ID尋址或檢索的。聯(lián)網(wǎng)系統(tǒng)10可采用多種形式但最好是內(nèi)聯(lián)網(wǎng),網(wǎng)絡(luò)14支持TCP/IP,用戶(hù)設(shè)備12采用網(wǎng)瀏覽器而服務(wù)器16作為網(wǎng)服務(wù)器工作。
各用戶(hù)的公用/專(zhuān)用密鑰對(duì)是按照知名的El-Gamal算法或公用密鑰密碼系統(tǒng)實(shí)現(xiàn)的;同時(shí)存儲(chǔ)在存儲(chǔ)器18的部分或字段18b中的加密的專(zhuān)用密鑰已以利用從用戶(hù)的口令短語(yǔ)或生物測(cè)量信息中導(dǎo)出的用戶(hù)標(biāo)識(shí)密鑰的諸如IDEA或DES等對(duì)稱(chēng)加密/解密算法(采用相同的密鑰用于加密與解密)加密。
按照El-Gamal算法,公用密鑰實(shí)際上包含三部分Y、G與P,而專(zhuān)用密鑰包含隨機(jī)數(shù)X,其中P為素?cái)?shù)、G為隨機(jī)數(shù)而Y=GXmod P。為了本發(fā)明的目的,素?cái)?shù)P最好具有1024位的長(zhǎng)度,而為在采用El-Gamal算法的簽名或解密中使用所生成的所有隨機(jī)數(shù)(此后稱(chēng)作R1、R2、R3、R4)具有128位的長(zhǎng)度。El-Gamal算法的進(jìn)一步要求為這些生成的隨機(jī)數(shù)是在用P的長(zhǎng)度(即1024位)描述的數(shù)的有限域中可逆的。
為了構(gòu)造加密的專(zhuān)用密鑰E[Kpass](KprUser)的數(shù)據(jù)集,作為各用戶(hù)出現(xiàn)在耦合在存儲(chǔ)器18或服務(wù)器16的安全設(shè)備20處的結(jié)果已以極安全的方式事先獲得用戶(hù)標(biāo)識(shí)密鑰Kpass。安全設(shè)備20包括分別與用戶(hù)設(shè)備12(下面將描述)的用戶(hù)交互作用裝置12a與散列裝置12b相同形式的用戶(hù)交互作用裝置20a與散列裝置20b、用于生成公用密鑰/專(zhuān)用密鑰對(duì)KpuUser/KprUser的密鑰發(fā)生器20c、以及用于利用諸如IDEA或DES等對(duì)稱(chēng)加密算法以用戶(hù)標(biāo)識(shí)密鑰Kpass加密生成的專(zhuān)用密鑰KprUser的加密裝置。
在安全設(shè)備20上,當(dāng)分配給用戶(hù)密鑰發(fā)生器20c生成的專(zhuān)用密鑰KprUser及對(duì)應(yīng)的公用密鑰KpuUser時(shí),各用戶(hù)當(dāng)系統(tǒng)管理員的面(為了確認(rèn)用戶(hù)的身份)用用戶(hù)交互作用裝置20a輸入各口令短語(yǔ)或通過(guò)測(cè)量或掃描各用戶(hù)獲得生物測(cè)量信息,但管理員不能觀看或訪問(wèn)任何輸入的口令短語(yǔ)或獲取的生物測(cè)量信息。然后散列裝置20b立即用安全散列函數(shù)(SHA-1或RIPEMD)散列輸入的口令短語(yǔ)或獲得的生物測(cè)量信息以構(gòu)成長(zhǎng)度至少128位(如果采用SHA-1則為160位)的固定長(zhǎng)度用戶(hù)標(biāo)識(shí)密鑰Kpass,加密裝置20c立即用對(duì)稱(chēng)算法利用它來(lái)加密分配的專(zhuān)用密鑰KprUser,然后從安全設(shè)備20中清除輸入的口令短語(yǔ)或獲得的生物測(cè)量信息及其散列的所有痕跡。此外,在借此加密專(zhuān)用密鑰E[Kpass](KprUser)的同時(shí)分配ID及對(duì)應(yīng)的公用密鑰KpuUser,將這些項(xiàng)目分別存儲(chǔ)在部分或字段18a、18b與18c中。
用戶(hù)設(shè)備12包括諸如鼠標(biāo)器與/或鍵盤(pán)、手寫(xiě)識(shí)別、語(yǔ)音識(shí)別或其它輸入裝置等輸入交互作用裝置12a,用于獲取ID及如果使用時(shí)來(lái)自用戶(hù)的口令短語(yǔ),及用于用戶(hù)填寫(xiě)文件,及用于生物測(cè)量或掃描,如果使用時(shí)從用戶(hù)獲取生物測(cè)量信息(指紋、聲波紋、視網(wǎng)膜掃描、面部掃描);用于在輸入的口令短語(yǔ)或獲取的生物測(cè)量信息及批準(zhǔn)的文件上作用安全散列函數(shù)(SHA-1或RIPEMD)的散列裝置;用于利用散列的口令短語(yǔ)或生物測(cè)量信息作為用戶(hù)標(biāo)識(shí)密鑰解密從服務(wù)器16接收的加密的專(zhuān)用密鑰的對(duì)稱(chēng)解密裝置12c;以及用于按照El-Gamal算法執(zhí)行加密、解密、簽名與驗(yàn)證操作的El-Gamal算法裝置12d,加密與簽名操作需要秘密的新隨機(jī)數(shù)。具體地,如從后面的討論中會(huì)明白的,El-Gamal算法裝置結(jié)合向用戶(hù)設(shè)備12保證從服務(wù)器16提供的隨機(jī)數(shù)R1是既秘密又新的,及向服務(wù)器保證該用戶(hù)擁有專(zhuān)用密鑰(即因?yàn)橛脩?hù)設(shè)備12已獲得正確的用戶(hù)標(biāo)識(shí)信息而能解密專(zhuān)用密鑰)的詢(xún)問(wèn)應(yīng)答協(xié)議、執(zhí)行解密、驗(yàn)證及簽名操作。此后,將有可能經(jīng)過(guò)修改或填寫(xiě)的文件發(fā)送供批準(zhǔn),用用戶(hù)的專(zhuān)用密鑰與這一秘密的新隨機(jī)數(shù)R1簽名批準(zhǔn)的文件的散列以構(gòu)成文件的數(shù)字簽名S[KprUser.R1](H(DOC))。各種散列、對(duì)稱(chēng)解密及El-Gamal算法裝置12b、12c、12d可用在用戶(hù)設(shè)備12的CPU(未示出)上運(yùn)行的軟件或用專(zhuān)用硬件實(shí)現(xiàn)。當(dāng)系統(tǒng)10實(shí)現(xiàn)為內(nèi)聯(lián)網(wǎng)時(shí),這一功能由服務(wù)器16提供的applet執(zhí)行。應(yīng)理解為了防止中間人的攻擊,該applet必須由服務(wù)器簽名及在用戶(hù)設(shè)備12上用從可信任的機(jī)構(gòu)用證書(shū)獲得的服務(wù)器的公用密鑰KpuServer驗(yàn)證。
服務(wù)器16包括用于從與向存儲(chǔ)器18讀取與寫(xiě)入的裝置16a;用于生成隨機(jī)數(shù)的隨機(jī)數(shù)發(fā)生裝置16b;用于結(jié)合詢(xún)問(wèn)應(yīng)答協(xié)議執(zhí)行安全散列函數(shù)將隨機(jī)數(shù)與其它項(xiàng)目一起散列及用于構(gòu)成接收的批準(zhǔn)文件的散列H(DOC)的散列裝置16c;用于采用El-Gamal算法執(zhí)行加密、解密、簽名與驗(yàn)證操作的El-Gamal算法裝置16d,加密與簽名操作需要的秘密的新隨機(jī)數(shù);以及用于構(gòu)造指示分配給服務(wù)器16正在傳輸?shù)捻?xiàng)目或組的日期/時(shí)間的新鮮度值FR的新鮮度值發(fā)生裝置16e。隨機(jī)數(shù)發(fā)生器16b最好是讀取或測(cè)定諸如反向偏置齊納二極管的電流中的散粒噪聲等自然隨機(jī)現(xiàn)象的自然隨機(jī)源。散列裝置16c、El-Gamal算法裝置16d及新鮮度值生成裝置16e可用運(yùn)行在服務(wù)器16的CPU(未示出)上的軟件或用專(zhuān)用硬件實(shí)現(xiàn)。
通過(guò)參見(jiàn)圖2會(huì)最佳地理解聯(lián)網(wǎng)的系統(tǒng)10在詢(xún)問(wèn)應(yīng)答協(xié)議的性質(zhì)的階段的過(guò)程中向用戶(hù)提供秘密的新隨機(jī)數(shù)R1與加密的專(zhuān)用密鑰KprUser的操作,完成這一階段后利用它們采用El-Gamal算法數(shù)字簽名文件S[KprUser.R1](H(DOC)),該文件是從當(dāng)時(shí)提供的文件導(dǎo)出或與之一樣的。該圖在不同的列中示出用戶(hù)交互作用、用戶(hù)設(shè)備12及服務(wù)器16執(zhí)行的操作。為了該圖的目的、假定用戶(hù)已請(qǐng)求訪問(wèn)文件系統(tǒng)(主頁(yè))而服務(wù)器16已發(fā)送簽名頁(yè)給用戶(hù)設(shè)備12。此后在步驟30,用戶(hù)通過(guò)輸入裝置12a在簽名頁(yè)中輸入其ID,諸如用戶(hù)的姓名,假定所有用戶(hù)的ID都是唯一的,而在步驟40將包含輸入的ID的簽名頁(yè)傳輸給服務(wù)器,后者在步驟70接收它。作為響應(yīng),在步驟72服務(wù)器16利用接收的ID作為索引從存儲(chǔ)器18中讀出用戶(hù)的對(duì)應(yīng)的加密的專(zhuān)用密鑰E[Kpass](KprUser)與公用密鑰KpuUser。在步驟74,隨機(jī)數(shù)發(fā)生器16b生成4個(gè)隨機(jī)數(shù)R1、R2、R3與R4及新鮮度值生成裝置16e通過(guò)檢驗(yàn)服務(wù)器16的時(shí)鐘(未示出)構(gòu)成表示當(dāng)前日期/時(shí)間的新鮮度值FR。
在步驟76中用散列裝置16c及El-Gamal算法裝置16d利用步驟72與74中獲得的項(xiàng)目構(gòu)成項(xiàng)目組,然后通過(guò)網(wǎng)絡(luò)14將其傳輸給用戶(hù)設(shè)備12。該組包括a)在步驟72中讀出的第一加密部分El,如上所述這是通過(guò)用該用戶(hù)的標(biāo)識(shí)密鑰Kpass加密用戶(hù)的專(zhuān)用密鑰KprUser構(gòu)成的E1=E[Kpass](KprUser);b)第二加密部分E2,這是服務(wù)器用用戶(hù)的公用密鑰KpuUser與第三隨機(jī)數(shù)采用El-Gamal算法一起加密隨機(jī)數(shù)R1與R2構(gòu)成的,借此構(gòu)成E2=E[KpuUser,R3](R1,R2);c)新鮮度值FR;以及d)一起散列第一與第二隨機(jī)數(shù)R1、R2及新鮮度值FR的第一簽名S1,該簽名采用使用服務(wù)器的專(zhuān)用密鑰KprServer與第四隨機(jī)數(shù)R4的El-Gamal算法,借此構(gòu)成S1=S[KprServer,R4](H(R1,R2,F(xiàn)R)。
本技術(shù)中的普通技術(shù)人員知道各種各樣的技術(shù)來(lái)一起加密多個(gè)項(xiàng)目或一起散列多個(gè)項(xiàng)目。各種情況中的充分方法為在加密或散列操作之前連接這多個(gè)項(xiàng)目。
該組中也可包含服務(wù)器的公用密鑰KpuServer及用戶(hù)設(shè)備12所需的來(lái)自可信任的機(jī)構(gòu)的與之相關(guān)的證書(shū)。
在用戶(hù)設(shè)備12上,在步驟44接收該組,并在步驟44后面之前,通過(guò)用戶(hù)交互作用裝置對(duì)實(shí)際出現(xiàn)在用戶(hù)設(shè)備12處的用戶(hù)獲取輸入的口令短語(yǔ)或掃描或測(cè)定的生物測(cè)量信息(指紋、聲波紋、視網(wǎng)膜掃描或面部掃描)而在步驟32獲得用戶(hù)標(biāo)識(shí)信息,并在步驟42用散列裝置12b將與安全設(shè)備20的散列裝置20b所作用的相同安全散列函數(shù)(SHA-1或RIPEMD)作用在用戶(hù)標(biāo)識(shí)信息上,借此獲得與在生成接收的加密的專(zhuān)用密鑰E[Kpass](KprUser)中所利用的相同用戶(hù)標(biāo)識(shí)密鑰Kpass。
步驟46中,采用對(duì)稱(chēng)解密裝置12c用獲得的用戶(hù)標(biāo)識(shí)密鑰Kpass解密接收的第一加密部分E1以獲得用戶(hù)的專(zhuān)用密鑰KprUser,該操作表示如下D[Kpass](E[Kpass](KprUser))=KprUser,及采用El-Gamal算法裝置12d用這樣獲得的專(zhuān)用密鑰KprUser解密所接收的第二加密部分E2以獲得第一與第二隨機(jī)數(shù)R1與R2。后一操作表示如下D[KprUser](E[KpuUser,R3](R1,R2))=R1,R2。
此外,在步驟50,讀取用戶(hù)設(shè)備時(shí)鐘(未示出)的當(dāng)前日期/時(shí)間并將其與所接收的新鮮度值FR比較。如果當(dāng)前日期/時(shí)間不比新鮮度值晚超過(guò)在步驟74中新鮮度值生成與步驟50中新鮮度值檢驗(yàn)之間的最大允許延遲所確定的預(yù)定的量,便認(rèn)為所接收的組是新鮮的。為了新鮮度測(cè)試的目的,必須保證服務(wù)器16與用戶(hù)設(shè)備12上的時(shí)鐘是緊密地對(duì)準(zhǔn)的,并且執(zhí)行整個(gè)詢(xún)問(wèn)應(yīng)答協(xié)議的時(shí)間超過(guò)該最大允許延遲。同時(shí)在步驟52利用散列裝置12b一起散列隨機(jī)數(shù)R1與R2及新鮮度值FR,這一用服務(wù)器的公用密鑰KpuServer的一起散列是用在用El-Gamal算法裝置12d對(duì)接收的第一簽名S1的檢驗(yàn)操作中的。該檢驗(yàn)操作可表示為V[KpuServer,H(R1,R2,F(xiàn)R),S1]=通過(guò)或失敗。
如果上述檢驗(yàn)與新鮮度測(cè)試通過(guò),在步驟54中利用散列裝置12b與El-Gamal算法裝置12d構(gòu)成第二簽名S2,通過(guò)網(wǎng)絡(luò)14將該第二簽名S2傳輸給服務(wù)器16。在這一步驟中,采用El-Gamal算法用用戶(hù)的專(zhuān)用密鑰KprUser與第二隨機(jī)數(shù)R2簽名第一與第二隨機(jī)數(shù)R1、R2的一起散列。得出的第二簽名S2表示如下S[KprUser,R2](H(R1,R2))。
在該服務(wù)器上,通過(guò)首先用散列裝置16c獨(dú)立計(jì)算隨機(jī)數(shù)R1、R2的一起散列,然后在El-Gamal算法裝置16d的檢驗(yàn)操作中使用這一散列與讀出的用戶(hù)的公用密鑰KpuUser在步驟78檢驗(yàn)這一第二簽名S2。這一通過(guò)使服務(wù)器能驗(yàn)證用戶(hù)來(lái)完成詢(xún)問(wèn)應(yīng)答協(xié)議的第二檢驗(yàn)操作表示如下V[KpuUser,H(R1,R2),S2]=通過(guò)或失敗。
在本發(fā)明的組合隨機(jī)數(shù)傳遞與詢(xún)問(wèn)應(yīng)答協(xié)議中,服務(wù)器加密隨機(jī)數(shù)R1、R2以防止攻擊者得到這兩個(gè)數(shù)及從用戶(hù)用專(zhuān)用密鑰的簽名或加密中發(fā)現(xiàn)用戶(hù)的專(zhuān)用密鑰KprUser。發(fā)送新鮮度值來(lái)保證加密的隨機(jī)數(shù)的新鮮度。服務(wù)器(在構(gòu)成第一簽名S1中)簽名這兩個(gè)隨機(jī)數(shù)R1、R2與新鮮度值FR以證明a)隨機(jī)數(shù)是來(lái)自服務(wù)器的,否則攻擊者能發(fā)送隨機(jī)數(shù)給用戶(hù)設(shè)備,并因已知道它們,能從用戶(hù)使用專(zhuān)用密鑰的簽名或加密中發(fā)現(xiàn)用戶(hù)的專(zhuān)用密鑰;以及b)新鮮度值對(duì)應(yīng)于這些隨機(jī)數(shù),否則攻擊者能得到老的隨機(jī)數(shù)的簽名集合并在它們上而附加新的新鮮度值。
如果通過(guò)了步驟78中的檢驗(yàn),在步驟80中從存儲(chǔ)器18d中讀出用戶(hù)要填充(或只是批準(zhǔn)而不修改)的文件并通過(guò)網(wǎng)絡(luò)將其發(fā)送給用戶(hù)設(shè)備12,在步驟56接收它。如果該文件伴隨有進(jìn)一步的applet或構(gòu)成其一部分,如上所述,該applet必須由服務(wù)器16簽名并在用戶(hù)設(shè)備12上用服務(wù)器的公用密鑰KpuServer檢驗(yàn)。
基本上以傳統(tǒng)的方式進(jìn)行文件的完成、簽名與檢驗(yàn)。通過(guò)在步驟34經(jīng)由用戶(hù)交互作用裝置12a的用戶(hù)輸入,填充或只是審查文件,并指明用戶(hù)對(duì)完成的或只是審查的文件DOC的批準(zhǔn)。為了表明這一完成與/或批準(zhǔn),在步驟80中通過(guò)用散列裝置12b生成批準(zhǔn)的文件DOC的散列及利用用戶(hù)的專(zhuān)用密鑰KprUser與第一隨機(jī)數(shù)將El-Gamal算法裝置12d的簽名操作作用在其上而構(gòu)成第三數(shù)字簽名S3,第三簽名表示如下S[KprUser,R1](H(DOC))。
在步驟62將第三簽名與批準(zhǔn)的文件DOC發(fā)送到服務(wù)器16,在其中用散列裝置16c獨(dú)立計(jì)算所接收的批準(zhǔn)文件DOC的散列,及用El-Gamal算法裝置使用這一散列H(DOC)與用戶(hù)的公用密鑰KpuUser執(zhí)行檢驗(yàn)操作。該檢驗(yàn)操作表示如下V[KpuUser,H(DOC),S3]=通過(guò)或失敗。
如果檢驗(yàn)操作通過(guò),在步驟84中分別將批準(zhǔn)的文件DOC與簽名S3保存在存儲(chǔ)器18的部分18d、18e中。
最后,在用戶(hù)設(shè)備12上,在步驟64中為了挫敗攻擊者試圖破譯該系統(tǒng),全部擦除或破壞解密的隨機(jī)數(shù)R1、R2、解密的專(zhuān)用密鑰KprUser、輸入的口令短語(yǔ)或獲取的生物測(cè)量信息、或從中構(gòu)成的用戶(hù)標(biāo)識(shí)密鑰Kpass的任何記錄(或者作為替代,永不制作非易失性記錄),從而不能從用戶(hù)設(shè)備得到它們。
到此為止所描述的系統(tǒng)的感興趣的擴(kuò)展是可能的,其中用戶(hù)需要多個(gè)隨機(jī)數(shù)來(lái)簽名多個(gè)文件。這一擴(kuò)展來(lái)自下述認(rèn)識(shí),即由于在組中加密的數(shù)據(jù)可具有剛剛小于素?cái)?shù)P的長(zhǎng)度,而實(shí)際上在很小的計(jì)算成本上為在步驟76中構(gòu)成的組中一起加密除R1與R2以外的其它隨機(jī)數(shù)及與新鮮度值RF一起簽名留有用于填充的一些空間。例如,給定P具有長(zhǎng)度1024位,而這些隨機(jī)數(shù)具有128位的長(zhǎng)度,同時(shí)能發(fā)送五個(gè)另外的隨機(jī)數(shù)R5、R6、R7、R8與R9。這將包含在步驟74生成9個(gè)隨機(jī)數(shù),而在步驟76構(gòu)成的組中的第二加密部分E2將為E2=E[KpuUser,R3](R1,R2,R5,R6,R7,R8,R9)
這七個(gè)加密的隨機(jī)數(shù)R1-R2及R5-R9將在步驟46被用戶(hù)設(shè)備解密,用隨機(jī)數(shù)R2來(lái)構(gòu)成第二簽名S2,可將6個(gè)隨機(jī)數(shù)R1及R5-R9用于文件的簽名。
此外,服務(wù)器在步驟76構(gòu)成與發(fā)送的組中的簽名S1可以是新鮮度與上述7個(gè)隨機(jī)數(shù)的一起散列,但簽名新鮮度值FR與這些隨機(jī)數(shù)中至少兩個(gè)的一起散列便已足夠。類(lèi)似地,用戶(hù)設(shè)備12在步驟54中構(gòu)成與發(fā)送的足夠簽名S2將具有接收的隨機(jī)數(shù)中至少兩個(gè)的散列。
當(dāng)數(shù)字簽名需要6個(gè)以上隨機(jī)數(shù)時(shí),也有可能在步驟74中生成進(jìn)一步附加的隨機(jī)數(shù)并將它們包含在服務(wù)器在步驟76中構(gòu)成與發(fā)送的組中的一個(gè)或多個(gè)另外的加密部分中。
現(xiàn)在應(yīng)理解本發(fā)明的目的已滿(mǎn)足并且本發(fā)明提供了在諸如內(nèi)聯(lián)網(wǎng)系統(tǒng)等聯(lián)網(wǎng)環(huán)境中用于分配用于數(shù)字簽名的隨機(jī)數(shù)與專(zhuān)用密鑰的安全協(xié)議,它只能用口令短語(yǔ)或生物測(cè)量信息猜測(cè)攻擊來(lái)破壞,這是相當(dāng)困難的,或由于El-Gamal算法的失敗而受到破壞。
雖然已特別詳細(xì)地描述了本發(fā)明,也應(yīng)理解在本發(fā)明的預(yù)期精神與范圍內(nèi)許多修正是可能的。例如,本發(fā)明同樣適用于不必由用戶(hù)輸入ID的系統(tǒng)中,因?yàn)榭蓪⑺鼈儽3衷谟脩?hù)設(shè)備上。
權(quán)利要求
1.一種管理供用戶(hù)在其上耦合有服務(wù)器(16)的聯(lián)網(wǎng)環(huán)境(14)中使用的秘密的新隨機(jī)數(shù)的方法,其中與各用戶(hù)關(guān)聯(lián)的有包含ID、專(zhuān)用密鑰(KprUser)及對(duì)應(yīng)于該專(zhuān)用密鑰(KprUser)的公用密鑰(KpuUser)的唯一的各自的集合,以及與服務(wù)器(16)關(guān)聯(lián)的有專(zhuān)用密鑰(KprServer)及公用密鑰(KpuSever),所述方法包括,在服務(wù)器(16)上通過(guò)網(wǎng)絡(luò)(14)接收(70)用戶(hù)的ID;生成(74)至少第一隨機(jī)數(shù)(R1);利用用戶(hù)的公用密鑰(KprUser)構(gòu)成(76)加密部分(E2),所述加密部分(E2)包含至少加密形式的第一隨機(jī)數(shù)(R1);構(gòu)成對(duì)應(yīng)于當(dāng)前日期/時(shí)間的新鮮度值(FR);一起散列(78)包含第一隨機(jī)數(shù)(R1)與新鮮度值(FR)的項(xiàng)目以構(gòu)成第一散列;利用服務(wù)器的專(zhuān)用密鑰(KprServer)構(gòu)成第一散列的第一簽名(S1);通過(guò)網(wǎng)絡(luò)(14)發(fā)送給用戶(hù)包含至少加密部分(E1)、新鮮度值(FR)與第一簽名(S1)的組;接收通過(guò)簽名至少?gòu)牡谝浑S機(jī)數(shù)(R1)導(dǎo)出的數(shù)據(jù)構(gòu)成(54)的第二散列的第二簽名(S2),所述第二簽名(S2)是用用戶(hù)的專(zhuān)用密鑰(KprUser)構(gòu)成的;以及利用用戶(hù)的公用密鑰(KpuUser)第一次檢驗(yàn)(78)第二簽名(S2)是否用于與服務(wù)器(16)發(fā)送的同一第一隨機(jī)數(shù)(R1)。
2.根據(jù)權(quán)利要求1的方法,其中除了所述第一隨機(jī)數(shù)(R1),至少生成第二(R2)、第三(R3)及第四隨機(jī)數(shù);用用戶(hù)的公用密鑰(KpuUser)與第三隨機(jī)數(shù)(R3)加密至少第一與第二隨機(jī)數(shù)(R1、R2);所述第一散列是通過(guò)一起散列所述第一隨機(jī)數(shù)(R1)、以加密形式包含在組中的另一隨機(jī)數(shù)(R2)與所述新鮮度值(FR)構(gòu)成的;第一散列的所述第一簽名(S1)是用服務(wù)器的專(zhuān)用密鑰(KprServer)與第四隨機(jī)數(shù)(R4)構(gòu)成(76)的;所述數(shù)據(jù)是通過(guò)一起散列第一(R1)與包含在所述組中的加密形式的至少另一(R2)隨機(jī)數(shù)以生成第二散列而構(gòu)成的;第二散列的所述第二簽名(S2)是用用戶(hù)的專(zhuān)用密鑰(KprUser)與第二隨機(jī)數(shù)(R2)構(gòu)成的。
3.根據(jù)權(quán)利要求1或2的方法,還包括從存儲(chǔ)裝置(18)中讀取(72)對(duì)應(yīng)于具有接收的IP的用戶(hù)的數(shù)據(jù),該數(shù)據(jù)包括用從用戶(hù)的標(biāo)識(shí)信息確定的密鑰(Kpass)加密的該用戶(hù)的專(zhuān)用密鑰(KprUser),及所述組中還包括用戶(hù)的加密的專(zhuān)用密鑰。
4.根據(jù)權(quán)利要求3的方法,其中該用戶(hù)標(biāo)識(shí)信息包括用戶(hù)在用戶(hù)設(shè)備(12)上輸入的口令短語(yǔ),或用在用戶(hù)設(shè)備(12)上的適當(dāng)測(cè)定或掃描從用戶(hù)獲得的生物測(cè)量信息。
5.根據(jù)權(quán)利要求4的方法,還包括接收文件(DOC)的第三散列的第三簽名(S3),該第三簽名(S3)是用用戶(hù)的專(zhuān)用密鑰(KprUser)與第一隨機(jī)數(shù)(R1)構(gòu)成的,及用用戶(hù)的公用密鑰(KpuUser)與獨(dú)立計(jì)算的文件(DOC)的散列第二次檢驗(yàn)(82)該第三簽名(S3)。
6.一種在其上耦合有服務(wù)器(16)的聯(lián)網(wǎng)環(huán)境(14)中的用戶(hù)設(shè)備(12)上獲得與使用秘密的新隨機(jī)數(shù)的方法,其中與各用戶(hù)關(guān)聯(lián)的有包含ID、專(zhuān)用密鑰(KprUser)與對(duì)應(yīng)于該專(zhuān)用密鑰(KprUser)的公用密鑰(KpuUser)的唯一的各自的組,及與服務(wù)器關(guān)聯(lián)的有專(zhuān)用密鑰(KprServer)與公用密鑰(KpuUser),所述方法包括,在用戶(hù)設(shè)備(12)上傳輸(40)用戶(hù)的ID;接收包含具有至少以加密形式的第一隨機(jī)數(shù)(R1)的加密部分(E2)的組,該加密部分(E2)是用用戶(hù)的專(zhuān)用密鑰(KprUser)、對(duì)應(yīng)于日期/時(shí)間的新鮮度值(FR)及第一散列的第一簽名(S1)生成的,所述第一散列是通過(guò)一起散列包含所述第一隨機(jī)數(shù)(R1)與新鮮度值(FR)的項(xiàng)目構(gòu)成(76)的,及所述第一簽名(S1)是用服務(wù)器的專(zhuān)用密鑰(Kprserver)構(gòu)成(76)的;用該用戶(hù)的公用秘鑰(KpuUser)解密(46)至少第一隨機(jī)數(shù)(R1);判定(50)當(dāng)前日期/時(shí)間是否不比新鮮度值(FR)晚預(yù)定的量;獨(dú)立計(jì)算(52)第一散列;用服務(wù)器的公用密鑰(KpuServer)與獨(dú)立計(jì)算的第一散列檢驗(yàn)(52)第一簽名;以及如果判定與檢驗(yàn)(52)的結(jié)果是肯定的;構(gòu)成(54)用用戶(hù)的專(zhuān)用密鑰(KprUser)從至少第一隨機(jī)數(shù)(R1)導(dǎo)出的數(shù)據(jù)的第二簽名(S2);及通過(guò)網(wǎng)絡(luò)發(fā)送第二簽名(S2)。
7.根據(jù)權(quán)利要求6的方法,其中所述加密部分(E2)包含已用用戶(hù)的公用密鑰(KprUser)與第三隨機(jī)數(shù)(R3)一起加密的至少第一與第二隨機(jī)數(shù)(R1、R2);所述第一散列是通過(guò)一起散列至少所述第一隨機(jī)數(shù)(R1)、包含在所述組中的另一隨機(jī)數(shù)(R2)與所述新鮮度值(FR)構(gòu)成的;第一散列的所述第一簽名(S1)是用服務(wù)器的專(zhuān)用密鑰(KprServer)與第四隨機(jī)數(shù)(R4)構(gòu)成的;至少所述第一與第二隨機(jī)數(shù)(R1,R2)是用用戶(hù)的專(zhuān)用密鑰(KprUser)從加密部分(E2)中解密(46)的;所述數(shù)據(jù)是通過(guò)一起散列以加密形式包含在所述組中的至少兩個(gè)隨機(jī)數(shù)(R1、R2)以生成第二散列而構(gòu)成(54)的;第二散列的所述第二簽名(S2)是用用戶(hù)的專(zhuān)用密鑰(KprUser)與第二隨機(jī)數(shù)(R2)構(gòu)成的。
8.根據(jù)權(quán)利要求6的方法,其中所述組還包含用與用戶(hù)關(guān)聯(lián)的用戶(hù)標(biāo)識(shí)密鑰(Kpass)加密的用戶(hù)的專(zhuān)用密鑰,及所述方法還包括用從與在用戶(hù)設(shè)備(12)上的用戶(hù)交互作用確定的用戶(hù)標(biāo)識(shí)密鑰(Kpass)解密(40)該加密的專(zhuān)用密鑰。
9.根據(jù)權(quán)利要求8的方法,其中通過(guò)與在用戶(hù)設(shè)備(12)上的用戶(hù)交互作用確定的用戶(hù)標(biāo)識(shí)密鑰(Kpass)是從用戶(hù)在用戶(hù)設(shè)備(12)上輸入的口令短語(yǔ)或通過(guò)在用戶(hù)設(shè)備(12)上的適當(dāng)測(cè)定或掃描從用戶(hù)獲得的生物測(cè)量信息中確定的。
10.根據(jù)權(quán)利要求8的方法,還包括計(jì)算(54)文件(DOC)的第三散列;用用戶(hù)的專(zhuān)用密鑰(KprUser)與第一隨機(jī)數(shù)(R1)構(gòu)成(54)第三散列的第三簽名(S3);以及傳輸(54)該第三簽名(S3)。
11.一種為多個(gè)用戶(hù)提供供在采用El-Gamal算法的簽名或加密操作中使用的項(xiàng)目的服務(wù)器系統(tǒng),其中與各用戶(hù)關(guān)聯(lián)的有包含專(zhuān)用密鑰(KprUser)及對(duì)應(yīng)于該專(zhuān)用密鑰(KprUser)的公用密鑰(KpuUser)的唯一的各自的集,及與服務(wù)器關(guān)聯(lián)的有專(zhuān)用密鑰(KprServer)與公用密鑰(KpuServer),所述系統(tǒng)包括用于生成至少第一、第二、第三與第四隨機(jī)數(shù)(R1、R2、R3、R4)的隨機(jī)數(shù)發(fā)生器(16b);以及用于構(gòu)成(76)一個(gè)組的裝置(16c、16d、16e),所述組包含具有用用戶(hù)的公用密鑰(KpuUser)與第三隨機(jī)數(shù)(R3)一起加密的至少第一與第二隨機(jī)數(shù)(R1、R2);新鮮度值(FR);及通過(guò)一起散列所述第一隨機(jī)數(shù)(R1)、以加密形式包含在所述組中的至少另一隨機(jī)數(shù)及所述新鮮度值(FR)構(gòu)成的第一散列的第一簽名(S1)的加密部分(E2),所述第一簽名(S1)是用服務(wù)器的專(zhuān)用密鑰(KprServer)與第四隨機(jī)數(shù)(R4)構(gòu)成的。
12.根據(jù)權(quán)利要求11的系統(tǒng),還包括用于檢驗(yàn)(78、82)所接收的第二與第三簽名(S2、S3)的檢驗(yàn)裝置(16d),所述第二簽名(S2)具有通過(guò)一起散列第一(R1)與包含在所述組中的至少另一隨機(jī)數(shù)(R2)構(gòu)成的第二散列,并且是用用戶(hù)的專(zhuān)用密鑰(KprUser)與第二隨機(jī)數(shù)(R2)構(gòu)成(54)的,及所述第三簽名(S3)具有文件(DOC)的散列并且是用用戶(hù)的專(zhuān)用密鑰與第一隨機(jī)數(shù)(R1)構(gòu)成(60)的。
13.根據(jù)權(quán)利要求12的系統(tǒng),還包括計(jì)算機(jī)可讀的存儲(chǔ)裝置(18)其特征在于其中存儲(chǔ)(18b)有用于各自的用戶(hù)的加密的專(zhuān)用密鑰,這些專(zhuān)用密鑰(KprUser)是用從各自的用戶(hù)標(biāo)識(shí)信息確定的各自的密鑰(Kpass)加密的,及其中所述組中還包括用戶(hù)的加密的專(zhuān)用密鑰(E1)。
14.根據(jù)權(quán)利要求13的系統(tǒng),其中該用戶(hù)標(biāo)識(shí)信息包括口令短語(yǔ)或生物測(cè)量信息。
全文摘要
在采用E1-Gamal算法的公用密鑰密碼系統(tǒng)中,在服務(wù)器上生成秘密的新隨機(jī)數(shù),及在服務(wù)器可訪問(wèn)的存儲(chǔ)器中保持用通過(guò)散列用戶(hù)的各自的口令短語(yǔ)或生物測(cè)量信息(指紋、聲波紋、視網(wǎng)膜掃描或面部掃描)確定的單個(gè)用戶(hù)標(biāo)識(shí)密鑰以對(duì)稱(chēng)算法加密的用戶(hù)專(zhuān)用密鑰,當(dāng)需要時(shí)通過(guò)不安全的網(wǎng)絡(luò)將新的隨機(jī)數(shù)與加密的專(zhuān)用密鑰傳輸給用戶(hù)設(shè)備。為了防止攻擊者發(fā)現(xiàn)隨機(jī)數(shù)或在塊重播攻擊中利用以前用過(guò)的隨機(jī)數(shù),采用詢(xún)問(wèn)應(yīng)答協(xié)議性質(zhì)的交換,將至少一個(gè)秘密的新隨機(jī)數(shù)從服務(wù)器傳遞給用戶(hù)設(shè)備同時(shí)還向服務(wù)器證實(shí)用戶(hù)。在這一交換中,以加密的形式將要分配給用戶(hù)供在簽名文件中使用的第一隨機(jī)數(shù)及作為詢(xún)問(wèn)應(yīng)答協(xié)議的一部分用戶(hù)在構(gòu)成第一與第二隨機(jī)數(shù)的一起散列的簽名中要使用的第二隨機(jī)數(shù)連同新鮮度值及服務(wù)器對(duì)第一與第二隨機(jī)數(shù)及新鮮度值的一起散列的簽名提供給用戶(hù)設(shè)備。
文檔編號(hào)G09C1/00GK1252198SQ98804100
公開(kāi)日2000年5月3日 申請(qǐng)日期1998年12月3日 優(yōu)先權(quán)日1997年12月24日
發(fā)明者D·庫(kù)奇亞, M·A·埃普斯坦, M·S·帕西卡 申請(qǐng)人:皇家菲利浦電子有限公司