基于公钥的认证用小数字签名的制作方法

文档序号:7636306阅读:177来源:国知局
专利名称:基于公钥的认证用小数字签名的制作方法
基于公钥的认证用小数字签名 背景本发明一般涉及密码术,尤其涉及认证。 相关技术说明认证涉及某种形式的数字签名或消息认证码。数字签名和消息认证码是基于 公钥和/或对称密钥密码系统。这两种系统具有不同的特性,从而使得在一种情况 下其中一种更为适用,而在一不同情况下另一种更为适用。一般而言,公钥系统在密钥管理和分发方面具有优势。但是,公钥系统常常 会是计算困难的,并且会涉及大数字签名。相应地,公钥系统将需要强大的处理器, 这将导致设备成本、重量和/或尺寸的增大;可能需要额外的处理器时间,这将导 致延迟、使用更多能量和/或耗尽电池;或可能会导致上述结果的组合。由此,计算要求和小输出的需要两者迫使大多数小型认证设备使用对称密钥 密码术。但是,随着诸如移动电话等设备中处理器的能力越来越强,计算要求可能 不再是主导因素。然而,仍然需要较小的数字签名。概要在一个方面, 一种具有可供在已就共同模数W达成一致的两个实体之间的认 证中使用的手段的方法和装置,包括根据输入值生成一伪随机串值;基于模数W 和伪随机串值生成第一公钥值;生成对应于第一公钥值的第一私钥值;接收第二公 钥值;以及基于模数W、第一私钥值和第二公钥值生成一共享机密值。此后,可使 用该共享机密值来计算认证签名值;并将其发送。在另一个方面, 一种可供在已就共同模数^达成一致的两个实体之间的认证 中使用的装置,该装置可包括伪随机生成器,被配置成根据输入值生成一伪随机 串值;密钥生成单元,被配置成基于模数iV和伪随机串值生成第一公钥值,并生 成对应于该第一公钥值的第一私钥值;接收器单元,被配置成接收第二公钥值;以
及机密值生成单元,被配置成基于模数W、第一私钥值和第二公钥值生成一共享机 密值。在又一个方面, 一种具有可供在已就共同模数W的使用达成一致的两个实体 之间的认证中使用的手段的方法和装置,包括接收第一认证签名值;根据输入值 生成伪随机串值;基于模数W和伪随机串值生成第一公钥值;基于模数7V、 一私 钥值和第一公钥值生成一共享机密值;使用该共享机密值生成一第二认证签名值; 以及将第一认证签名值与第二认证签名值相比较。在另一个方面, 一种可供在已就共同模数W的使用达成一致的两个实体之间 的认证中使用的装置,可包括接收器单元,被配置成接收第一认证签名值;伪随 机生成器,被配置成根据输入值生成一伪随机串;密钥生成单元,被配置成基于模 数W和伪随机串值生成第一公钥值;共享机密值生成单元,被配置成基于模数W、 一私钥值和第一公钥值生成一共享机密值;消息认证码单元,被配置成使用共享机 密值来计算第二认证签名值;以及比较单元,被配置成将第一认证签名值与第二认证签名值相比较。在又一个方面, 一种具有可供在已就共同模数W的使用达成一致的两个实体 之间的认证中使用的手段的方法和装置,包括接收基于模数W生成的公钥值; 通过求解模数W的离散对数问题生成与公钥值相对应的私钥;以及将该私钥用作 为共享机密密钥。以上方法可由处理器实现和/或控制。类似地,以上方法可由存储在机器可读 介质中的指令实现和/或执行。附图简要说明将参考以下附图对各种实施例进行详细说明,在附图中相同的附图标记标示 相似的要素,其中

