CN102318260A - 密钥协商协议的加速 - Google Patents

密钥协商协议的加速 Download PDF

Info

Publication number
CN102318260A
CN102318260A CN2009801567897A CN200980156789A CN102318260A CN 102318260 A CN102318260 A CN 102318260A CN 2009801567897 A CN2009801567897 A CN 2009801567897A CN 200980156789 A CN200980156789 A CN 200980156789A CN 102318260 A CN102318260 A CN 102318260A
Authority
CN
China
Prior art keywords
key
public key
long
term
term public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009801567897A
Other languages
English (en)
Other versions
CN102318260B (zh
Inventor
丹尼尔·R·L·布朗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Maliki Innovation Co ltd
Original Assignee
Certicom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Certicom Corp filed Critical Certicom Corp
Publication of CN102318260A publication Critical patent/CN102318260A/zh
Application granted granted Critical
Publication of CN102318260B publication Critical patent/CN102318260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

通过将通信方的短期公开密钥和长期公开密钥选择为相同,针对加速计算来优化实现例如MQV之类的密钥协商协议时对共享加密密钥K的产生。一个通信方确定另一通信方的一对公开密钥是否相同。如果是,则使用共享密钥K的简化表示,这减少了加法群的标量乘法运算或乘法群的求幂运算的数目。可以通过在计算K时执行同时标量乘法或同时求幂来获得进一步优化。

Description

密钥协商协议的加速
技术领域
以下涉及密码系统,更具体地涉及用于计算共享秘密密钥的方法和设备。
背景技术
公开密钥密码用于提供在公开网络上发送的信息的安全性。多种密码协议可用于提供安全性、完整性和认证。其安全性基于特定数学问题的明显难解性,例如整数因式分解和离散对数问题。这些通常具有有限的可用的计算功率和电池功率。公开密钥方案有时需要比可用的计算功率更强的计算功率。在大多数密码系统中,具有较多比特的参数提供较强的安全性,但通常会招致速度降低的不利结果。在这种环境中,椭圆曲线密码(ECC)是特别有吸引力的,这是由于其提供必要的安全性级别,其中参数具有与其他密码系统(如RSA)相比更少的比特。由于必须操作的数据量更小,因此计算对应地更快。安全性是受限环境中的要求,例如移动计算设备,包括蜂窝电话、寻呼机和智能卡。假定持续需要增强的安全性,则持续需要优化密码操作以尽可能快地运行,从而使现有协议的更高安全性实现变得可行。
数字签名是一类用于提供认证的密码协议。如所有公开密钥系统中一样,发送方具有在数学上彼此相关的私有密钥和对应的公开密钥。使公开密钥可用,并利用证书或目录来向其他用户认证公开密钥。发送方使用其私有密钥来对消息进行签名,接收方能够使用真实的公开密钥来验证签名。这种系统基于“硬”数学问题,例如通过大素数的乘积而生成的数的因式分解或者在有限域中取对数的困难。潜在问题的困难确保了仅私有密钥的拥有者能够产生将使用拥有者的公开密钥进行验证的签名。
用户是在数据通信网络上交换信息的计算设备,一般被称作通信方。为了便于描述,通俗地,通信方由人名Alice、Bob等指代。
通常有兴趣在公开密钥密码系统的两个用户之间共享秘密密钥,然后,在对称密钥加密方案中可以使用该秘密密钥来交换加密数据。在对数据进行加密时,对称密钥协议比公开密钥协议更快,但是,在通信方之间建立共享秘密密钥是有挑战的。公开密钥密码系统可以用于建立共享密钥,使得一对通信方可以建立公共的秘密密钥。该秘密密钥可以用于使用对称密钥方案来保护未来通信。一类密钥建立协议是密钥传输协议,其中,单个发起方创建秘密密钥并将其安全地传送至接收方。另一类密钥建立协议是密钥协商协议,其中,所有参与实体贡献用于导出共享秘密密钥的信息。
附图说明
现在,参照附图,仅作为示例来描述实施例,在附图中:
图1是密码系统的示意表示;
图2是示出了使用ECMQV协议的已知密钥协商方法的流程图;
图3是示出了图2中的嵌入式密钥确认步骤的细节的流程图;
图4是示出了根据ECMQV的加速密钥协商的实施例的流程图;
图5是示出了由一个通信方执行的、图4中的共享秘密密钥的加速计算的细节的流程图;
图6是示出了由一个通信方执行的、图4中的共享秘密密钥的加速计算的细节的流程图;
图7是示出了由另一个通信方执行的、图4中的共享秘密密钥的加速计算的细节的流程图;
图8a是示出了使用ECMQV协议的同时标量乘法的已知方法的流程图;
图8b是示出了使用图6和图7的技术的同时标量乘法的加速方法的流程图;
图9是示出了基于乘法群使用MQV协议的已知密钥协商方法的流程图;
图10是示出了基于乘法群使用MQV协议的加速密钥协商的实施例的流程图;
图11a是示出了图9中的同时求幂方法的流程图;
图11b是示出了图10中的加速同时求幂方法的流程图;
图12是示出了在并行架构的情况下使用MQV的加速密钥协商的备选实施例的流程图;
图13是示出了在单个密钥传送的情况下使用MQV的加速密钥协商的备选实施例的流程图;
图14是示出了在并行架构和单个密钥传送的情况下使用MQV的加速密钥协商的备选实施例的流程图;
图15是示出了在单个密钥传送的情况下使用MQV协议的加速密钥协商的另一备选实施例的流程图;
图16是示出了在并行架构和单个密钥传送的情况下使用MQV的加速密钥协商的另一备选实施例的流程图;
图17是示出了MTI协议的备选实施例的流程图。
具体实施方式
MQV(Menezes、Qu、Vanstone)协议属于密钥协商协议族,提供了一种在公开密钥密码系统的两个用户之间共享密钥的方法,并提供了对密钥的认证。该协议是在美国专利No.5,761,305、美国专利No.5,889,865、美国专利No.5,896,455和美国专利No.6,122,736中描述的。
其具有多个变型,其中的一些变型是标准化的,因此用作以下描述的基础。MQV密钥协商协议可以是在基于有限域而定义的两个乘法群中实现的,或者是使用加法群(如椭圆曲线群)来实现的。在这两种情况下,总体算法保持相似。下表中给出了MQV的注解。
Figure BDA0000083614960000041
以下描述MQV协议的乘法群版本。具体地,一对通信方Alice和Bob使用双程(two-pass)MQV变型来共享密钥,表示为K。
1.Alice从区间1至(q-1)随机选择kA,其中,q是群的阶数。
2.Alice计算
Figure BDA0000083614960000042
并将其发送至Bob,其中,g是群生成元。
3.Bob从区间1至(q-1)随机选择kB
4.Bob计算
Figure BDA0000083614960000043
并将其发送至Alice。
5.Alice计算sA=(kA+dARA)mod q,共享秘密密钥变为 K = ( R B ( Q B ) R B ) s A .
6.Bob计算sB=(kB+dBRB)mod q,共享秘密密钥变为 K = ( R A ( Q A ) R A ) s B .
密钥协商协议的计算密集的部分是在确定K时执行的求幂。
当在ANSI X9.62和IEEE P1363协议中对MQV协议进行了标准化时,引入了截断操作以使协议更高效。标准化的MQV协议使用截断操作来缩短指数的比特长度,表示为
Figure BDA0000083614960000046
使用截断操作加速了计算,这是由于指数更短,并且,认为该截断不会影响协议的安全性。
MQV本协议的另一个版本是以下描述的使用具有密钥确认的三程(three-pass)变型的椭圆曲线MQV(ECMQV)协议。
1.Alice从区间1至(q-1)随机选择kA,其中,q是群的阶数。
2.Alice计算RA=kAP并将RA和QA发送至Bob,其中,P是生成椭圆曲线群的元素的曲线上的点。
3.Bob执行对RA的嵌入式密钥确认,以确保RA是不位于无穷大处的点,是群的元素,并且是位于椭圆曲线上的点。
4.Bob从区间1至(q-1)随机选择kB
5.Bob计算 R B = k B P , s B = ( k B + d B R ‾ B ) mod q K = hs B ( R A + R ‾ A Q A ) , 其中,h是群的余因子。
6.K是坐标为(x,y)的点,Bob使用K的x坐标作为输入来执行密钥导出函数(KDF),以导出两个辅助密钥k1和k2。这表示为(k1,k2)←KDF(xK)。
7.Bob使用消息认证码(MAC)来计算标签tB。这表示为 t B = MAC k 1 ( 2 , Q B , Q A , R B , R A ) .
8.Bob将tB,QB,RB发送至Alice。
9.Alice执行对RB的嵌入式公开密钥确认,以确保RB是不位于无限大处的点,是群的元素,并且是位于椭圆曲线上的点。
10.Alice计算
Figure BDA0000083614960000052
Figure BDA0000083614960000053
其中,h是群的余因子。
11.Alice如上述步骤6处所述计算(k1,k2)。
12.Alice计算 t = MAC k 1 ( 2 , Q B , Q A , R B , R A ) 并验证t=tB
13.Alice计算 t A = MAC k 1 ( 3 , Q B , Q A , R B , R A ) 并将tA发送至Bob。
14.Bob计算 t = MAC k 1 ( 3 , Q B , Q A , R B , R A ) 并验证t=tA
15.然后,协商的会话密钥变为k2
与上述乘法群实现类似,在实现标量乘法(也称作点乘)以确定K时,使用加法群的ECMQV协议在计算上最密集。
存在多种方法用于在求幂和标量乘法的情况下计算K时提高效率。例如,一种方法通过将通信方Alice和Bob组织为并行计算其相应K值来提高算法效率。然而,这种架构改变不会减小计算强度。
现在参照图1,密码系统10一般包括称作“Alice”的第一通信方12,其通过通信信道16与称作“Bob”的第二通信方14进行通信。每个通信方12、14是计算设备,例如计算机、服务器、蜂窝电话、PDA、ATM等,包括执行所指定的功能所必需的处理器、存储器、电源、输入和输出设备。每个通信方12、14包括密码模块18,密码模块18具有其自身的存储器20用于存储密码操作的输入、输出和中间部分,或可访问作为通信方(12、14)的一部分的外部存储器20。可见,在图1所示的示例中,第一通信方12包括密码模块18外部的存储器20,第二通信方14包括密码模块18内部的存储器20,以示意可以在任何合适的配置中提供存储数据的能力。还将认识到,在必要或期望时,存储器20可以在通信方12、14外部并且对于通信方12、14来说是可访问的(例如,经由网络连接等)。
密码模块18被配置为执行密码操作,例如加密/解密、签名和模算术等。典型地,密码模块18包括随机数生成器22、用于存储私有密钥的安全存储器30以及用于执行密码操作的算术逻辑单元ALU 28。
将认识到,存储器30可以包括(图1所示的)存储器20的全部或部分,或可以作为如图所示的密码模块18中的分离组件而提供。存储器30可以包括随机存取存储器(RAM)、只读存储器(ROM)和/或任何其他类型的合适存储结构。
ALU 28的计算操作是经由驻留于控制器24中或控制器24可访问的硬接线或编程指令来控制的,并经由指令总线35而被传送至ALU28。还提供了存储总线36,以使控制器24能够在执行和输出ALU 28的操作的结果时利用存储器30。ALU 28可以用于在控制器24的指示下执行多种操作。
将认识到,这里示例的执行指令的任何模块或组件可以包括或可访问计算机可读介质,例如存储介质、计算机存储介质或数据存储设备(可移除和/或不可移除),如磁盘、光盘或磁带。计算机存储介质可以包括用于存储信息的任何方法或技术中实现的易失性和非易失性、可移除和不可移除介质,所述信息例如计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质的示例包括RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或者可用于存储所期望的信息且可由应用、模块或这两者访问的任何其他介质。任何这种计算机存储介质可以是控制器24的一部分或者对于控制器24来说可访问或可连接。这里描述的任何应用或模块可以是使用这种计算机可读介质可存储或以其他方式保存的计算机可读/可执行指令来实现的。
密码模块还包括用于对存储器20中存储的数据进行比较的比较器39。
通信方12、14共享椭圆曲线密码系统的参数,该椭圆曲线密码系统具有基于有限域Fp而定义的椭圆曲线群E。将包括基点P在内的参数存储在存储器30中,这些参数是控制器24可访问的。类似的操作可以实现扩展域上的椭圆曲线或更高亏格曲线,如超椭圆曲线。
每个通信方12、14具有分别以表示整数的计算机可读比特串的形式存在的长期私有密钥dA、dB以及分别对应的长期公开密钥QA、QB。公开密钥QA、QB均为满足椭圆曲线等式的基础域中的一对元素。公开密钥表示椭圆曲线上的点,其中,元素表示点的(x,y)坐标。每个通信方12、14可访问另一通信方的长期公开密钥的真实拷贝,作为从一个通信方向另一个通信方提供且由证明权威机构(CA)签名的证书,或者从CA直接提供的证书。
所期望的是,使用被示例为MQV协议的密钥协商协议,在通信方之间共享秘密密钥。现在已经认识到,可以对MQV协议所需的通信方之间的信息交换进行组织,以提供高效计算,尤其是在给定了密钥的特定条件的情况下。
具体地,当第一通信方知道在MQV密钥协商交换中第二通信方的短期公开密钥和长期公开密钥相同时,第一通信方可以使用单个标量乘法运算或单个求幂运算而不是两个运算或线性组合,来加速MQV共享秘密密钥的计算。确定共享秘密密钥K所需的密集计算的数目减少加速了MQV协议。
无意地或有意地,通信方的短期公开密钥和长期公开密钥可以是相同的。可以存在以下情形:适当地,将短期公开密钥有意设置为与长期公开密钥相同。例如,可以存在以下情形(例如电子邮件):接收方发送短期公开密钥从而使接收方的短期公开密钥与其长期公开密钥相同并不是优选的或可行的。在另一情形中,可能需要经过认证的公开密钥(也称作证书),并且这些经过认证的公开密钥尚不可用。例如,金融银行的在线服务器可以使用证书进行操作,而在线银行客户端在没有证书的情况下使用互联网浏览器来安全地连接至服务器。客户端可能不需要证书以与银行的服务器相连,这是由于客户端的短期密钥和长期密钥被有意地设置为相同。
图2中利用数字200总体上示出了一种利用三程ECMQV协议来计算共享秘密密钥的方法。在图2所示的步骤所表示的框架内,可以获得ECMQV协议的加速。假定没有想到ECMQV的加速,则Alice发起会话并实现指令集合(210),其中,她首先在1至(q-1)之间随机选择整数作为短期私有密钥kA(212),其中,q是群的阶数。她根据RA=kAP来计算作为曲线上的点的其短期公开密钥RA(214),其中,点P是群生成元。然后,Alice向Bob发送其长期公开密钥QA和短期公开密钥RA(216)。
然后,Bob执行指令集合(220)。他在1至(q-1)之间随机选择他自己的短期私有密钥kB(224)之前,执行对所接收的公开密钥RA的嵌入式公开密钥确认(300)。图3中利用数字300详细示出了嵌入式密钥确认。首先,根据RA不是无穷大处的点(即,RA≠∞)这一条件来验证公开密钥(在这种情况下是RA)(302)。如果该条件(302)为真,则验证下一条件(304),使得RA的笛卡尔坐标是有限域Fq内的适当表示的元素。最后,将RA的坐标插入椭圆曲线的等式中,以查看RA是否位于由参数a和b定义的椭圆曲线上(306)。如果满足所有条件,则算法返回“有效”(308)。如果未满足任一条件,则算法返回“无效”(310)。
返回到图2,在Bob确认密钥RA(300)并随机选择短期私有密钥kB(224)之后,他继续根据RB=kBP来计算对应的短期公开密钥RB(226)。这用于计算中间值
Figure BDA0000083614960000081
(228)。
Figure BDA0000083614960000082
是RB的截断版本,以缩短比特长度,从而提高计算效率。共享秘密密钥K取决于
Figure BDA0000083614960000083
作为示例,根据
Figure BDA0000083614960000084
来计算K(230),其中,h是群的余因子。使用K的x坐标,通过合适的密钥导出函数(KDF),导出两个其他秘密密钥k1和k2(232)。利用这些秘密密钥k1、k2,使用消息认证码(MAC),计算认证标签。Bob根据
Figure BDA0000083614960000085
使用秘密密钥k1,计算认证标签tB(234)。将串“2”包括在MAC输入中以指示标签源自响应方。然后,他将参数QB、RB和tB传递至Alice(236)。
在从Bob接收到参数时,Alice逐步执行另一指令集合(240)。Alice对RB执行嵌入式公开密钥确认(300),然后计算中间值
Figure BDA0000083614960000086
(244)。共享秘密密钥K取决于在本示例中,根据
Figure BDA0000083614960000091
(246)。将相同KDF应用于K的x坐标(即,xK),从而KDF(xK)给出秘密密钥k1、k2(232)。Alice计算认证标签
Figure BDA0000083614960000092
(250)并验证t=tB(252)。如果验证了标签相等,则Alice计算辅助认证标签以发送至Bob(256),其中,(254)。将串“3”包括在MAC输入中,以指示标签源自发起方。
然后,在以下指令集合(260)中,Bob计算对应的标签
Figure BDA0000083614960000094
(262)并验证t=tA(264)。在Alice和Bob的设备中,如果条件t=tA为真,则已经共享秘密密钥k1和k2。对认证标签tA和tB的成功验证使每个实体确信:其他实体确实已计算出共享秘密密钥K(由于计算标签需要k1的知识因而还需要K的知识),通信并未被篡改(假定MAC是安全的),以及其他实体知道与其进行通信的实体的身份(由于身份被包括在MAC处理后的消息中)。在验证了上述条件之后,ECMQV协议返回从KDF导出的所协商的秘密会话密钥k2(270)。然后,可以利用会话密钥k2,使用k2下的对称加密,在通信信道16上交换信息。
在ECMQV协议内的任何步骤,如果验证过程未返回“真”,则将终止协议。
上述ECMQV协议的在计算上最密集的方面是标量乘法运算,更普遍地称作点乘。使用计算共享秘密密钥所需的标量乘法的数目来测量ECMQV协议的效率。在图2和3所述的协议中,Alice执行标量乘法以计算
Figure BDA0000083614960000095
(246),Bob执行标量乘法以计算
Figure BDA0000083614960000096
(230)。具体地,Alice和Bob均执行1.5个标量乘法以计算上述格式的K。在Alice的情况下,ALU(28)计算
Figure BDA0000083614960000097
(246)。在括号项
Figure BDA0000083614960000098
内,执行乘法
Figure BDA0000083614960000099
其中,
Figure BDA00000836149600000910
是整数,QB是椭圆曲线上的点。由于已被截断并具有较短的比特长度,因此运算的代价为半个标量乘法或0.5个标量乘法。当计算整数hsA与椭圆曲线点
Figure BDA00000836149600000913
之间的乘积时,进行下一标量乘法,其代价为1个完整的标量乘法。因此,计算K的代价为总共(1+0.5)=1.5个标量乘法。
为了减少标量乘法的数目,从而加速密钥协商协议,基于在通信方的公开密钥对相等使得RB=QB和/或RA=QA时可以进一步降低标量乘法代价的认识,如图4所示对图3的框架进行适配。对于Bob,当RA=QA时,进行加速计算,这允许共享秘密密钥计算简化并变为K=uQA,其中,简化因子u取决于
Figure BDA0000083614960000101
在特定示例中,
Figure BDA0000083614960000102
类似地,对于Alice,当RB=QB时,进行加速计算,这允许共享秘密密钥计算简化并变为K=vQB,其中,简化因子v取决于
Figure BDA0000083614960000103
在本示例中,
Figure BDA0000083614960000104
需要1.0的标量乘法代价来计算共享秘密密钥。因此,图4所述的协议可以被实现为比图3所述的协议快多达33%。
参照图4,示出了当识别出通信方使用一对相同的公开密钥时,通过减少标量乘法的数目来加速ECMQV协议的实施例。在本实施例中,Alice和Bob将其相应短期公开密钥有意设置为与其长期公开密钥相同。加速算法开始于Alice执行一批指令(211),包括:随机选择短期私有密钥kA(212);将短期公开密钥RA有意选择为等于长期密钥QA(215);以及将QA和RA发送至Bob(216)。
在接收到公开密钥对时,Bob确定密钥是否相同。如图4所示,Bob通过首先将QA和RA进行比较(612)来开始执行一系列指令(610)。如果QA不等于RA,则Bob继续执行步骤集合221。参照图5,更详细地示出了集合221。尽管集合221与先前在集合220中解释的一系列步骤类似,但是集合221不使用短期私有密钥kB来计算RB。而是,在集合221中,按照步骤227,Bob将RB有意选择为等于QB
然而,如果在图4的判断过程(612)中将QA和RA识别为相等,则Bob采用加速标量乘法格式(701)。参照图6,首先,Bob执行对RA的嵌入式公开密钥确认(300),在1至(q-1)之间随机选择kB(712),然后将RB有意选择为等于QB(715)。计算中间分量sB(716),接着简化因子
Figure BDA0000083614960000105
(718)。这用于使用简化标量乘法格式来计算共享秘密密钥K=uQA(720)。然后,使用KDF(xK)来导出两个密钥k1和k2(722)。然后,Bob使用MAC算法来计算认证标签tB(724)。然后,他将QB、RB和tB发送至Alice(726)。
应当理解,如果Bob不确定Alice可能将她的短期公开密钥RA有意设置为等于她的长期公开密钥QA,则Bob可以执行公开密钥比较(612)。如果Bob已确定Alice的短期和长期公开密钥相同(例如通过事先建立的某种协商),则Bob可以选择不实现公开密钥比较(612),从而减小计算负载。因此。在接收到Alice的公开密钥对时,Bob可以直接采用加速标量乘法格式(701)。即,如果事先理解公开密钥是相同的,则步骤216可以直接前进至步骤701。应当理解,假定Alice事先知道Bob已经将其短期和长期公开密钥有意选择为相同,则Alice还可以选择不执行比较(616)。类似地,从步骤236至726,算法可以直接前进至步骤800。然而,在图4所示的具体示例中,通过Alice和Bob的比较来进行确定。
返回到图4,在从Bob接收到公开密钥对时,Alice通过首先将QB和RB进行比较(616)来开始执行一系列指令(614)。如果QB不等于RB,则Alice继续执行图2详细示出的原始步骤集合240。然而,如果QB和RB相等,则Alice采用加速标量乘法格式(800)。参照图7,首先,Alice执行对RB的嵌入式公开密钥确认(300)。计算中间值sA(812),接着简化因子(814)。这用于使用简化标量乘法格式来计算共享秘密密钥K=vQB(816)。然后,使用KDF(xK)来导出两个密钥k1和k2(818)。然后,Alice使用MAC算法来计算认证标签t(820)并验证t=tB(822)。Alice计算tA(824)并将其发送至Bob(826)。
再次参照图4,在Alice完成她的算法(240)或(800)之后,Bob执行步骤集合(260),其中,他在步骤262计算认证标签t并验证t=tA(264)。如果在加速ECMQV过程中验证了所有标签,则对于Alice和Bob,所协商的会话密钥是k2(270)。
对于图4所述的实施例,是否将短期公开密钥(即,RA和/或RB)有意选择为与对应的长期公开密钥相同是可选的。如果不有意选择为相同,那么例如,可以通过RA=kAP来确定Alice的短期公开密钥。类似地,Bob可以选择不有意选择一对相同的公开密钥,从而可以计算RB=kBP。然而,应当注意,当通信方将短期公开密钥有意选择为与长期公开密钥相同时,就不需要用于从短期私有密钥获得短期公开密钥的计算。因此,在通信方处有意选择相同公开密钥在确定短期公开密钥时减小了计算负载。
可以在运行时期间检测RB=QB和/或RA=QA的条件,并预先将其存储在包含长期公开密钥Q和Q的预先计算标量倍数在内的大型证书中。该预先识别的条件可以用于创建公开密钥QA的倍数的预先计算表,对所述倍数进行组合以提供标量uQA。这将进一步加速共享秘密密钥K的计算。
通过考虑图4可以认识到,确定公开密钥是否相同的能力在通信方之间的通信中提供了多功能性。例如,Alice可以使用两个不同的公开密钥,但如果更方便的话,Bob可以使用相同的公开密钥。例如,如果Bob是具有有限计算功率的计算设备,则他可以选择不执行与短期公开密钥相关联的标量乘法。
Alice将在从Bob接收到数据时确知这一点,并可以加快共享密钥的计算。
类似地,Alice可以选择使用相同的公开密钥,允许Bob加快共享密钥的计算,但Bob可以选择使用不同的公开密钥来与Alice进行通信。
最后,Alice和Bob均可以选择使用相应的相同公开密钥,并均将加快共享密钥的计算。
在计算中间值sA、sB时,Alice和Bob可以分别使用其长期私有密钥dA、dB来代替短期私有密钥kA、kB。然而,这将导致在连续的会话中使用相同密钥,这一般被视为不期望。
在该方法的另一优选实施例中,可以使用表来进一步加速MQV过程。可以将通过识别相同公开密钥对而获得的代价节约应用于针对实现同时多点乘法而描述的方法。如图8a所示,传统地用于加速计算的方法是采用多点乘法,也称作Shamir诀窍。首先,必须将共享秘密密钥的原始等式(即,)重新配置为与一般线性组合形式mP+lQ相匹配。去除括号,给出使得在mP+lQ的表示中,m=hsA、P=RB
Figure BDA0000083614960000123
以及Q=QB。由于RB和QB均为点,因此密钥K的表达式具有一般形式mP+lQ,即两个标量倍数之和。
在图8a中,首先建立(902)预定比特数目w的窗口宽度。然后,建立(904)RB的小倍数α的表(920),并建立(906)QB的小倍数β的表(922)。表项由可能的比特组合的列(如α=10012)和对应的标量倍数的列(如10012RB)构成。然后,使用窗口宽度为w的窗口来检查(908)标量hsA
Figure BDA0000083614960000131
从每个相应的表中检索与每个窗口相对应的RB和QB的标量倍数(910)。将来自两个窗口的表项之和添加至累积器中(912)。然后,根据窗口的宽度w来使累积器加倍w次(914),然后,检查下一窗口(916)。重复检查标量,并且如上所述针对每次重复将表项添加至累积器中并使累积器加倍w次(924),直到计算出共享秘密K(918)为止。该同时多点乘法格式(即,
Figure BDA0000083614960000132
)与图3所示的计算相比提供了0.25个标量乘法的计算代价节约,从而需要总共1.25个标量乘法。
当通信方的一对公开密钥相同时,可以进一步加速上述同时多点乘法方法。在图8a所示的计算中,在使用不同公开密钥的情况下,需要两个表(920、922)来执行同时乘法。参照图8b,当短期公开密钥和长期公开密钥相同(例如,RB=QB)时,通信方仅需要一个表(942)来执行窗口方法。因此,加速的同时标量乘法(720、816)通过建立w比特的窗口宽度(926)而开始,然后,建立RB的标量倍数的表(928)。使用窗口宽度为w的窗口来检查标量hsA
Figure BDA0000083614960000133
(930)。检索与每个窗口相对应的RB的标量倍数(932),并将其存储到累积器中(934)。然后,根据窗口的宽度w来使累积器加倍w次(936),然后,检查下一窗口(938)。重复检查标量,并且如上所述针对每次重复将表项添加到累积器中并使累积器加倍w次(944),直到计算出秘密密钥K(940)为止。
应当认识到,还可以将使用相同公开密钥而得到的、应用于同时点乘的表的代价节约方法应用于联合构造的表。因此,不需要构造两个分离的表或构造公开密钥对RA、QA和RB、QB的联合表减少了运行时间,并可以实现明显大于20%的代价节约。
还应当认识到,使用相同公开密钥对而对密钥协商协议的加速还适用于使用乘法群的实现。上述实现利用了椭圆曲线群,在该椭圆曲线群中,群运算由加法符号指代。如作为非零整数模p的集合的群Fp之类的其他群使用乘法符号。椭圆曲线设置中的加法符号由乘法群设置中的乘法符号替代。
因此,参照图9,作为背景,利用标号1000来示出在乘法群设置中使用MQV总体计算共享秘密密钥K的方法。在Alice的动作集合(1010)中,从区间1至(q-1)随机选择短期私有密钥kA(1012),其中,q是群的阶数。Alice计算对应的短期公开密钥
Figure BDA0000083614960000141
(1014),其中,g是群生成元,并且,Alice将RA和长期公开密钥QA发送至Bob(1016)。在Bob的类似动作集合(1020)中,从区间1至(q-1)随机选择短期私有密钥kB(1022)。Bob计算对应的短期公开密钥
Figure BDA0000083614960000142
(1024),然后将RB和长期公开密钥QB发送至Alice(1026)。然后,Alice在动作集合(1030)中使用这些密钥来计算中间值
Figure BDA0000083614960000143
(1032),接着共享私有密钥的求幂公式
Figure BDA0000083614960000144
(1034),其中,h是群的余因子。在标号1040,Bob计算中间值
Figure BDA0000083614960000145
(1042),使用该中间值来计算共享秘密密钥的求幂公式
Figure BDA0000083614960000146
(1044)。
参照图10,示出了加速针对乘法群的图9的实现的实施例。与上述加速ECMQV类似,当一对公开密钥具有相同值时,减少密集计算的数目。在标号1012,Alice从区间1至(q-1)随机选择短期私有密钥kA。Alice将短期公开密钥RA有意选择为等于长期公开密钥QA(1015),并将RA和QA发送至Bob(1016)。类似地,在标号1022,Bob从区间1至(q-1)随机选择短期私有密钥kB。Bob将短期公开密钥RB有意选择为等于长期公开密钥QB(1025),然后将RB和QB发送至Alice(1026)。在步骤1110,Alice计算中间值
Figure BDA0000083614960000147
(1112),然后将RB和QB进行比较(1114)。如果Bob的一对公开密钥相同,使得RB=QB,则Alice通过计算简化指数
Figure BDA0000083614960000148
(1118)或
Figure BDA0000083614960000149
(即,y取决于
Figure BDA00000836149600001410
),然后计算指数K=RB y(1120),来计算共享秘密密钥的加速求幂公式。否则,如果RB≠QB,则Alice计算共享秘密密钥的非加速求幂公式
Figure BDA00000836149600001411
(1116)。类似地,在标号1122,Bob计算中间值(1124)并将RA和QA进行比较(1126)。如果Alice的一对公开密钥相同,使得RA=QA,则Bob通过计算简化指数
Figure BDA00000836149600001413
(1130)或
Figure BDA00000836149600001414
然后计算指数K=RA z(1132),来计算共享秘密密钥的加速求幂公式。否则,如果RA≠QA,则Bob计算共享秘密密钥的非加速求幂公式
Figure BDA0000083614960000151
(1128)。
在图10所示的实施例中,如果Alice和Bob不确定另一方是否将使用相同的公开密钥,则可能需要比较过程(1114、1126)。在Alice和Bob确定可以采用相同公开密钥对的情况下,可以避免比较过程(1114、1126)并可以直接应用加速MQV协议。
加速MQV方法的另一实施例使用同时求幂,与上述同时多点乘法类似。用于确定密钥的公式
Figure BDA0000083614960000152
可以被重新配置为
Figure BDA0000083614960000153
该重新配置允许使用称作同时多求幂的技术来计算密钥,其中仅使用一个平方集合。
参照图11a,针对值不相等的两个公开密钥示出了同时多求幂的方法。首先建立(1202)预定比特数目w的窗口宽度。然后,建立(1204)RB的小指数α的表(1220),并建立(1206)QB的小指数β的表(1222)。表包括可能比特组合的列(如α=10012)和从对应的求幂得到的值的列(如
Figure BDA0000083614960000154
)。然后,使用窗口宽度为w的窗口来检查指数hsA和hsARB(1208)。从每个相应表中检索利用与每个窗口相对应的指数对RB和QB的求幂的结果(1210)。将来自两个窗口的表项的乘积乘入累积器中(1212)。然后,根据窗口的宽度w将累积器中的值平方w次(1214),此后,检查下一窗口(1216)。重复检查标量,上表项乘入并存储在累积器中,并如上所述针对每次重复将累积器平方w次(1224),直到计算出共享秘密K(1218)为止。
参照图11b,如果一对公开密钥相同,则加速MQV方法的优选实施例去除求幂表(1222)之一。在相同公开密钥对的情形中,简要地参照图10,步骤1120和1132可以使用这里描述的对应加速算法。在图11b中,加速同时求幂通过建立w个比特的窗口宽度而开始(1226),接着利用小指数来建立RB的求幂的结果的表(1228、1242)。使用窗口宽度为w的窗口来检查指数hsA
Figure BDA0000083614960000155
(1230)。检索(1232)与每个窗口相对应的RB的幂并将其存储到累积器中(1234)。然后,根据窗口的宽度w将累积器平方w次(1236),然后,检查下一窗口(1238)。重复检查标量,并且如上所述针对每次重复将表项添加至累积器中并将累积器平方w次(1244),直到计算出共享秘密K(1240)。
应当认识到,可以形成加速MQV算法的不同架构,包括:例如,组织计算的定时,以使通信方并行执行算法的部分。参照图12,针对基于乘法群的加速MQV的情况,示出了并行计算的一个备选实施例。Alice和Bob均并行执行初始步骤集合(1310、1320)。在标号1311,Alice随机选择短期私有密钥kA,将短期公开密钥RA选择为等于长期公开密钥QA,并将RA和QA发送至Bob。同时,在Alice执行步骤1311时,Bob执行步骤1321,从而产生kB,将RB有意选择为等于QB,然后将RB和QB发送至Alice。
并行地,Bob和Alice均接收另一方的一对相同公开密钥。然后,Alice与Bob并行地确定是否QB=RB(1330),Bob还确定是否QA=RA(1340)。对于Alice,在确定相等性(1330)之后,如果RB≠QB,则Alice通过首先计算中间值sA,然后计算共享秘密密钥
Figure BDA0000083614960000161
来计算非加速求幂公式(1350)。然而,如果RB=QB,则Alice通过首先计算sA,然后计算
Figure BDA0000083614960000162
最后计算K=RB y,来计算加速求幂公式(1370)。与Alice并行地,在Bob确定相等性(1340)之后,如果RA≠OA,则Bob通过首先计算中间值sB,然后计算共享秘密密钥
Figure BDA0000083614960000163
来计算非加速求幂公式(1360)。然而,如果RA=QA,则Bob通过首先计算sB,然后计算简化指数最后计算K=RA z,来计算加速公式(1380)。还应当认识到,在椭圆曲线组上,并行计算配置还适用于加速MQV算法。
应当注意,如果Alice和Bob知道正在使用利用相同密钥对的加速算法,则步骤1330和1340中的比较步骤可能不是必要的。换言之,如果Alice事先已经知道,则Alice不需要验证Bob的密钥对是否相同(1330)。因此,在上述情况下,从步骤1320,该算法可以直接前进至步骤1370。类似地,从步骤1310,该算法可以直接前进至步骤1380。
在加速MQV协议的备选方案中,可能仅需要通信方发送单个公开密钥,这是由于短期公开密钥和长期公开密钥相同。这可能减少通信方之间传送的数据量,从而允许使用更大的密钥。
参照图13,示意了仅发送单个公开密钥的基于乘法群的加速MQV协议的实施例。应当理解,Alice和Bob都知道使用相同公开密钥来实现加速算法。Alice通过随机选择kA(1402)和有意选择RA=QA(1405)而开始。然后,Alice将QA发送至Bob(1411)。与两个公开密钥的数据大小相比,这减少了在网络上发送的数据量。
继续参照图13,在Alice已发送来自步骤1411的数据之后,Bob继续随机选择kB(1412)并有意选择RB=QB(1415)。然后,类似地,Bob将QB发送至Alice(1420)。然后,Alice使用加速MQV算法并计算中间分量sA、简化指数
Figure BDA0000083614960000171
最后计算共享秘密密钥K=RB y(1426)。应当认识到,RB=QB。以类似的方式,Bob使用来自步骤1411的接收数据来计算加速MQV算法。Bob计算中间分量sB、简化指数
Figure BDA0000083614960000172
最后计算共享秘密密钥K=RA z(1432)。应当注意,RA=QA。应当认识到,还可以在椭圆曲线群上应用这里描述的这种备选方案。
还可以在加速MQV算法的并行架构中应用数据大小节约。在加速MQV算法的另一实施例中,参照图14,示意了并行架构。与前述实施例类似,应当理解,Alice和Bob都知道使用相同公开密钥来实现加速算法。Alice执行步骤集合(1503),其中,她选择kA并有意选择RA=QA。并行地,Bob执行步骤集合(1505),其中,他选择kB并有意选择RB=QB。然后,Alice将QA发送至Bob(1512),Bob将QB发送至Alice(1516)。在接收到数据之后,Alice使用加速算法来计算共享秘密密钥K(1524)。并行地,Bob使用加速算法来计算共享秘密密钥K(1528)。将认识到,加速MQV算法中的并行架构的上述单个公开密钥传送也适用于椭圆曲线群。
在加速MQV协议的备选方案中,在已产生短期公开密钥的相同ALU上可以进行对通信方的相同公开密钥对的验证。例如,在Alice计算RA之后,她继续验证是否RA=QA。该方案的优点包括:如果公开密钥对相同,则仅需要向通信方发送单个公开密钥而不是两个密钥,从而减小了所需的网络带宽。
参照图15,示意了仅发送单个公开密钥的基于乘法群的加速MQV协议的实施例。在本实施例中,每个通信方具有以下选项:将短期公开密钥有意选择为与长期公开密钥相同。Alice随机选择kA(1402)并通过根据RA=QA或计算
Figure BDA0000083614960000181
来确定RA(1404),以开始操作。然后,Alice确定是否QA=RA(1406)。如果QA≠RA,则Alice向Bob发送RA、QA和相等=假(1408);否则,如果QA=RA,则Alice向Bob发送QA和相等=真(1410)。变量“相等”可以是小比特大小(例如1比特)的布尔参数,指示公开密钥对是否相同。在公开密钥对是相同的情形下(即,相等=真),仅单个公开密钥(如长期公开密钥)和小比特大小参数相等发送至通信方。与两个公开密钥的数据大小相比,这减少了在网络上发送的数据量。
继续参照图15,在Alice已发送来自步骤1408或步骤1410的数据之后,Bob继续随机选择kB(1412)并根据RB=QB或通过计算
Figure BDA0000083614960000182
来确定RA(1414)。然后,类似地,Bob确定是否QB=RB(1416)。如果QB≠RB,则Bob向Alice发送RB、QB以及相等=假(1418);否则,如果QB=RB,则Bob向Alice发送QB和相等=真(1420)。然后,Alice使用来自步骤1418或步骤1420的接收数据来确定是否相等=真(1422)。如果相等=假,则Alice使用非加速MQV方法来计算共享密钥K(1424)。如果相等=真,则Alice使用加速MQV算法并计算中间分量sA、简化指数
Figure BDA0000083614960000183
最后K=RB y(1426)。以类似的方式,Bob使用来自步骤1408或步骤1410的接收数据来确定是否相等=真(1428)。如果相等=假,Bob使用非加速MQV方法来计算共享密钥K(1430)。如果相等=真,则Alice使用加速MQV算法并计算sB、中间值
Figure BDA0000083614960000184
最后K=RA z(1432)。应当认识到,还可以在椭圆曲线群上应用这里描述的该备选方案。
还可以在加速MQV算法的并行架构中应用数据大小节约,数据大小节约是通过由相同通信方计算短期公开密钥和确定相应的相同密钥对状态而得到的。在加速MQV算法的另一实施例中,参照图16,示意了并行架构。Alice执行步骤集合(1502),其中,她选择kA并确定RA。Alice可以有意选择RA=QA或计算并行地,Bob执行步骤集合(1504),其中,他选择kB并确定RB。Bob可以有意选择RB=QB或计算
Figure BDA0000083614960000186
然后,Alice和Bob同时确定他们的相应公开密钥对是否相等(1506、1508)。如果QA≠RA,则Alice向Bob发送RA、QA和相等=假(1510);否则,如果QA=RA,则Alice向Bob发送QA和相等=真(1512)。类似地,并行地,如果QB≠RB,则Bob向Alice发送RB、QB和相等=假(1418);否则,如果QB=RB,则Bob向Alice发送QB和相等=真(1420)。在接收到数据之后,Alice和Bob并行确定是否相等=真(1518、1520)。对于Alice,如果相等=假,则她使用非加速算法来计算共享秘密密钥K(1522)。否则,如果相等=真,则她使用加速算法来计算共享秘密密钥K(1524)。并行地,从步骤1520继续,对于Bob,如果相等=假,则他使用非加速算法来计算共享秘密密钥K(1526)。否则,如果相等=真,则他使用加速算法来计算共享秘密密钥K(1528)。将认识到,加速MQV算法中的并行架构的上述单个公开密钥传送也适用于椭圆曲线群。
上述示例中的每一个指示从一个通信方向另一个通信方发送公开密钥。备选地,可以从证书权威机构或从目录获得长期公开密钥,或者根据先前交换可以将长期公开密钥存储在存储器30内。因此,在仅使用长期公开密钥的情况下,信息在通信方之间的直接传送可以由MAC的交换(tB)发起。
应当认识到,基于相同公开密钥的加速不限于MQV算法。包括短期公开密钥和长期公开密钥的线性组合的其他算法也可以适用。
一类这样的协议是MTI协议,如Handbook of Applied Cryptology,Menzes et al.ISBN 0-8493-8523-7的第518页所述。如图17所示,可以如下实现MTI AO协议:Alice和Bob具有相应的长期私有/公开密钥a、ZA和b、ZB,与另一通信方交换长期公开密钥ZA、ZB或使长期公开密钥ZA、ZB对另一通信方可用。Alice生成短期私有密钥x,并计算对应的短期公开密钥αx,将对应的短期公开密钥αx发送至Bob。
类似地,Bob通常生成短期私有密钥y并向Alice发送短期公开密钥αy
在Alice处根据(αy)aZB x并在Bob处根据(αx)bZA y来计算共享密钥K。
如图17所示,Bob使用长期密钥b、αb作为短期密钥,使得y=b和αy=ZB,并通过向可以对值进行比较的Alice发送ZB,或者通过发送具有消息“相等=真”的形式的指示,或者通过在先协商(例如在长期公开密钥的交换期间),来通知Alice。
在Alice知道a和x时,Alice可以计算共享密钥K=(ZB)a+x,以及,在Bob知道b时,Bob计算(αxZA)n。在Bob和Alice处均执行一次求幂以减小总体计算负载。
尽管参照特定具体实施例描述了本发明,但是在不脱离本发明的精神和范围的前提下,对本发明的各种修改对本领域技术人员来说显而易见。此外,尽管在由软件选择性地激活或再配置的通用计算机中方便地实现所述各种方法,但是本领域技术人员还可以认识到,可以以硬件来执行这些实施例。

Claims (18)

1.一种在参与公开密钥密码系统的一对通信方中的一个通信方处产生共享密钥的方法,所述共享密钥由所述一个通信方用于通过数据通信信道与另一通信方进行通信,每个通信方分别具有长期私有密钥和对应的长期公开密钥,所述共享密钥具有所述通信方中的一个通信方的长期私有密钥与所述通信方中的另一通信方的长期公开密钥和短期公开密钥的组合的形式,所述方法包括以下步骤:
a)所述一个通信方获得所述另一通信方的所述长期公开密钥;
b)所述一个通信方确定所述另一通信方的所述短期公开密钥是否与所述另一通信方的所述长期公开密钥相同;
c)在确定所述另一通信方的所述长期公开密钥和所述短期公开密钥相同时,所述一个通信方利用所述另一通信方的所述长期公开密钥,作为所述另一通信方的所述长期公开密钥和所述短期公开密钥,以产生所述共享密钥;以及
d)利用所述共享密钥来在所述通信方之间交换信息。
2.根据权利要求1所述的方法,其中,在确定所述另一通信方的所述长期公开密钥和所述短期公开密钥相同时,所述一个通信方通过计算所述组合的等效表示来产生所述共享密钥。
3.根据权利要求2所述的方法,其中,所述共享密钥将所述一个通信方的中间值与所述另一通信方的所述长期公开密钥进行组合,所述中间值将所述一个通信方的所述长期私有密钥和长期公开密钥与所述一个通信方的短期私有密钥进行绑定。
4.根据权利要求3或4中任一项所述的方法,其中,所述密码系统是基于加法群来实现的,所述共享密钥取决于
Figure FDA0000083614950000011
RB是所述另一通信方的短期公开密钥,QB是所述另一通信方的长期公开密钥,
Figure FDA0000083614950000012
是从RB导出的整数,所述方法还包括以下步骤:所述一个通信方根据具有形式vQB的等效表示来计算所述共享密钥K,其中,v取决于
Figure FDA0000083614950000013
Figure FDA0000083614950000014
5.根据权利要求4所述的方法,其中,所述共享密钥是根据ECMQV密钥协商协议来产生的,并具有形式
Figure FDA0000083614950000021
其中,h是椭圆曲线群的余因子,sA是所述中间值,所述方法还包括以下步骤:将所述共享密钥K计算为vQB,其中,
Figure FDA0000083614950000022
6.根据权利要求3所述的方法,其中,所述共享密钥是根据基于乘法群而实现的MQV密钥协商协议来产生的,并需要具有形式
Figure FDA0000083614950000023
的共享密钥,其中
RB是所述另一通信方的短期公开密钥,
QB是所述另一通信方的长期公开密钥,
是从所述短期公开密钥导出的整数,以及
sA是所述中间值,所述方法还包括以下步骤:将所述共享密钥计算为QB y,其中y=hsAQB+hsA,h是群的余因子。
7.根据权利要求3所述的方法,其中,所述共享密钥是根据MTI密钥协商协议来产生的,并具有形式K=(αy)aZB x,其中
αy是所述另一通信方的短期公开密钥,
ZB是所述另一通信方的长期公开密钥,
X是所述一个通信方的短期私有密钥,以及
a是所述一个通信方的长期私有密钥,所述方法包括以下步骤:所述一个通信方将所述共享密钥计算为K=(ZB)a+x
8.根据权利要求2至7中任一项所述的方法,包括以下步骤:将从所述另一通信方接收的所述短期公开密钥和所述长期公开密钥进行比较,以确定所述密钥是否相同。
9.根据权利要求2至7中任一项所述的方法,包括以下步骤:在从所述另一通信方接收的消息中检查所述公开密钥相同的指示符,并在识别所述指示符时计算所述等效表示。
10.根据权利要求2至7中任一项所述的方法,其中,所述等效表示是所述长期公开密钥的线性组合,所述方法包括以下步骤:根据从所述长期公开密钥导出的预先计算值,累积所述共享密钥。
11.根据权利要求10所述的方法,其中,所述密码系统是基于加法群来实现的,所述预先计算值是所述长期公开密钥的倍数。
12.根据权利要求10所述的方法,其中,所述密码系统是基于乘法群来实现的,所述预先计算值是所述长期公开密钥的求幂的结果。
13.一种具有通过通信链路进行通信并共享共享密钥的一对通信方的密码系统,所述共享密钥由所述通信方中的至少一个根据权利要求1至12中任一项所述的方法来产生。
14.一种与密码系统中的一个通信方相关联的密码模块,所述密码模块包括:
控制器;
算术逻辑单元,用于根据另一通信方的短期和长期公开密钥与所述一个通信方的私有密钥的组合来产生共享密钥;以及
比较器,用于确定所述另一通信方的所述短期公开密钥和长期公开密钥是否相同;
其中,所述控制器用于在所述比较器确定所述密钥相同的情况下,指示所述算术单元利用所述长期公开密钥作为所述短期公开密钥,以计算所述共享密钥。
15.根据权利要求14所述的密码模块,其中,所述控制器用于指示所述算术逻辑单元计算所述组合的等效表示,以计算所述共享密钥。
16.根据权利要求15所述的密码模块,其中,从所述另一通信方的所述长期公开密钥导出的预先计算值存储在所述存储器中,所述算术逻辑单元用于使用所述预先计算值来计算所述共享密钥。
17.根据权利要求14所述的密码模块,其中,所述比较器可操作用于将表示所述长期公开密钥和所述短期密钥的一对值进行比较。
18.根据权利要求14所述的密码模块,其中,所述比较器用于将指示符与已知值进行比较。
CN200980156789.7A 2008-12-16 2009-12-16 密钥协商协议的加速 Active CN102318260B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12293608P 2008-12-16 2008-12-16
US61/122,936 2008-12-16
PCT/CA2009/001846 WO2010069063A1 (en) 2008-12-16 2009-12-16 Acceleration of key agreement protocols

