CN102713921B - 使用聚集的求逆来确定曲线上的配对 - Google Patents

使用聚集的求逆来确定曲线上的配对 Download PDF

Info

Publication number
CN102713921B
CN102713921B CN201080061296.8A CN201080061296A CN102713921B CN 102713921 B CN102713921 B CN 102713921B CN 201080061296 A CN201080061296 A CN 201080061296A CN 102713921 B CN102713921 B CN 102713921B
Authority
CN
China
Prior art keywords
inverting
pairing
mathematics
curve
scalar
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.)
Active
Application number
CN201080061296.8A
Other languages
English (en)
Other versions
CN102713921A (zh
Inventor
K·劳特
P·蒙哥马利
M·内赫里格
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102713921A publication Critical patent/CN102713921A/zh
Application granted granted Critical
Publication of CN102713921B publication Critical patent/CN102713921B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • H04L9/3073Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

公开了允许为曲线确定数学配对以便在密码术中使用的一个或多个技术和/或系统。聚集用于为曲线确定数学配对的多个求逆(例如,在计算的元素的二叉树表示的各个层中聚集成单个求逆)。使用聚集的多个求逆沿从右向左读取的标量的二进制表示在仿射坐标中为曲线确定数学配对。

Description

使用聚集的求逆来确定曲线上的配对
背景
计算机越来越多地经由网络(诸如因特网)来互连,安全和认证问题变得越来越重要。例如涉及基于密钥的密码的密码技术可取构成消息的可理解的数据(例如,通常被称为明文)的序列,并通过编码(enciphering)过程在数学上将它们变换成看上去不可理解的数据(例如,通常被称为密文)。在此示例中,编码可被逆转,从而允许具有适当密钥的密文接收者将密文变换回明文,同时使得那些没有适当密钥的人非常难以(如果不是几乎不可能)恢复明文。
公钥密码技术是基于密钥的密码的一个实施例。例如,在公钥密码术中,各个通信方具有公/私密钥对。使得每一相应对中的公钥可公用(例如,或至少对打算发送加密通信的他人可用),而使得私钥保密。例如,为了使用加密将明文消息传输给接收方,发起方可使用接收方的公钥将明文消息加密成密文消息,并将密文消息传输给接收方。在此示例中,当接收密文消息之后,接收方可使用其秘密的私钥来对消息解密,从而恢复原来的明文消息。
公/私密钥密码术的示例包括生成两个大质数,使其相乘以得到一个大合数,该大合数是公开的。在此示例中,如果质数被适当选择且足够大,则对不知道该质数的某人而言,将非常难以根据仅仅知道该合数来确定质数。然而,为了使该方法为安全的,合数的大小应大于1000位。在某些情况中,这样大的大小使得该方法使用起来是不切实际的。
认证的一个示例是一方或机器试图证明它被授权来访问或使用产品或服务的情况。通常,产品ID系统被用于软件程序,其中用户输入在正确许可的软件包装外戳印的产品ID序列作为已经适当地对该软件付费的证明。如果产品ID序列过长,则它可能是烦琐且不是用户友好的。其它常见的示例包括用户认证,即用户使用认证码来向计算机系统标识他们自己。
作为另一示例,在密码术中,通常使用椭圆曲线来生成密码密钥。椭圆曲线是具有适于密码术的结构和性质的数学对象。已经标准化了用于椭圆曲线的许多协议以供在密码术中使用。密码术中的近期发展涉及使用配对,其中可组合来自一个或多个群中的元素对,诸如椭圆曲线上的点,来生成来自另一个群的新元素以创建密码系统。
概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。
可通常基于秘密来执行加密和解密。该秘密可利用点群的阶,或该群的某个其它特征,诸如生成元素(generator)或生成元素的倍数。可在密码术中使用各种不同的群,诸如为群的元素在椭圆曲线上实现点。从椭圆曲线得到的元素(例如,点)的群可例如在加密/解密中使用,因为这样的群的离散对数问题(DLP)被认为是困难的。在密码术中偏好困难的DLP,以便例如创建安全的加密/解密过程。
当前,当计算椭圆曲线上的配对时,可能需要诸如椭圆曲线在其上定义的有限域中的乘法或求逆(inversion)等大量运算。可尝试减少乘法的数目来减少计算开销,和/或以其它方式加速计算。用于加速计算的一种技术是在计算配对时减少进行的求逆的数量。
例如,当在仿射空间中执行时,乘法和求逆两者被执行,其中求逆在计算上比乘法更为昂贵。为了减少求逆的数目,当前的从业者使曲线点的坐标系从仿射空间改到射影空间。这具有减少求逆的效果,同时增加了乘法的数目,而乘法在计算上较为便宜。
此处描述的技术和/或系统中的一个或多个提供了将坐标转换到射影空间的替换方式,同时仍减少了在椭圆曲线上计算配对所需的求逆的数目。使用这些技术和系统,可例如为仿射空间中的坐标聚集求逆,并对用于配对计算的加动作重用聚集的求逆。此外,计算的各部分可例如在多核系统上并行化,以便加速总体计算时间。以此方式,例如,与目前的实现相比,在密码系统中使用的配对可使用较少计算资源以及较短的时间(例如,更快)来计算。
在一个实施例中,当确定曲线的数学配对以便在密码术中使用时,聚集在确定曲线的数学配对时使用的多个求逆(例如,聚集成单个求逆,诸如配对计算中的中间计算)。使用聚集的多个求逆沿从右向左读取的标量的二进制表示在仿射坐标中确定曲线的数学配对。
为实现上述内容和相关目的,以下描述和附图阐述了各个说明性方面和实现。这些方面和实现仅指示可以使用一个或多个方面的各种方式中的一些。结合附图阅读以下详细描述,则本公开的其他方面、优点、以及新颖特征将变得显而易见。
附图说明
图1是示出根据此处所公开的方法和/或系统中的一个或多个的示例性密码系统的框图。
图2是使用产品标识符来确认软件的示例性系统的图示。
图3是用于确定曲线的数学配对以便在密码术中使用的示例性方法的流程图。
图4是示出此处所描述的方法的一个或多个中各个部分的实现的一个实施例的流程图。
图5是示出此处所描述的技术和/或系统中的一个或多个的示例性实现的流程图。
图6是示出用于确定曲线的数学配对以便在密码术中使用的示例性系统的组件框图。
图7是示出此处所描述的系统中的一个或多个的示例性实现的组件框图。
图8是示出此处所描述的系统中的一个或多个的示例性实现的组件框图。
图9是可被设计成实现此处所描述的方法和/或系统中的一个或多个的示例性计算机可读介质的图示。
图10是可被设计成实现此处所描述的方法和/或系统中的一个或多个的示例性环境的组件框图。
详细描述
现在参考附图来描述所要求保护的主题,所有附图中使用相同的附图标号来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对所要求保护的主题的全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其他情况下,以框图形式示出了各个结构和设备以便于描述所要求保护的主题。
此处描述的一个或多个密码配对技术和/或系统可确定可用于密码应用的椭圆曲线的数学配对。例如,它们可被用于为密码应用确定所提议的授权(例如,电子签名)的配对。
通常,基于配对的密码系统利用其元素公开知晓(例如,通过知道椭圆曲线)的(元素和从该曲线得到的二进制乘法器的)群。用于计算配对的标量是公开知晓的。未知的秘密或是配对的输入点,或被隐式地包含在配对的输入点中。安全性的基础在于相关联的离散对数问题的难度。如图1所示的基于配对的加密和解密,作为示例,通常指的是使用基于代数曲线的各方面或特征生成的密钥的加密和解密。图1和2的示例性密码系统可基于曲线是公开知晓的但生成的点是秘密的,因为由标量从曲线生成的点是秘密的(例如,且难以确定)。在基于配对的密码术的一个实施例中,曲线可以是椭圆曲线,构成群的元素可从椭圆曲线上的点生成。如本领域的普通技术人员可以理解地,在典型的情况中,点P是公开知晓的,而标量m是秘密的。然后也使得点Q=mP是公开的。因为相关联的离散对数问题是困难的,从P和Q确定m是不可行的。从而,秘密通常仅仅是该标量,而点是公开的。
可使用基于配对的密码系统来对各种信息加密。例如,可使用密码系统来生成“短”签名或产品标识符,该签名或产品标识符是允许例如对机器、程序或用户进行确认和/或认证的代码。签名可以是“短”签名,因为它使用相对少量的字符。
图1是示出根据此处所公开的方法和系统中的某些实施例的示例性密码系统100的框图。示例性密码系统100包括加密器102和解密器104。可在加密器102的输入模块108处接收明文消息106,加密器102是基于公钥(公开知晓的群的元素)对消息106加密的基于配对的加密器,其中公钥是基于秘密标量(仅由解密器104所知)生成的。在一个实施例中,群可以是从由加密器102使用的椭圆曲线生成的点的群,如下更详细讨论。明文消息106通常是未加密消息,但加密器102可加密其它类型的消息。因此,消息106可替换地由某个其它组件(未示出)或用户来加密或编码。
加密器102的输出模块110输出明文消息106的加密版本,该加密版本可以是密文112。可包括不可理解的文本或某种其它数据的密文112然后可被传输给解密器104,解密器104例如可在远离实现加密器102的计算机系统的计算机系统上实现。给定密文112的加密性质,加密器102和解密器104之间的通信链路不必是安全的(例如,通常假设该通信链路不是安全的)。作为示例,通信链路可以是使用各种常规公共和/或专有协议中的一个或多个实现的各种公共和/或私有网络之一,并且包括有线和无线实现。另外,通信链路可包括其它非计算机网络组件,诸如对包括密文的介质的亲手递送或产品分发链的其它组件。
解密器104在输入模块114处接收密文112,且因为解密器104知道与用于对消息106加密的公钥对应的秘密密钥(例如,以及必要的生成元素),所以解密器104可对密文112解密以恢复原来的明文消息106,该明文消息由输出模块116输出为明文消息118。在一个实施例中,解密器104是基于从椭圆曲线生成的点的群(例如,加密器102所使用的群)对消息解密的基于配对的解密器。
在一个实施例中,在示例性密码系统100中,基于秘密执行加密和解密,该秘密可以是用于生成公钥(公钥是来自椭圆曲线的点的群的元素)的标量,从而使得问题的解难以确定。该秘密为解密器104所知,而公钥可基于为加密器102所知的秘密生成。在此实施例中,该知识可允许加密器102加密明文消息,该加密的明文消息随后可仅由解密器104解密。包括加密器102在内的、不具有对该秘密的知识的其它组件,不能对密文进行解密(例如,尽管解密在技术上是可能的,但它在计算上不是可行的)。类似地,在一个实施例中,解密器104还可使用秘密密钥基于明文消息来生成消息;该过程被称为数字签署明文消息。在此实施例中,经签署的消息可被传输给诸如加密器102等其它组件,该组件可基于公钥来验证数字签名。
图2是根据此处所描述的方法和系统的一些实施例使用产品标识符来确认软件的示例性系统200的图示。示例性系统包括软件副本生成器202,它包括产品标识符(ID)生成器204。软件副本生成器202可生产软件介质210(例如,CD-ROM、DVD(数字多功能盘)等),软件介质210可包含共同实现一个或多个应用程序(例如,文字处理程序、电子表格程序、操作系统、程序套件等)的完整副本所需的文件。这些文件可从源文件206接收,源文件可以是本地源(例如,生成器202内部的硬盘驱动器)、远程源(例如,经由网络耦合到生成器202)或其组合。尽管在图2示出了单个生成器202,但通常多个生成器单独和/或协作操作以提高可生成软件介质210的速率。
产品ID生成器204可生成产品ID 212,产品ID 212可包括数字、字母和/或其它符号。生成器204使用此处所述的基于配对的加密技术和/或系统来生成产品ID212。产品ID 212可被印刷在标签上以及粘贴在包含软件介质210的载体或其中放置软件介质210的盒子上。或者,可使得产品ID 212电子可用,诸如当经由在线源接收应用程序的软副本(例如,经由因特网下载软件)时向用户提供的证书。产品ID 212可提供多个功能,诸如被密码确认以验证产品ID是有效的产品ID(例如,从而允许安装该应用程序)。作为又一示例,产品ID 212可用于认证它所关联的特定软件介质210。
所生成的软件介质210和相关联的产品ID 212可被提供给分发链214。分发链214可表示各种常规分发系统和方法中的一个或多个,包括可能的一个或多个“中间人”(例如,批发商、供货商、经销商、零售店(在线或实体)等)和/或电子分发,诸如经由因特网。不论分发介质210和相关联的产品ID 212的方式,介质210和产品ID 212通常例如由客户计算机218的用户购买(例如,受许可)或被分发给客户计算机218的用户。
客户计算机218可包括介质读取器220,该介质读取器能够读取软件介质210并将应用程序安装在客户计算机218上(例如,将应用程序安装在客户计算机218的硬盘驱动器或存储器(未示出)上)。在一个实施例中,安装过程的一部分可涉及输入产品ID 212(例如,来确认许可的副本)。该输入可以是手动输入(例如,用户经由键盘键入产品ID),或者是自动输入(例如,计算机218自动访问与应用程序相关联的许可证的特定字段,并从中提取产品ID)。客户计算机218还可包括产品ID确认器222,该确认器在应用程序的安装期间确认产品ID 212。在一个实施例中,确认可使用此处所描述的基于配对的解密技术和/或系统来执行。如果确认器222确定产品ID是有效的,则可采取合适的动作过程(例如,软件介质210上的安装程序允许应用程序被安装在计算机218上)。然而,如果确认器222确定产品ID无效,则可采取不同的动作过程(例如,安装程序终止安装过程,阻止应用程序被安装)。
在一个实施例中,产品ID确认器222还可任选地基于产品ID 212认证软件介质(例如,应用程序)。该认证例如验证在计算机218输入的产品ID 212对应于所访问的应用的特定副本。作为示例,认证可在不同的时间执行,诸如在安装期间或当请求产品支持或升级时。或者,在该实施例中,认证可在远程位置(例如,在客户计算机218的用户呼叫要求技术支持时在呼叫中心处,在接收协助之前可能需要用户提供产品ID 212)执行。
在一个实施例中,如果应用程序制造商期望利用产品ID的认证能力,则生成器204为应用程序的每一副本生成的产品ID可以是唯一的。作为示例,可通过向应用程序的每一副本分配不同的初始号或值来创建唯一的产品ID(例如,该初始值然后用作生成产品ID的基础)。与应用程序的副本相关联的唯一值可由制造商可任选地维护为随同应用程序的特定副本的指示的认证记录208(例如,数据库或列表)。副本的指示例如可以是嵌入在应用程序中或软件介质210上的序列号,且可按照各种常规方式中的任一种隐藏。或者,例如,各个号本身可以是与特定副本相关联的序列号,从而允许制造商通过从产品ID提取初始值并验证它与嵌入在应用程序中或软件介质210上的序列号是相同的来验证应用程序的真实性。
可设计允许为曲线确定数学配对的方法,其中作为密码密钥提交的元素的第一集合(例如,椭圆曲线上的点)可与曲线上的已知点比较,并用于密码目的。有效的密码系统通常是基于群的,其中该群的离散对数问题(DLP)是困难的(例如,难以计算),诸如来自椭圆曲线的点的群。DLP可在群中用公式表示,群是元素以及诸如群乘法等二元运算的集合。作为说明性示例,DLP可以是:给定有限群G中的元素g以及是G的元素的另一元素h,找到整数x,使得gx=h。生成配对供密码术中使用通常需要其上定义椭圆曲线的有限域中的大量基本乘法。
图3是用于确定曲线的数学配对以便在密码术中使用的示例性方法300的流程图。示例性方法300在302开始并涉及在304聚集在为曲线确定数学配对中使用的多个求逆。因为椭圆曲线上的配对运算利用有限域中的大量基本乘法,为了使得配对运算更为高效,例如可减少乘法的数目和/或可在其它配对运算中产生效率。
在一个实施例中,在曲线的有限域中,为配对运算执行乘法和求逆两者(例如,标识乘法逆元或倒数)。求逆在计算上通常比乘法执行起来更为昂贵。例如,进行计算的求逆对乘法的比率通常是八比一,因为用于曲线点的坐标系通常从仿射改为射影以便减少求逆的数目。作为求逆确定的说明性示例,为了近似得到非零实数x的乘法逆元,可用2y-xy2来反复替换数y。在此示例中,当对y的改变处于阈值内时,y是x的乘法逆元的近似值。可以理解,该示例仅用于说明目的,且存在用于确定求逆的其它技术,尤其是对于诸如复数等其它类型的数。
在示例性方法300中,例如当在仿射坐标系中执行时,可通过组合各求逆并在同一时间确定它们来极大地减少求逆的数目。在一个实施例中,当对配对计算使用仿射坐标时,各个翻倍(例如,乘法)和加动作使用有限域求逆来计算在随后动作中求值的线的斜率值。在该实施例中,可例如使用“蒙哥马利技巧(Montgomery’s trick)”来用单个求逆和3(l-1)个乘法来替换l个有限域求逆来聚集求逆。
作为蒙哥马利技巧的说明性示例,为了确定元素x和y的求逆,代替确定两个求逆,可确定积xy并计算其逆元。在此示例中,x和y的逆元然后可通过以下乘法来确定:x-1=(xy)-1y而y-1=(xy)-1x。以此方式,在该示例中,两个元素x和y的求逆可通过一个求逆以及三个乘法来确定。在要对n个元素确定求逆时,可仅执行一个求逆和3(n-1)个乘法。从而,在一个实施例中,当配对计算包括多个求逆(n个)时,可将n个求逆聚集成一个求逆。
在一个实施例中,令[a1,…,as]为要计算其倒数[a1 -1,…,as -1]的元素序列。通过首先计算积a1…as、其倒数(a1…as)-1、对于为1≤i≤s的积a1ai-1ai+1as、以及按照下式计算的单个元素的倒数来计算各倒数:
ai -1=(a1 ai-1 ai·1 as)(a1 as)-1.该动作可用1个求逆和3(s-1)个乘法执行。即,s个求逆可用1个求逆和3(s-1)个乘法来代替。
在一个实施例中,积a1a2…as可例如在二叉树中用s-1个乘法来计算,其中s-1个积可被存储供求逆聚集中使用。此外,在该实施例中,计算了倒数(a1a2…as)-1,并沿着同一棵树用2(s-1)个乘法计算后续的倒数。
回到图3的示例性方法300,在306,使用聚集的求逆沿从右向左读取的标量的二进制表示在仿射坐标中为曲线确定数学配对。当为曲线计算Tate配对时,典型的Miller循环算法对该标量从左向右(或从上到下)进行。作为说明性示例,假定k>1,使得Miller算法分母被消去。
对以下示例性实施例和说明性示例使用以下记号:令p>3为质数,且Fq为特征p的有限域。令E为在Fq上定义的、符合Weierstrass等式E:y^2=x^3+ax+b的椭圆曲线。对符合r|#E(Fq)的质数r,令k为E对于r的嵌入度,即k是符合r|q^k-1的最小正整数。E上的r扭点的集合可被表示为E[r],而对于i>0,F_(q^i)有理r扭点的集合被表示为E(F_(q^i))[r]。令φ_q为E上的q幂Frobenius自同态。
此外,定义
G_1=E[r]∩ker(φ_q-[1])=E(F_q)[r],
令k>1。经约简的Tate配对是图:
e_r=G_1×G_2→G_3,
(P,Q)f_(r,P)(Q)^((q^k-1)/r),
其中f_(r,P)∈F_q(E)是除数为r(P)-r(O)的函数。在F_q(E)中将该函数表示为由通过E上的两点R和S的线(表示为1_(R,S))给定。如果R=S,则该线由该曲线的通过R的切线给定。
以下示出了用于计算Tate配对(使用以上记号)的典型Miller循环的一个实施例:
输入:P∈G1,Q∈G2,r=(rm-1,…,r0)2
输出: e r ( P , Q ) = f r , P ( Q ) q k - 1 r
1:R←P,f←1
2:for(i←m-2;i≥0;i--)do
3:f←f2·lR,R(Q)
4:R←[2]R
5:if(ri=1)then
6:f←f·lR,P(Q)
7:R←R+P
8:end if
9:end for
10: f q k - 1 r
11:return f
在该说明性示例中,以上算法中的行3和4一起被统称为翻倍动作,而行6和7被统称为加动作。
在示例性方法300的动作306的一个实施例中,Miller循环算法可被修改,其中从右向左(或自下而上)读取二进制表示。以下是从右向左(或自下而上)方法的说明性示例:
输入:P∈G1,Q∈G2,r=(rm-1,…,ru)2
输出: e r ( P , Q ) = f r , R ( Q ) q k - 1 r
1:R←P,fR←1
2:V←O,fV←1
3:for(i←0;i≤m-1;i++)do
4:if(ri=1)then
5:fV←fV·fR·lV,R(Q)
6:V←V+R
7:end if
8: f R ← f R 2 · l R , R ( Q )
9:R←[2]R
10:end for
11: f ← f V q k - 1 r
12:return f
在此说明性示例中,翻倍动作在行8和9,加动作在行5和6。以上算法进行了m个翻倍动作和h个加动作。在此示例中,尽管可进行m次循环,但仅使用m-1个翻倍动作,最后一个不会影响计算。
此外,在此实施例中,当使用“自下而上”方法时,加动作可在行5和6(在以上的自下而上算法中)中延后。此处,例如,相关函数值和对应的点的对(fR,R)可被存储在列表L中(例如数据库中),且可稍后计算最终函数值的计算。作为说明性示例,以下算法提供了通过存储值和点(见以下算法的行5)延后加动作的自下而上方法,并稍后执行最终函数值的计算(见行10):
输入:P∈G1,Q∈G2,r=(rm-1,…,r0)2
输出: e r ( P , Q ) = f r , P ( Q ) q k - 1 r
1:R←P,fR←1
2:L←[]
3:For(i←0;i≤m-1;i++)do
4:if(ri=1)then
5:将(fR,R)追加到L。
6:end if
7: f R ← f R 2 · l R , R ( Q )
8:R←[2]R
9:End for
10:根据L中的对计算fr,P(Q)。
11: f ← f V q k - 1 r
12:return f
在此示例中,该方法可比目前的自上而下算法更为高效,因为延后计算允许节约等于F_(q^k)中h-1)个乘法的成本。
在一个实施例中,使用聚集的求逆,以上算法的行10“根据L中的对计算fr,P(Q),也可沿二叉树来执行。在此实施例中,在二叉树的每一层中,可应用聚集的求逆技术。以此方式,例如,如上所述,在为曲线计算数学配对时,可用[log(h)]个求逆和3(h-1-[log(h)])个乘法来代替(h-1)个求逆。从而,求逆的数目被显著地减少,同时增加了少量的乘法,而乘法在计算上较为便宜。
在为曲线计算了数学配对之后,图3的示例性方法300在308结束。
图4是示出此处所描述的方法的一个或多个中各个部分的实现的一个实施例400的流程图。使用聚集的多个求逆沿从右向左读取的标量的二进制表示在仿射坐标中为曲线确定数学配对可包括在402从右向左读取标量的二进制表示。如上所述,例如当曲线点坐标在仿射空间中时,标量的二进制表示可从右向左读取。
在404,通过计算曲线点的标量倍数来确定曲线点的倍数,其中标量倍数例如是仿射空间中曲线点的m重(fold)和。即,例如,自下而上方法算法的乘法动作可被执行,可确定多个曲线点倍数。该动作通常被称为翻倍动作,例如,其中对于(i←0;i≤m-1;i++),进行和R←[2]R(使用以上所描述的记号)。值得注意的是,在该实施例中,乘法是在仿射空间中的坐标上执行的,与例如将坐标切换到射影空间以便减少求逆的数目的当前通常使用的技术不同。
在406,可为有限域确定曲线点的加的求逆。即,例如,在从右向左读取标量时,取决于标量的二进制表示使曲线点相加。在此示例中,对曲线点加,在有限域中确定求逆。作为示例,求逆通常被称为乘法逆元,即倒数。如上所述,在加过程中,对各个动作,求逆被例如聚集成单个求逆。以此方式,在该算法的配对部分的二叉树表示的各个层处组合多个求逆,从而例如仅对各个层使用一个求逆。
在408,所聚集的求逆的输出例如被确定为线函数的斜率值,并用输出的斜率值更新该线函数。例如,当为有限域上的曲线计算元素(例如,曲线点)的配对时,线函数被求值以计算配对,以便得到不同群中的新元素。如此,在该示例中,例如在二叉树表示的各个层处,所聚集的求逆的输出被用作线函数的斜率值,且用斜率值来对该线求值以确定配对。
图5是示出此处所描述的技术和/或系统中的一个或多个的实现的一个实施例500的流程图。在此实施例500中,在502,从诸如用户提交来认证其身份的电子签名550接收两个元素,作为配对计算的输入。此外,提交来自已知群552(例如,用于安全性的共享的秘密密码密钥)的两个元素作为配对计算的输入。在此实施例中,将为来自签名550的元素计算配对,且将为来自群552的元素计算配对。
在504,确定作为群的元素提交的曲线点的倍数,如上所述。在此实施例500中,使用从右向左读取的标量的二进制表示来确定曲线点的倍数。在506,将求逆从所述倍数聚集成单个求逆,并在556存储,诸如存储在远程或本地数据库中。在一个实施例中,在二进制表示554从右向左读取的标量可被包括在诸如公钥等密码密钥中。
在一个实施例中,在508,沿从右向左读取的标量的二进制表示在仿射坐标中确定曲线的配对可在多个处理器上并行化。例如,计算机通常具有多核处理器,这允许计算在多于一个的核上并行化以便加速计算并释放资源。在一个实施例中,并行化可包括例如同时在两个或多个处理器上确定曲线点的倍数的两个或多个实例。
在510,检索所聚集的求逆的输出,例如作为斜率值。如上所述,在配对计算中,可在加动作的二叉树表示的各个层处使用聚集的求逆。此外,在一个实施例中,可在仿射空间的坐标集合的后续配对计算中重用所存储的聚集的求逆556。作为示例,可从远程或本地数据库中检索所聚集的求逆并重用所聚集的求逆。以此方式,可通过减少求逆聚集动作来减少计算的数目。
在一个实施例中,在用于确定所聚集的求逆的第一曲线点是与要对其重用所聚集的求逆的第二曲线点相同的元素时,可重用所聚集的求逆。即,可使用作为配对计算中的元素提交的曲线点来确定所聚集的求逆。在此示例中,如果计算在第一集合之后提交的元素的第二集合,且第二集合包括与来自第一集合的元素相同的元素,则例如可在为元素的该第二集合计算配对时重用所聚集的求逆。
在512,使用聚集的求逆的输出作为斜率值来更新线函数。在一个实施例中,所聚集的求逆的输出可用于更新用于配对计算的线的函数中的系数。在514,可例如通过对更新的线函数求值,来为元素确定配对,从而得到经加密的签名授权元素的数学配对558以及秘密元素的数学配对560。
在516,可比较各个配对558、560来确定它们是否相等,例如以确定所提交的电子签名的真实性。在此实施例500中,如果在518发现元素不相等(或它们不是来自同一群),则在520,所提交的签名不被认证。如果在518发现元素相等(且来自同一群),则在522,所提交的签名得到认证。以此方式,例如,可出于密码目的来使用元素的配对的计算,且此处所描述的一个或多个技术可用于促进更高效且快速的配对计算。
可设计一个或多个系统用于为曲线确定数学配对,例如以便出于密码目的来比较所提交的元素。因为供密码术中使用的配对的计算可能需要其上定义椭圆曲线的有限域中的大量基本乘法和求逆,此处所描述一个或多个系统可被设计为减少用于计算这些配对的时间和资源。图6是示出用于确定曲线的数学配对以便在密码术中使用的示例性系统600的组件框图。
示例性系统600包括求逆聚集组件602,该聚集组件对用于为曲线确定数学配对的求逆进行聚集。求逆聚集组件602可在操作上与一个或多个经编程的处理器650耦合,这些处理器驻留在一个或多个计算设备中,且求逆聚集组件602还与可存储所聚集的求逆656中的一个或多个的数据存储组件654耦合。此外,在示例性系统600中,数学配对确定组件604可在操作上与数据存储组件654耦合,且可使用其上存储的聚集的求逆656沿从右向左读取的标量的二进制表示在仿射坐标中为曲线确定数学配对。
在一个实施例中,求逆聚集组件602、配对确定组件604和数据存储组件654可被包括在同一计算设备中,诸如包括一个或多个处理器650的计算设备652。或者,系统的各组件可被安置在不同的设备上,或按照其某种组合。
在一个实施例中,求逆聚集组件602可被配置成将多个求逆聚集成单个求逆供数学配对确定中使用。例如,可由求逆聚集组件602将曲线点的倍数的二进制表示的一层的各个求逆组合成该层的单个求逆。在此示例中,所组合的求逆(例如,聚集的求逆656)可被存储在数据存储组件654中,并供配对确定组件604用于计算配对。
图7是示出此处所描述的一个或多个系统的示例性实现的一个实施例700的组件框图。诸如图1和2中所示的密码系统702(例如,104、222)可例如包括基于椭圆曲线上的配对的确定器750,该确定器利用了此处所描述的系统的一个或多个实现。此外,密码系统702可包括公开知晓(例如通过知道曲线)的群,该群利用了该密码系统(例如,用于认证、安全性、加密等)。
在此示例性实施例700中,诸如可读取使用密码认证的传入文档的组件等输入组件704接收文档754,文档754包括密码元素708和公钥706。作为示例,文档754可以是正被提交给解密器(例如以便读取)的加密文档,密码元素708是曲线上的点(例如,如果文档是真实的,则群元素来自该群),以及用于计算配对的标量。公钥通常是曲线上的点,而秘密密钥是标量。
在此实施例700中,基于椭圆曲线上的配对的确定器750可为所提交的密码元素708以及为来自私钥710的元素确定配对,以例如确定所提交的文档是否是真实的。即,例如,如果文档是真实的,当使用来自公钥706的标量为密码元素和私钥各自计算配对时,密码元素708将匹配到与来自私钥710的那些相同的元素。以此方式,密码系统可例如为文档754输出认证752,以便使得文档754被解密来查看。
图8是示出此处所描述的一个或多个系统的实现的另一示例性实施例800的组件框图。在此实施例800中,数学配对确定组件504可在操作上与多个处理器802a-802n耦合,这些处理器可使得沿从右向左读取的标量的二进制表示在仿射坐标中对曲线点850的倍数的加关系的确定并行化。即,例如,配对确定的各个部分(例如,加动作)可同时运行在若干处理器上,以便减少计算配对852的总时间。
此外,在示例性实施例800中,数学配对确定组件504可被配置为重用所聚集的多个求逆656,诸如在用于确定所聚集的多个求逆的第一曲线点是与要对其重用所聚集的求逆的第二曲线点相同的元素时。在此实施例中,求逆重用确定组件804可诸如通过比较第一曲线点的存储的版本与在850处接收的第二曲线点来确定第二曲线点是否是与第一曲线点相同的元素。另外,求逆重用确定组件804可从数据存储组件654中检索对应于第一曲线点的聚集的求逆656。以此方式,检索到的求逆656可由配对确定组件504重用,例如代替计算新的聚集的求逆。
又一实施例涉及包括被配置成实现此处所呈现的技术中的一种或多种的处理器可执行指令的计算机可读介质。可以这些方式设计的一种示例性计算机可读介质在图9中示出,其中实现900包括其上编码有计算机可读数据906的计算机可读介质908(例如,CD-R、DVD-R、或硬盘驱动器的盘)。该计算机可读数据906又包括被配置成根据此次阐述的原理中的一个或多个来操作的一组计算机指令904。在一个这样的实施例902中,处理器可执行指令904可被配置成执行一种方法,诸如例如,图3的示例性方法300。在另一个这样的实施例中,处理器可执行计算机指令904可被配置成实现一种系统,诸如例如,图6的示例性系统600。本领域普通技术人员可设计被配置成根据此处所呈现的技术来操作的许多此类计算机可读介质。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。
如在本申请中所使用的,术语“组件”、“模块”、“系统”、“接口”等一般旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,运行在控制器上的应用程序和控制器都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
此外,所要求保护的主题可使用产生控制计算机以实现所公开的主题的软件、固件、硬件、或其任意组合的标准编程和/或工程技术来实现为方法、装置、或制品。在此使用的术语“制品”旨在涵盖可以从任何计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员应当认识到,在不背离所要求保护的主题的范围或精神的情况下可对该配置作出许多修改。
图10和以下讨论提供了对实现本文所阐述的一个或多个原理的实施例的合适计算环境的简要、概括描述。图10的操作环境只是合适的操作环境的一个示例,而不旨在对该操作环境的使用范围或功能提出任何限制。示例计算设备包括但不限于,个人计算机、服务器计算机、手持式或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费电子产品、小型计算机、大型计算机、包括任何以上系统或设备中的任一个的分布式计算环境等。
虽然并非必需,但是实施例在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中进行描述。计算机可读指令可经由计算机可读介质来分发(在下文中讨论)。计算机可读指令可被实现为执行特定任务或实现特定抽象数据类型的程序模块,诸如函数、对象、应用程序编程接口(API)、数据结构等。通常,计算机可读指令的功能可按需在各种环境中组合或分布。
图10示出包括被配置成实现此处所提供的一个或多个实施例的计算设备1012的系统1000的示例。在一种配置中,计算设备1012包括至少一个处理单元1016和存储器1018。取决于计算设备的确切配置和类型,存储器1018可以是易失性的(例如诸如RAM)、非易失性的(例如诸如ROM、闪存等)、或两者的一些组合。该配置在图10中由虚线1014示出。
在其他实施例中,设备1012可包括附加特征和/或功能。例如,设备1012还可包括附加存储(例如,可移动和/或不可移动),包括但不限于磁存储、光存储等。此类附加存储在图10中由存储1020示出。在一个实施例中,实现此处所提供的一个或多个实施例的计算机可读指令可位于存储1020中。存储1020还可储存实现操作系统、应用程序等其他计算机可读指令。可将计算机可读指令加载到存储器1018中,以供例如处理单元1016执行。
如此处所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器1018和存储1020都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可用于存储所需信息且可由设备1012访问的任何其他介质。任何这样的计算机存储介质都可以是设备1012的一部分。
设备1012还可包括允许该设备1012与其他设备进行通信的通信连接1026。通信连接1026可包括但不限于,调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外线端口、USB连接、或用于将计算设备1012连接到其他计算设备的其他接口。通信连接1026可包括有线连接或无线连接。通信连接1026可发送和/或接收通信媒体。
术语“计算机可读介质”可包括通信介质。通信介质通常以诸如载波或其他传输机制之类的“已调制数据信号”来体现计算机可读指令或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”可包括以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。
设备1012可包括输入设备1024,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备、和/或任何其他输入设备。在设备1012中还可包括输出设备1022,诸如一个或多个显示器、扬声器、打印机、和/或任何其他输出设备。输入设备1024和输出设备1022可经由有线连接、无线连接、或其任何组合连接到设备1012。在一个实施例中,来自另一计算设备的输入设备或输出设备可用作计算设备1012的输入设备1024或输出设备1022。
计算设备1012的组件可通过诸如总线之类的各种互连来连接。此类互连可包括诸如PCI Express之类的外围部件互连(PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等。在另一实施例中,计算设备1012的组件可通过网络来互连。例如,存储器1018可包括位于通过网络互连的不同物理位置的多个物理存储器单元。
本领域技术人员应当认识到,用于存储计算机可读指令的存储设备可分布在网络上。例如,可经由网络1028访问的计算设备1030可存储实现此处所提供的一个或多个实施例的计算机可读指令。计算设备1012可访问计算设备1030,并且下载部分或全部计算机可读指令以供执行。替换地,计算设备1012可按需下载计算机可读指令的片断,或者一些指令可在计算设备1012处执行,而一些指令则可在计算设备1030处执行。
本文提供了各实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以组成存储在一个或多个计算机可读介质上的计算机可读指令,这些指令如果由计算设备执行则使得计算设备执行所描述的操作。所描述的一些或所有操作的顺序不应该被解释为暗示这些操作一定是依赖于顺序的。从本说明书获益的本领域技术人员将认识到替换顺序。此外,应该理解,并非所有的操作都一定存在于本文所提供的每一个实施例中。
此外,本文所使用的词语“示例性”意指用作示例、实例或说明。本文作为“示例性”所描述的任何方面或设计不必被解释为有利于其他方面或设计。相反,使用词语“示例性”旨在以具体的方式呈现各个概念。如本申请中所使用的,术语“或”意指包括性“或”而非互斥性“或”。即,除非另有指定或从上下文可以清楚,否则“X使用A或B”意指任何自然的包括性排列。即,如果X使用A;X使用B;或X使用A和B两者,则在任何以上实例中,都满足“X使用A或B”。另外,本申请中和所附权利要求书中所使用的冠词“一”和“一个”一般应被解释为是指“一个或多个”,除非另有指定或从上下文可以清楚指的是单数形式。
同样,虽然参考一个或多个实现示出并描述了本公开,但本领域技术人员基于对本说明书和附图阅读和理解,可以想到各种等效更改和修改。本发明包括所有这样的修改和更改,并且仅由所附权利要求的范围来限定。具体来说,对于由上述组件(例如,元素、资源等等)执行的各种功能,除非另外指明,否则用于描述这些组件的术语旨在对应于执行所描述的执行此处在本公开的示例性实现中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。此外,尽管可相对于若干实现中的仅一个实现来公开本公开的一个特定特征,但这一特征可以如对任何给定或特定应用所需且有利地与其他实现的一个或多个其他特征相组合。此外,就在说明书或权利要求书中使用术语“包含”、“具有”、“含有”和“带有”或其变体而言,这些术语旨在以与术语“包括”相似的方式为包含性的。

Claims (13)

1.一种为曲线确定数学配对以便在密码术中使用的基于计算机的方法,包括:
使用一个或多个微处理器聚集为所述曲线确定数学配对中所使用的多个求逆;以及
使用所聚集的多个求逆沿从右向左读取的标量的二进制表示在仿射坐标中为所述曲线确定数学配对;
其中确定所述数学配对包括:当确定所聚集的多个求逆的第一曲线点是与要对其重用所聚集的求逆的第二曲线点相同的元素时,重用所聚集的多个求逆。
2.如权利要求1的方法,其特征在于,聚集多个求逆包括将所述多个求逆聚集成单个求逆以用于数学配对确定。
3.如权利要求1所述的方法,其特征在于,还包括使沿从右向左读取的标量的二进制表示在仿射坐标中为所述曲线确定两个或多个数学配对在多个处理器上并行化。
4.如权利要求1所述的方法,其特征在于,所聚集的求逆的输出包括用于更新配对确定中的线函数的斜率值。
5.如权利要求1所述的方法,其特征在于,还包括使用所聚集的多个求逆作为用于更新配对确定中的线函数的一个或多个斜率值。
6.如权利要求1所述的方法,其正在于,还包括使用所聚集的求逆的输出来更新用于确定所述数学配对的线的系数。
7.如权利要求1所述的方法,其特征在于,还包括从右向左为所述曲线读取所述标量的二进制表示。
8.如权利要求1所述的方法,其特征在于,所述曲线点包括用于密码应用的群的元素。
9.如权利要求1所述的方法,其特征在于,使用所聚集的多个求逆沿从右向左读取的标量的二进制表示在仿射坐标中为所述曲线确定数学配对包括:
使用从右向左读取的一标量的二进制表示确定曲线点的所述标量倍数;
确定加的聚集的求逆;以及
使用所聚集的求逆的输出来更新用于确定所述数学配对的线的函数。
10.一种为曲线确定数学配对以便在密码术中使用的系统,包括:
求逆聚集组件,所述组件可在操作上与置于一个或多个计算设备中的一个或多个经编程的处理器耦合,并被配置成聚集在为所述曲线确定数学配对中所使用的多个求逆,且可在操作上与被配置成存储所聚集的求逆中的一个或多个的数据存储组件耦合;以及
数学配对确定组件,所述组件可在操作上与所述数据存储组件耦合,并被配置成使用所聚集的多个求逆沿从右向左读取的标量的二进制表示在仿射坐标中为所述曲线确定数学配对;
其中,所述数学配对确定组件被配置为在用于确定所聚集的多个求逆的第一曲线点是与要对其重用所聚集的求逆的第二曲线点相同的元素时,重用所聚集的多个求逆。
11.如权利要求10所述的系统,其特征在于,在密码系统中还包括:
输入接收组件,被配置成接收至少两个元素;
包括所述标量的密码密钥;以及
配置成使用所述标量比较所接收的元素在椭圆曲线上的第一数学配对与所述椭圆曲线上至少两个点的第二数学配对。
12.如权利要求10所述的系统,其特征在于,所述求逆聚集组件被配置成将用于所述数学配对确定的多个求逆聚集成单个求逆,以便在为所述曲线上的两个点进行的数学配对确定中使用。
13.如权利要求10所述系统,其特征在于,所述数学配对确定组件可在操作上与多个处理器耦合,所述处理器被配置成使得沿从右向左读取的标量的二进制表示在仿射坐标中对曲线点的倍数的加关系的确定并行化。
CN201080061296.8A 2010-01-13 2010-12-31 使用聚集的求逆来确定曲线上的配对 Active CN102713921B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/686,707 2010-01-13
US12/686,707 US8548160B2 (en) 2010-01-13 2010-01-13 Determination of pairings on a curve using aggregated inversions
PCT/US2010/062656 WO2011087891A2 (en) 2010-01-13 2010-12-31 Determination of pairings on a curve using aggregated inversions

Publications (2)

Publication Number Publication Date
CN102713921A CN102713921A (zh) 2012-10-03
CN102713921B true CN102713921B (zh) 2015-07-22

Family

ID=44258527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080061296.8A Active CN102713921B (zh) 2010-01-13 2010-12-31 使用聚集的求逆来确定曲线上的配对

Country Status (6)

Country Link
US (1) US8548160B2 (zh)
EP (1) EP2524332B1 (zh)
JP (1) JP5738896B2 (zh)
KR (1) KR101763443B1 (zh)
CN (1) CN102713921B (zh)
WO (1) WO2011087891A2 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01152854A (ja) * 1987-12-10 1989-06-15 Nec Eng Ltd 内線電話機呼出方式
US6038581A (en) * 1997-01-29 2000-03-14 Nippon Telegraph And Telephone Corporation Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
JPH1152854A (ja) * 1997-07-31 1999-02-26 Nippon Telegr & Teleph Corp <Ntt> 有限体上の四則演算装置及び楕円曲線上の群演算装置
US6782100B1 (en) * 1997-01-29 2004-08-24 Certicom Corp. Accelerated finite field operations on an elliptic curve
US6252959B1 (en) * 1997-05-21 2001-06-26 Worcester Polytechnic Institute Method and system for point multiplication in elliptic curve cryptosystem
CN1280726A (zh) * 1997-12-05 2001-01-17 保密信息技术公司 优化椭圆曲线密码计算的变换方法
JP3796993B2 (ja) * 1998-12-22 2006-07-12 株式会社日立製作所 楕円曲線暗号実行方法及び装置並びに記録媒体
US6490352B1 (en) * 1999-03-05 2002-12-03 Richard Schroeppel Cryptographic elliptic curve apparatus and method
FR2796177B1 (fr) * 1999-07-09 2001-10-12 Oberthur Card Systems Sas Procede de cryptographie mis en oeuvre entre deux entites echangeant des informations
JP3821631B2 (ja) * 2000-05-30 2006-09-13 株式会社日立製作所 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP2003131568A (ja) * 2001-10-26 2003-05-09 Hitachi Ltd 楕円曲線署名検証方法及び装置並びに記憶媒体
US7215780B2 (en) * 2001-12-31 2007-05-08 Certicom Corp. Method and apparatus for elliptic curve scalar multiplication
US7555122B2 (en) * 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication
JP2004205870A (ja) * 2002-12-26 2004-07-22 Hitachi Ltd 超楕円曲線スカラー倍演算方法及び装置
US7702105B1 (en) * 2004-04-23 2010-04-20 Oracle America, Inc. Accelerating elliptic curve point multiplication through batched inversions
JP2005316267A (ja) * 2004-04-30 2005-11-10 Hitachi Ltd 楕円曲線ペアリング演算装置
EP1675299B1 (en) * 2004-12-23 2018-08-01 Hewlett-Packard Development Company, L.P. Authentication method using bilinear mappings
JP4630132B2 (ja) * 2005-05-27 2011-02-09 日本電信電話株式会社 ペアリング演算方法、その方法を用いた装置およびプログラム
EP2293491B1 (en) * 2005-11-03 2012-08-22 Certicom Corp. Simultaneous scalar multiplication method
US8050403B2 (en) * 2007-03-06 2011-11-01 Research In Motion Limited Method and apparatus for generating a public key in a manner that counters power analysis attacks
US8243919B2 (en) * 2007-03-07 2012-08-14 Research In Motion Limited Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks
CN100583769C (zh) * 2008-01-04 2010-01-20 清华大学 椭圆曲线密码系统的倍点系统
CN101547089B (zh) * 2008-03-28 2012-07-25 上海爱信诺航芯电子科技有限公司 集成电路中素数域椭圆曲线密码算法的实现方法
CN101572602A (zh) * 2008-04-28 2009-11-04 陈婧 一种基于硬件设计的有限域求逆的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Dawson等.Affine Precomputation with Sole Inversion in Elliptic Curve Cryptography.《In Proceedings of the 12th Australasian conference on Information security and privacy (ACISP"07)》.2007,第245-258页. *
Mishra.Application of Montgomery"s Trick to Scalar Multiplication for Elliptic and Hyperelliptic Curves Using a Fixed Base Point.《Public Key Cryptography- PKC 2004,7th International Workshop on Theory and Practice in Public Key Cryptography》.2004,第2947卷第41-54页. *

Also Published As

Publication number Publication date
EP2524332A4 (en) 2015-04-08
KR20120123320A (ko) 2012-11-08
WO2011087891A3 (en) 2011-10-13
JP5738896B2 (ja) 2015-06-24
US20110170684A1 (en) 2011-07-14
WO2011087891A2 (en) 2011-07-21
CN102713921A (zh) 2012-10-03
EP2524332B1 (en) 2016-07-27
US8548160B2 (en) 2013-10-01
KR101763443B1 (ko) 2017-07-31
JP2013517527A (ja) 2013-05-16
EP2524332A2 (en) 2012-11-21

Similar Documents

Publication Publication Date Title
CN109672537B (zh) 基于公钥池的抗量子证书获取系统及获取方法
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
US7469048B2 (en) Methods for point compression for jacobians of hyperelliptic curves
JP6328333B2 (ja) 公開鍵暗号化システム
US20050094806A1 (en) Use of isogenies for design of cryptosystems
US20100119061A1 (en) Generating secure private keys for use in a public key communications environment
US9882890B2 (en) Reissue of cryptographic credentials
CN109918888B (zh) 基于公钥池的抗量子证书颁发方法及颁发系统
JP2018502320A (ja) 公開鍵暗号化システム
CN112865973A (zh) 基于格的加密密钥和数字签名的生成方法
EP4315739A1 (en) Agile cryptographic deployment service
CN111314080B (zh) 一种基于sm9算法的协同签名方法、装置、介质
CN114531242A (zh) 证书升级方法、装置、设备及存储介质
CN102713921B (zh) 使用聚集的求逆来确定曲线上的配对
CN114285581B (zh) 应用管理方法及相关产品
CN115423474A (zh) 基于混沌映射的交易处理方法及装置
US8457305B2 (en) Generating genus 2 curves from invariants
JP4494965B2 (ja) 処理中の計算を容易にするための暗号化方法、及び装置
Abdul-Jabbar Secure QR-code generation in healthcare
CN110838918A (zh) 基于公钥池和签名偏移量的抗量子证书颁发方法及系统
JP2005508514A (ja) 公開鍵を用いた暗号化タスク実行方法
CN116628771A (zh) 芯片安全启动的方法、系统、存储介质及终端
CN116881865A (zh) 一种许可证生成方法以及系统
CN116032532A (zh) 空中下载服务的授权方法、装置、设备及计算机存储介质
Yoshida et al. Advances in Information and Computer Security

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150729

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150729

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.