专利名称:联网环境中秘密的新随机数的管理与利用的制作方法
本申请的主题涉及1997年12月19日提交的名为“联网环境中专用密钥的管理与利用”的这里的发明人之一的申请。
本发明涉及联网环境中的秘密的新随机数的管理和利用的方法与系统,例如采用El-Gamal算法的数字签名或加密操作。
在多种密码系统中利用这里称作“秘密的新随机数”的以前未曾使用过的秘密的随机数。这种用途之一是在采用El-Gamal算法的公用密钥密码系统中用于执行数字签名或加密。在公用密钥密码系统中可为各用户或客户分配一对对应的公用密钥和专用密钥。
当在数字签名或加密中采用El-Gamal算法时需要秘密的新随机数是由于两个主要弱点1)任意随机数都不能被攻击者知道;及2)禁止使用相同的随机数来签名或加密两个不同文件。任一情况中的失败使攻击者有足够的信息来恢复用于数字签名的专用密钥或恢复用公用密钥加密了的项目。窃听者对特定专用密钥的恢复被认为是系统的灾难性失败,取决于消息的性质而用特定公用密钥加密的发送消息的恢复可被认为是灾难性失败。
采用El-Gamal算法的数字签名利用签名者的专用密钥、秘密的新随机数和通常将安全散列函数(诸如SHA-1或RIPEMD)作用在诸如文本、文件、程序或密钥(为了简明此后称作“文件”)等一或多个数据项上的结果,来表明签名者的创作、批准或证明。加上签名的文件通常与签名一起发送,除非它们已存在于接收者处或可被其获得。在接收端上,进行包含利用始发者的公用密钥的验证,该公用密钥已用来自可信任的来源的证明而获得;并将散列函数应用在所接收的或以其它方式获得的文件上。
为了传输到接收者而采用El-Gamal算法的数据加密通常包含利用从来自可信任的来源的证明获得的接收者的公用密钥及秘密的新随机数。这样加密的数据可包括一次性使用的对称密钥,该密钥已以计算上高效的方式采用对称加密算法用来加密相关的项目,加密的对称密钥与相关项目构成一组。在接收端上,用包含使用接收者的专用密钥解密的操作,解密所加密的数据或组。在组的情况中,使用专用密钥解密产生对称密钥,然后用它以计算上高效的方式解密相关项目。
在用户设备上需要能获得秘密的新随机数,通常要求用根据诸如在其电流中表现散粒噪声的反向偏置的齐纳二极管等自然随机现象的随机数发生器装备所有用户设备为代价。如果在服务器上生成秘密的新随机数并在需要时以安全方式通过网络提供给用户设备便可避免这一代价。然而,即使通过交换公用密钥在服务器与用户之间建立了加密信道,并且存在证明系统来证明这些公用密钥,借此防止中间人攻击,新鲜度要求仍会使系统易受块重播攻击,在其中攻击者重播前面加密的传输或其部分。
在上述相关专利申请中,曾提出将用户的专用密钥以使用用户标识密钥加密的加密形式保持在服务器上,并只在诸如用于执行数字签名或加密等需要时才通过网络提供给用户或客户设备。用户标识密钥是从假定要求用户实际出现在用户设备外的用户标识信息中导出的,具体地为用户输入的口令短语的散列或者通过与实际出现的用户的交互作用测定或扫描到的生物测量信息(指纹、声波纹、视网膜扫描或面部扫描)。
在现有技术中,询问应答协议也是已知使服务器能证实客户或用户的,即在将任何专用信息出示给用户之前验证该用户拥有其专用密钥。通常,询问应答协议包括服务器生成随机数并通过网络用明文将其发送给用户,及用户通过用其专用密钥签名该随机数并将其签名发送回服务器。服务器能用用户的专用密钥与该随机数验证签名(并保证这便是发送的同一随机数)。然而,如果将El-Gamal算法用于签名,在用户设备上必须有随机数发生器以提供与用户的专用密钥一起用于签名的另一随机数。要签名的随机数不能同时用作El-Gamal签名所需的随机数,因为对用户设备缺乏保证这一随机数既是秘密的又是新的。
本发明的目的为提供管理与使用秘密的新随机数的方法,其中这些随机数是在服务器上生成的并在诸如用于采用El-Gamal算法数字签名或加密需要时以安全方式提供给用户。
本发明的又一目的为以下述方式将一或多个秘密的新随机数从服务器传递给用户设备,即不仅保证所传递的随机数是秘密与新的,并且还用于以询问应答协议的性质向服务器证实该用户。
本发明的另一目的为结合管理与使用专用密钥的方法提供这一随机数管理与利用方法,其中用户的专用密钥不保持在用户设备上,而是保持在服务器能访问的存储装置中并在诸如采用El-Gamal算法的数字签名或加密需要时通过网络以加密形式传输给用户设备。
本发明的又另一目的为提供以集中方式管理秘密的新随机数与用户的专用密钥及以对抽取与块重播攻击高度安全的方式将这些随机数与密钥分配给用户设备的方法与系统。
简要地,这些与其它目的是用下述方法与系统满足的,即在其中将各用户与各自的一组专用密钥、对应于该专用密钥的公用密钥、ID、及最好只能通过与实际出现在用户设备处的用户的交互作用获得的唯一的用户标识密钥相关联。
从服务器的观点,本发明指向供在服务器耦合在其上的联网环境中使用的秘密的新随机数的管理方法,所述方法既保证随机数是秘密与新的并且还在询问应答协议的性质中,其中通过网络接收用户的ID;至少生成第一随机数并用用户的公用密钥加密;构成对应于当前日期/时间的新鲜度值;散列包含第一随机数与新鲜度值的项目以形成第一散列;使用服务器的专用密钥形成第一散列的第一签名;将至少包含第一随机数、新鲜度值、及第一签名的加密的部分的组通过网络发送给用户;及随后接收从至少第一随机数导出的数据的第二签名,所述第二签名是用用户的专用密钥形成的;及使用用户的公用密钥,首先验证第二签名是否是为服务器发送的同一第一随机数作出的。
此外,有鉴于以公用密钥将El-Gamal算法用于所有上述加密及以专用密钥用于所有上述签名,实际上在构成组时生成与利用了至少第一、第二、第三及第四随机数。具体地,在服务器上构成组时,在用用户的公用密钥与第三随机数构成的加密部分中至少包含第一与第二随机数;第一散列是通过包含在组(可能包含第二随机数)中的第一与至少另一随机数与新鲜度值一起散列而构成的;第一散列的第一签名是用服务器的专用密钥与第四随机数构成的。关于随后接收的数据的第二签名,该数据包括在用户设备上通过将包含在组(可能包含第二随机数)中的第一与至少另一随机数一起散列构成的第二散列,而其签名则用用户的专用密钥与第二随机数构成。然后,第一验证步骤为第二签名是否是为服务器发送的相同随机数作出的。这留给用户设备至少新的、秘密的及最终可用于以后的签名或加密操作的至少第一随机数,同时也使服务器能用用户能用其专用密钥与第二随机数签名包含在组中的第一与至少另一随机数这一事实来证实用户。
如在上述相关申请中,从服务器的观点该方法还包含从存储装置中读取对应于具有所接收的ID的用户的数据,该数据包括用从该用户的标识信息确定的密钥加密的该用户的专用密钥。读自存储装置的用户的这一加密的专用密钥包含在发送给用户的上述组中。用户标识信息包括用户在用户设备上输入的口令短语,或通过在用户设备上的适当测定或扫描从用户得出的生物测量信息。
从用户设备的观点,本发明指向用于在服务器耦合在其上的联网环境中的用户设备上获取及使用秘密的新随机数的方法,其中传输用户的ID;接收包含至少具有用用户的公用密钥构成的第一随机数、对应于日期/时间的新鲜度值及第一散列的第一签名的加密部分的组,所述第一散列是通过将包含所述第一随机数与新鲜度值的项目一起散列而构成的,及所述第一签名是用服务器的专用密钥构成的;用用户的专用密钥解密至少第一随机数;判定当前日期/时间是否不晚于新鲜度值预定的量;独立计算第一散列;用服务器的公用密钥与独立计算的第一散列验证第一签名;以及如果判定与验证结果是肯定的,用该用户的专用密钥构成从至少第一随机数导出的数据的第二签名,及通过网络将其发送给服务器。
如上所述所接收的组实际上是用至少第一、第二、第三与第四随机数构成的,其中用用户的公用密钥与第三随机数构成的加密部分包含至少第一与第二随机数,第一散列是通过将所述第一随机数、包含在该组(可能包含第二随机数)中的至少另一个随机数与所述新鲜度值一起散列而构成的,以及其第一签名是用服务器的专用密钥与第四随机数构成的。结果,在用户设备上,用用户的专用密钥至少解密第一与第二随机数,该数据是通过一起散列解密的至少第一随机数与包含在组(可能包含第二随机数)中的另一随机数以构成第二散列而构成的,而其第二签名是用用户的专用密钥与第二随机数构成的。
此外,从服务器的观点该方法涉及所接收的组中还包含用与用户关联的用户标识密钥加密的用户的专用密钥,及该加密的专用密钥是用从在用户设备上与用户的交互作用中确定的用户标识密钥解密的。通过在用户设备上与用户交互作用确定的用户标识密钥是从用户在用户设备上输入的口令短语或通过在用户设备上适当测定而从用户获得的生物测量信息而确定的。
本发明还指向用于为多个用户提供在采用El-Gamal算法的签名或加密操作中使用的项目;该系统包括用于至少生成第一、第二、第三与第四随机数的随机数发生器;以及用于构成包含下述各项的组的装置用用户的公用密钥与第三随机数一起加密的至少第一与第二随机数;新鲜度值;通过一起散列所述第一与第二随机数及所述新鲜度值构成的第一散列的第一签名;所述第一签名是用服务器的专用密钥与第四随机数构成的。该服务器系统的特征还在于它进一步包括用于验证所接收的第二与第三签名的验证装置,第二签名具有通过将第一与包含在组中的至少另一随机数一起散列构成的及用用户的专用密钥与第二随机数构成的第二散列,而第三签名具有文件的散列,并用用户的专用密钥与第一随机数构成。同时,服务器系统包括计算机可读的存储装置,其特征在于其中存储有用于各自的用户的加密的专用密钥,这些专用密钥用从各自的用户标识信息(诸如口令短语或生物测量信息)确定的各自的密钥加密,及其中该组还包含用户的加密的专用密钥。
详细阅读了结合附图作出的下面的详细描述之后,本发明的其它目的、特征与优点将是清楚的,附图中
图1为按照本发明用于为多个用户管理用于采用El-Gamal算法数字签名文件的随机数及专用密钥的示范性系统的示意图,该系统包含用户设备与服务器;以及图2为在分开的列中指出图1的系统在操作中用户、用户设备与服务器执行的方法步骤的数据流程图。
应理解下面虽然用在联网环境中获取已采用El-Gamal算法签名的多个用户的数字签名文件的示范性系统与方法讨论本发明,本发明的原理也同样适用于用于其它目的的秘密的新随机数的分配与/或秘密的新随机数与加密的专用密钥的组合的分配。此外,当用于数字签名时,应理解这种签名可应用在各种各样的数据、文件、程序或其它“文本”上,不论是用户创作的、修改的或审查的。在任何情况中可认为数字签名是用户对文件表示批准。
本发明一个方面在于它为各用户采用用户标识密钥Kpass来保护专用密钥KprUser。用户标识密钥Kpass只能从通过与实际出现在用户设备处的用户的交互作用获得的用户标识信息中导出。用户标识信息可以是用户输入的称作口令短语的想象的字序列或者是通过测量或扫描用户得到的诸如指纹、声波纹、视网膜扫描或面部扫描等生物测量信息。
由于存在许多可能的短语,与口令字不同,非常难予猜测口令短语。例如,特别好的口令短语可连接不同语言的两个短语。利用通常可获得的计算机能力来猜测这种口令短语是极度困难的。同时,生物测量信息特别独一无二及对猜测攻击具有免疫力。
首先参见图中的图1,其中示出了互联的或能通过有线或无线网14通信的多个计算机站、终端或其它用户计算与/或通信设备12及服务器16组成的联网系统10。可以是或包含RAM、ROM、硬盘、或其它存储器或介质的存储器18耦合在服务器16上或构成其一部分,并包含用于为所有用户分别存储用户ID、加密的专用密钥、公用密钥、文件及数字签名的相应部分18a-e或数据结构中的字段,它们是加索引的或可用ID寻址或检索的。联网系统10可采用多种形式但最好是内联网,网络14支持TCP/IP,用户设备12采用网浏览器而服务器16作为网服务器工作。
各用户的公用/专用密钥对是按照知名的El-Gamal算法或公用密钥密码系统实现的;同时存储在存储器18的部分或字段18b中的加密的专用密钥已以利用从用户的口令短语或生物测量信息中导出的用户标识密钥的诸如IDEA或DES等对称加密/解密算法(采用相同的密钥用于加密与解密)加密。
按照El-Gamal算法,公用密钥实际上包含三部分Y、G与P,而专用密钥包含随机数X,其中P为素数、G为随机数而Y=GXmod P。为了本发明的目的,素数P最好具有1024位的长度,而为在采用El-Gamal算法的签名或解密中使用所生成的所有随机数(此后称作R1、R2、R3、R4)具有128位的长度。El-Gamal算法的进一步要求为这些生成的随机数是在用P的长度(即1024位)描述的数的有限域中可逆的。
为了构造加密的专用密钥E[Kpass](KprUser)的数据集,作为各用户出现在耦合在存储器18或服务器16的安全设备20处的结果已以极安全的方式事先获得用户标识密钥Kpass。安全设备20包括分别与用户设备12(下面将描述)的用户交互作用装置12a与散列装置12b相同形式的用户交互作用装置20a与散列装置20b、用于生成公用密钥/专用密钥对KpuUser/KprUser的密钥发生器20c、以及用于利用诸如IDEA或DES等对称加密算法以用户标识密钥Kpass加密生成的专用密钥KprUser的加密装置。
在安全设备20上,当分配给用户密钥发生器20c生成的专用密钥KprUser及对应的公用密钥KpuUser时,各用户当系统管理员的面(为了确认用户的身份)用用户交互作用装置20a输入各口令短语或通过测量或扫描各用户获得生物测量信息,但管理员不能观看或访问任何输入的口令短语或获取的生物测量信息。然后散列装置20b立即用安全散列函数(SHA-1或RIPEMD)散列输入的口令短语或获得的生物测量信息以构成长度至少128位(如果采用SHA-1则为160位)的固定长度用户标识密钥Kpass,加密装置20c立即用对称算法利用它来加密分配的专用密钥KprUser,然后从安全设备20中清除输入的口令短语或获得的生物测量信息及其散列的所有痕迹。此外,在借此加密专用密钥E[Kpass](KprUser)的同时分配ID及对应的公用密钥KpuUser,将这些项目分别存储在部分或字段18a、18b与18c中。
用户设备12包括诸如鼠标器与/或键盘、手写识别、语音识别或其它输入装置等输入交互作用装置12a,用于获取ID及如果使用时来自用户的口令短语,及用于用户填写文件,及用于生物测量或扫描,如果使用时从用户获取生物测量信息(指纹、声波纹、视网膜扫描、面部扫描);用于在输入的口令短语或获取的生物测量信息及批准的文件上作用安全散列函数(SHA-1或RIPEMD)的散列装置;用于利用散列的口令短语或生物测量信息作为用户标识密钥解密从服务器16接收的加密的专用密钥的对称解密装置12c;以及用于按照El-Gamal算法执行加密、解密、签名与验证操作的El-Gamal算法装置12d,加密与签名操作需要秘密的新随机数。具体地,如从后面的讨论中会明白的,El-Gamal算法装置结合向用户设备12保证从服务器16提供的随机数R1是既秘密又新的,及向服务器保证该用户拥有专用密钥(即因为用户设备12已获得正确的用户标识信息而能解密专用密钥)的询问应答协议、执行解密、验证及签名操作。此后,将有可能经过修改或填写的文件发送供批准,用用户的专用密钥与这一秘密的新随机数R1签名批准的文件的散列以构成文件的数字签名S[KprUser.R1](H(DOC))。各种散列、对称解密及El-Gamal算法装置12b、12c、12d可用在用户设备12的CPU(未示出)上运行的软件或用专用硬件实现。当系统10实现为内联网时,这一功能由服务器16提供的applet执行。应理解为了防止中间人的攻击,该applet必须由服务器签名及在用户设备12上用从可信任的机构用证书获得的服务器的公用密钥KpuServer验证。
服务器16包括用于从与向存储器18读取与写入的装置16a;用于生成随机数的随机数发生装置16b;用于结合询问应答协议执行安全散列函数将随机数与其它项目一起散列及用于构成接收的批准文件的散列H(DOC)的散列装置16c;用于采用El-Gamal算法执行加密、解密、签名与验证操作的El-Gamal算法装置16d,加密与签名操作需要的秘密的新随机数;以及用于构造指示分配给服务器16正在传输的项目或组的日期/时间的新鲜度值FR的新鲜度值发生装置16e。随机数发生器16b最好是读取或测定诸如反向偏置齐纳二极管的电流中的散粒噪声等自然随机现象的自然随机源。散列装置16c、El-Gamal算法装置16d及新鲜度值生成装置16e可用运行在服务器16的CPU(未示出)上的软件或用专用硬件实现。
通过参见图2会最佳地理解联网的系统10在询问应答协议的性质的阶段的过程中向用户提供秘密的新随机数R1与加密的专用密钥KprUser的操作,完成这一阶段后利用它们采用El-Gamal算法数字签名文件S[KprUser.R1](H(DOC)),该文件是从当时提供的文件导出或与之一样的。该图在不同的列中示出用户交互作用、用户设备12及服务器16执行的操作。为了该图的目的、假定用户已请求访问文件系统(主页)而服务器16已发送签名页给用户设备12。此后在步骤30,用户通过输入装置12a在签名页中输入其ID,诸如用户的姓名,假定所有用户的ID都是唯一的,而在步骤40将包含输入的ID的签名页传输给服务器,后者在步骤70接收它。作为响应,在步骤72服务器16利用接收的ID作为索引从存储器18中读出用户的对应的加密的专用密钥E[Kpass](KprUser)与公用密钥KpuUser。在步骤74,随机数发生器16b生成4个随机数R1、R2、R3与R4及新鲜度值生成装置16e通过检验服务器16的时钟(未示出)构成表示当前日期/时间的新鲜度值FR。
在步骤76中用散列装置16c及El-Gamal算法装置16d利用步骤72与74中获得的项目构成项目组,然后通过网络14将其传输给用户设备12。该组包括a)在步骤72中读出的第一加密部分El,如上所述这是通过用该用户的标识密钥Kpass加密用户的专用密钥KprUser构成的E1=E[Kpass](KprUser);b)第二加密部分E2,这是服务器用用户的公用密钥KpuUser与第三随机数采用El-Gamal算法一起加密随机数R1与R2构成的,借此构成E2=E[KpuUser,R3](R1,R2);c)新鲜度值FR;以及d)一起散列第一与第二随机数R1、R2及新鲜度值FR的第一签名S1,该签名采用使用服务器的专用密钥KprServer与第四随机数R4的El-Gamal算法,借此构成S1=S[KprServer,R4](H(R1,R2,FR)。
本技术中的普通技术人员知道各种各样的技术来一起加密多个项目或一起散列多个项目。各种情况中的充分方法为在加密或散列操作之前连接这多个项目。
该组中也可包含服务器的公用密钥KpuServer及用户设备12所需的来自可信任的机构的与之相关的证书。
在用户设备12上,在步骤44接收该组,并在步骤44后面之前,通过用户交互作用装置对实际出现在用户设备12处的用户获取输入的口令短语或扫描或测定的生物测量信息(指纹、声波纹、视网膜扫描或面部扫描)而在步骤32获得用户标识信息,并在步骤42用散列装置12b将与安全设备20的散列装置20b所作用的相同安全散列函数(SHA-1或RIPEMD)作用在用户标识信息上,借此获得与在生成接收的加密的专用密钥E[Kpass](KprUser)中所利用的相同用户标识密钥Kpass。
步骤46中,采用对称解密装置12c用获得的用户标识密钥Kpass解密接收的第一加密部分E1以获得用户的专用密钥KprUser,该操作表示如下D[Kpass](E[Kpass](KprUser))=KprUser,及采用El-Gamal算法装置12d用这样获得的专用密钥KprUser解密所接收的第二加密部分E2以获得第一与第二随机数R1与R2。后一操作表示如下D[KprUser](E[KpuUser,R3](R1,R2))=R1,R2。
此外,在步骤50,读取用户设备时钟(未示出)的当前日期/时间并将其与所接收的新鲜度值FR比较。如果当前日期/时间不比新鲜度值晚超过在步骤74中新鲜度值生成与步骤50中新鲜度值检验之间的最大允许延迟所确定的预定的量,便认为所接收的组是新鲜的。为了新鲜度测试的目的,必须保证服务器16与用户设备12上的时钟是紧密地对准的,并且执行整个询问应答协议的时间超过该最大允许延迟。同时在步骤52利用散列装置12b一起散列随机数R1与R2及新鲜度值FR,这一用服务器的公用密钥KpuServer的一起散列是用在用El-Gamal算法装置12d对接收的第一签名S1的检验操作中的。该检验操作可表示为V[KpuServer,H(R1,R2,FR),S1]=通过或失败。
如果上述检验与新鲜度测试通过,在步骤54中利用散列装置12b与El-Gamal算法装置12d构成第二签名S2,通过网络14将该第二签名S2传输给服务器16。在这一步骤中,采用El-Gamal算法用用户的专用密钥KprUser与第二随机数R2签名第一与第二随机数R1、R2的一起散列。得出的第二签名S2表示如下S[KprUser,R2](H(R1,R2))。
在该服务器上,通过首先用散列装置16c独立计算随机数R1、R2的一起散列,然后在El-Gamal算法装置16d的检验操作中使用这一散列与读出的用户的公用密钥KpuUser在步骤78检验这一第二签名S2。这一通过使服务器能验证用户来完成询问应答协议的第二检验操作表示如下V[KpuUser,H(R1,R2),S2]=通过或失败。
在本发明的组合随机数传递与询问应答协议中,服务器加密随机数R1、R2以防止攻击者得到这两个数及从用户用专用密钥的签名或加密中发现用户的专用密钥KprUser。发送新鲜度值来保证加密的随机数的新鲜度。服务器(在构成第一签名S1中)签名这两个随机数R1、R2与新鲜度值FR以证明a)随机数是来自服务器的,否则攻击者能发送随机数给用户设备,并因已知道它们,能从用户使用专用密钥的签名或加密中发现用户的专用密钥;以及b)新鲜度值对应于这些随机数,否则攻击者能得到老的随机数的签名集合并在它们上而附加新的新鲜度值。
如果通过了步骤78中的检验,在步骤80中从存储器18d中读出用户要填充(或只是批准而不修改)的文件并通过网络将其发送给用户设备12,在步骤56接收它。如果该文件伴随有进一步的applet或构成其一部分,如上所述,该applet必须由服务器16签名并在用户设备12上用服务器的公用密钥KpuServer检验。
基本上以传统的方式进行文件的完成、签名与检验。通过在步骤34经由用户交互作用装置12a的用户输入,填充或只是审查文件,并指明用户对完成的或只是审查的文件DOC的批准。为了表明这一完成与/或批准,在步骤80中通过用散列装置12b生成批准的文件DOC的散列及利用用户的专用密钥KprUser与第一随机数将El-Gamal算法装置12d的签名操作作用在其上而构成第三数字签名S3,第三签名表示如下S[KprUser,R1](H(DOC))。
在步骤62将第三签名与批准的文件DOC发送到服务器16,在其中用散列装置16c独立计算所接收的批准文件DOC的散列,及用El-Gamal算法装置使用这一散列H(DOC)与用户的公用密钥KpuUser执行检验操作。该检验操作表示如下V[KpuUser,H(DOC),S3]=通过或失败。
如果检验操作通过,在步骤84中分别将批准的文件DOC与签名S3保存在存储器18的部分18d、18e中。
最后,在用户设备12上,在步骤64中为了挫败攻击者试图破译该系统,全部擦除或破坏解密的随机数R1、R2、解密的专用密钥KprUser、输入的口令短语或获取的生物测量信息、或从中构成的用户标识密钥Kpass的任何记录(或者作为替代,永不制作非易失性记录),从而不能从用户设备得到它们。
到此为止所描述的系统的感兴趣的扩展是可能的,其中用户需要多个随机数来签名多个文件。这一扩展来自下述认识,即由于在组中加密的数据可具有刚刚小于素数P的长度,而实际上在很小的计算成本上为在步骤76中构成的组中一起加密除R1与R2以外的其它随机数及与新鲜度值RF一起签名留有用于填充的一些空间。例如,给定P具有长度1024位,而这些随机数具有128位的长度,同时能发送五个另外的随机数R5、R6、R7、R8与R9。这将包含在步骤74生成9个随机数,而在步骤76构成的组中的第二加密部分E2将为E2=E[KpuUser,R3](R1,R2,R5,R6,R7,R8,R9)
这七个加密的随机数R1-R2及R5-R9将在步骤46被用户设备解密,用随机数R2来构成第二签名S2,可将6个随机数R1及R5-R9用于文件的签名。
此外,服务器在步骤76构成与发送的组中的签名S1可以是新鲜度与上述7个随机数的一起散列,但签名新鲜度值FR与这些随机数中至少两个的一起散列便已足够。类似地,用户设备12在步骤54中构成与发送的足够签名S2将具有接收的随机数中至少两个的散列。
当数字签名需要6个以上随机数时,也有可能在步骤74中生成进一步附加的随机数并将它们包含在服务器在步骤76中构成与发送的组中的一个或多个另外的加密部分中。
现在应理解本发明的目的已满足并且本发明提供了在诸如内联网系统等联网环境中用于分配用于数字签名的随机数与专用密钥的安全协议,它只能用口令短语或生物测量信息猜测攻击来破坏,这是相当困难的,或由于El-Gamal算法的失败而受到破坏。
虽然已特别详细地描述了本发明,也应理解在本发明的预期精神与范围内许多修正是可能的。例如,本发明同样适用于不必由用户输入ID的系统中,因为可将它们保持在用户设备上。
权利要求
1.一种管理供用户在其上耦合有服务器(16)的联网环境(14)中使用的秘密的新随机数的方法,其中与各用户关联的有包含ID、专用密钥(KprUser)及对应于该专用密钥(KprUser)的公用密钥(KpuUser)的唯一的各自的集合,以及与服务器(16)关联的有专用密钥(KprServer)及公用密钥(KpuSever),所述方法包括,在服务器(16)上通过网络(14)接收(70)用户的ID;生成(74)至少第一随机数(R1);利用用户的公用密钥(KprUser)构成(76)加密部分(E2),所述加密部分(E2)包含至少加密形式的第一随机数(R1);构成对应于当前日期/时间的新鲜度值(FR);一起散列(78)包含第一随机数(R1)与新鲜度值(FR)的项目以构成第一散列;利用服务器的专用密钥(KprServer)构成第一散列的第一签名(S1);通过网络(14)发送给用户包含至少加密部分(E1)、新鲜度值(FR)与第一签名(S1)的组;接收通过签名至少从第一随机数(R1)导出的数据构成(54)的第二散列的第二签名(S2),所述第二签名(S2)是用用户的专用密钥(KprUser)构成的;以及利用用户的公用密钥(KpuUser)第一次检验(78)第二签名(S2)是否用于与服务器(16)发送的同一第一随机数(R1)。
2.根据权利要求1的方法,其中除了所述第一随机数(R1),至少生成第二(R2)、第三(R3)及第四随机数;用用户的公用密钥(KpuUser)与第三随机数(R3)加密至少第一与第二随机数(R1、R2);所述第一散列是通过一起散列所述第一随机数(R1)、以加密形式包含在组中的另一随机数(R2)与所述新鲜度值(FR)构成的;第一散列的所述第一签名(S1)是用服务器的专用密钥(KprServer)与第四随机数(R4)构成(76)的;所述数据是通过一起散列第一(R1)与包含在所述组中的加密形式的至少另一(R2)随机数以生成第二散列而构成的;第二散列的所述第二签名(S2)是用用户的专用密钥(KprUser)与第二随机数(R2)构成的。
3.根据权利要求1或2的方法,还包括从存储装置(18)中读取(72)对应于具有接收的IP的用户的数据,该数据包括用从用户的标识信息确定的密钥(Kpass)加密的该用户的专用密钥(KprUser),及所述组中还包括用户的加密的专用密钥。
4.根据权利要求3的方法,其中该用户标识信息包括用户在用户设备(12)上输入的口令短语,或用在用户设备(12)上的适当测定或扫描从用户获得的生物测量信息。
5.根据权利要求4的方法,还包括接收文件(DOC)的第三散列的第三签名(S3),该第三签名(S3)是用用户的专用密钥(KprUser)与第一随机数(R1)构成的,及用用户的公用密钥(KpuUser)与独立计算的文件(DOC)的散列第二次检验(82)该第三签名(S3)。
6.一种在其上耦合有服务器(16)的联网环境(14)中的用户设备(12)上获得与使用秘密的新随机数的方法,其中与各用户关联的有包含ID、专用密钥(KprUser)与对应于该专用密钥(KprUser)的公用密钥(KpuUser)的唯一的各自的组,及与服务器关联的有专用密钥(KprServer)与公用密钥(KpuUser),所述方法包括,在用户设备(12)上传输(40)用户的ID;接收包含具有至少以加密形式的第一随机数(R1)的加密部分(E2)的组,该加密部分(E2)是用用户的专用密钥(KprUser)、对应于日期/时间的新鲜度值(FR)及第一散列的第一签名(S1)生成的,所述第一散列是通过一起散列包含所述第一随机数(R1)与新鲜度值(FR)的项目构成(76)的,及所述第一签名(S1)是用服务器的专用密钥(Kprserver)构成(76)的;用该用户的公用秘钥(KpuUser)解密(46)至少第一随机数(R1);判定(50)当前日期/时间是否不比新鲜度值(FR)晚预定的量;独立计算(52)第一散列;用服务器的公用密钥(KpuServer)与独立计算的第一散列检验(52)第一签名;以及如果判定与检验(52)的结果是肯定的;构成(54)用用户的专用密钥(KprUser)从至少第一随机数(R1)导出的数据的第二签名(S2);及通过网络发送第二签名(S2)。
7.根据权利要求6的方法,其中所述加密部分(E2)包含已用用户的公用密钥(KprUser)与第三随机数(R3)一起加密的至少第一与第二随机数(R1、R2);所述第一散列是通过一起散列至少所述第一随机数(R1)、包含在所述组中的另一随机数(R2)与所述新鲜度值(FR)构成的;第一散列的所述第一签名(S1)是用服务器的专用密钥(KprServer)与第四随机数(R4)构成的;至少所述第一与第二随机数(R1,R2)是用用户的专用密钥(KprUser)从加密部分(E2)中解密(46)的;所述数据是通过一起散列以加密形式包含在所述组中的至少两个随机数(R1、R2)以生成第二散列而构成(54)的;第二散列的所述第二签名(S2)是用用户的专用密钥(KprUser)与第二随机数(R2)构成的。
8.根据权利要求6的方法,其中所述组还包含用与用户关联的用户标识密钥(Kpass)加密的用户的专用密钥,及所述方法还包括用从与在用户设备(12)上的用户交互作用确定的用户标识密钥(Kpass)解密(40)该加密的专用密钥。
9.根据权利要求8的方法,其中通过与在用户设备(12)上的用户交互作用确定的用户标识密钥(Kpass)是从用户在用户设备(12)上输入的口令短语或通过在用户设备(12)上的适当测定或扫描从用户获得的生物测量信息中确定的。
10.根据权利要求8的方法,还包括计算(54)文件(DOC)的第三散列;用用户的专用密钥(KprUser)与第一随机数(R1)构成(54)第三散列的第三签名(S3);以及传输(54)该第三签名(S3)。
11.一种为多个用户提供供在采用El-Gamal算法的签名或加密操作中使用的项目的服务器系统,其中与各用户关联的有包含专用密钥(KprUser)及对应于该专用密钥(KprUser)的公用密钥(KpuUser)的唯一的各自的集,及与服务器关联的有专用密钥(KprServer)与公用密钥(KpuServer),所述系统包括用于生成至少第一、第二、第三与第四随机数(R1、R2、R3、R4)的随机数发生器(16b);以及用于构成(76)一个组的装置(16c、16d、16e),所述组包含具有用用户的公用密钥(KpuUser)与第三随机数(R3)一起加密的至少第一与第二随机数(R1、R2);新鲜度值(FR);及通过一起散列所述第一随机数(R1)、以加密形式包含在所述组中的至少另一随机数及所述新鲜度值(FR)构成的第一散列的第一签名(S1)的加密部分(E2),所述第一签名(S1)是用服务器的专用密钥(KprServer)与第四随机数(R4)构成的。
12.根据权利要求11的系统,还包括用于检验(78、82)所接收的第二与第三签名(S2、S3)的检验装置(16d),所述第二签名(S2)具有通过一起散列第一(R1)与包含在所述组中的至少另一随机数(R2)构成的第二散列,并且是用用户的专用密钥(KprUser)与第二随机数(R2)构成(54)的,及所述第三签名(S3)具有文件(DOC)的散列并且是用用户的专用密钥与第一随机数(R1)构成(60)的。
13.根据权利要求12的系统,还包括计算机可读的存储装置(18)其特征在于其中存储(18b)有用于各自的用户的加密的专用密钥,这些专用密钥(KprUser)是用从各自的用户标识信息确定的各自的密钥(Kpass)加密的,及其中所述组中还包括用户的加密的专用密钥(E1)。
14.根据权利要求13的系统,其中该用户标识信息包括口令短语或生物测量信息。
全文摘要
在采用E1-Gamal算法的公用密钥密码系统中,在服务器上生成秘密的新随机数,及在服务器可访问的存储器中保持用通过散列用户的各自的口令短语或生物测量信息(指纹、声波纹、视网膜扫描或面部扫描)确定的单个用户标识密钥以对称算法加密的用户专用密钥,当需要时通过不安全的网络将新的随机数与加密的专用密钥传输给用户设备。为了防止攻击者发现随机数或在块重播攻击中利用以前用过的随机数,采用询问应答协议性质的交换,将至少一个秘密的新随机数从服务器传递给用户设备同时还向服务器证实用户。在这一交换中,以加密的形式将要分配给用户供在签名文件中使用的第一随机数及作为询问应答协议的一部分用户在构成第一与第二随机数的一起散列的签名中要使用的第二随机数连同新鲜度值及服务器对第一与第二随机数及新鲜度值的一起散列的签名提供给用户设备。
文档编号G09C1/00GK1252198SQ98804100
公开日2000年5月3日 申请日期1998年12月3日 优先权日1997年12月24日
发明者D·库奇亚, M·A·埃普斯坦, M·S·帕西卡 申请人:皇家菲利浦电子有限公司