Publications (2)

Publication Number Publication Date
CN102318260A true CN102318260A (zh) 2012-01-11
CN102318260B CN102318260B (zh) 2016-04-20

Family

ID=42242002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980156789.7A Active CN102318260B (zh) 2008-12-16 2009-12-16 密钥协商协议的加速

Country Status (6)

Country Link
US (1) US8639931B2 (zh)
EP (1) EP2359523B1 (zh)
JP (1) JP5329676B2 (zh)
CN (1) CN102318260B (zh)
CA (1) CA2746830C (zh)
WO (1) WO2010069063A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111373692A (zh) * 2017-10-19 2020-07-03 三菱电机株式会社 密钥共享装置、密钥共享方法、密钥共享程序和密钥共享系统
CN111466095A (zh) * 2017-12-13 2020-07-28 区块链控股有限公司 安全共享加密材料的系统和方法
CN112468291A (zh) * 2020-11-02 2021-03-09 深圳依时货拉拉科技有限公司 一种同步敏感数据的方法、装置、系统、计算机设备及计算机可读存储介质

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2334008A1 (en) * 2009-12-10 2011-06-15 Tata Consultancy Services Limited A system and method for designing secure client-server communication protocols based on certificateless public key infrastructure
WO2012003586A1 (en) * 2010-07-08 2012-01-12 Certicom Corp. System and method for performing device authentication using key agreement
EP2493112B1 (en) * 2011-02-28 2018-02-28 Certicom Corp. Accelerated key agreement with assisted computations
US8549299B2 (en) * 2011-02-28 2013-10-01 Certicom Corp. Accelerated key agreement with assisted computations
CN102412971B (zh) 2011-11-30 2015-04-29 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
US8787564B2 (en) 2011-11-30 2014-07-22 Certicom Corp. Assessing cryptographic entropy
US8989374B2 (en) * 2012-06-15 2015-03-24 Kabushiki Kaisha Toshiba Cryptographic device for secure authentication
US8948400B2 (en) * 2012-06-15 2015-02-03 Kabushiki Kaisha Toshiba Host device
US8898463B2 (en) * 2012-06-15 2014-11-25 Kabushiki Kaisha Toshiba Device
US8948386B2 (en) 2012-06-27 2015-02-03 Certicom Corp. Authentication of a mobile device by a network and key generation
US8971851B2 (en) 2012-06-28 2015-03-03 Certicom Corp. Key agreement for wireless communication
US9088408B2 (en) 2012-06-28 2015-07-21 Certicom Corp. Key agreement using a key derivation key
CN103414569B (zh) * 2013-08-21 2016-08-10 王威鉴 一种建立抗攻击的公钥密码的方法
US9178699B2 (en) 2013-11-06 2015-11-03 Blackberry Limited Public key encryption algorithms for hard lock file encryption
US9591479B1 (en) * 2016-04-14 2017-03-07 Wickr Inc. Secure telecommunications
US10348502B2 (en) 2016-09-02 2019-07-09 Blackberry Limited Encrypting and decrypting data on an electronic device
US10341102B2 (en) 2016-09-02 2019-07-02 Blackberry Limited Decrypting encrypted data on an electronic device
WO2019231392A1 (zh) * 2018-05-30 2019-12-05 华为国际有限公司 一种密钥协商系统、方法及装置
WO2022146437A1 (en) * 2020-12-30 2022-07-07 Pqsecure Technologies, Llc High-performance systems to validate isogeny-based cryptography keys
US20240048382A1 (en) * 2022-08-03 2024-02-08 1080 Network, Llc Systems, methods, and computing platforms for executing credential-less network-based communication exchanges

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010046291A1 (en) * 1997-10-17 2001-11-29 Scott A. Vanstone Accelerated signature verification on an elliptic curve
US20030123668A1 (en) * 2001-12-31 2003-07-03 Robert Lambert Method and apparatus for computing a shared secret key
US20070033405A1 (en) * 2005-06-14 2007-02-08 Alfred Menezes Enhanced key agreement and transport protocol
CN101047494A (zh) * 2006-05-14 2007-10-03 华为技术有限公司 一种pon系统中密钥协商的方法和系统
US7340600B1 (en) * 2000-01-14 2008-03-04 Hewlett-Packard Development Company, L.P. Authorization infrastructure based on public key cryptography

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5266596A (en) 1995-04-21 1996-11-07 Certicom Corp. Method for signature and session key generation
US5761305A (en) 1995-04-21 1998-06-02 Certicom Corporation Key agreement and transport protocol with implicit signatures
CA2176972C (en) 1995-05-17 2008-11-25 Scott A. Vanstone Key agreement and transport protocol with implicit signatures
CA2306282C (en) * 1997-10-17 2012-01-03 Certicom Corp. Accelerated signature verification on an elliptic curve
JP2003131568A (ja) * 2001-10-26 2003-05-09 Hitachi Ltd 楕円曲線署名検証方法及び装置並びに記憶媒体
CA2592875C (en) * 2005-01-18 2016-09-06 Certicom Corp. Accelerated verification of digital signatures and public keys
US7747865B2 (en) * 2005-02-10 2010-06-29 International Business Machines Corporation Method and structure for challenge-response signatures and high-performance secure Diffie-Hellman protocols
US7908482B2 (en) * 2005-08-18 2011-03-15 Microsoft Corporation Key confirmed authenticated key exchange with derived ephemeral keys

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010046291A1 (en) * 1997-10-17 2001-11-29 Scott A. Vanstone Accelerated signature verification on an elliptic curve
US7340600B1 (en) * 2000-01-14 2008-03-04 Hewlett-Packard Development Company, L.P. Authorization infrastructure based on public key cryptography
US20030123668A1 (en) * 2001-12-31 2003-07-03 Robert Lambert Method and apparatus for computing a shared secret key
US20070033405A1 (en) * 2005-06-14 2007-02-08 Alfred Menezes Enhanced key agreement and transport protocol
CN101047494A (zh) * 2006-05-14 2007-10-03 华为技术有限公司 一种pon系统中密钥协商的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DARREL HANKERSON 等: "《Guide to Elliptic Curve Cryptography》", 31 December 2004 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111373692A (zh) * 2017-10-19 2020-07-03 三菱电机株式会社 密钥共享装置、密钥共享方法、密钥共享程序和密钥共享系统
CN111466095A (zh) * 2017-12-13 2020-07-28 区块链控股有限公司 安全共享加密材料的系统和方法
CN111466095B (zh) * 2017-12-13 2024-05-14 区块链控股有限公司 安全共享加密材料的系统和方法
CN112468291A (zh) * 2020-11-02 2021-03-09 深圳依时货拉拉科技有限公司 一种同步敏感数据的方法、装置、系统、计算机设备及计算机可读存储介质

Also Published As

Publication number Publication date
EP2359523A4 (en) 2013-12-25
JP2012512574A (ja) 2012-05-31
EP2359523B1 (en) 2017-04-05
CA2746830C (en) 2016-06-07
US20100153728A1 (en) 2010-06-17
JP5329676B2 (ja) 2013-10-30
US8639931B2 (en) 2014-01-28
CA2746830A1 (en) 2010-06-24
CN102318260B (zh) 2016-04-20
EP2359523A1 (en) 2011-08-24
WO2010069063A1 (en) 2010-06-24

Similar Documents

Publication Publication Date Title
CN102318260B (zh) 密钥协商协议的加速
Debiao et al. An ID-based client authentication with key agreement protocol for mobile client–server environment on ECC with provable security
US9571274B2 (en) Key agreement protocol
US8549299B2 (en) Accelerated key agreement with assisted computations
US20030059041A1 (en) Methods and apparatus for two-party generation of DSA signatures
Battagliola et al. Threshold ecdsa with an offline recovery party
US20160352689A1 (en) Key agreement protocol
EP2493112B1 (en) Accelerated key agreement with assisted computations
Lian et al. Provably secure E-cash system with practical and efficient complete tracing
Lee et al. Provably secure extended chaotic map-based three-party key agreement protocols using password authentication
Muleravicius et al. Security, trustworthiness and effectivity analysis of an offline E-cash system with observers
WO2016187690A1 (en) Key agreement protocol
Damgård et al. On the security of distributed multiprime RSA
Popescu A secure e-cash transfer system based on the elliptic curve discrete logarithm problem
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
Salome et al. Pairing free identity-based blind signature scheme with message recovery
Al-Saidi et al. A new idea in zero knowledge protocols based on iterated function systems
Yum et al. Efficient fair exchange from identity-based signature
Tian et al. Deniability and forward secrecy of one-round authenticated key exchange
Yang et al. An improvement in strong designated verifier signatures
Youn et al. ID‐Based Optimistic Fair Exchange Scheme Based on RSA
Lin RPCAE: a novel revocable proxy convertible authenticated encryption scheme
Ranjithkumar A Secure ElGamal Cryptosystem Using Zero Knowledge Protocol
Tian et al. mOT+: An Efficient and Secure Identity-Based Diffie-Hellman Protocol over RSA Group
Kar Id-based deniable authentication protocol suitable for mobile devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191028

Address after: Voight, Ontario, Canada

Patentee after: BlackBerry Ltd.

Address before: Rika Univ.

Patentee before: CERTICOM Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240523

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Voight, Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada

TR01 Transfer of patent right