图1示出可由一实体用来生成数字签名的一种示例设备;图2示出可由一验证实体用来认证数字签名的一种示例设备;图3示出可在生成数字签名时使用的一种示例方法;图4示出可在认证数字签名时使用的一种示例方法;图5示出可在认证时使用的另一种示例方法;以及图6示出可在认证中使用的另一种示例设备。
具体说明在以下说明中,给出了具体的细节以提供对这些实施例的透彻理解。但是, 本领域普通技术人员将可理解,无需这些具体细节也可实践这些实施例。例如,电 路可以框图形式示出以免不必要的细节混淆这些实施例。在其它实例中,公知的电 路、结构和技术可能不被具体示出以免混淆这些实施例。还注意到,这些实施例可能以被图示为流程图、流图、结构图或框图的进程 的形式来描述。尽管流程图可能将各操作描述为一顺序进程,但是其中许多操作可 并行或并发执行。此外,各操作的次序可被重排。进程在其操作完成时终止。进程 可对应于方法、函数、过程、子例程、子程序等等。当进程对应于函数时,其终止 对应于该函数返回到调用函数或主函数。此外,各实施例可由硬件、软件、固件、中间件、微代码或其任意组合来实 现。当用软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码片 段可被存储在诸如各种存储介质的机器可读介质中。处理器可执行这些必要的任 务。代码片段可代表过程、函数、子程序、程序、例程、子例程、模块、软件包、 类、或是指令、数据结构或程序语句的任意组合。 一代码片段可通过传递和/或接 收信息、数据、自变量、参数、或存储器内容等被耦合到另一代码片段或硬件电路。 信息、自变量、参数、数据等可经由包括存储器共享、消息传递、令牌传递、网络 传输等任意合适手段被传递、转发或发送。一般而言,以下说明允许数字签名相对较小,例如,在6位数的量级。这允 许签名在各种情况下——诸如签名在低带宽信道上被传送或签名需要由人来键入 的场合,通常是为验证目的——被方便、容易、廉价和/或有效地使用。在后一种 情形中,小数字签名还将是用户友好的。在下文中,为了解释和/或为了更好地理解本发明,将对与本发明相关的概念 进行讨论。对特定情况、定理和/或公式的引述是示例,并且不应被解释为限定本 发明的范围。公钥签名一般而言,如今在使用的有两类主要的公钥数字签名算法。 最常用的一类是RSA系统,其中公钥是一个大合数W,并且根本的数学"难 题"是将W因数分解成; "的困难。当前的因数分解算法的复杂度是次指数的。 因此,为等效于破解例如80位的密钥的对称算法的安全度,模数W必需是约1024
位。RSA系统中的数字签名是约与W等长的整数。数字签名的验证需要执行对(通 常很小的)幂e的取幂模W,并且是相对高效的。另一种常用数字签名方案根据其确切实现被称为El Gamal、 Schnorr或数字签 名(标准)算法DSA。这些方案是基于计算模素数尸离散对数的难度。Diffie-Hdlman (D-H)密钥协定算法是所发明的第一种公钥系统,并且依赖于此离散对数问题。 El Gamal是D-H对数字签名的应用。Schnorr和DSA使用一技巧来减小数字签名 的长度。模数尸通常也是1024位。尽管没有证据证明因数分解问题和离散对数问题是有联系的,但是求解其中 任一问题的算法通常有适用于另一问题的类似算法,这就是为什么相似的密钥长度 得到安全度相当的系统的原因。ElGamal数字签名是一对数字(r,力,各自的长度均 与尸相当,而Schnorr的方法允许较小的签名,其中r和s各自为160位(以等效 于80位的安全度)。椭圆曲线数字签名也是E1 Gamal的一种变形,它使用较小的密钥和不同的计 算,但是结果所得的签名仍然有约320位以实现最小安全度。使用以上技术中的任何一种的最短实际数字签名由此将是320位。以十进制 表达是卯位数的数字,或使用大小写字母、数字和两三个标点字符的惯常编码来 表达是约55字符。由此,用户要例如可靠地键入该数字签名是非常不方便且困难 的。数学背景在以下讨论中,将对计算离散对数的根本问题进行说明。此问题本质上是 Diffie-Hellman,但要模一因数分解并非公知的合数W,这与RSA系统相似。例如,离散对数问题可陈述如下给定整数W、 g和X其中Z^^(modA0, 找到;c。在传统的离散对数系统中,W通常是一素数,而g是模iV乘法群的大素数 阶子群的生成元。为便于解释,使用合数W。求解此模W离散对数问题蕴涵因数 分解W的能力,只要A^3(mod4),并且A^pg,其中; 和《是素数;W是所谓的Blum整数。以下,W是指素数p和g的乘积。
中国余数定理(CRT)也是一种有用的技术。在一简单情形中,任意整数Z 模;V可被表达为一对整数(fl, 6),其中aEX(mod; ),并且6三Z(moc^)。在这两种表示法之间转换是简单直接的。在转换回所需的模iV答案之前使用后一种表示法 来执行诸如乘法和取幂等运算常常是方便的。它被表达为两个因数的形式,但是它
可归纳到多个因数。唯一析因定理陈述,每一整数具有作为素数幂的乘积的唯一性表达。因此,CRT—般可对素因数使用。此外,仅有小素因数的整数被称为是平滑的。"小"在这里通常是在平滑度 界限^的意义下定义的。如果对于素因数之一; , 1是平滑的,则可使用Pollard 的p-l算法来因数分解合数。如果尸-l是平滑的,则可使用相同算法的变形来 计算模素数尸离散对数。如果计算模合数W的所有因数的离散对数是可能的,则 Pohlig-Hellman算法本质上可通过使用CRT构建W来计算模W离散对数。此夕卜,Diffle-Hellman密钥协定协议操作如下。两方或两个实体——诸如,Alice 和Bob——就共同模数W以及模7V单位群的一大子群的生成元g的使用达成一致。 正常情况下,D-H以一素模数来运算,但在此使用一合模数。通常,Alice和Bob 分别选择其密钥fl和6,然后分别计算J = ga(modAC^t^ = g6(modA0,并交换爿和 B。 Alice然后可计算共享机密S = S。(modW) e g,modW),而Bob也可计算共享机 密S = ^(modA0 ^g,modA0 。窃听者通常不求解模iV离散对数问题就无法计算出 S。此外,以下将对几种密码原语进行说明。其中一种是消息认证码(MAC), 在此使用一机密对称密钥在消息上创建一标签。具有相同机密密钥的实体可验证该 标签正确,这意味着该标签是由知道该密钥的某人创建的且该消息未被改动。伪随 机发生器(PRG)也能取相对较小的输入并将其"拉长"成任何所需长度的看似随 机的输出。这两种原语均可从散列函数、流密码、或分块密码以公知方式构建。例如, 可使用诸如SHA-256等散列函数(HASH),以通过散列从Diffie-Hellman密钥协定推导出的共享机密来推导密钥。最终,对于密钥生成,可使用密码安全的随机数 发生器来创建密钥。系统概观使用基于离散对数的系统的数字签名一般有两部分其一是一临时公钥,另 一是使用从Diffie-Hellman共享机密S推导出的对称密钥签名的文档的MAC。该 临时公钥通常很大,因为签名者——例如Alice~~"从随机选取的机密密钥创建此 临时公钥,并且通常在创建该公钥时很少或根本没有控制。在以下描述的实施例中,该临时公钥是通过使用PRG将小字或少数字符拉长 成可被用作公钥的某物来创建的。该小字可以是例如数列、选定的数字、随机数、 时间、字母或字母数字的字、符号字符、或其组合。然后,利用模数W的特殊构造并知道其因数,Alice可有效地"破解"她自己的公钥以找到相对应的机密密钥。 不知道此因数分解的攻击者则不能这么做。将MAC函数与待签名的数据和所推导 出的被截断至在该背景下有用的任何长度的密钥一起使用来认证该数据。在此,用 于生成输出MAC的密钥随后在合适的情况下还可被用作任意通信的会话密钥。应当注意,短签名可能固有地易受离线计算的攻击。相应地,这些签名可被 定向到一特定验证方。它们对于当场认证(登录、ATM交易等)或者证实短的时 间敏感消息可能更为有用。该验证方可采取额外措施,诸如在检测到太多失败时使 用双因数认证和禁用帐户来防止蛮力攻击。相应地,可使用某种设备来存储机密密钥并执行必要的计算。这构成了认证 因素之一。对于双因素认证,可实现各种第二因素,诸如但不限于,口令、个人标 识号(PIN)或生物统计信息。例如,可将一PIN输入到一验证设备,可使用其来 将签名设备解锁,和/或可将其纳入到签名计算本身中。因此,Alice的机密密钥可被保存在诸如蜂窝电话等她可随身携带的某种设备 中。 一般而言,该机密密钥是在设备内部从随机数生成的,并且从不离开该设备, 除非可能在她得到一新的电话时以可用于重构该机密密钥的"机密共享",即一种 备份的形式离开该设备。在以下讨论中,为便于解释使用"6位数"的签名。但是,对本领域技术人员 显而易见的是,可实现6位数以上或以下的其它字、十六进制数字、已编码字母数 字、或任何适合于该输入装置的信息。这对于不同的验证方可以是不同的。6 (十 进制)位数有约22°种可能性,而8字母数字字符的字有24()种可能性,这足以防备 蛮力攻击。 一些用途可如下。仍应注意,这些用途仅是示例,并且对于本领域技术 人员将显而易见的是,可实现落在下述用途范围内的其它用途和/或变形。 内联网登录为登录到她公司的内联网上,Alice使用诸如她的电话等设备 来输入"BigCom",并且其显示6位数字。Alice随即可键入她的用户名,并且在 口令字段键入她的口令和认证号码。在此情形中,数字签名可基于每次被请求时递 增的序列号。内联网认证服务器验证口令和号码两者,并使用该序列号来防止重放 攻击。 电话认证假设Alice想要通过电话向诸如她的股票经纪等第三实体认证她 自己。Alice的口令可被输入到她的电话中。该口令随即将被纳入到签名计算中。 结果所得的数字将作为口令被键入。此方法在例如要在电话上读出该签名或要将其
作为DTMF音调来发送时将是有利的。其合乎需要之处还在于口令无须被泄露给 股票经纪人或任何窃听者。,物理访问为进入诸如办公大楼等结构,Alice可在她的电话应用上选择"办 公室",并键入她的职员编号和签名号码。这可通过使用声音、DTMF音调、红外 线、蓝牙或RFID发送来自动化。*家门进入当Alice回到家时,她可通过将她的PIN输入到电话中以起到将 认证应用解锁的作用来打开她家的门。这意味着门的控制器无须为她的密钥配置一 口令,但是偷窃Alice的电话将不足以破门而入。她随后将所得的号码输入到控制 门的独立设备。此设备事先被配置成识别对应于Alice和她的家人的数个不同的公 钥,并且使用该签名号码来确定要准许可能密钥中的哪一个(由此哪一家庭成员) 进入。(自动化的发送方法也可能是优选的。)系统实现一般而言,认证进程可能有几个阶段。为便于解释,假设Alice是签名实体, 而Victor是验证实体,认证进程可如下1. Alice创建她的公钥。Alice可仅做此一次,因为她可对她想要的任意多个 不同验证方使用她的公钥。但是,本领域技术人员将可显而易见的是,也可对不同 的验证方或不同组的验证方创建两个以上或多个公钥。2. Victor接收并存储Alice的公钥,将其与适当的对象相关联以保护诸如帐 户、锁和车辆等。注意,可有多个验证方,它们无须彼此信任。3. Victor创建他自己的对Alice使用的私钥-公钥对,并将其发送给Alice。 Alice将其存储以供与Victor交互使用。注意,此密钥对必须模Alice的W计算, 并不能对不同的签名者使用。4. Alice和Victor同步一输入值。尽管此输入值可以是随机数或字母数字值, 但是使用数列将是实现此目的的有效方式。如果使用一数列,则对此签名进程的输 入无须被发送。或者,诸如短随机数等输入值可被用作该签名的一部分。5. 每当Alice想要向Victor认证她自己时,她就能基于该输入值的当前值有 效地生成一短认证码,并根据需要将其键入到电话中,在电话上读出该认证码,使 用DTMF音调来可听地发送该认证码,或按需使用其它各种手段来发送该认证码。在以上进程中,第一步骤可发生一次。因为其结果是一公钥,所以可将其提 交给例如证书授权机构以便于验证方后续的验证,可使其在公共目录上可用,诸如
此类。步骤2 - 4专用于每一验证方,并且步骤2和3可能需要在线执行,因为Alice 和Victor两人的公钥可能都很大。注意,知道模数W的因数分解的Alice可"破解" Victor的公钥以恢复他的机密密钥,但此机密密钥是专用于Alice的。由此,Alice将没有特别动机来这样做。图1示出可由例如Alice用来生成数字签名的一示例设备100。设备100可包 括被配置成根据输入值生成一伪随机串值的伪随机生成(PRG)单元110。设备100 还可包括被配置成基于模数W和伪随机串值生成一要被用作公钥的值的密钥生成 单元120。密钥生成单元120被进一步配置成生成与所生成公钥相对应的私钥值。 此外,设备100可包括被配置成接收验证实体的公钥值的接收器130;被配置成 基于模数W、私钥值和验证方的公钥值生成一共享机密值的机密值生成单元140; 被配置成使用共享机密值来生成认证签名值的MAC单元150;以及被配置成发送 认证签名值或数字签名的发送器单元160。图2示出与设备100相对应的、并可由例如Victor用来认证接收到的数字签 名的示例设备200。设备200可包括被配置成接收认证签名值的接收器单元210; 被配置成根据输入值生成伪随机串值的PRG单元220;被配置成基于模数iV和伪 随机串值生成公钥值的密钥生成单元230;被配置成基于模数W、 一私钥值和公钥 值生成一共享机密值的机密值生成单元240;被配置成使用共享机密值计算一认证 签名值的MAC单元250;以及被配置成将所接收的认证签名值与计算出的认证签 名值相比较的比较单元260。如果这两个认证签名匹配,则可认证所接收的认证签 名。一般而言, 一个实体的数字签名可由另一实体来认证,其中如将在以下说明 的,这两个实体已就共同模数W的使用达成一致。应当注意,设备100可包括其 它元件,诸如但不限于,被配置成根据需要存储各种信息或数据的存储单元170; 被配置成根据需要执行加密的加密单元180;以及被配置成允许用户与设备100交 互的用户接口 190。类似地,设备200可包括其它元件,诸如但不限于,被配置成 根据需要存储各种信息或数据的存储单元270;以及被配置成根据需要执行解密的 解密单元280。还应注意,元件110-190中的一个或一种组合可被重新排列而不会影响设备 100的操作。类似地,元件210 - 280中的一个或一种组合可被重新排列而不会影 响设备200的操作。最后,元件IIO-190中的一个或一种组合可被实现为组合的 而不会影响设备100的操作,并且元件210-280中的一个或一种组合可被实现为
组合的而不会影响设备200的操作。设备100和200的操作将在以下更详细地说明。 在以下说明中,为便于解释,假定模数iV是1024位。但是,应当显而易见的 是,此长度可以小于或大于1024位。实际的长度不是根本的,并且增加长度将得 到更高的密码安全度,但其代价是更高的计算额外开销。此外,对其它特定值、定 理和/或算法的引述是用于说明目的的示例。相应地,本领域技术人员将可显而易 见的是,也可实现不同的值、定理和/或算法。步骤l:创建Alice的公钥此系统中的公钥可由合模数W以及单位(即,具有模A/"乘法逆元的元素)群 的生成元g构成。 一般而言,例如2在至少一半的时间将可是令人满意的生成元, 因此生成可能的W直至此为真、并忽略可变g的可能性将是值得的。#是随机生成的,由此它满足以下准则1. iV是素数/ 和g的乘积。7Vs3mod4 (即,Blum整数)。2. 或者2是模W单位群的生成元,或者找到是这样一个生成元的小g。3. (/ ~1)/2是大素数/ 1和"2的乘积。类似地,(《-1)/2是大素数《1和的 乘积。4. pl、 p2、 gl和各自是平滑的,即,(pl-l)以及(p2—1)、 (gl—1)、 (g2-1) 分别是小于例如1,000,000的相异素数的乘积。此创建W的进程实际上将自下向上进行。有约50,000个素数小于1,000,000, 并且这4个第3阶段因数中的每一个需要其中的约12个(总共约50个)。有约 2.8xl0^种这样的组合,因此并不缺乏候选;该进程可能很长,但是它仅进行一次。 可能的^的数目尽管相对于约103°5个1024位素数只是微小的一个零头,但是仍然 能足够令人满意地防止基于其特殊性质的任何种类的搜索。这50,000个左右的基素数的表可被提供给该应用,并在密钥生成之后被丢弃, 或可使用Eratosthenes筛法来动态创建。检查候选的较大素数的素性将可能使用如 试除法等公知算法,继之以多轮如Miller-Rabin等概率素性检查算法。Alice的机密密钥是所有上面提到的各个素数,以及它们如何结合在一起以形 成W。其它便于各种中国余数定理计算的数据也可被存储。步骤2:得出公钥Alice的公钥是基于模数W (以及g,若其不是常数2)的。这可在Alice向
Victor证明她的身份之际被直接发送给Victor,或它可被发送给一证书授权机构, 该机构将创建包含她的公钥的证书,并根据需要来分发该证书。作为公钥,它如何 到达Victor实际上并不要紧,只要使他确信该公钥与Alice的关系即可。因为是基于公钥的,所以同一基础密钥可用于许多不同情况下的认证,并且 该密钥得以分发的方式可以非常灵活,包括使用公钥基础结构(PKI)证书、LDAP/ 活动目录、诸如此类。步骤3: Victor的公钥对Victor可用Diffie-Hellman密钥协定的正常方式创建他要对Alice使用的密钥 对,即,他选择一随机v并计算V=/(modA0。 F是需要发送给Alice的公钥(并 且不是敏感信息,只要使Alice确信该公钥与Victor的关系即可)。Victor的机密 密钥v对Alice应当是独特的,即,他应当对不同的用户使用不同的v。他将v连 同与Alice相关联的任何口令/生物统计信息一起存储在他的认证/授权数据库中。步骤4:同步一序列号当生成认证签名时,需要某个可由Alice和Victor两人使用的输入项或输入值。 对于短签名,此输入或可如数列那样是隐式同步的,或者它可以是小随机数,或可 与当前时间相关,或甚至可以是该签名将施加其上的数据。对重放攻击的防备也是 重要的,并且数列可用简单方式提供此防备。如果签名要以某种方式施加于所发送 的数据上,则该数据本身应以某种方式考虑到重放攻击。为便于说明,假定Alice和Victor使用一数列。该数列可被初始化为0,并在 每次生成/接受一认证号码时递增。如果Victor最后看到数列/的签名,则他可假 定序列号Z+l、 /+2、……直至某个相当小的极限来检查该签名。当一签名被接受时, 序列号得以更新成该值以防止重放攻击。基于时间的系统可接受例如基于在当前时 间的小范围内的时间值的签名。步骤5:生成/检査认证签名为便于说明,进一步假定待签名的输入值或数据项(无论其是序列号、时戳、 还是某种类型的短消息)被称为^。1. ^被拉长。计算Z)二PRGC4)modW。重申PRG根据其输入生成任意长度的 伪随机串。PRG可生成与模数中一样多的位。尽管可生成比这更多或更少的位,
但是它可能不是那么有用,并且为安全性考虑,需要在整数模W上近似均匀地分 布。不良D值的生成概率是可忽略的;这些将或者是非常小的值,或者是满足GCD(D,AO"的那些值(在此情形中W己被意外地因数分解)。2. D将在Diffie-Hellman密钥协定中被用作Alice的公共值。为便于她完成此 进程,她需要知道相对应的机密值(d)。为此,她可求解模7V离散对数问题。Alice 能这样做,因为她知道各个数字的因数的所有详情。a. 从相对应的模p和模《离散对数使用中国余数定理,可计算出该机密值丄b. 使用Pohlig-Hellman算法,可通过计算模pl和离散对数来确定模 p离散对数。对于《也是一样。c. 再次使用Pohlig-Hdlman,可通过得到模p1-1的所有素因数的离散对 数来确定模pl离散对数。d. 计算模/离散对数,其中/是小于l,OOO,OOO的素数,可通过Pollard 的Rho算法、指数计算法、或甚至蛮力在可管理的时间里完成。在本例中,这必 须对约50个值进行。3. Alice可用正常的Diffie-Hellman方式来计算该共享机密S。 S = HASH (一(modAO)。应当注意,如果使用序列号,则至此点的步骤全部都可在要发送认证 签名之前计算。在这样的情形中,诸如电话等于设备可利用已计算出的S值,并且 在接下来的步骤完成之后开始下一 S的相对较昂贵的计算。4. Alice可计算待发送的认证签名或数字签名为"-MAC(Q。或者,可使用 其它值作为输入来生成该认证签名,诸如但不限于,a = MAC(&输入值)、fl = MAC(& 《PIN])、 fl = MAC(&输入值,4PIN])或a = MAC(&4输入值,PIN]),其中4]是指使 用d对[]进行加密。该认证签名然后可被适当地截断并转换成所需的表示。如果PIN/ 口令和/或输入值要被独立发送,则它可不被包括在此计算中。5. Alice以某种方式发送她的消息(可能为空)和认证签名a。这可简单地通 过在数字小键盘上键入6位数来进行。6. Victor接收该认证签名,并知道^是什么(或者因为它是当前序列号,或 者因为它是当前时间、或接收到的消息)。他以与Alice相同的方式计算Z)= PRG(J)。7. Victor计算共享机密<formula>formula see original document page 18</formula>)。8. Victor检査接收到的a和他以与Alice相同的方式计算出的那个相同。9.如果这两个签名匹配,并且如果PIN/口令被独立发送,且它也匹配,则可 认为认证成功。如果使用的是序列号方法,则Victor将当前序列号更新到」+l。应当注意,如果W的因数之一减一是平滑的,贝lj Pollard的p-l算法可将AA因 数分解。p和《两者均被特别选择以避免此可能性。(注意,在和g-l两者皆 平滑时使用此方法是可行的;这要求对p-l和g-l的所有因数进行特别选择,并最 终导致Alice破解公钥的工作是攻击者将TV因数分解的工作的平方根的方法。通过 引入另一层大素数,获得了显著的优势。)没有理由相信W的结构允许任何其它 因数分解算法能以比其对随机TV更高的概率成功。还应注意,在成功认证结束时,共享机密S可被用作会话密钥或共享机密密 钥,尽管在有限带宽的假定下它可能并不高效。替换地,当Alice接收到Victor的 公钥F时,她可用与对她自己的临时值的方式来"破解"此公钥F以获得v(Victor 对Alice使用的机密密钥)。实际上,所发生的是Victor使用此公钥方法将其v发 送给Alice。然后在Alice的设备和Victor的设备中等同地执行以上讨论的其余处 理,甚至将该共享v用作为会话密钥或共享机密密钥。相应地,可执行数字签名的生成和认证。图3示出可在如上就共同模数W的 使用达成一致的两个实体之间的认证中使用的示例方法300。在方法300中,根据 输入值生成(310) —伪随机串值。该输入值可如上所述并可基于用户输入数据。 例如,用户输入数据可以是但不限于,数列、随机数、当前时间、字母字、字母短 语、字母数字作品或字母数字短语。然后基于模数W和伪随机串值,如上所述地,即通过拉长或扩展输入值然后 求解拉长输入值模W来生成(320)用于认证或签名实体的公钥值。还生成(330) 与公钥值相对应的私钥值。该私钥值可通过求解模W离散对数问题来生成。例如, 该私钥值可使用中国余数定理、Pohlig-Hellman算法以及Pollard的Rho算法来生 成。然后基于模数W、私钥值和验证方的公钥值来生成(340)共享机密值。在此, 验证方的公钥可在生成共享机密值之前的任何时候接收。使用共享机密值来计算 (350)认证签名值或数字签名。在此,认证签名也可使用输入值或加密的输入值 来生成。替换地,认证签名可以使用共享机密值和PIN或口令来生成。再替换地, 认证签名可使用共享机密值、输入值和PIN来生成。在使用PIN的情形中,PIN 可从签名实体接收,并被加密以便于在认证签名时使用。输入值一一如有需要—— 和PIN可使用私钥或其它达成一致的密码密钥来加密,只要验证方能解密该加密 密钥即可。如果该(加密的)输入值和/或加密的PIN被用于生成认证签名值,则 也被发送给验证方。注意,在一些情形中,输入值可在认证签名中使用,但可能不 被发送,例如在使用数列的情况下就是这样。此后,认证签名值可被发送给验证方。认证签名值在发送之前可被截断。可实现各种装置来实现和/或执行方法300。如果使用示例设备100,则PRG 单元110可生成伪随机串值,密钥生成单元120可生成公钥和私钥,机密值生成单 元140可生成机密值,并且MAC单元150可计算认证签名。存储单元170可存储 与达成一致的共同模数相关的数据和/或信息、以及设备100的操作所需的其它数 据和/或信息。接收器单元130可接收验证方的公钥。发送器单元160可发送认证 签名以及在需要时发送输入值。此外,加密单元180可加密输入值和/或PIN,并 且用户接口 1卯可用于接收用户输入数据和PIN。此外,认证签名可在生成之后由 MAC单元150截断,或在发送之前由诸如处理器(未示出)或发送器单元160等 独立元件截断。图4示出与方法300相对应的便于在就共同模数V的使用达成一致的两个实 体之间的认证中使用的示例方法400。在方法400中,接收(410)待认证的认证 签名值。为进行认证,根据输入值生成(420) —伪随机串值。在此,该伪随机串 值可用与方法300中相同的方式来生成。然后以与方法300相同的方式基于模数W和伪随机串值来生成(430) —公钥 值;并以与方法300相同的方式基于模数W、 一私钥值和公钥值来生成(440) — 共享机密值。在此,该私钥将是与签名实体的公钥相对应的私钥,并且也可用与方 法300相同的方式生成。即,该私钥可通过求解模W离散对数问题来生成。以与方法300中相同的方式使用共享机密值来生成(450) —认证签名值。相 应地,认证签名值也可使用输入值或加密的输入值来生成。替换地,认证签名可使 用共享机密值以及PIN或口令来生成。再替换地,认证签名可使用共享机密值、 输入值和PIN来生成。在使用PIN的情形中,从签名实体接收一加密的PIN,并 将其用在认证签名中。在使用输入值的情形中,在一些情形中输入值可从签名实体 接收。但是,在一些情形中输入值无须被接收,例如在使用数列的情况下就是这样。将接收到的认证签名值与计算出的认证签名值相比较(460)。由于接收到的 认证可能是认证签名的被截断部分,因此可将接收到的认证签名值与计算出的认证 签名值的一截断部分相比较。如果两个签名值匹配,则接收到的认证签名可被认证。
在此,在认证过程中也可使用PIN。即,为了提供双因素认证,与签名实体相对应的PIN可被存储。由此,如果接收到加密的PIN,则该PIN可被解密并与所存储 的PIN相比较。如果认证签名值和PIN两者皆匹配,则认证签名被认证。输入值—— 如果需要——以及PIN可使用签名实体的私钥或是其它达成一致的密码密钥来解 密,只要验证方能解密该加密密钥即可。可实现各种手段来达成和/或执行方法400。如果使用示例设备200,则接收器 单元210可接收认证签名值,并且在需要时接收输入值和/或加密的PIN。 PRG单 元220可生成伪随机串值,密钥生成单元230可生成公钥和私钥,机密值生成单元 240可生成共享机密值,MAC单元250可计算认证签名,并且比较单元260可比 较认证签名,并且在需要时比较PIN。存储单元270可存储与达成一致的共同模数 相关的数据和/或信息,以及设备200的操作所需的其它数据和/或信息。解密单元 280可在需要时解密输入值和/或PIN。由此,可生成、发送和认证数字签名。应当注意,可实现各种其它认证。例如,图5示出一替换方法500,其中接收 (510)基于另一实体的模数W生成的公钥。也可通过求解模W离散对数问题来生 成(520)与接收到的公钥相对应的私钥。此后,可使用(530)与验证方的公钥相 对应的私钥作为两个实体间将来通信中的共享机密值或对称密钥。此外,应当注意,方法300、 400和500可由如图600中所示的存储介质610 和处理器620来实现。存储介质610可包含被配置成执行方法300、 400和500的 指令。处理器620可通过例如执行存储在该存储装置中的指令来控制方法300、 400 和500的操作。另外,由于这些数字签名可以很短,因此它们适应各种各样的空间或带宽约 束情况,例如,它们可在电话上被读出,输入到小键盘中,或甚至在表单上手写。 因此,它们未必可完全防止一般情况下的伪造。然而,存在可在一般情况下使用这 样的签名的方式。例如,该签名可被实现为时间相关的,并且仅在很短时间里有效。 还可使该签名输入相对不可窃听(例如,将签名输入到门上进行本地验证的小键盘 中)。如果短时间里接连有两三次以上不成功的认证尝试,则验证实体可禁用、或 封锁一段时间。这在原理上与在连续三次输错PIN的情况下ATM "吃"卡的方式 是相似的。替换地,可为具体验证实体创建签名,g卩,定向于一个特定验证方自己的公 钥。如果作了太多次不成功的认证尝试,则该验证方也可"封锁"帐户。然而,该
签名无须是时间相关的,并且这些尝试可能在时间上间隔开。这与当前对登录口令 的处理相似。最后,尽管参考了实体Alice和Victor对这些实施例进行了说明,但是应当显 而易见的是,其它类型的实体也是适用的。尽管是参考具体条件和值对这些实现进 行说明,但是也应显而易见的是,可应用不同的条件和值而不会影响总的认证过程。由此,以上实施例纯粹是示例,而不应被理解为限定本发明。对这些实施例 的描述旨在是说明性的,而非限定所附权利要求的范围。由此,本示教易于被应用 于其它类型的装置,并且许多替换、修改和变体对于本领域技术人员将是显而易见 的。
权利要求
1.一种在已就共同模数N的使用达成一致的两个实体之间的认证中使用的方法,所述方法包括根据一输入值生成一伪随机串值;基于所述模数N和所述伪随机串值生成第一公钥值;生成与所述第一公钥值相对应的第一私钥值;接收第二公钥值;以及基于所述模数N、所述第一私钥值和所述第二公钥值生成一共享机密值。
2. 如权利要求l所述的方法,其特征在于,进一步包括 使用所述共享机密值计算一认证签名值;以及发送所述认证签名值。
3. 如权利要求2所述的方法,其特征在于,进一步包括 截断所述认证签名值;并且其中发送所述认证签名值包括发送经截断的认证签名值。
4. 如权利要求2或3所述的方法,作为从属,其特征在于,计算所述认证签 名值包括使用所述共享机密值和所述输入值计算所述认证签名值。
5. 如权利要求2或3 - 4中任意一项所述的方法,作为从属,其特征在于,进一步包括接收一口令值;使用所述第一私钥值来加密所述口令值;以及 发送经加密的口令值。
6. 如权利要求5所述的方法,其特征在于,计算所述认证签名值包括使用所 述共享机密值和所述经加密的口令值来计算所述认证签名值。
7. 如以上权利要求中的任意一项所述的方法,其特征在于,生成所述第一私钥值包括通过求解模w离散对数问题来生成所述第一私钥值。
8. 如以上权利要求中的任意一项所述的方法,其特征在于,进一步包括 接收用户输入数据,并且其中所述输入值基于所述用户输入数据。
9. 如以上权利要求中的任意一项所述的方法,其特征在于,进一步包括 发送所述输入值。
10. 如以上权利要求中的任意一项所述的方法,其特征在于,进一步包括 通过求解模iV离散对数问题来生成与所述第二公钥值相对应的第二私钥;以及将所述第二私钥用作为共享机密密钥。
11. 一种被配置成控制如以上权利要求中的任意一项所述的方法的执行的处 理器。
12. —种被配置成存储执行如权利要求1或其从属权利要求2-10中任意一 项所述的方法的指令的存储介质。
13. —种在已就共同模数W的使用达成一致的两个实体之间的认证中使用的 装置,所述装置包括用于根据一输入值生成一伪随机串值的装置; 用于基于所述模数7V和所述伪随机串值生成第一公钥值的装置; 用于生成与所述第一公钥值相对应的第一私钥值的装置; 用于接收第二公钥值的装置;以及用于基于所述模数W、所述第一私钥值和所述第二公钥值生成一共享机密值 的装置。
14. 如权利要求13所述的装置,其特征在于,进一步包括 用于使用所述共享机密值生成一认证签名值的装置;以及 用于发送所述认证签名值的装置。
15. 如权利要求14所述的装置,其特征在于,进一步包括 用于截断所述认证签名值的装置;并且其中发送所述认证签名值包括发送经截断的认证签名值。
16. 如如权利要求14或其从属权利要求15所述的装置,其特征在于,所述 用于计算认证签名值的装置包括用于使用所述共享机密值和/或所述输入值来计算 所述认证签名值的装置。
17. 如权利要求14或其从属权利要求15 - 16中的任意一项所述的装置,其 特征在于,进一步包括用于接收口令值的装置;用于使用所述第一私钥值来加密所述口令值的装置;以及 用于发送经加密的口令值的装置。
18. 如权利要求17所述的装置,其特征在于,所述用于计算认证签名值的装 置包括用于使用所述共享机密值和所述经加密的口令值来计算所述认证签名值的 装置。
19. 如权利要求13或其从属权利要求14 - 18中的任意一项所述的装置,其特征在于,所述用于生成第一私钥值的装置包括用于通过求解模w离散对数问题来生成所述第一私钥值的装置。
20. 如权利要求13或其从属权利要求14- 19中的任意一项所述的装置,其特征在于,进一步包括用于通过求解模离散对数问题来生成与所述第二公钥值相对应的第二私钥 的装置;以及用于将所述第二私钥用作为共享机密密钥的装置。
21. —种在已就共同模数W的使用达成一致的两个实体之间的认证中使用的 装置,所述装置包括伪随机发生器,被配置成根据一输入值生成一伪随机串;密钥生成单元,被配置成基于所述模数W和所述伪随机串值生成第一公钥值, 并生成与所述第一公钥值相对应的第一私钥值;接收器单元,被配置成接收第二公钥值;以及机密值生成单元,被配置成基于所述模数W、所述第一私钥值和所述第二公 钥值生成一共享机密值。
22. 如权利要求21所述的装置,其特征在于,进一步包括 消息认证码单元,被配置成使用所述共享机密值来计算一认证签名值;以及 发送器单元,被配置成发送所述认证签名值。
23. 如权利要求22所述的装置,其特征在于,所述发送器单元发送经截断的 认证签名。
24. —种在已就共同模数W的使用达成一致的两个实体之间的认证中使用的 方法,所述方法包括接收第一认证签名值;根据一输入值生成一伪随机串值;基于所述模数W和所述伪随机串值生成第一公钥值;基于所述模数W、 一私钥值和所述第一公钥值生成一共享机密值;使用所述共享机密值来计算第二认证签名值; 将所述第一认证签名值与所述第二认证签名值相比较。
25. 如权利要求24所述的方法,其特征在于,将所述第一和第二认证签名值 相比较包括将所述第一认证签名值与所述第二认证签名值的一截断部分相比较。
26. 如权利要求24或其从属权利要求25所述的方法,其特征在于,所述方 法进一步包括接收所述输入值。
27. 如权利要求24或其从属权利要求25 - 26中的任意一项所述的方法,其 特征在于,计算所述认证签名值包括使用所述共享机密值和所述输入值来计算所述 认证签名值。
28. 如权利要求24或其从属权利要求25 - 27中的任意一项所述的方法,其 特征在于,进一步包括接收一加密的口令值;使用所述第一公钥值来解密所述口令值;以及 证实经解密的口令值。
29. 如权利要求28所述的方法,其特征在于,计算所述认证签名值包括使用 所述共享机密值和所述加密的口令值来计算所述认证签名值。
30. —种被配置成控制如权利要求24或其从属权利要求25 - 29中的任意一 项所述的方法的执行的处理器。
31. —种被配置成存储执行如权利要求24或其从属权利要求25 - 29中的任 意一项所述的方法的指令的存储介质。
32. —种在已就共同模数的使用达成一致的两个实体之间的认证中使用的 装置,所述装置包括用于接收第一认证签名值的装置; 用于根据一输入值生成一伪随机串值的装置; 用于基于所述模数7V和所述伪随机串值生成第一公钥的装置; 用于基于所述模数W、 一私钥值和所述第一公钥值来生成一共享机密值的装置;用于使用所述共享机密值来计算第二认证签名值的装置;以及 用于将所述第一认证签名值与所述第二认证签名值相比较的装置。
33. 如权利要求32所述的装置,其特征在于,所述用于将第一和第二认证签 名值相比较的装置包括将所述第一认证签名值与所述第二认证签名值的一截断部分相比较。
34. 如权利要求32或其从属权利要求33所述的装置,其特征在于,进一步 包括用于接收所述输入值的装置。
35. 如权利要求32或其从属权利要求33 - 34中的任意一项所述的装置,其 特征在于,所述用于计算认证签名值的装置包括用于使用所述共享机密值和所述输 入值来计算所述认证签名值的装置。
36. 如权利要求32或其从属权利要求33 - 35中的任意一项所述的装置,其 特征在于,进一步包括用于接收加密的口令值的装置;用于使用所述第一公钥值来解密所述口令值的装置;以及 用于证实经解密的口令值的装置。
37. 如权利要求36所述的装置,其特征在于,所述用于计算认证签名值的装 置包括使用所述共享机密值和所述加密的口令值来计算所述认证签名值的装置。
38. —种在已就共同模数W的使用达成一致的两个实体之间的认证中使用的 装置,所述装置包括接收器单元,被配置成接收第一认证签名值; 伪随机发生器,被配置成根据一输入值生成一伪随机串值; 密钥生成单元,被配置成基于所述模数W和所述伪随机串值生成第一公钥值; 共享机密值生成单元,被配置成基于所述模数W、 一私钥值和所述第一公钥 值生成一共享机密值;消息认证码单元,被配置成使用所述共享机密值来计算一第二认证签名值;以及计算单元,被配置成将所述第一认证签名值与所述第二认证签名值相比较。
39. 如权利要求38所述的装置,其特征在于,所述比较单元将所述第一认证 签名值与所述第二认证签名值的一截断部分相比较。
40. —种在已就共同模数W的使用达成一致的两个实体之间的认证中使用的 方法,所述方法包括接收基于所述模数W生成的公钥值;通过求解模iV离散对数问题来生成与所述公钥值相对应的私钥;以及 将所述私钥用作为共享机密密钥。
41. 如权利要求40所述的方法,其特征在于,生成所述私钥包括 使用中国余数定理来计算所述私钥。
42. —种在已就共同模数AA的使用达成一致的两个实体之间的认证中使用的装置,所述装置包括用于接收基于所述模数W生成的公钥值的装置;用于通过求解模W离散对数问题来生成与所述公钥值相对应的私钥的装置;以及用于将所述私钥用作为共享机密密钥的装置。
全文摘要
所公开的实施例允许已就共同模数N的使用达成一致的两个实体之间的认证。此认证包括生成一伪随机串值;基于模数N和伪随机串值生成一公钥值;生成对应于公钥值的一私钥值;接收验证方的公钥值;基于模数N、私钥值和验证方的公钥值生成一共享机密值;使用共享机密值计算一认证签名值;以及发送该认证签名值以供认证。当接收到该认证签名时,生成公钥值和共享值以计算一认证签名值。此后比较并认证这些认证签名值。
文档编号H04L9/32GK101129018SQ200680006191
公开日2008年2月20日 申请日期2006年2月24日 优先权日2005年2月25日
发明者A·格恩特曼, G·G·罗斯, J·W·诺伦伯格二世, P·M·豪克斯 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1