CN106992854A - 共享密钥生成方法和信息处理终端 - Google Patents

共享密钥生成方法和信息处理终端 Download PDF

Info

Publication number
CN106992854A
CN106992854A CN201710018197.5A CN201710018197A CN106992854A CN 106992854 A CN106992854 A CN 106992854A CN 201710018197 A CN201710018197 A CN 201710018197A CN 106992854 A CN106992854 A CN 106992854A
Authority
CN
China
Prior art keywords
information processing
calculated value
processing terminal
algorithm
exponentiation operator
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
CN201710018197.5A
Other languages
English (en)
Other versions
CN106992854B (zh
Inventor
酒见由美
森川郁也
武仲正彦
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN106992854A publication Critical patent/CN106992854A/zh
Application granted granted Critical
Publication of CN106992854B publication Critical patent/CN106992854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0847Key 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 identity based encryption [IBE] schemes
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • 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
    • 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

Landscapes

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

Abstract

本发明涉及共享密钥生成方法和信息处理终端。信息处理终端通过使用标识符的公钥密码系统来生成共享密钥。信息处理终端通过使用算法来计算第一计算值,该算法根据通过素域定义的椭圆曲线上的加法循环群上的两个点来输出素域的扩展域上的元素。信息处理终端保存第一计算值。信息处理终端根据使用将该共享密钥共享的共享者的标识符的变量、信息处理终端的私钥以及上述算法来计算第二计算值。信息处理终端通过对第一计算值的取幂运算和第二计算值的取幂运算中的每一个执行最终取幂运算来生成共享密钥。

Description

共享密钥生成方法和信息处理终端
技术领域
本文讨论的实施方式涉及计算机可读记录介质、共享密钥生成方法以及信息处理终端。
背景技术
随着与计算器和网络有关的技术的发展和普及,经由无线通信网络、因特网等交换重要数据的机会增加。由于在无线通信网络和因特网中对通信路径进行窃听、伪造或欺骗比较容易,因此为了维护安全,增加了对通信伙伴进行认证的需求和基于认证来保护通信内容的密码通信技术的需求。广泛使用的密码通信技术包括应用了各种公钥密码技术的传输层安全性(TLS)。
作为这样的公钥密码技术的一个示例,已知基于标识符的密码技术(在本文后面可以被称作“基于身份的密码技术”或者“基于ID的密码技术”)。在基于身份的密码技术中,基于身份的密码技术的公钥是任意的标识符(ID)就足够了,并且因此不需要证书。作为标识符,可以使用任何东西,例如因特网协议地址(IP地址)、主机名、设备号码、电话号码、根据应用程序决定的名字等。
在公钥密码技术如RSA中,公钥是与标识符无关地在数学上得到的某种数字,并且因此经常使用证书以便将公钥与可以被用户识别的标识符联系起来。另一方面,在基于身份的密码技术中,标识符是公钥,并且因此如果给出通信目标的标识符,则可以在没有证书的情况下执行密码处理。最近,在通过McCullagh-Barreto进行的密钥共享协议中的密钥共享处理(在本文后面可以被称作“MB方法”)被用作在有通过ID进行相互认证功能的两个人之间的密钥共享协议。
专利文献1:第2006-309068号日本专利特许公开
专利文献2:第2009-080344号日本专利特许公开
专利文献3:第2010-066510号日本专利特许公开
然而,使用MB方法的密钥共享处理的计算成本大,并且因此可能出现处理延迟。在包括低性能的网关、传感器等的设备的物联网系统(IoT系统)中,由于其计算成本而更可能出现处理延迟。
例如,在以MB方法进行的两个人之间的密钥共享的处理中,执行取幂运算,并且之后执行椭圆曲线上的双线性映射(在本文后面可以被称作“配对函数”)。然而,通过使用乘法运算或者平方运算来执行相应的计算,并且因此计算成本大。当使用目前被大量使用的Barreto-Naehrig曲线(BN曲线)(256比特)时,在配对函数中的米勒算法和最终取幂运算的情况下,平方运算的执行次数总共是318并且乘法运算的执行次数总共是193,并且因此计算成本大。
因此,本发明的实施方式的一个方面中的目的是提供能够降低加密密钥共享的计算成本的计算机可读记录介质、共享密钥生成方法以及信息处理终端。
发明内容
根据实施方式的方面,共享密钥生成方法包括:通过使用算法来计算第一计算值,所述算法根据通过素域定义的椭圆曲线上的加法循环群上的两个点来输出素域的扩展域上的元素;保存第一计算值;根据使用共享该共享密钥的共享者的标识符的变量、信息处理终端的私钥以及上述算法来计算第二计算值;以及通过对第一计算值的取幂运算和第二计算值的取幂运算中的每一个执行最终取幂运算来生成共享密钥。
附图说明
图1是示出根据实施方式的系统的整体配置的示例的图;
图2是示出具有基于身份的认证的密钥共享的图;
图3是示出幂计算的流程图;
图4是示出配对计算的图;
图5是示出米勒算法的流程图;
图6是示出信息处理终端的功能性配置的功能性框图;
图7是示出被储存在变量数据库(变量DB)中的信息的示例的图;
图8是示出划分处理的图;
图9是示出处理过程的流程图;
图10是示出对于分支处理的处理过程的流程图;
图11是示出效果的图;以及
图12是示出硬件的配置示例的图。
具体实施方式
将参考附图说明本发明的优选实施方式。此外,公开的技术不限于后面描述的实施方式。此外,可以在一致的范围内组合各个实施方式。
[a]第一实施方式
整体配置
图1是示出根据实施方式的系统的整体配置的示例的图。如图1所示,服务器1、信息处理终端10和信息处理终端20通过网络N连接的这种系统在信息处理终端10和20之间执行基于身份的密码技术,其中,基于身份的密码技术采用使用MB方法的密钥共享。可以采用任意类型的通信网络如因特网、局域网(LAN)、虚拟私人网络(VPN)作为网络N,而无论其是有线还是无线的。
服务器1是私钥生成中心(PKG),并且将私钥传送至各个信息处理终端10和20。信息处理终端10是被用户A所使用的计算机(在本文后面可以被称作主体A),并且信息处理终端20是被用户B所使用的计算机(在本文后面可以被称作主体B)。可以采用服务器、个人计算机、手机、智能手机等作为多个信息处理终端中的每一个。
对MB方法的说明
将会说明使用MB方法的常用密钥共享方法。首先,将定义符号。令“p”为特征,通过素域“Fp”定义的椭圆曲线上的加法循环群被描述为“E(Fp)”,“E(Fp)”的阶“#E(Fp)”可整除的最大素数是“r”,满足“r|pk-1”的“k”被称作嵌入次数,并且“E(Fp)”中的阶“r”的部分加法群是“E(Fp)[r]”。在这种情况下,双线性映射“e”被定义为针对在本文后面定义的循环群G1和G2的两个元素的输入而输出扩展域上的元素的函数(例如有理函数)。此外“e:G1×G2→G3”可以是足够的。在实施方式中,“Fpk”类似地被称作“Fp”中“p”的“k”次幂。
G1:E(Fp)[r]
G2:E(Fpk)[r]
G3:Fpk*/(Fpk*)r
E:G2×G1→G3
将由0到(r-1)的整数构成的群被称作“Zr”。之后,对于循环群G1和G2的元素,在α∈Zr,P∈G1(或G2)的情况下,标量乘法运算“αP”被定义为“α”组“P”相加的计算。此外,对于G3的元素,在α∈Zr,x∈G3的情况下,取幂运算xα被定义为“α”组“P”相乘的计算。在这种情况下,双线性是满足“e(xP,Q)=e(P,xQ)=e(P,Q)x”的属性。
接下来,将具体说明密钥交换。私钥生成中心(PKG)决定主私钥“s∈Zr”,并且私有地将其保存。PKG决定公共参数“P∈G1,Q∈G2,e,H和P0=sP∈G1”,并将它们公开。“P”是循环群G1的生成中心,“Q”是循环群G2的生成中心,“e”是双线性映射(在本文后面可以被称作“配对函数”),并且“H”是通过其从标识符获得整数的散列函数。当“a=H(IDA)”时,对应于主体A的标识符IDA的公钥PA是“PA=aP+P0=(a+s)P”,并且因此任何人可以根据公共参数计算公钥PA。对应于标识符IDA的私钥SA是“SA=(a+s)-1Q”,并且因此只有知道主私钥“s”的PKG可以计算私钥SA
接下来,PKG向正确的主体通知所生成的私钥,该正确的主体有权利接收具有对应的标识符的认证。在主体A和B中的每一个预先知道另一个的标识符的前提下,按如下方式执行主体A和B之间的密钥交换。主体A随机地选择整数“x”,并且计算“RA=xPB”将其发送给主体B。类似地,主体B随机地选择整数“y”以计算“RB=yPA”,并且将其发送给主体A。相应的“RA”和“RB”是可以被主体B和主体A专用的密钥材料。接收“RA”的主体B计算“ZB=e(P,Q)ye(RA,SB)”。另一方面,接收“RB”的主体A计算“ZA=e(P,Q)xe(RB,SA)”。如果相应的主体A和B是具有私钥SA和SB的正确的主体,并且密钥材料在过程中没有被篡改,则配对的双线性满足“ZA=ZB=e(P,Q)x+y”并且完成其中共享密钥是“ZA=ZB”的密钥交换。
将会说明用于上述处理的过程。图2是示出具有基于身份的认证的密钥共享的图。假定主体A(信息处理终端10)的私钥是“SA=(a+s)-1Q”,并且主体B(信息处理终端20)的私钥是“SB=(b+s)-1Q”。
如图2所示,主体A向主体B发送标识符IDA(步骤S1)并且主体B向主体A发送标识符IDB(步骤S2),并且因此标识符被互相交换。
接下来,主体A计算作为主体B的公钥的材料的“b=H(IDB)”(步骤S3),并且类似地,主体B计算作为主体A的公钥的材料的“a=H(IDA)”(步骤S4)。随后,主体A计算“RA=xPB(x是临时密钥)”,并且将其发送至主体B(步骤S5)。类似地,主体B计算“RB=yPA(y是临时密钥)”,并且将其发送至主体A(步骤S6)。
主体A使用主体A的公钥“PA=aP+P0=(a+s)P”、“RB=yPA”和“SA=(a+s)-1Q”来计算“ZA=e(P,Q)x×e(RB,SA)”(步骤S7)。类似地,主体B使用主体B的公钥“PB=bP+P0=(b+s)P”、“RA=xPB”和“SB=(b+s)-1Q”来计算“ZB=e(P,Q)y×e(RA,SB)”。因此,在主体A和B中完成其中共享密钥是“ZA=ZB”的密钥交换。
如前面描述的,在MB方法中的密钥共享处理中,可以通过“c=zx×e(R,S)”来计算密钥。“e”是配对函数(椭圆曲线上的双线性映射),“z”是配对的初步计算的结果(e(P,Q)),“x”是整数(x∈Zr),并且“P”和“Q”是椭圆曲线上的加法群的元素。通常,通过按照计算“c0=zx”、“c1=e(R,S)”和“c=c0×c1”这种顺序来计算共享密钥。
执行两次配对以生成共享密钥。预先获得“P”和“Q”,并且因此可以初步执行“e(P,Q)”的计算。因此,当在主体A中执行密钥共享时,取幂运算被执行以获得“e(P,Q)x”,随后,配对被执行以获得“e(RB,SA)”,并且之后,这些的结果被相乘以实现密钥共享。接下来,将会具体说明传统取幂运算和配对。
取幂运算
接下来,将会参考信息处理终端10说明常用幂计算。在基于配对的密码系统中,使用256比特或者更多的阶“r”以保证足够安全。因此,例如,当取幂运算“ax(a∈G3,x∈Zr)”被计算时,如果随机地从“Zr”中选择“x”,则“x”以很高的几率变得几乎等于“r”。因此,如果简单地执行取幂运算,则2256组的a被相乘,因此这是不现实的。因此,通常使用二进制方法作为有效地计算幂计算的方法(见图3)。
图3是示出幂计算的流程图。如图3所示,信息处理终端10将变量“a”代入最终要被计算的“b”,并且进一步将(|x|-1)代入“i”(步骤S10)。
接下来,当“i”大于“0”时(步骤S11:是),信息处理终端10设置“b=b2”(步骤S12),并且确定Bit(x,i)是否是“1”(步骤S13)。当Bit(x,i)是“1”时(步骤S13:是),信息处理终端10执行“b=b×a”(步骤S14),从“i”中减“1”(步骤S15),并且然后重复在步骤S11之后的步骤。Bit(x,i)是“x”的最低有效比特中的第“i”个比特值。
另一方面,当Bit(x,i)不是“1”时(步骤S13:否),信息处理终端10执行在步骤S15之后的步骤。当在步骤S11中“i”是“0”或更小时(步骤S11:否),信息处理终端10终止处理。
当用具体示例说明时,作为简单的示例,将会参考“a”的“x=10”次幂的计算来说明算法。首先,作为初始,将“a”代入通过其获得最终的结果的变量“b”,并且将指数(|x|-1)即“3”代入重复次数“i”。基于“i”来执行重复处理。目前,“i”是“3”,因此对“b”执行平方运算(b=a2)。检查“x”的最低有效比特中的第“i”个比特值。当其是“0”时,从“i”中减“1”,并且要执行下一重复处理。当其是“1”时,使“b”自乘“a”次。目前,第“i=3”个比特是“0”,并且因此要执行下一重复处理。
接下来,因为“i=2”,所以计算“b=b2=a4”。当检查第“i=2”个比特值时,其是“1”,并且因此计算“b=b×a=a5”,从“i”中减去“1”,并且执行下一重复处理。接下来,因为“i=1”,所以计算“b=b2=a10”。当检查第“i=1”个比特值时,其是“0”,从“i”中减去“1”,并且要执行下一重复处理。接下来,因为“i=0”,并且不满足“i>0”,所以计算终止。在这种情况下,根据“b=a10”发现正确的计算被执行。以这种方式,在朴素方法中,对“a”执行了9次乘法运算。然而,在二进制方法中,可以总共通过4次乘法运算有效地执行计算,具体地,3次平方运算和1次乘法运算。在x被展开成二进制数的情况下,“x”的汉明重量是“1”的数目。
配对计算
接下来,将参考图4和图5说明配对计算。图4是示出配对计算的图。图5是示出米勒算法的流程图。
如图4所示,在配对处理中,针对椭圆曲线上的两个点的输入而输出扩展域的元素。具体地,对于素域(E(Fpk))上的群G1的点“P”的输入和素域(E(Fpk))上的群G2的点“Q”的输入,这些点“P”和“Q”由扩展域上的点表示——在该扩展域中“Fp”通过米勒算法成为k维,并且之后执行最终的取幂运算以生成扩展域上的群G3的点。
换言之,配对计算被大致分为两个处理步骤。一个是被称作“米勒算法”的计算,并且另一个是被称作“最终幂”的计算。当计算前述的配对“e(P,Q)”时,米勒算法被定义为根据“P”和“Q”输出扩展域“Fpk”上的元素输出的函数“f”。在最终取幂运算中,执行通过“(pk-1)/r”对米勒算法中所获得的扩展域上的元素进行的取幂运算,并且因此可以获得G3上的元素。配对“e”通过使用米勒算法“f”由式(1)表示。
将会说明米勒算法的计算。如图5所示,信息处理终端10执行对输入“P”和“Q”的初始化(步骤S20)。具体地,信息处理终端10将“1”代入最终输出值“z”,将从之前确定的重复次数“α”的比特数中减去“1”得到的值代入变量“i”,并且将“Q”代入“T”。
接下来,当“i”大于“0”时(步骤S21:是),信息处理终端10计算“z”(步骤S22),将“T+T”代入“T”(步骤S23),并且确定“Bit(α,i)”是否是“1”(步骤S24)。“Bit(α,i)”表示“α”的第“i”个比特值。在步骤S22中执行的式中的“lT,T(p)”指示将“P”代入通过“T”的切线式。
当“Bit(α,i)”是“1”时(步骤S24:是),信息处理终端10计算“z”(步骤S25),将“T+Q”代入“T”(步骤S26),从“i”中减“1”(步骤S27),并且之后重复步骤S21之后的步骤。在步骤S25中执行的式中的“lT,Q(p)”指示将“P”代入通过“T”和“Q”的直线的式。
另一方面,当“Bit(α,i)”不是“1”时(步骤S24:否),信息处理终端10执行步骤S27之后的步骤。当步骤S21中“i”是“0”或更小时(步骤S21:否),信息处理终端10终止处理。
如前面描述的,在取幂运算和米勒算法两者的计算的重复处理中,执行对于扩展域上的元素的平方运算。取幂运算的结果和米勒算法的结果最后相乘,并且因此减少了由这两种算法执行的平方运算,以实现根据密钥共享的生成的计算成本的降低。
在本文后面,将会说明减少平方运算的次数以降低根据密钥共享的生成的计算成本的实施方式。由信息处理终端10执行的处理和由信息处理终端20执行的处理彼此类似,并且因此,以信息处理终端10举例说明。
功能配置
图6是示出信息处理终端10的功能配置的功能框图。如图6所示,信息处理终端10包括通信单元11、存储装置12以及控制器15。
通信单元11是控制其他设备通信的处理单元如网络接口卡。例如,通信单元11从服务器1接收密钥,向信息处理终端20发送标识符(IDA)等,并且从信息处理终端20接收标识符(IDB)等。
存储装置12是存储设备的一个示例如存储器或者硬盘,并且存储程序、数据等。存储装置12存储变量DB 12a和密钥DB 12b。变量DB 12a是存储当使用MB方法生成密钥共享时所使用的各种类型的信息的数据库。图7是示出存储在变量数据库(变量DB)12a中的信息的示例的图。如图7所示,变量DB 12a存储可以初步计算的“R、S、x、z’=f(P,Q)、z1’、z2’、z3’”。密钥DB 12b是存储信息处理终端10和20之间生成的共享密钥的数据库。
控制器15是管理信息处理终端10的全部处理的处理单元如处理器。控制器15包括接收单元16、初步计算单元17、划分单元18以及计算单元19。接收单元16、初步计算单元17、划分单元18以及计算单元19是被包括在处理器中的电子电路或者由处理器执行的处理的一个示例。
接收单元16是从另一个终端接收各种信息的处理单元。例如,接收单元16从服务器1接收私钥SA(例如SA=(a+s)-1Q),并且将其存储在变量DB 12a中。接收单元16从信息处理终端20接收前述的标识符“IDB”和“RB”等,并且将其存储在变量DB 12a中。
初步计算单元17是计算在执行密钥共享时关于取幂运算和米勒算法的计算可以初步计算的各种信息(例如数值)的处理单元,并且将其存储在变量DB 12a中。具体地,在密钥共享处理之前,初步计算单元17计算使用米勒算法的函数的“f(P,Q)”而不是配对“e(P,Q)”,并且将其存储在变量DB 12a中。
换言之,因为初步计算单元17初步计算了“f(P,Q)”,并且配对的结果是取幂运算的底数的元素,所以可以通过利用执行最终取幂运算来在执行“e(R,S)”的最终取幂运算的同时执行“e(P,Q)”的最终取幂运算。换言之,如果按照式(2)执行计算,则最终取幂运算的次数是“1”就足够了,当延后“e(P,Q)”的最终取幂运算时,降低了计算成本。
划分单元18是根据米勒算法的重复次数来划分取幂运算的重复次数的处理单元,并且通过利用初步计算来进一步以“1”次计算划分的取幂运算中的各个平方运算。可以省略划分处理。然而,执行划分处理可以更加降低计算成本。
图8是示出划分处理的图。如图8所示,“α和x3”可以被同时计算。然而,各个“α和x2”、“α和x1”和“α和x0”不能被同时执行,并且因此这部分将被重复。因此,这些被按照“α”划分并且通过使用初步计算被同时计算,并且因此减少重复次数。
例如,将会说明通过使用初步计算来调整平方运算并划分取幂运算的方法。在本文将会以“r”是256比特的BN曲线的情况举例。在这种情况下,“x”是256比特并且“α”是64比特,并且因此存在不同时计算的平方运算。因此,划分单元18按照式(3)将“x”展开成底数264,以通过64比特将其划分。
x=x0+264x1+2128x2+2192x3 (3)
划分单元18通过使用式(3)来对“zx”进行变形,以将式(2)变形为式(4)。
换言之,因为划分单元18计算“z”、“z1”、“z2”和“z3”的取幂运算的乘积,“z1”、“z2”和“z3”被初步计算并且被存储在变量DB 12a中。因此,在这些取幂运算中执行的平方运算的次数能够被调整为“1”。因此,在这些取幂运算中的平方运算的次数和在米勒算法中的平方运算的次数能够被调整为“1”。
计算单元19是在计算取幂运算和米勒算法之后使用初步计算的“z’=f(P,Q)”、“z1’”、“z2’”和“z3’”执行最终取幂运算以产生共享密钥的处理单元。具体地,计算单元19执行式(2)以计算“e(P,Q)xe(R,S)”。计算单元19将“e(P,Q)xe(R,S)”存储在密钥DB 12b中。
处理过程
接下来,将会参考流程图说明前述的初步计算和划分处理。图9是说明处理过程的流程图。图10是说明用于分支处理的处理过程的流程图。在执行图8中示出的处理之后,执行最终取幂运算。
如图9所示,信息处理终端10执行初始化(步骤S101)。具体地,信息处理终端10将“1”代入作为最终计算的目标的“c”,将“α(之前确定的重复次数)-1”代入要确定重复的“i”,并且将“Q”代入“T”。
接下来,信息处理终端10将“x”划分为四部分以获得“x0”、“x1”、“x2”和“x3”(步骤S102)。如果“i”大于“0”(步骤S103:是),则信息处理终端10计算“c=c2×lT,T(P)”(步骤S104),计算“T=T+T”(步骤S105),并且之后执行分支处理(步骤S106)。
在执行分支处理之后,信息处理终端10从“i”中减去“1”(步骤S107),并且之后重复步骤S103后面的步骤。当在步骤S103中“i”是“0”或者更小时(步骤S103:否),信息处理终端10终止处理。
接下来,将会说明步骤S106中的分支处理。如图10所示,当Bit(α,i)是“1”时(步骤S201:是),信息处理终端10计算“c=c×lT,Q(P)”,并且将“T+Q”代入“T”(步骤S202)。另一方面,当Bit(α,i)不是“1”时(步骤S201:否),信息处理终端10执行步骤S203而不执行步骤S202。
当Bit(x0,i)是“1”时(步骤S203:是),信息处理终端10计算“c=c×z’”(步骤S204)。另一方面,当Bit(x0,i)不是“1”时(步骤S203:否),信息处理终端10执行步骤S205而不执行步骤S204。
接下来,当Bit(x1,i)是“1”时(步骤S205:是),信息处理终端10计算“c=c×z1’”(步骤S206)。另一方面,当Bit(x1,i)不是“1”时(步骤S205:否),信息处理终端10执行步骤S207而不执行步骤S206。
接下来,当Bit(x2,i)是“1”时(步骤S207:是),信息处理终端10计算“c=c×z2’”(步骤S208)。另一方面,当Bit(x2,i)不是“1”时(步骤S207:否),信息处理终端10执行步骤S209而不执行步骤S208。
接下来,当Bit(x3,i)是“1”时(步骤S209:是),信息处理终端10计算“c=c×z3’”(步骤S210),然后返回到图8所示的处理。另一方面,当Bit(x3,i)不是“1”时(步骤S209:否),信息处理终端10返回至图8所示的处理而不执行步骤S210。
效果
如前面描述的,信息处理终端10通过步骤S104的一次平方运算的来执行对“z”、“z1’”、“z2’”和“z3’”的取幂运算和米勒算法中的平方运算。在图9中示出的分支处理中,信息处理终端10关于每个划分的取幂运算的各个指数和米勒算法的重复次数来检查比特值,并且根据比特值执行处理。因此,可以减少平方运算,并且从而能够降低根据加密密钥共享的计算成本。
图11是示出效果的图。如图11所示,在传统技术的常规曲线中,在取幂运算中执行了“|x|-1”次平方运算,其中,|x|表示在x中的比特的数目,并且在米勒算法中执行了“|α|-1”次平方运算。因此,总共执行了“|x|+|α|-2”次平方运算。然而,通过使用前述的实施方式,取幂运算的平方运算可以被调整至米勒算法中的平方运算,并且因此平方运算的次数变成总共“|α|-1”次。因此,通过使用前述的实施方式,减少了“|x|-1”次平方运算。
在传统技术的256比特的BN曲线中,在取幂运算中执行了“255”次平方运算,并且在米勒算法中执行了“63”次平方运算。因此总共执行了“255+63=318”次平方运算。然而,通过使用上述的实施方式,取幂运算的平方运算可以被调整至米勒算法中的平方运算,并且因此平方运算的次数变成总共“63”次。因此,通过使用前述的实施方式,减少了“255”次平方运算。
[b]第二实施方式
到目前为止说明了根据本发明的实施方式。然而,除了前述实施方式,本发明还可以通过各种实施方式来实现。
Frobenius映射
取幂运算的幂阶被展开成底数“2x”,并且因此取幂运算的重复次数和米勒算法的重复次数一致。在这种情况下,例如,如果幂指数是256比特并且米勒算法的重复次数是64比特,那么式(5)被保存。
在BN曲线中,特征“p”被定义为“p=36α4-36α3+24α2-6α+1”,阶“r”被定义为“r=36α4-36α3+18α2-6α+1”,并且轨迹“t”被定义为“t=6α2+1”。在这种情况下,通过使用被定义为在扩展域上的映射的Frobenius映射可以在减少要初步保存的量的同时减少计算量。具体地,在Frobenius映射中,G3的元素具有可以在该映射中计算具有幂阶p的取幂运算的特性,并且因此可以以“1”次实现。
例如,当Frobenius映射被组合时,“6α=1+φ+φ310”成立。由此,可以在Frobenius映射中计算具有幂阶“6α”的取幂运算。因此,当幂指数“x”被展开时,不需要在例如第一实施方式中描述的初步计算,并且因此可以减少保存初步计算的值中的存储器数量。
具体地,“x”被展开成基数“p”,并且得到了“x=x0+px1”。在本文中,“x0和x1”被展开成基数“6α”,并且能够获得“x=x0,0+(6α)x0,1+p(x1,0+(6α)x1,1)=x0,0+(1+φ+φ310)x0,1+p(x1,0+(1+φ+φ310)x1,1)=x0,0+(1+φ3)(1+φ10)x0,1+φx1,0+φ(1+φ3)(1+φ10)x1,1”。
因此,在开始取幂运算之前,信息处理终端10计算“z’=f(P,Q)”、“z1’=φ3(z’)·z’”、“z1’=φ10(z1’)·z1’”、“z2’=φ(z’)”以及“z3’=φ(z1’)”,并且因此可以减少存储器数量。
特殊配对
在前述实施方式中,说明了在米勒算法之后执行最终取幂运算的配对处理。然而,不限于此,前述实施方式可以被应用于另一个配对处理。例如,存在下述配对处理,在该配对处理中取决于使用的曲线,在米勒算法之后执行另外的处理,并且之后执行最终取幂运算。即使在这样的配对处理中,当只有在执行最终取幂运算之前的值被初步计算和保存时,处理可以被类似地执行。
例如,当参考使用BN曲线的Optimal Ate配对进行说明时,可以如式(5)计算“e(P,Q)”。在式(6)中,下划线部分是不同于第一实施方式的部分的另外的处理的部分。当第一实施方式被应用于式(6)时,式(7)成立。因此,即使当存在另外的处理时,取幂运算的平方运算可以被调整成米勒算法的平方运算,并且因此可以降低计算成本。
在式(7)中,“p”是特征,“r”是在配对中使用的群“G1”、“G2”和“G3”的阶,并且P∈G1,Q∈G2,z=e(P,Q)∈G3。此外,“t”是椭圆曲线密码学中的轨迹,“α”是给出变量“p”、“r”和“t”的参数。“k”是嵌入次数,并且是作为(pk-1)除以r得到的结果的最小整数。“φ”是“Fpk”中的Frobenius映射,并且“φG2”是“E(Fpk)”中的Frobenius映射。“Q”和“φG2”如式(8)中所定义。
算法和曲线
在前述实施方式中,以米勒算法举例进行说明。然而不限于此。例如,可以采用类似于米勒算法执行椭圆曲线上的双线性映射的任何算法。此外,不限于BN曲线,可以采用常规曲线。
系统
在图中说明的设备的部件仅仅是概念上的,而不需要如说明的物理地配置。即设备的分布和集成的特定形式不限于在图中说明的那些。此外,对于通过每个设备执行的每种处理功能,处理功能的全部或者任何部分可以通过CPU和由CPU分析和执行的程序来实现,或者可以通过布线逻辑被实现为硬件。
在实施方式中描述的处理中,被描述为自动执行的处理的全部或部分可以手动地执行。替选的,被描述为手动执行的处理的全部或部分也可以通过已知的方法自动执行。此外,除非另有说明,否则处理过程、控制过程、特定名称以及包括在前面描述的文献和附图中说明的各种类型的数据和参数的信息可以被任意改变。
硬件
图12是示出硬件配置示例的图。如图12所示,信息处理终端10包括通信接口10a、硬盘驱动器(HDD)10b、存储器10c以及处理器10d。图12中所示的每个单元通过总线等彼此连接。
通信接口10a是控制与其他设备的通信的接口如网络接口卡。HDD 10b存储对图6等中所示的功能进行操作的程序、数据库和表。
处理器10d从HDD 10b等读取执行与图6等中所示的每个处理单元的处理类似的处理的程序,并且在存储器10c将其展开以操作执行在图6等中所示的每个功能的处理。
换言之,该处理执行与包括在信息处理终端10中的每个处理单元的功能类似的功能。具体地,处理器10d从HDD 10b等读取具有与接收单元16、初步计算单元17、划分单元18、计算单元19等的功能类似的功能的程序。处理器10d执行下述处理,该处理执行与接收单元16、初步计算单元17、划分单元18、计算单元19的处理类似的处理。
以这种方式,信息处理终端10读取并且执行程序,以操作为执行共享密钥生成方法的信息处理设备。此外,信息处理终端10可以通过介质记录设备从记录介质读取前述的程序,并且可以执行读取的程序以实现与根据前述实施方式的功能类似的功能。此外,在其他实施方式中提到的程序不限于由信息处理终端10执行。例如,本发明可以被类似地应用于另外的计算机或者服务器执行程序或者它们合作执行程序的情况。
根据实施方式的方面,可以降低加密密钥共享的计算成本。

Claims (4)

1.一种共享密钥生成方法,包括:
通过使用算法来计算第一计算值,所述算法根据通过素域定义的椭圆曲线上的加法循环群上的两个点来输出所述素域的扩展域上的元素;
保存所述第一计算值;
根据使用对共享密钥共享的共享者的标识符的变量、信息处理终端的私钥以及所述算法来计算第二计算值;以及
通过对所述第一计算值的取幂运算和所述第二计算值的取幂运算中的每一个执行最终取幂运算来生成所述共享密钥。
2.根据权利要求1所述的共享密钥生成方法,其中,
所述计算包括:根据所述算法的重复次数来划分取幂运算的重复次数,
所述保存包括:保存取幂运算的划分部分中的每一个的结果,并且
所述生成包括:对所述第二计算值和取幂运算的划分部分中的每一个执行最终取幂运算;以及生成所述共享密钥。
3.根据权利要求1所述的共享密钥生成方法,其中,
所述算法是使用米勒算法计算的有理函数,并且
所述生成包括:对所述第一计算值的取幂运算和所述第二计算值的取幂运算中的每一个执行所述最终取幂运算,以计算使用所述两个点的取幂运算的双线性映射以及使用利用所述共享者的标识符的变量和所述信息处理终端的私钥的双线性映射;以及生成所述双线性映射的相乘结果作为所述共享密钥。
4.一种信息处理终端,包括:
计算单元,其通过使用算法来计算第一计算值,所述算法根据通过素域定义的椭圆曲线上的加法循环群上的两个点来输出所述素域的扩展域上的元素;
保存单元,其保存所述第一计算值;
计算单元,其根据使用对共享密钥共享的共享者的标识符的变量、信息处理终端的私钥以及所述算法来计算第二计算值;以及
生成单元,其通过对所述第一计算值的取幂运算和所述第二计算值的取幂运算中的每一个执行最终取幂运算来生成所述共享密钥。
CN201710018197.5A 2016-01-15 2017-01-10 共享密钥生成方法和信息处理终端 Active CN106992854B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016006688A JP6610277B2 (ja) 2016-01-15 2016-01-15 共有鍵生成プログラム、共有鍵生成方法および情報処理端末
JP2016-006688 2016-01-15

Publications (2)

Publication Number Publication Date
CN106992854A true CN106992854A (zh) 2017-07-28
CN106992854B CN106992854B (zh) 2020-11-03

Family

ID=59256056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710018197.5A Active CN106992854B (zh) 2016-01-15 2017-01-10 共享密钥生成方法和信息处理终端

Country Status (4)

Country Link
US (1) US10425227B2 (zh)
JP (1) JP6610277B2 (zh)
CN (1) CN106992854B (zh)
DE (1) DE102017200354A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108337091A (zh) * 2018-03-22 2018-07-27 北京中电华大电子设计有限责任公司 一种SM9椭圆曲线扭曲线上特定点的p倍点计算方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020080510A1 (ja) * 2018-10-19 2020-04-23 日本電信電話株式会社 認証認可システム、情報処理装置、機器、認証認可方法及びプログラム
US11128454B2 (en) 2019-05-30 2021-09-21 Bong Mann Kim Quantum safe cryptography and advanced encryption and key exchange (AEKE) method for symmetric key encryption/exchange
JP7289478B2 (ja) * 2019-08-28 2023-06-12 日本電信電話株式会社 鍵交換システム、機器、情報処理装置、鍵交換方法及びプログラム

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070165843A1 (en) * 2006-01-13 2007-07-19 Microsoft Corporation Trapdoor Pairings
US20090285386A1 (en) * 2006-01-11 2009-11-19 Katsuyuki Takashima Apparatus for Generating Elliptic Curve Cryptographic Parameter, Apparatus for Processing Elliptic Curve Cryptograph, Program for Generating Elliptic Curve Cryptographic Parameter, and Program for Processing Elliptic Cryptograph
CN101842824A (zh) * 2007-10-30 2010-09-22 国立大学法人冈山大学 配对计算装置、配对计算方法以及记录配对计算程序的记录媒体
JP2011147060A (ja) * 2010-01-18 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> Idベース認証鍵交換システム、認証鍵交換方法、認証鍵交換装置及びそのプログラムと記録媒体
CN102308326A (zh) * 2008-08-29 2012-01-04 国立大学法人冈山大学 配对运算装置、配对运算方法、以及配对运算程序
CN102405469A (zh) * 2009-04-21 2012-04-04 国立大学法人冈山大学 配对运算装置、配对运算方法以及记录有配对运算程序的记录介质
CN102413465A (zh) * 2012-01-04 2012-04-11 西安电子科技大学 基于MIPv6的安全组播密钥管理方法
JP2014164176A (ja) * 2013-02-26 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> ペアリング演算装置、ペアリング演算方法、およびプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076061B1 (en) * 2000-02-07 2006-07-11 Citibank, N.A. Efficient and compact subgroup trace representation (“XTR”)
US20050213758A1 (en) * 2000-02-07 2005-09-29 Lenstra Arjen K Efficient and compact subgroup trace representation ("XTR")
US20160112069A1 (en) * 2003-09-09 2016-04-21 Peter Lablans Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
JP4585372B2 (ja) 2005-05-02 2010-11-24 日本電信電話株式会社 ペアリング演算装置、ペアリング演算方法、およびペアリング演算プログラム
JP4649456B2 (ja) 2007-09-26 2011-03-09 株式会社東芝 べき乗計算装置、べき乗計算方法及びプログラム
JP5329879B2 (ja) 2008-09-10 2013-10-30 株式会社東芝 計算装置、方法及びプログラム
US10515567B2 (en) * 2010-06-01 2019-12-24 Ternarylogic Llc Cryptographic machines with N-state lab-transformed switching devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090285386A1 (en) * 2006-01-11 2009-11-19 Katsuyuki Takashima Apparatus for Generating Elliptic Curve Cryptographic Parameter, Apparatus for Processing Elliptic Curve Cryptograph, Program for Generating Elliptic Curve Cryptographic Parameter, and Program for Processing Elliptic Cryptograph
US20070165843A1 (en) * 2006-01-13 2007-07-19 Microsoft Corporation Trapdoor Pairings
CN101842824A (zh) * 2007-10-30 2010-09-22 国立大学法人冈山大学 配对计算装置、配对计算方法以及记录配对计算程序的记录媒体
CN102308326A (zh) * 2008-08-29 2012-01-04 国立大学法人冈山大学 配对运算装置、配对运算方法、以及配对运算程序
CN102405469A (zh) * 2009-04-21 2012-04-04 国立大学法人冈山大学 配对运算装置、配对运算方法以及记录有配对运算程序的记录介质
JP2011147060A (ja) * 2010-01-18 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> Idベース認証鍵交換システム、認証鍵交換方法、認証鍵交換装置及びそのプログラムと記録媒体
CN102413465A (zh) * 2012-01-04 2012-04-11 西安电子科技大学 基于MIPv6的安全组播密钥管理方法
JP2014164176A (ja) * 2013-02-26 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> ペアリング演算装置、ペアリング演算方法、およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谢天艺: "素数域椭圆曲线密码加速器的VLSI实现", 《计算机工程与应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108337091A (zh) * 2018-03-22 2018-07-27 北京中电华大电子设计有限责任公司 一种SM9椭圆曲线扭曲线上特定点的p倍点计算方法

Also Published As

Publication number Publication date
DE102017200354A1 (de) 2017-07-20
JP6610277B2 (ja) 2019-11-27
US10425227B2 (en) 2019-09-24
US20170207914A1 (en) 2017-07-20
JP2017126970A (ja) 2017-07-20
CN106992854B (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
Liu et al. Efficient and privacy-preserving outsourced calculation of rational numbers
KR100960578B1 (ko) 식별자 기반 키 생성 방법 및 장치
CN109716375B (zh) 区块链账户的处理方法、装置和存储介质
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
JP6908700B2 (ja) 情報保護のためのシステム及び方法
Alkim et al. Post-quantum key {Exchange—A} new hope
Baek et al. Public key encryption with keyword search revisited
JP2020502856A5 (zh)
US10846372B1 (en) Systems and methods for trustless proof of possession and transmission of secured data
Garg et al. Comparative analysis of cloud data integrity auditing protocols
CN101179380A (zh) 一种双向认证方法、系统及网络终端
CN108632028A (zh) 认证网络
CN106992854A (zh) 共享密钥生成方法和信息处理终端
WO2019110399A1 (en) Two-party signature device and method
CN108985102A (zh) 数据完整性验证方法、装置、系统及存储介质
US20160182235A1 (en) General encoding functions for modular exponentiation encryption schemes
CN109818752A (zh) 信用评分生成方法、装置、计算机设备和存储介质
CN111010285A (zh) 一种适用于轻量级客户端的sm2两方协同签名方法及介质
US11676111B1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
US9660813B1 (en) Dynamic privacy management for communications of clients in privacy-preserving groups
Patil et al. Big data privacy using fully homomorphic non-deterministic encryption
Feng et al. White-box implementation of Shamir’s identity-based signature scheme
US20160359630A1 (en) Authentication methods, systems, devices, servers and computer program products
Parwekar et al. Public auditing: cloud data storage
Wang et al. An improved digital signature algorithm and authentication protocols in cloud platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant