CN110870250B - 密钥协商设备和方法 - Google Patents

密钥协商设备和方法 Download PDF

Info

Publication number
CN110870250B
CN110870250B CN201880045937.7A CN201880045937A CN110870250B CN 110870250 B CN110870250 B CN 110870250B CN 201880045937 A CN201880045937 A CN 201880045937A CN 110870250 B CN110870250 B CN 110870250B
Authority
CN
China
Prior art keywords
polynomial
key
network node
modulus
coefficients
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
CN201880045937.7A
Other languages
English (en)
Other versions
CN110870250A (zh
Inventor
S·巴塔查里亚
O·加西亚莫尔琼
L·M·G·M·托尔胡伊泽恩
R·里特曼
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of CN110870250A publication Critical patent/CN110870250A/zh
Application granted granted Critical
Publication of CN110870250B publication Critical patent/CN110870250B/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
    • 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
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0852Quantum cryptography
    • H04L9/0858Details about key distillation or coding, e.g. reconciliation, error correction, privacy amplification, polarisation coding or phase coding
    • 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/3026Public 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 polynomials generation, e.g. generation of irreducible polynomials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Electromagnetism (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

提供了第一电子网络节点(110),其被配置用于密钥交换(KEX)协议,第一网络节点被配置为:获得与第二网络节点共享的共享多项式(a),共享多项式a的系数被选择对第一模数q取模,生成私钥多项式(skI),私钥多项式的系数的绝对值以边界(s)为界,通过以下方式来生成公钥多项式(pkI),计算共享多项式(a)与私钥多项式(skI)之间的多项式乘积对第一模数(q)取模,并且将多项式乘积的系数按比例缩小为第二模数(p)。

Description

密钥协商设备和方法
技术领域
本发明涉及网络节点、密钥协商方法、参数选择设备、参数选择方法和计算机可读介质。
背景技术
在密码学中,密钥协商协议是一种协议,通过所述协议,两个或更多个可能尚未共享公共密钥的各方可以商定这样的密钥。优选地,双方都可以影响结果,使得双方都不能强制密钥的选择。窃听了双方之间所有通信的攻击者应该对密钥一无所知。但是,尽管看到相同通信的攻击者一无所知或所知甚微,但各方本身却可以导出共享密钥。
密钥协商协议对于例如保护通信是有用的,例如以加密和/或认证各方之间的消息。
实际的密钥协商协议是在1976年引入的,当时Whitfield Diffie和MartinHellman引入了公钥密码学的概念。他们提出了一种用于双方之间密钥协商的系统,所述系统利用了在具有q个元素的有限域GF(q)上计算对数的明显难度。使用该系统,两个用户可以商定对称密钥。然后,对称密钥可以用于例如双方之间的加密通信。
当各方还没有共享秘密时适用的当前密钥协商方法(例如,Diffie-Hellman密钥协商方法)需要大量资源的数学运算。例如,Diffie-Hellman需要人们在有限域上执行求幂运算。指数和字段大小二者都可能大。这使得密钥协商协议不太适合低资源设备。另一方面,密钥协商协议在资源受限的设备中将非常有用。例如,在诸如物联网、自组织无线网络等的应用领域中,可以使用密钥协商来保护设备之间的链接。另一示例是读取器和电子标签(例如,读卡器和智能卡)或标签读取器和标签(例如,RFID标签或NFC标签)之间的通信。具有密钥协商协议是有利的,所述协议将较小的负担加在双方中的至少一方上,即在电子标签上。
为了促进各方之间的安全通信,有时将密钥协商协议进一步细分成密码密钥交换(KEX)和密码密钥封装(KEM)方案。密码密钥封装(KEM)方案使用非对称密码学在双方之间建立共享秘密,针对每一方使用公开已知(例如,公钥)和秘密拥有(例如,秘密密钥)的值。
KEX方案涉及由每一方进行的交换公钥,然后另一方将所述公钥与他们自己的秘密密钥一起独立使用以计算公共共享秘密。KEX方案的一个著名示例是上述的Diffie-Hellman密钥交换,其安全性基于求解离散对数问题。一些KEX方案的有趣特征是,实际最终的共享秘密永远不会在各方之间交换,甚至不会以加密形式交换,而是由双方在每一端处独立计算。这得到了期望的特征,其被称为前向安全性,其确保即使攻击者将来损害一方的长期秘密密钥,也不会损害过去交换的加密消息的机密性。
KEM方案由一方(通常是通信的发起者)使用非对称密码学在两个实体或双方之间建立共享秘密,以对共享秘密加密(使用另一方的公钥)并将共享秘密发送到另一方(称为响应方),然后所述另一方可以对其进行解密(使用她的秘密密钥),并且然后将其用于与发起方进行安全通信。KEM方案无法实现前向机密性,这是因为损害了用于过去的会话中的一方的秘密密钥并已记录在该会话中在各方之间交换的所有消息的任何攻击者可以恢复用于该特定会话的共享秘密。
由于物联网中日益增长的安全需求,密钥交换方案还需要实现高效率(即,最小的通信量或带宽需求),同时还要保持安全性,以抵御传统的以及具有量子能力的敌手。
Joppe W.Bos et.al.‘Post-quantum key exchange for the TLS protocolfrom the ring learning with errors problem’,IACR 2016公开了一种被配置用于使用“学习与误差”的密钥协商协议的电子网络节点。
Andrey Bogdanov et.al.‘On the Hardness of Learning with Rounding overSmall Modulus”,Network and Parallel Computing,Lecture Notes in ComputerScience,2015公开了一种基于学习与舍入的协议。
Chris Peikert et.al.‘Lattice Cryptography for the Internet’,Networkand Parallel Computing,Lecture Notes in Computer Science,2014公开了一种用于基于学习与误差的认证的密钥交换的基于格点的协议。
发明内容
提供了一种被配置用于密钥协商协议的电子网络节点。该网络节点将被称为第一网络节点,以将其区别于与其通信的第二网络节点。
提供了解决这些和其他问题的第一电子网络节点。该网络节点被配置用于密钥协商协议,所述协议可以是例如密钥交换(KEX)或密钥封装(KEM)方案。第一网络节点包括:
-通信接口,其被布置用于与第二网络节点进行数字通信,以及
-处理器电路,其被配置为:
-获得共享多项式,所述共享多项式通过所述通信接口与所述第二网络节点共享,所述共享多项式的系数被选择对第一模数q取模,
-生成私钥多项式,所述私钥多项式的系数的绝对值以边界(s)为界,
-通过以下方式来生成公钥多项式:
-计算所述共享多项式与所述私钥多项式之间的多项式乘积对所述第一模数取模,以得到多项式乘积;
-将所述多项式乘积的系数按比例缩小为第二模数,缩放的系数等于未缩放的系数乘以所述第二模数,再除以所述第一模数,并且舍入为最接近的整数,所述第二模数小于所述第一模数,所述边界最多为所述第二模数,
-将所述第一网络节点的所述公钥多项式发送到所述第二网络节点,
-接收所述第二网络节点的公钥多项式,
-计算原始密钥多项式为所述第二节点的所接收的公钥与所述第一网络节点的所述私钥多项式之间的多项式乘积对所述第二模数取模,并且根据所述原始密钥来计算所述共享密钥。
因为私钥多项式是有界的,并且公钥多项式是按比例缩放的,因此减少了密钥协商的计算和通信开销。此外,通过使用多项式代替例如矩阵,可以进一步减少计算和带宽开销。有利地,多项式通勤进一步简化了协议。在实施例中,所使用的多项式对n阶多项式(例如,X^n+1)取模,使得它们具有n个系数。通常,私钥多项式与共享多项式具有相同系数数量(n),但这不是必需的。例如,私钥多项式可以具有比共享多项式更低的阶数或系数数量。它们甚至可能在第一节点和第二节点之间具有不同数量的系数。注意,即使私钥多项式中的系数数量等于共享多项式中的系数数量,它们也可能是稀疏的。
多项式乘法是对n阶归约多项式取模。任何归约多项式都可以使用,尽管选择特定归约多项式可能是有利的。例如,在实施例中,选择共享多项式,使得它与归约多项式没有公约数。此特征的优点在于,公钥多项式将更均匀地分布。归约多项式也可以选择为不可约的。后者将在某种程度上限制归约多项式的选择,但另一方面,它的优点是与共享多项式的相对素数测试是不需要的。
模数p和q不需要为素数,并且实际上优选为2的幂。此外,特别优选地,p整除q。例如,在实施例中,第一模数具有12或更大的比特大小,和/或第二模数具有7或更大的比特大小。如果不经常使用共享多项式,则会提高安全性。由于共享多项式可能是公共的,并且至少是共享的,因此攻击者可能知道它。攻击者可能利用此优势对该多项式执行预计算。为了避免这种攻击方式,频繁更改共享密钥多项式是优选的。在实施例中,在固定数量的密钥协商之后(例如,甚至在每次执行密钥协商之后)协商新的共享密钥多项式。此外,私钥多项式可以以某个频率更换。
因为下舍入运算,所以观察到第一节点和第二节点之间的流量的攻击者将无法重构由节点使用的私有多项式。另一方面,由于第一节点比攻击者拥有更多的信息,因此它们能够导出共享密钥;除了接收到的公钥多项式之外,第一和第二节点还具有自己的私钥多项式。
舍入可能导致在第一节点和第二节点处计算的原始密钥之间的差异。然而,可以从中计算出共享密钥。存在若干种方法可以实现这一点。
在实施例中,第一网络节点还被配置为:
-接收所述第二网络节点的帮助者数据,所述帮助者数据包括信息,所述信息允许在所述第一节点和所述第二节点处导出相同的共享密钥,以消除在所述第一节点和所述第二节点处导出的所述原始密钥之间的差异,以及
-根据所述帮助者数据和所述原始密钥多项式的多个系数来计算共享密钥。在这种情况下,第一网络节点将负责生成帮助者数据。反过来也是可能的,其中,第一网络节点生成帮助者数据,并且第二网络节点使用它。例如,在实施例中,第一网络节点还被配置为:
-获得所述共享密钥,并且至少从所述原始密钥多项式的多个系数获得所述帮助者数据,以及
-将所述帮助者数据发送到所述第二网络节点。
因此,在实施例中,发起节点从响应者节点接收其公钥以及附加地帮助者数据。仅使用公钥,发起节点就能够获得与响应节点几乎相同的原始密钥。然而,两个原始密钥之间可能存在差异。
帮助者数据向网络节点提供了附加信息以对其进行引导,使得网络节点获得与帮助者数据的发送者相同的共享密钥。帮助者数据可以是某种类型的冗余信息,并且最终优选地将不在共享密钥本身中使用。
帮助者数据可以是根据私钥计算出的数据的一部分,例如是原始密钥的一部分。帮助者数据可以是附加数据,例如校验和数据,例如针对根据秘密数据计算出的数据而计算的校验子。例如,帮助者数据可以包括关于原始密钥或共享密钥的冗余信息。帮助者数据可以通过添加一个或多个代码字来获得。相反,可以通过计算例如用于原始密钥或用于共享密钥的纠错码的所谓校验子来获得帮助者数据。在实施例中,给出了两种不同类型的帮助者数据,对帐数据和封装的密钥;给出了这两种类型的成功示例。
在实施例中,帮助者数据是所谓的对帐数据。例如,对帐数据可以包括关于原始密钥的信息。例如,对帐数据可以包括由节点导出的原始密钥的比特。对帐数据允许另一节点消除由两侧导出的原始密钥之间的差异,并且计算相同的共享密钥。
使用对帐数据,可以克服在第一和第二网络节点处计算出的原始密钥多项式之间的差异。节点之一计算对帐数据,并且另一节点使用对帐数据。用于计算共享密钥的每个系数的对帐数据可以低至1比特。实施例使用更多比特,例如2或更多比特。
用于克服在两侧处计算的原始密钥之间的差异的另一选项是使用密钥封装。通过封装,共享密钥得到了保护,并且此外原始密钥之间的细小差异导致解封装的共享密钥之间的细小、可校正的差异。例如,为封装密钥,人们可以首先添加附加冗余。这可以例如通过将共享密钥中的比特映射到模p的数字来完成,例如通过将比特0映射到0,并且将比特1映射到p/2。更广泛的映射使用纠错码,例如重复码。纠错码的其他示例包括Hadamard码、Reed-Solomon、BCH等。在对共享密钥进行编码并添加冗余之后,将原始密钥相加mod p到编码的共享密钥中,以获得封装的共享密钥。代替相加,还可以使用其他组合函数,例如,减法mod p。
不需要针对原始密钥的所有系数生成或使用帮助者数据,例如对帐数据、纠错数据等。并非需要使用原始密钥的所有系数来计算共享密钥,对于帮助者数据,仅需要考虑实际使用的那些系数。例如,在实施例中,共享密钥是从原始密钥的固定数量和/或预定的系数导出的。然后仅针对那些系数并且针对少于原始密钥多项式的所有系数来获得、发送、接收和/或应用对帐数据。在实施例中,用于共享密钥的系数可以变化。例如,第一节点和第二节点之一(例如,发起节点)将种子发送到另一节点。两个节点都使用种子来随机决定要针对帮助者数据和共享密钥考虑哪些系数。
注意,对于两种类型的帮助者数据,网络节点(例如,响应者节点)被配置为获得共享密钥并从原始密钥多项式的至少多个系数获得帮助者数据。在对帐数据的情况下,可以从原始密钥的多个系数获得共享密钥和帮助者数据。在封装的情况下,帮助者数据是从共享密钥和原始密钥的多个系数获得的。多个系数可以是全部系数。
根据实施例的密钥协商方法的优点在于,由于缩放它们具有较小的带宽要求,并且由于私钥多项式中的系数的边界而具有较低的计算要求。例如,在实施例中,私钥多项式的系数的绝对值的边界为2,或者边界为1,后者对应于有符号的二进制。优选实施例使用1的边界,其中,系数是二进制(0或1)或有符号的二进制(0、-1或1)。后者是最优选的。
有趣的是,即使系数本身的数量大得多,通过限制非零系数的数量也可以进一步减少开销。例如,在实施例中,设备可以被配置有预定数量的非零系数。可以以不同方式强制此数量。例如,在实施例中,私钥多项式被生成有最多该数量的非零系数(称为多项式的汉明权重)。尽管不是必需的,但鉴于施加于其上的条件,私钥多项式尽可能地随机是有益的。例如,在给定的汉明权重和系数的大小的边界的情况下,可以从候选私钥多项式(例如,从满足边界的所有私钥多项式)中均匀地随机选择私钥多项式。
用于强制汉明权重的另一方法是通过从概率分布中选择私钥多项式。对于私钥多项式,概率分布具有固定预期数量的非零系数。在这种情况下,可能发生的是有时私钥多项式的汉明权重可能略微地更高或更低。例如,在实施例中,可以从非均匀概率分布中选择私钥多项式的系数,其中,零系数的概率大于非零系数的概率。
汉明重的确切大小似乎并不至关重要。特别是,在生产规模的示例中,其中,系数的数量较大,似乎不错的选择是将系数的数量除以5(0.2n)。然而,可能的是在
Figure GDA0003838204810000071
至少为例如127或更优选至少为255的情况下,通过最小化hs(汉明权重)来估计最小汉明权重。
本发明的各方面包括一种用于搜索良好参数集的设备和方法。
网络节点是电子设备。例如,它们可以是移动电子设备,例如手机、平板计算机、或智能卡、计算机。该网络节点可以是机顶盒、计算机、电视等。本文所述的密钥协商方法可以应用于广泛的实际应用中。这样的实际应用包括因特网(物联网)中的安全性。协议可以应用于诸如IKE、TLS、SSH等的协议。通常,对于一般的因特网用例和资源受限的环境二者,提议的方案是后量子安全的。只要需要两个节点之间的安全通信,例如机密通信,就可以使用密钥协商。这可以在传感器网络中,但是也可以例如用于保护金融交易。
根据本发明的一种方法可以在计算机上实现为计算机实现的方法,或者可以在专用硬件中或者以二者的组合来实现。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上的非暂时性程序代码,其用于在所述程序产品在计算机上被执行时执行根据本发明的方法。
在优选实施例中,计算机程序包括计算机程序代码,所述计算机程序代码适于在计算机程序在计算机上运行时执行根据本发明的方法的所有步骤。优选地,计算机程序被体现在计算机可读介质上。
本发明的另一方面提供了一种使计算机程序可用于下载的方法。当将计算机程序上载到例如Apple的App Store、Google的Play Store或Microsoft的Windows Store以及当可以从此类商店下载计算机程序时,将使用此方面。
附图说明
将仅通过示例的方式参考附图来描述本发明的另外的细节、方面和实施例。为了简单和清楚起见而示出了图中的元素,并且所述元素不一定按比例绘制。在附图中,与已经描述的元素相对应的元素可以具有相同的附图标记。在图中,
图1示意性地示出了密钥协商网络的实施例的示例,
图2示意性地示出了原始密钥的实施例的示例,
图3示意性地示出了电子密钥交换方法的实施例的示例,
图4a示意性地示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,
图4b示意性地示出了根据实施例的处理器系统的表示,
图5示意性地示出了密钥协商网络的实施例的示例,
图6a示意性地示出了参数选择设备的实施例的示例,
图6b示意性地示出了参数选择方法的实施例的示例。
图1-2、5、6a中的附图标记的列表:
100 密钥协商网络
110 发起者类型的网络节点
120 通信接口
130 共享多项式单元
140 私钥多项式单元
150 公钥多项式单元
160 共享密钥单元
162 原始密钥
164 对帐数据(h)
166 共享密钥
210 响应者类型的网络节点
220 通信接口
230 共享多项式单元
240 私钥多项式单元
250 公钥多项式单元
260 共享密钥单元
262 原始密钥
264 对帐数据(h)
266 共享密钥
300 原始密钥多项式的系数
301 最高有效部分
302 中间有效部分
303 最低有效部分
500 密钥协商网络
510 发起者类型的网络节点
520 响应者类型的网络节点
560 共享密钥单元
564 编码的密钥
570 共享密钥单元
573 生成的共享密钥
574 编码的共享密钥
576 封装的共享密钥
600 参数选择设备
602 输出接口
610 参数集生成器
620 p、q选择单元
630 n、m优化器
640 优化器
具体实施方式
尽管本发明容许许多不同形式的实施例,但是在附图中示出并且在本文中将详细描述一个或多个特定实施例,应理解本公开被认为是本发明原理的示例,而并不旨在将本发明限制于所示出和描述的特定实施例。
在下文中,为了理解起见,描述了操作中的实施例的元素。然而,将显而易见的是,相应元素被布置为执行被描述为由它们执行的功能。
此外,本发明不限于实施例,并且本发明在于在本文中描述或在互不相同的从属权利要求中记载的每个新颖特征或特征的组合。
图1示意性地示出了密钥协商网络100的实施例的示例。
图1中示出了系统中的两个网络节点:发起者类型的网络节点110和响应者类型的网络节点210。在密钥协商系统的实施例中,节点的数量可以大于,甚至远大于两个,例如大于1000个节点,例如大于10^6个节点。
发起者或响应者类型的网络节点之间的区别在于,它如何处理对帐数据。发起者类型的网络节点接收对帐数据并将其应用于获得共享密钥,而响应者类型的网络节点生成对帐数据并将其发送到发起者类型的网络节点。响应者类型的网络节点不需要对帐数据来获得共享密钥。通常,发起者类型还将发起两个网络节点之间的密钥协商协议,这是因为这可能会减少两网络节点之间执行的回合次数。然而,这不是必需的;密钥协商协议也可以由响应者类型的网络节点发起。
此外,在网络节点的实施例中,网络节点被配置为根据发起者模式和根据响应者模式进行操作。例如,如果网络节点发起密钥协商,例如向另一网络节点发送信号,以用信号通知密钥协商协议的开始,则网络节点可以切换到发起者模式。如果网络节点对密钥协商进行响应,例如从另一网络节点接收到用信号通知密钥协商协议开始的消息,则网络节点可以切换到响应者模式。尽管这在实践中是方便的,但是此选项也不是严格必需的;例如,在密钥协商系统中,一些模式只可以被配置为发起者,而一些只可以被配置为响应者节点。这样的结果将是一些节点无法一起商定共享密钥。对于一些网络(例如,自组织网络或自组织无线网格等中),这不需要是问题,只要足够多对的网络节点可以通信并商定共享密钥。
发起者节点110包括通信接口120。响应者节点210包括通信接口220。通信接口可以被布置用于与密钥协商系统中的其他节点进行数字通信。尽管系统中的所有节点可以始终可访问,但这不是必需的。
通信接口120和220被布置用于数字通信。例如,通信接口可以被布置为通过计算机网络进行通信。例如,通信接口可以被布置用于无线通信(例如,Wi-Fi、ZigBee、蓝牙等)和/或有线通信(例如,以太网、USB等)。节点110和210之间的通信也可以是有线和无线连接的组合。例如,系统100中的节点(包括节点110和210)可以包括包含通信标识符的电子存储装置,所述通信标识符唯一地标识系统100内的节点。例如,通信标识符可以被包括在节点110和210之间交换的数字消息中,例如以对该消息寻址。例如,通信标识符可以是IP地址、MAC地址等。
在实施例中,电子网络节点被配置用于密钥交换(KEX)协议。该协议涉及通过通信接口120和220在节点110和210之间交换消息,以及对例如从另一节点接收的数据执行计算。密钥协商协议的执行在处理器电路中实现,其示例如下所示。图1示出了可以是处理器电路的功能单元的功能单元。例如,图1可以用作处理器电路的可能的功能组织的蓝图。处理器电路未与图1中的单元分开示出。例如,图1中所示的功能单元也可以全部或部分地以存储在网络节点处并可由网络节点的微处理器执行的计算机指令来实现。
在与图1有关的实施例中,发起者节点110和响应者节点210被配置用于密钥交换(KEX)协议。KEX方案涉及由每一方进行的公共数据(通常称为公钥)的交换,所述公共数据然后由另一方与他们的私有数据(通常称为秘密密钥)一起独立地使用,以计算公共共享秘密。一些实施例的有趣的特征是,各方之间从未交换实际的最终共享秘密,甚至没有以加密形式进行交换,而是由每端处的双方独立地计算出来的。这得到了期望的特征,其被称为前向安全性,它可以确保即使攻击者将来损害一方的长期密钥,也不会损害过去交换的加密消息的机密性。
本发明的实施例不依赖于受信任的第三方来提供机密通信。通信接口120和220之间的通信信道不需要一定是安全信道。攻击者可以是能够窃听通信信道的。即使这样,在节点110和210之间协商的密钥也可以是安全的。如果保护通信信道免受更改,则可以在该信道所提供的范围内获得认证程度。然而,如果没有保护通信接口120和220之间的信道免受更改,则任何KEX方案将无法实现认证。为了获得认证,可以将实施例与任何已知的认证机制组合(例如,使用例如经认证的公钥的隐式认证机制,或例如使用数字签名的显式认证机制)。
KEX方案的一个公知示例是Diffie-Hellman密钥交换,其安全性是基于求解离散对数问题的。在本发明中,定义了一种密钥交换机制,所述密钥交换机制的硬度基于所谓的学习与舍入(LWR)问题。当LWE实例的数量有边界时,LWR问题的硬度可以基于所谓的学习与误差(LWE)问题的硬度假设。由于LWE问题的平均情况硬度基于某些相关的基于格点的问题的最坏情况硬度,这对于量子计算机来说是困难的,因此这种密钥交换方案是一种后量子安全密钥协商协议。当实施例在环中使用LWR问题时,我们还将这个问题称为环LWR问题。
学习与误差(LWE)问题是数学上的难题,由于即使对于量子计算机也存在假定的困难、以及公知的安全性,因此产生了后量子密码方案。然而,就计算和通信复杂性二者而言,由此产生的方案通常在性能上都是重量级的。学习与误差(LWE)问题可以描述如下:
对于n维向量s∈Zq n和Zq上的误差分布χ,通过选择从
Figure GDA0003838204810000121
均匀且随机地选择向量a,从χ均匀地选择误差e,并输出
Figure GDA0003838204810000122
来获得
Figure GDA0003838204810000123
上的LWE分布
Figure GDA0003838204810000124
搜索LWE问题是在给定任意许多来自
Figure GDA0003838204810000125
的独立样本(ai,bi)的情况下找到
Figure GDA0003838204810000126
由LWEn,q,χ(D)表示的决策LWE问题是,在不可忽略的优点的情况下,对于固定的s←D,将分布
Figure GDA0003838204810000127
Figure GDA0003838204810000128
上的均匀分布区分开。
LWR问题是LWE问题的“去随机化”版本,其通过使用模数为“p”的舍入而不是插入误差以隐藏秘密信息,并且然后通过从Zq按比例缩小为Zp而引入确定性误差(其中,q是原始LWE模数)。
对于n维向量
Figure GDA0003838204810000129
通过从
Figure GDA00038382048100001210
均匀且随机地选择向量a并且输出
Figure GDA0003838204810000131
来获得
Figure GDA0003838204810000132
上的LWR分布
Figure GDA0003838204810000133
在此,
Figure GDA00038382048100001317
表示最接近x的整数。搜索LWR问题是依据找到与搜索LWE问题精确相似的秘密s来定义的。决策LWR问题是,对于固定s←D,将分布
Figure GDA0003838204810000134
与具有m个实例的
Figure GDA0003838204810000135
上的均匀分布区分开。已经证明,当m有边界使得2mBp/q为常数(其中,B是限制LWE问题中的误差的边界)时,搜索和决策LWR问题至少与对应的LWE问题一样困难。
由于LWE问题的公知的安全性,因此基于LWE问题的后量子密钥交换方案享有广泛的信任。然而,不存在基于LWE的性能轻量级、能够在资源受限的环境中使用的密钥交换方案。现有的算法包括在有限资源的设备上缓慢的各种运算,例如:矩阵乘法模q,从概率分布(例如,高斯分布)中采样,以及具有大条目的矩阵的计算或传输。
在本发明中,双方生成近似但不精确相等的两个多项式。为了达成确切协议,发送了一些对帐数据。在同一申请人的专利申请中解释了一种用于这样做的方案,其标题为“REACHING AGREEMENT ON A SECRET VALUE”,于2016年11月4日在EPO处提交,其申请号为16197277.3;例如,在根据本发明的实施例中,第7-10页上的方法可以用于对帐。也可以采用在引用的专利申请中其他地方公开的变型。
在本申请中,我们将针对以下三个函数使用以下表示法:
1.舍入函数
Figure GDA0003838204810000136
对于q,bh,B∈Z,bh≥1,B<log2q-bh,令
Figure GDA0003838204810000137
则有,
Figure GDA0003838204810000138
直观地,
Figure GDA0003838204810000139
提取
Figure GDA00038382048100001310
的B个最高有效位,其中,第二个分量是用于确保无偏舍入误差的舍入因子。
2.交叉舍入函数
Figure GDA00038382048100001311
对于q,bh,B∈Z,bh>1,B<log2q-bh,令
Figure GDA00038382048100001312
则有,
Figure GDA00038382048100001313
直观地,
Figure GDA00038382048100001314
提取v的(B+bh)个最高有效位的bh个最低有效位。
3.对帐函数rec(w,b):
对于q,bh,B∈Z,bh≥1,B<log2 q-bh,w∈Zq,
Figure GDA00038382048100001315
Figure GDA00038382048100001316
其中v是最接近w的元素,使得
Figure GDA0003838204810000141
这三个函数可以逐系数地应用于多项式。
在本文中,以上引用的对帐函数用作示例。如上所述,也可以使用以上引用的申请中的对帐方法。图2是舍入和交叉舍入函数的示意图。作为示例,图2示出了原始密钥多项式300的系数。系数300被示出为比特串,其最高有效位在左侧,而最低有效位在右侧。直观地,应用于系数的舍入函数对应于最高有效部分301中的B个比特,交叉舍入函数对应于中间部分302中的bh个接下来的比特。可以舍弃最低有效log2q-B-bh
发起者节点110包括共享多项式单元130。响应者节点210包括共享多项式单元230。共享多项式单元130和230被配置为获得在两个节点之间共享的共享多项式(a)。共享多项式a的系数是选择的整数模第一模数q。存在很多方法来确保在节点110和210之间共享相同的多项式,特别是考虑到多项式a不必保持对节点110和210私有的事实。
例如,例如在共享多项式单元130中的节点之一(例如,发起者节点110)可以例如随机地选择具有对q取模的元素的多项式a。然后可以通过通信单元将系数发送到另一个节点,例如发送到共享多项式单元230。在这种情况下,后者共享多项式单元230将简单地接收多项式并将其存储。多项式a也可以替代地由响应者节点210选择,并且发送到发起者节点110。
两个节点也可以合作选择多项式a。例如,每个节点可以选择一些系数,并将其发送到另一侧。例如,发起者节点可以选择奇数阶系数,而响应者节点可以选择偶数阶系数,等等。以这种方式,两个节点都没有控制最终多项式a的能力。例如,两个节点可以分别选择一个完整的多项式a并将其传送给另一侧。此后,可以对两个多项式相加对q取模。为了避免给予用于发送多项式的最后一个节点优势,可以首先由所述最后一个节点发送对所选择的多项式的承诺。
用于减少发送完整多项式a的开销的一种有趣的方法是生成随机种子,并通过通信信道将随机种子发送到另一节点。在接收到种子之后,第一网络节点和第二网络节点可以以任何上述方式使用它来生成多项式a。使用相同的随机种子为确定性伪随机数生成器提供种子,所述确定性伪随机数生成器转而从伪随机数生成器的输出生成多项式(a)。如上所述,每个节点可以发送种子,例如以生成a的不同部分,或者可以将两个种子进行组合,例如相加或异或等等,并且可以使用组合的种子来生成a。
种子例如可以从另外的随机数生成器(例如,真实随机数生成器)中选择。节点还可以例如在制造时配置有随机数列表。在这种情况下,每次为新的密钥协商生成新的多项式a时,节点就从列表中选择下一随机数。如果随机数列表已用尽,则可以从受信任的源对其进行补充。
如果期望共享多项式与归约多项式为相对素数,而归约多项式本身不是不可约的,则可以从种子生成相对素数的共享多项式。例如,首先可以从种子生成随机多项式,并且然后以某种顺序在以相对于归约多项式为素数的所生成多项式之后的第一多项式被选择。替代地,检查所生成的多项式是否与归约多项式是相对素数。如果不是,则生成新的种子,直到生成了与归约多项式是相对素数的共享多项式。
在实施例中,第一网络节点被布置为通过以下方式来获得共享多项式(a):生成随机种子并通过通信信道将随机种子发送到另一节点,第一和第二网络节点使用该随机种子来为确定性伪随机数生成器提供种子,从伪随机数生成器的输出生成多项式(a)。
发起者节点110包括私钥多项式单元140。响应者节点210包括私钥多项式单元240。私钥多项式单元140被配置为生成私钥多项式skI;私钥多项式单元240被配置为生成私钥多项式skR。私钥多项式的系数是整数,其绝对值以s为边界。例如,可以在-s和s(包括边界)之间选择私钥多项式中的系数。
发明人惊奇地发现,将边界选择得小具有双重优点:与私钥多项式的多项式乘法更快,并且在每一侧处计算的原始密钥之间的距离更小(参见下文)。后者意味着需要较少的对帐数据和/或协议中失败的机会,这是因为商定了不同密钥的节点较小。边界s被选择至多为第二模数,例如小于或等于第二模数。该选择是有利的,这是因为稍后我们将相乘对p取模。如果我们允许私钥多项式的有符号系数,则可以将其限制为至多(或小于)第二模数的一半(p/2)。
边界可以低于第二模数或第二模数的一半,并且在实践中,通常将边界选择为比第二模数小得多。在实施例中,私钥多项式(skI,skR)的系数的绝对值的边界s为2(s=2)。即,私钥多项式的所有系数为-2、-1、0、1或2。为将多项式a与私钥多项式相乘,只需要加法、减法和移位1比特。这样的多项式乘法因此可以非常有效率地实现。
从实施方式的角度来看,最佳结果是通过将边界选择为1(s=1)来获得的。即,私钥多项式的系数仅为值-1、0和1。我们也将其称为“有符号二进制”。有符号二进制中的多项式与多项式相乘仅涉及加法和减法。不需要用于乘法模p或q的乘法单元。通过使用仅二进制系数(例如,0或1),甚至可以进一步限制边界s=1;然而,在实施例中,至少一些系数是1、-1和0。
s的其他小数字也是可能的,例如如果s=3,则允许的系数为:0、1、-1、2、-2、3、-3。节点中可以包括用于与这些数字相乘的乘法例程。例如,+1、-1可以由加法器/减法器处理,-2,+2可以由移位器后跟加法器/减法器来处理,而+3、-3可以通过将移位和非移位的数字二者相加/相减来处理。
在实施例中,私钥多项式仅包括系数为0、2的幂并且可选地负的2的幂,这是因为它们易于与之相乘。
在实施例中,私钥多项式包含正数和负数二者。然而,也可以将私钥多项式进一步限制为非负数。例如,私钥多项式的系数可以在0到s之间(包括边界)。例如,通过选择s=1,在后一种情况下避免了乘法和减法运算二者。
为了避免最高阶系数为0的复杂情况,我们将参考多项式的系数数量而不是它们的阶数。我们将使用n表示共享多项式a的系数数量。通常,私钥多项式和共享多项式将具有相同数量的系数,但这不是必需的。在实施例中,私钥多项式也具有n个系数。所有多项式乘法都对n阶多项式取模。实际上,多项式可以是xn+1,但其他多项式也可以使用。注意,多项式集合
Figure GDA0003838204810000161
形成环。该环通常不是字段:q和xn+1二者可以是复合的,并且通常将是复合的。注意,下面将讨论的舍入运算以与环乘法不兼容的方式将此环映射到较小的环。对数学结构的该故意破坏使分析复杂化,并增加安全性。选择足够大的系数数量n,以获得共享密钥中足够的比特数,并获得足够高的安全级别。
除了限制私钥多项式的系数的大小之外,还可以通过限制非零元素的数量来获得其他优点。我们将多项式的汉明权重hs称为其非零系数的数量。
发明人调查了用于限制私钥多项式的汉明权重的不同方法。
例如,可以为私钥多项式的汉明权重选择上限。在实施例中,发起者和响应者的私钥多项式(分别为skI、skR)具有相同的固定汉明权重。
如果(根据条件)从候选私钥多项式(即,从满足所选要求的多项式,例如关于系数和汉明权重的边界的所选要求)中均匀地随机选择私钥多项式,则可以提高安全性。例如,如果人们期望强制执行汉明权重为50的条件,则从所有多项式的集合中选择具有汉明权重为50的正确数量的系数的私钥多项式是有利的。用于选择任何期望的汉明权重的均匀随机比特串的有效算法是已知的。
用于限制私钥多项式汉明权重的一种不同的方法是从概率分布中选择私钥多项式(skI,skR)的系数。例如,可以从非均匀概率分布中选择私钥多项式(skI,skR)的系数,其中,零系数的概率大于非零系数的概率。在实施例中,选择概率分布,使得其给出预定的期望的汉明权重。例如,为选择具有n个系数和期望的汉明权重hs的多项式,人们可以以概率hs/n将每个系数选择为非零。可以例如以相等的概率将非零系数选择为1或-1。
多项式中的汉明权重太小可能会影响安全性。例如,对于有符号的二进制情况,人们可以选择汉明权重hs,使得
Figure GDA0003838204810000171
至少为127,更优选至少为255。原因是使得通过遍历私钥多项式的蛮力攻击不可行。在实施例中,汉明权重hs尽可能小以满足上述边界。在实际的实施例中,对于较大的n,人们可以简单地选择与系数的数量成比例的汉明权重,例如人们可以设置hs=αn,例如α=0.2。更一般地,例如人们可以挑选0.1<α<0.9。
发起者节点110包括公钥多项式单元150。响应者节点210包括公钥多项式250。公钥多项式单元根据多项式a和私钥多项式sk来计算公钥多项式。
术语“公共”和“专用”旨在传达仅在知道公共信息的情况下或者并非在不知道一些私有信息的情况下不能获得共享密钥。尽管公共信息是主动共享的,但并非必需。例如,密钥协商协议可以在(假定的)安全信道上执行,这使公钥免受窃听者的侵害。在这种情况下,万一信道的安全性被破坏,密钥协商协议提供附加的安全层。
公钥多项式单元通过以下方式来计算公钥多项式(分别为用于发起者和响应者的pkI、pkR):计算共享多项式(a)和私钥多项式(分别为skI或skR)之间的多项式乘积模第一模数(q),得到多项式乘积,将多项式对归约多项式取模来归约,并且然后按比例缩小结果。
然而,该中间的多项式乘法没有被揭示。在按比例缩小之前,对共享多项式a以及此多项式乘法的结果的了解将揭示私钥这是,因为可以通过除以多项式a来计算私钥。由公钥多项式单元执行的缩放步骤将阻止此选项。公钥多项式单元将多项式乘积的系数按比例缩小为第二模数p。第二模数p小于第一模数q。缩放的系数等于未缩放的系数乘以第二模数(p),再除以第一模数(q),并舍入为最接近的整数。例如,如果x是多项式乘积中对q取模的未缩放的系数,则可以将缩放的系数选择为
Figure GDA0003838204810000181
其中,
Figure GDA0003838204810000183
表示最接近的整数。在缩放运算之后,不再可以直接根据公钥和多项式a计算私钥。
公钥多项式的系数可以表示为区间[0,p-1]中的整数。私钥多项式的系数也可以表示为区间[0,p-1]中的整数。在区间
Figure GDA0003838204810000182
中选择系数以减小整数大小以进行后续乘法是有利的。如上所述,私钥多项式还可以具有在区间[-s,s]或甚至[0,s]中选择的系数。
多项式a与私钥多项式s的乘积是通过对第一模数q取模完成的。为此,网络节点可以包括用于归约模数q的模数归约单元。如果私钥多项式s的系数很小,例如以1为界或绝对值以1为界,则可以简化模数归约;在多项式乘法期间,每当系数变得大于q或小于0时,通过减去或加上q让结果返回到0到q-1的区间。
发起者节点和响应者节点二者例如使用通信接口120和220将其公钥多项式发送到另一节点。发明人发现了通过按比例缩小多项式乘积而实现的至少三个优点。首先,避免了将噪声生成并显式添加到多项式乘积中。引入噪声需要计算概率分布,例如高斯分布。这是相对计算密集的。其次,减少了通信需求。由于第二模数p小于第一模数q,因此与私钥多项式相比,表示公钥多项式的系数所需的比特数较少。第三,涉及公钥多项式的计算较小,这是因为它们涉及较小的数字。令人惊讶的是,单个措施同时提供三个优点。
强烈偏好的是第二模数p整除第一模数q。有趣的是,发明人发现第一模数和第二模数都不需要是素数。实际上,发现了将第二模数(p)和/或第一模数(q)选择为2的幂具有公钥和私钥均匀地分布的优点。在实施例中,第一和第二模数二者均为2的幂。
在实施例中,除了模数p和q是2的幂之外,我们还要求
Figure GDA0003838204810000191
整除p。即使观察到对帐数据,这也会导致统一的共享密钥。B是每个原始密钥系数提取的共享密钥比特数。在一些实施例中,并非使用原始密钥的所有系数,在那种情况下,B是每个使用的系数提取的共享密钥的比特数。
模数的大小不需要很大。例如,在实施例中,第二模数具有12或更大的比特大小,和/或第一模数具有8或更大的比特大小。取决于安全性要求,更大或更小的大小是可能的。在实施例中,q在212和216的范围内,p在27和29(包括端值)的范围内。可以根据安全性要求选择更大或更小的p和q值。
发起者节点110包括共享密钥单元160。响应者节点210包括共享密钥单元260。共享密钥单元在它们生成、发送或接收和应用对帐数据的意义上是不同的。
共享密钥单元160和共享密钥单元260二者都被配置为计算原始密钥162、262为多项式乘积模第二模数(p)(所述第二模数(p)在另一节点的接收到的公钥与网络节点自身的私钥多项式之间),然后对归约多项式进行归约取模。注意,如果省略缩放运算,则双方将计算相同的原始密钥。即,相同的密钥将在不缩放的情况下产生,并且所有计算都通过对q取模来完成。然而,由于缩放,两个原始密钥不需要相同。计算原始密钥通过对p取模来完成。网络节点可以包括用于归约乘法模p的结果的模数单元。
响应者节点210的共享密钥单元260被布置为从原始密钥262获得共享密钥266和对帐数据264,并且将对帐数据264发送到发起者网络节点110。对帐数据可以采取原始密钥中的一个或多个比特的形式。为了生成密钥的目的,将忽略被选择为对帐数据的比特。
共享密钥单元260从原始密钥的系数中选择一些比特以从中形成密钥。例如,所选择的比特可以被串联。在实施例中,所选择的比特被输入到密钥推导函数(KDF),例如密码哈希函数。KDF的示例在来自CMLA技术规范版本V1.43-20131218的CMLA_KDF或在“DRMspecification”,OMA-TS-DRM-DRM-V2_0_2-20080723-A,Open Mobile AllianceTM,Version2.0.2,section 7.1.2中定义的KDF函数等等中给出。密钥推导函数可以应用于原始密钥中的密钥比特的系数,例如通过舍入函数(例如,在串联之后)或从对帐函数的输出(例如,也在串联之后)获得。
一些未选择为密钥比特的比特可以被选作对帐数据。最后,一些比特可能会被完全丢弃。在实施例中,从原始密钥系数的MSB部分中选择密钥比特,从原始密钥系数的中间部分中选择对帐数据,可以丢弃原始密钥的最低有效部分。例如,可以通过将舍入函数应用于原始密钥的系数来获得密钥比特;可以通过将交叉舍入函数应用于原始密钥的系数来获得对帐比特。
由共享密钥单元260从原始密钥获得的密钥对帐数据被发送到发起者节点110。
共享密钥单元160被配置为接收第二网络节点的对帐数据164(h),并且通过对接收到的对帐数据和原始密钥多项式162应用对帐函数来计算共享密钥。例如,对帐函数可以应用于原始密钥162的每个系数以及对帐数据的对应部分。例如,如果对帐数据164是由响应器单元210生成的原始密钥的一部分,则发起者节点可以选择可能已经由节点210获得并且与所接收的对帐数据兼容的原始密钥,例如具有与接收的相同的中间比特。这样做的一种方法是使用上面定义的对帐函数。作为结果,恢复了节点210用来创建共享密钥的相同比特。通过以相同方式串联这些比特,或通过将它们输入到相同的KDF,可以获得相同的共享密钥166。在实施例中,共享密钥是对称密钥。
不需要太多的对帐数据,仅单个比特就可以足够。然而,观察到,将对帐比特的数量增加到2比特或更多是有利的,这是因为这降低了协议的失败概率。
B和bh的典型值为1或2。本文中,B是每个原始密钥系数提取的密钥比特数,并且bh是每个原始密钥系数的对帐比特数。系数的数量(n)被选择,使得n和B的乘积大于或等于期望的密钥大小,例如nB≥256。
人们可以将多项式a和私钥多项式之一重新用于密钥协商协议的多次执行(如果二者相同,则人们将获得相同的共享密钥)。这将减少通信开销,尤其是在多项式a被重用的情况下。然而,发明人意识到,由于没有认证连接到这些元素,因此不需要重用多项式a和私钥多项式中的任何一个。在优选实施例中,为每个新密钥交换获得一个新的多项式a和一个新的私钥。这样做的好处是,攻击者不具有通过观察协议的多次执行来观察其他信息的选项。而且,前向机密性被改善。
在协议完成并且两个节点都已经计算了共享密钥之后,节点之一可以将密钥确认消息发送到另一节点,以验证它们是否已经商定同一密钥。例如,密钥确认消息可以是共享密钥的哈希、固定值的加密、随机值的加密和随机值。密钥确认也可以使用质询响应协议来执行。人们也可以选择省略密钥确认。如果各方获得了不同的共享密钥,则他们之间随后执行的通信将失败。例如,共享密钥可以用于加密和/或认证另外的通信,例如数字消息。如果他们得到不同的共享密钥,则解密和/或验证可能会失败。
在下文中描述了另外的具体的有利实施例。代表本发明的基本系统是协议,此后称为密钥交换(KEX)方案,其可以由两个实体或双方(以下称为发起者和响应者)执行,以便在它们之间建立仅他们知道的共享秘密。为此,他们使用在执行KEX方案之前必须商定的许多公共系统参数,由它们中的每一个拥有的一些私有信息,此后称为他们的秘密密钥,以及由它们中的每一个拥有的一些公共信息,此后称为他们的公钥。KEX方案的安全性基于学习与舍入(LWR)问题,其安全性基于学习与误差(LWE)问题,以保护共享秘密的机密性以及发起者和响应者的秘密密钥的机密性。
在下面的示例中,私钥多项式为带符号的二进制。
KEX方案的实施例包括三个阶段:建立、密钥生成和密钥交换。在实施例中,我们的密钥交换方案的该实施例的阶段如下:
·建立:发起者和响应者商定以下正整数:
i.q,p:使得p|q。
ii.n和Φ(X)=Xn+1。所有多项式乘法对该归约多项式取模
iii.hs<n。这是私钥多项式的汉明权重
iv.B:在创建最终的共享秘密或密钥的同时,双方原始密钥的每个系数提取的比特数。
v.bh:在创建对帐数据的同时,双方原始密钥的每个系数提取的比特数。
vi.a←Rq:随机多项式,其中,Rq=Zq[X]/(Φ(X))是环原子的残基环,对整数q取模。
优选地,a和Φ是相对素数。
·密钥生成:发起者和响应者二者以如下方式来生成其秘密-公钥对:
i.秘密密钥:秘密多项式sk←HWTn(hs),例如具有n个系数和汉明权重hs的随机多项式
ii.公钥:
Figure GDA0003838204810000221
如果将特定参数映射到给定的标识符,则可以将公共参数的选择集成到诸如TLS或IKE之类的协议中。例如,协议标识符(例如,在TLS中的密码套件元素中)可以用于编码公共参数。公共多项式还可以例如通过哈希函数从种子导出。在不同的解决方案中,发起者将决定将被发送到响应者的一些参数。
·密钥交换:此提议的密钥交换方案-发起者I与响应者R之间的密钥交换使用舍入和稀疏的包含三元项的秘密多项式,以导致在I和R之间建立共享秘密K。
Figure GDA0003838204810000222
Figure GDA0003838204810000231
为了实施方式的目的,参数n应有利地为2的幂,然而这不是设计要求。
选择汉明权重并不至关重要,但假设目标安全级别为S(后量子)和2S(经典)比特。为了确保对秘密密钥进行穷举的蛮力搜索以估计其系数具有足够高的工作量,私钥向量(每个都有汉明权重hs)中的秘密数应满足:
Figure GDA0003838204810000232
其中,22S是Grover量子搜索算法的运行时间,而2S是经典搜索算法的运行时间。例如,S可以是128或256等等。注意,该边界是针对私钥多项式的系数的绝对值的边界为1的情况。可以为更大的边界s建立类似的边界。
私钥多项式的选择可以概率性地进行。概率私钥生成简化了实施方式。在创建秘密密钥skI∈{0,±1}n←HWTn(hs)和skR∈{0,±1}n←HWTn(hs)n时,不是为秘密密钥生成hs非零系数,本实施例中的每个第i个密钥系数ski将如下创建:
ski=1,
Figure GDA0003838204810000233
ski=-1,
Figure GDA0003838204810000234
ski=0,
Figure GDA0003838204810000235
替代地,如果生成是确定性的,则可以使用标准安全PRF完成以下操作:如果在n个位置的向量中有hs个非零元素(1或-1),则PRF的输出将在列中选择随机位置以及随机+1或-1值,直到PRF在不同位置处选择hs个非零元素为止。例如,PRF输出可以被分成
Figure GDA0003838204810000241
比特的块,其中该块的前
Figure GDA0003838204810000242
比特标识非零元素的位置,并且该块的最后一比特确定该元素是1还是-1。该向量可以用作私钥多项式的系数。
提议的密钥交换具有若干优点。
计算复杂度:由于密钥多项式稀疏且系数为0、1和-1,因此我们方案中对q取模运算的速度很快。具体地,可以高度优化涉及具有大量系数的多项式的乘法(例如,在生成公钥和原始密钥期间)。
通信复杂度:由于使用了舍入到较低的模数,我们能够减小公钥和原始密钥的每个系数的大小,实现显著降低的带宽需求。我们在下面的两个表格中对此进行了量化,其中,我们展示了我们提议的方案的带宽要求(分别在使用和不使用舍入的情况下)。将实施例与在“Frodo:Take off the ring!Practical,Quantum-Secure Key Exchange fromLWE”,by J.Bos,C.Costello,L.Ducas,I.Mironov,M.Naehrig,V.Nikolaenko,A.Raghunathan,D.Stebila中描述的基于LWE的协议进行比较。
带宽是根据交换的密钥交换消息的总大小(即,公钥和对帐数据)计算的,并且不包括公共多项式a的交换。
以上描述了例如结合学习与舍入(LWR)的小稀疏秘密的使用,例如以用于基于格点的密钥交换的设计。下面我们给出附加的实施例,描述如何选择参数,并且给出若干示例。对于整数q≥1,令Zq表示商环Z/qZ。我们将R=Z[X]/(Xn+1)定义为对Xn+1取模的整数多项式的环。我们使用Rq=Zq[X]/(Xn+1)来表示对Xn+1取模的整数多项式环,其中,每个系数都通过对q取模来减小。在χ是R上的概率分布的情况下,则
Figure GDA0003838204810000243
表示根据分布χ对x∈R的采样。写
Figure GDA0003838204810000244
意味着多项式或向量a的所有系数均从Zq均匀地随机选择。DZ,σ表示由高斯参数
Figure GDA0003838204810000245
参数化并通过给所有整数x分配一个与
Figure GDA0003838204810000246
成正比的权重来定义的Z上的离散高斯分布。对于整数n,h(其中,0<h≤n),HWTn(h)均匀且随机地从分布{0,1}或{-1,0,1}中采样包含n个分量的多项式或向量,其中,正好有h个非零分量。用于计算对帐数据和最终共享密钥的对帐的函数HelpRec()和Rec()分别与[1]中定义的相同。(参考文献如下)。
在以下由Alice和Bob(密钥交换的参与者)执行的步骤中,为了便于说明,HWTn(h)从三元分布{-1,0,1}中进行采样。
作为比较,我们将参考NewHope[2]和NewHope配置其参数的方式[2]。NewHope是基于Ring LWE的密钥交换方案。然而,NewHope使用与原始的高斯分布更相似的秘密和噪声分布。因此,当计算公钥b=as+e(mod q)或计算密钥v′=bs′+e″(mod q)时,作者提议使用数论变换。这样做时:
Figure GDA0003838204810000251
Figure GDA0003838204810000252
上面,带帽的元素表示应用NTT后的向量。
Figure GDA0003838204810000253
是直接计算的。并且实际上,Alice和Bob交换了
Figure GDA0003838204810000254
Figure GDA0003838204810000255
的系数。NTT代表数论变换。
NTT允许更快地执行运算,然而,NTT还提出了一些要求。
·n必须是2的幂
·q是素数,使得q≡1(mod 2n)
这强制NewHope选择一个较大的n值,即1024,并且同时还确定q。对于这些参数,NewHope的作者然后确定该方案提供的安全级别。
本发明解决的问题是使用小秘密来选择参数,使得我们可以选择在确保良好性能的同时提供给定安全级别的小配置参数。
注意,NewHope[2]公开了配置参数。然而,由Newhope的作者提议的参数没有其他替代方案,这是因为n需要为2的幂,使得提议的选择(n=1024)导致在该设置中基于NTT的实施方式成为可能。然而,这是由NTT的使用而不是安全性参数施加的要求。对n的形式施加上述限制导致选择大于对于实现给定的安全级别必要的数字。
本文描述的实施例使用小秘密结合舍入,其不需要NTT即可实现良好的性能。由于此方案不需要NTT,因此可以选择n和q的值而没有由NTT施加的约束。
下面我们公开具有满足以下条件的具有参数(q,p,n)的实施例:
a)q尽可能小
b)可以从确定p的密钥向量的每个系数中计算出密钥比特
c)n尽可能小,同时确保与所选择的q和最佳样本数m结合使用,提供的安全级别至少为λ。
系统计算这些参数(q,p,n),其然后由Alice和Bob应用于使用小秘密的密钥交换中。
基于Ring LWE的KEX的安全性分析涉及分析可以使用BKZ格点归约算法并采用原始攻击的调整的版本来解决唯一SVP问题的攻击者的成功概率。攻击者对此攻击进行了调整,以便利用以下事实:秘密通常是小的,甚至可能是稀疏的。为了使攻击者使用格点归约搜索的唯一最短向量中的秘密和噪声分量的方差相等,使用格点缩放来完成这种调整,并受到[3]中详述的技术的启发。
假设人们在算法内部调用了SVP oracle,并且具有2cbCPU时钟周期的运行时间,分析此自调整的原始攻击的成功概率得出不能由具有给定块大小b的BKZ格点归约的给定实例攻击的n最小值,其中,c是实验常数,已经针对其进行启发式估计。
下面我们描述用于找到最小参数(q,p,n)的算法,所述参数允许针对样本的最优数量m,密钥向量的每个系数地生成密钥比特,以实现给定的安全级别λ。在实施例中,该算法在被给予目标安全级别λ的服务器或Alice或Bob上运行。给定安全级别,它们计算对应的配置参数,然后将其交换并在密钥交换协议中使用。
Figure GDA0003838204810000261
Figure GDA0003838204810000271
Figure GDA0003838204810000272
Figure GDA0003838204810000281
Figure GDA0003838204810000282
Figure GDA0003838204810000291
Figure GDA0003838204810000301
对于不同的q值,后一种算法为n和p生成适当的值。接下来,可以完成对q的优化,例如以挑选具有低带宽需求的参数。优选地,对于最佳可能的实施方式,p应该是2的幂。除了将p选为2的幂,满足
Figure GDA0003838204810000302
(例如尽可能大)之外,人们还可以循环遍历p值。特别是在p和q二者均为2的幂的情况下。
优选地,p应该是q的因数,使得我们进行的对帐成功条件分析是正确的(条件计算中的步骤之一需要此要求。)如果满足(1),则可以自动满足此条件。安全性:比率q/p应该足够大,以使舍入误差的方差与等效高斯误差的方差几乎相同。
基于带有LWR的小秘密的KEX的优点:由于密钥交换中的秘密密钥由小的分量(三元或二进制)组成,因此即使不需要数论变换(NTT)域中的多项式运算也可以有效地执行多项式乘法对(Xn+1)取模,例如[1]中完成的。
由于这个原因,n和q的值没有其他限制,安全性分析规定的除外。同样,使用LWR是可行的(对于NTT则不可行)。因此,一个重要的优点是可以选择较小的n值来减少带宽需求。
基于Newhope Ring-LWE的密钥交换方案的带宽计算如下:
Figure GDA0003838204810000311
用于基于sp-terRING-LWE的密钥交换方案的带宽计算如下:
Figure GDA0003838204810000312
参数bh表示用于创建对账数据多项式r的每个分量的Bob的原始密钥多项式v′的每个分量提取的比特数,并且基于由于[1]带来的改进的对帐机制,该参数对于所有上述密钥交换和安全性级别均被认为是2。
在将我们的方法与NewHope的参数进行比较时,我们考虑以下情况。
a)没有对n的限制,但是对于与NewHope中相同的q,Ring-LWR中稀疏的三元秘密的性能提高了。
表1:在块大小为“b”的情况下使用BKZ容易受到原始攻击的Ring-LWR的最大问题维度,使得运行BKZ-b的成本至少为2128,并且密钥协商失败概率最大为2-60。噪声多项式是从标准偏差
Figure GDA0003838204810000313
的离散高斯分布中采样的。sp-terRING-LWR中秘密多项式的汉明权重为0.2n。计算带宽,所述带宽包括根据[1]计算的对帐数据。
Figure GDA0003838204810000314
然而,我们注意到,对于q的此值,执行与[1]中相同的密钥对帐是不可行的。
b)在不对在NewHope中使用的(n,q)施加限制的情况下,针对Ring-LWR中稀疏的三元秘密的性能提高
表2:在块大小为“b”的情况下使用BKZ容易受到原始攻击的Ring-LWR的最大问题维度,使得运行BKZ-b的成本至少为2128,并且密钥协商失败概率最大为2-60。sp-terRING-LWR中秘密多项式的汉明权重为0.2n。计算带宽,所述带宽包括基于[1]计算的对帐数据。
Figure GDA0003838204810000321
注意,我们使用q的值等于二的幂,使得我们可以应用[1]中的密钥对帐方法。注意,我们使用p的值等于二的幂来提高性能。
用于基于Newhope Ring-LWR的密钥交换方案的带宽计算如下:
Figure GDA0003838204810000322
用于基于terRING-LWR的密钥交换方案的带宽计算如下:
Figure GDA0003838204810000323
用于基于sp-terRING-LWR的密钥交换方案的带宽计算如下:
Figure GDA0003838204810000324
参数bh代表用于创建对帐数据多项式r的每个分量的Bob的原始密钥多项式v′的每个分量提取的比特数,
注意,移除了由于NTT而对参数的限制允许我们可以灵活地优化安全性和操作正确性的分析。对于计算的参数,对于后量子安全级别,与使用舍入的Newhope密钥交换方案相比,我们需要0.41倍的带宽。此外,假设对实施方式进行了优化以利用稀疏的小秘密,放弃NTT不会导致性能显著下降。
1.L.Tolhuizen,O.Garcia Morchon,R.Rietman,“Reaching agreement on asecret value”,First filing,Phillips reference 2016P01227EP,Nov.4,2016.已向欧洲专利局提交,其申请号为16197277.3
2.E.Alkim,L.Ducas,T.Poeppelmann,P.Schwabe.Post-quantum key-exchange–anew hope.Cryptology ePrint Archive,Report 2015/1092,https://eprint.iacr.org/ 2015/1092.pdf.
3.S.Bai,S.D.Galbraith.Lattice Decoding Attacks on BinaryLWE.Cryptology ePrint Archive,Report 2013/839,https://eprint.iacr.org/2013/ 839.pdf.
图6a示意性地示出了参数选择设备600的实施例的示例。作为设备110、210、510、520,设备600也可以包括处理器电路和电子存储器,所述存储器存储可由处理器电路执行的计算机代码。所述计算机代码配置设备,例如以实现对应的方法。替代实施例可以以硬件或以硬件和软件的混合来实现全部或部分功能。定义了设备600的以下单元;这些可以被认为是可以用软件/硬件等实现的单元。设备600被配置用于选择在网络节点中使用的参数。特别地,参数p、q和n以及其他参数也可以被优化,例如h或B等。设备600可以由密码协议的设计者使用,但是设备600也可以在执行一个或多个密钥协商协议(如本文所述的)之前被用作握手协议的一部分。
设备600分两步执行优化。首先生成多个参数集。接下来,在被找到的参数集上执行优化,例如通过选择具有期望的特性(例如,低带宽、低计算要求等)的参数集。
设备600包括参数集生成器610。参数集生成器610被配置为生成多个可能的参数集。例如,参数集至少包括第一模数(q)、第二模数(p)和共享多项式(a)的系数数量(n)。参数集生成器610包括p、q选择单元620,其被配置为生成多对第一模数(q)和第二模数(p)。例如,p、q选择单元620可以在q的多个可能值上运行,并且根据固定边界选择p,例如如以上定义的。在后一种情况下,将已知量的噪声引入到缩放运算中。但这不是必需的。p和q二者可以彼此独立地变化。对选择的安全性的检查将随后过滤掉p和q的不良组合。可以将p和q的值选择为实际的,例如2的幂,并且在合理的边界内,例如在7和16比特之间等等。
例如,在实施例中,q在28和216(包括端点)之间变化,p可以独立于q而变化;例如,p可以在24和212(包括端点)之间变化。也可以根据边界
Figure GDA0003838204810000341
将p选得尽可能大。这将确保如由σ规定地引入噪声。例如,σ可以被选择为
Figure GDA0003838204810000342
Figure GDA0003838204810000343
或介于二者之间。较大的噪声水平将对安全性有好处,这是因为可以从在节点之间交换的数据得到较少的信息。另一方面,较高的噪声水平增加失败概率。
设备600还包括n、m优化器630。n、m优化器630被配置为针对给定的模数对搜索系数的安全数量(n)。选择安全的n并不容易,这是因为它取决于攻击者将考虑的消息的数量m。如果攻击者仅考虑很少的消息,例如交换的信息,例如共享多项式和公钥,则较低的n值就足够了。随着m增加,n的最小安全值将增加。然而,在一些时候,考虑更多消息将使攻击者付出多得多的工作,使得攻击者可以从附加消息中提取的附加信息不值得增加的工作量。换句话说,对于任何给定的n、p和q,存在供攻击者考虑的最佳数量的消息。
这种相互作用使得很难选择安全的n。特别地,如果期望n小。在搜索安全的n时,将m设置为某个较大的最大值似乎是吸引人的。毕竟,即使攻击者分析了大量流量,人们也要保持安全。然而,这将导致不切实际以及不安全的n值。考虑到大量消息是如此多的工作,以至于只有相对小的n才足以使其不可行。在攻击者减少了要分析的消息数量的情况下,所需的n可能增加。这就是为什么仅设置m=mmax无效的原因。
n、m优化器630如下解决该问题。它被配置为首先初始化由攻击者(m)使用的系数数量(n)和样本数量(m)。例如,可以将n设置为nmin,例如100,将m设置为mmin,例如0或1。
给定设置,n、m优化器630确定该集合是否安全。如果不安全,则其增加n;如果安全,则增加m。当m达到某个最大值mmax时,该过程终止。此时,我们发现了对于所有合理的消息数量m都是安全的n。只要n足够大,最终系统将是安全的。为了避免算法运行太长时间,还可以强制n的最大值,例如1000比特左右。
此时,发现安全的三元组n、p、q。然而,可能会发生该集合获得成功共享密钥的可能性太低的情况。下一设备600(例如,参数集生成器610)验证参数集的操作正确性。如果未验证操作正确性(例如,成功概率太低),则将参数集丢弃;如果验证了操作正确性,则可以将参数集添加到列表中。现在可以用新的模数对继续搜索。
最后,当找到多个安全参数集时,可以在找到的集合上执行优化。例如,可以选择具有较低带宽需求的参数集。例如,可以选择最低带宽要求。或低于门限。在后一种情况下,还可以考虑其他因素,例如计算效率。优选的是例如,模数保持在或刚好低于自然计算机字边界,例如8、16比特,而不是刚好在它们之上。
设备600包括输出接口120,所述输出接口120被布置为输出所选择的参数集。例如,输出接口可以是显示器,例如监视器。输出接口可以被配置为发送数字消息,例如电子邮件、数字报告等。输出接口120可以包括计算机端口。
图6b示意性地示出了参数选择方法650的实施例的示例。例如,方法650可以在计算机上,在诸如设备600之类的设备等上执行。
方法650包括生成660多个可能的参数集,一个参数集至少包括第一模数q、第二模数p和共享多项式a的系数数量n。例如,可以根据图6b右侧的流程图来完成生成参数集。
生成660可以包括生成661多对第一模数q和第二模数p。接下来,通过搜索该对的系数的安全数量n来分析该对模数的安全性。该分析可以包括:
-初始化662由攻击者m使用的系数数量n和样本数量m。
接下来,在判定框664中,确定对具有给定对的参数集、系数数量n和样本数量m的攻击是否可能。
如果攻击可能,则算法在666处继续进行,其中,增加系数数量n并重置所使用的样本的数量m。
如果攻击不可能,则算法在668处继续,其中,增加样本数量m。
在两种情况下,算法都返回到阻止框664。
如果样本数量m超过最大样本数量,例如也可以在部分668中确定,则算法继续验证669参数集的操作正确性。
最后,当已经找到多个参数集时,算法在670处从多个参数集中选择具有较低带宽需求的参数集。
可以使用估计这些变量的专用函数或例程来确定操作的正确性、攻击能力和带宽需求。例如,可以通过外推已知范围来估计参数集可能受到攻击的程度。
图5示意性地示出了密钥协商网络500的实施例的示例。密钥协商网络500基于包括发起者节点510和响应者节点520。密钥协商网络500、发起者节点510和响应者节点520基于密钥协商网络100、发起者节点110和响应者节点210。网络500和100可以使用相同或相似的基础环、参数等。网络500与网络100之间的重要区别在于,在后者中共享密钥基于每一方生成的原始密钥,但是在网络500中共享密钥与其独立。在下面的实施例中,我们将假定共享密钥是由响应者节点520生成的,但这不是限制性的。实际上,可以使用此机制共享任何密钥。例如,共享密钥可以从另外的来源获得,例如从某种其他协议或从存储装置等获得。例如,密钥可以联合地生成等。
如在网络100中,节点获得共享多项式(a),生成私钥多项式并且生成公钥多项式。后者包括对共享多项式(a)和私钥多项式之间的多项式乘积对第一模数q取模,以得到多项式乘积,以对归约多项式进行取模来归约多项式乘积,然后将系数按比例缩小为mod p。交换公钥并且在每一侧处计算原始密钥,例如,作为接收的公钥与节点自己的私钥多项式之间的多项式乘积mod p,之后对归约多项式进行取模来归约。
然而,与网络100不同,共享不是直接从原始密钥导出的,而是原始密钥用于封装生成的共享密钥。
响应者节点520包括密钥共享单元570,所述密钥共享单元570被配置为获得用于共享的密钥并且用原始密钥封装共享密钥。封装的共享密钥被发送到发起者节点。发起者节点510还包括共享密钥单元560,所述共享密钥单元560被配置为接收封装的共享密钥并且用该原始密钥对封装的共享密钥进行解封装。以此方式,节点510也获得了共享密钥。
选择共享密钥与原始密钥的密钥封装,使得原始密钥的细微差异导致解封装的共享密钥中的较小误差,同时封装的共享密钥包括足够的冗余来校正这样小的误差。
例如,用于封装共享密钥的一种方法如下。首先,共享密钥单元570生成共享密钥573(或者以其他方式获得要共享的密钥)。共享密钥573被编码。第一种用于编码共享密钥的方法是将其乘以第二模数的一半p/2。第二种方法是使用纠错码。
所得到的编码的共享密钥被添加到原始密钥262。例如,人们可以将共享密钥262视为具有系数mod p的多项式。在这种情况下,人们可以选择纠错码作为Zp上的重复码。在另一侧处,节点510包括密钥共享单元560,所述密钥共享单元560被配置为从接收到的封装密钥576中减去原始密钥162以恢复编码密钥564。后者将与编码密钥574不同,这是因为原始密钥162和262之间的差异。由于得到的编码密钥包含足够的信息,因此通常可以重构原始的编码共享密钥。考虑其中节点520乘以共享密钥的示例。如果原始编码的共享密钥具有零,则在该节点510中将找到接近零的值,并且如果原始编码的共享密钥具有p/2,则将找到接近p/2的值。节点510处的硬决策解码器可以将减法映射到最接近的值。
获得相同共享密钥的更多保证可以通过使用纠错码来获得。例如,共享密钥573可以逐比特编码为纠错码。人们也可以一次转换共享密钥573的较大块。例如,人们可以将共享密钥573中的零比特映射到(0,0,0),并且将1比特映射到(p/2,p/2,p/2)。在这种情况下,共享密钥573大约是原始密钥262的长度的1/3。可以用填充来解决长度上的微小差异。该重复码可以用多数解码来解码。通过将共享密钥中与同一比特相对应的三个值相加,可以获得更好的结果。在没有误差的情况下,后者应为0或3p/2;通过映射到最接近的值,可以获得更好的解码。校正的编码共享密钥可以映射到共享密钥。
有利的是选择太长的共享密钥573,并且然后例如使用KDF来将其散列为期望的密钥长度。例如,如果n为1024,则人们可以将共享密钥573的比特长度取为341,并且然后再从中获得128比特密钥。另一种方法是首先将原始密钥262映射到二进制字符串。例如,从每个系数导出B比特并串联结果。这样的好处是可以使用小得多的代码。
下面给出可能的实施例:
Figure GDA0003838204810000381
在各种实施例中,可以从各种替代方案中选择通信接口。例如,通信接口可以是到局域网或广域网(例如,因特网)的网络接口、到内部或外部数据存储装置的存储接口、键盘等。
网络节点可以包括电子存储装置,例如,以存储诸如多项式a、公钥和私钥多项式以及共享密钥等的中间数据。该存储装置可以被实现为电子存储器(例如,闪存)或者磁存储器(例如,硬盘)等。该存储装置可以包括多个分立存储器,它们一起构成存储装置。存储装置也可以是临时存储器,例如RAM。在临时存储装置的情况下,该存储装置可以使用一些手段来在使用之前获得公共参数,例如通过可选的网络连接(未单独示出)获得它们。
通常,设备110、210、510、520、600均包括微处理器(图1中未单独示出),所述微处理器执行存储在设备110、210、510、520、600处的适当的软件;例如,软件可能已经被下载和/或存储在对应的存储器中,例如,诸如RAM之类的易失性存储器或诸如闪存之类的非易失性存储器(未单独示出)。替代地,设备110、210、510、520、600可以全部或部分地在可编程逻辑中实现,例如作为现场可编程门阵列(FPGA)。设备110、210、510、520、600可以全部或部分地实现为所谓的专用集成电路(ASIC),即针对其特定用途而定制的集成电路(IC)。例如,可以例如使用诸如Verilog、VHDL等的硬件描述语言来在CMOS中实现电路。
在实施例中,网络节点包括通信接口电路、共享多项式电路、私钥多项式电路、公钥多项式电路和共享密钥电路。电路实现本文描述的对应单元。这些电路可以是处理器电路和存储电路,该处理器电路执行在存储电路中以电子方式表示的指令。
处理器电路可以以分布式方式实现,例如实现为多个子处理器电路。存储装置可以分布在多个分布式子存储装置上。存储器的一部分或全部可以是电子存储器、磁存储器等。例如,存储装置可以具有易失性和非易失性部分。存储装置的一部分可以是只读的。电路也可以是FPGA、ASIC等。
图3示意性地示出了电子密钥交换方法的实施例的示例。该方法可以由诸如发起者节点110或响应者节点210之类的第一电子网络节点执行。
方法400包括:
-在第一网络节点和第二网络节点之间布置(410)数字通信,
-获得(420)共享多项式(a),该共享多项式通过数字通信与第二网络节点共享,该共享多项式a的系数被选择对第一模数q取模,
-生成(430)私钥多项式(skI),私钥多项式的系数的绝对值以边界(s)为界,
-通过以下方式来生成(440)公钥多项式(pkI)
-计算(442)共享多项式(a)和私钥多项式(skI)之间的多项式乘积对第一模数(q)取模,以得到多项式乘积,之后对归约多项式进行取模来归约
-将多项式乘积的系数按比例缩小(444)为第二模数(p),缩放的系数等于未缩放的系数乘以第二模数(p),再除以第一模数(q),并舍入为最接近的整数,第二模数(p)小于第一模数(q),边界(s)最多为第二模数(p),
-将第一网络节点的公钥多项式发送(452)到第二网络节点,
-接收(454)第二网络节点的公钥多项式(pkR),
-计算(460)原始密钥作为在第二节点的接收到的公钥与第一网络节点的私钥多项式之间的多项式乘积对第二模数(p)取模,之后对归约多项式进行取模来归约
如果第一网络节点根据发起方模式进行操作,则根据实施例,第一网络节点可以执行以下另外的元素。
-接收(472)第二网络节点的对帐数据(h),
-通过将对帐函数(rec)应用于所接收的对帐数据和原始密钥来计算(482)共享密钥。
如果第一网络节点根据响应者模式进行操作,则根据实施例,第一网络节点可以执行以下另外的元素。
-从原始密钥获得(474)共享密钥和对帐数据,
-将对帐数据发送(484)到第一网络节点。
如本文所指出的,在方法400中也可以采用其他类型的帮助者数据。
如本领域技术人员将显而易见的,执行这些方法的许多不同方式是可能的。例如,步骤的顺序可以改变,或者一些步骤可以并行执行。此外,在步骤之间可以插入其他方法步骤。插入的步骤可以表示对诸如本文所述的方法之类的方法的完善,或者可以与该方法无关。例如,给定的步骤在开始下一步之前可能尚未完全完成。
可以使用软件来执行根据本发明的方法,所述软件包括用于使处理器系统执行方法400或650的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。软件可以存储在合适的存储介质中,例如硬盘、软盘、存储器、光盘等。软件可以作为信号沿着有线、无线或使用数据网络(例如,因特网)发送。可以使该软件可用于下载和/或服务器上的远程使用。可以使用比特流来执行根据本发明的方法,所述比特流被布置为配置可编程逻辑(例如,现场可编程门阵列(FPGA))以执行该方法。
应当理解,本发明还扩展到适于使本发明付诸实践的计算机程序,特别是在载体上或载体中的计算机程序。该程序可以是源代码、目标代码、中间源代码和目标代码的形式(例如,部分编译的形式),或者是适合用于实现根据本发明的方法的任何其他形式。与计算机程序产品相关的实施例包括与所阐述的方法中的至少一个的每个处理步骤相对应的计算机可执行指令。这些指令可以细分为子例程和/或存储在一个或多个可以静态或动态链接的文件中。与计算机程序产品相关的另一实施例包括与所阐述的系统和/或产品中的至少一个的每个单元相对应的计算机可执行指令。
图4a示出了根据实施例的具有包括计算机程序1020的可写部分1010的计算机可读介质1000,计算机程序1020包括用于使处理器系统执行密钥协商方法的指令。计算机程序1020可以作为物理标记或通过计算机可读介质1000的磁化而体现在计算机可读介质1000上。然而,任何其他合适的实施例也是可想到的。此外,将理解,尽管计算机可读介质1000在这里被示出为光盘,但是计算机可读介质1000可以是任何合适的计算机可读介质,例如硬盘、固态存储器、闪存等,并且可以是不可记录的或可记录的。计算机程序1020包括用于使处理器系统执行所述密钥协商方法400的指令。
图4b示出了根据实施例的处理器系统1140的示意性表示,例如作为第一或第二网络节点。该处理器系统包括一个或多个集成电路1110。在图4b中示意性地示出了一个或多个集成电路1110的架构。电路1110包括处理单元1120(例如,CPU),以用于运行计算机程序组件以执行根据实施例的方法和/或实现其模块或单元。电路1110包括用于存储编程代码、数据等的存储器1122。存储器1122的一部分可以是只读的。电路1110可以包括通信元件1126,例如天线、连接器或二者等等。电路1110可以包括专用集成电路1124,以用于执行该方法中定义的部分或全部处理。处理器1120、存储器1122、专用IC 1124和通信元件1126可以经由互连1130(例如,总线)彼此连接。处理器系统1110可以被布置为分别使用天线和/或连接器进行接触和/或无接触通信。
计算机可读介质1000或处理器系统1140还可被配置用于选择参数的方法。
例如,在实施例中,网络节点可以包括处理器电路和存储器电路,该处理器被布置为执行存储在存储器电路中的软件。例如,处理器电路可以是英特尔酷睿i7处理器、ARMCortex-R8等。在实施例中,处理器电路可以是ARM Cortex M0。存储器电路可以是ROM电路,或者可以是非易失性存储器,例如闪存。存储器电路可以是易失性存储器,例如SRAM存储器。在后一种情况下,验证设备可以包括被布置为提供软件的非易失性软件接口,例如硬盘驱动器、网络接口等。
应当注意,上述实施例说明而非限制本发明,并且本领域技术人员将能够设计许多替代实施例。
以下条款不是权利要求,而是包括预期的实施例。申请人特此通知,在本申请或由此衍生的任何进一步申请的审查期间,可以对这些条款和/或这些条款的组合和/或从说明书或权利要求获得的特征提出新的权利要求。条款1.一种被配置用于密钥协商协议的第一电子网络节点(110),所述第一网络节点包括:
-通信接口(120),其被布置用于与第二网络节点进行数字通信,以及
-处理器电路,其被配置为:
-获得共享多项式(a),所述共享多项式通过所述通信接口与所述第二网络节点共享,所述共享多项式(a)的系数被选择对第一模数q取模,
-生成私钥多项式(skI;skR),所述私钥多项式的系数的绝对值以边界(s)为界,
-通过以下方式来生成公钥多项式(pkI;pkR):
-计算所述共享多项式(a)与所述私钥多项式(skI)之间的多项式乘积对所述第一模数(q)取模,以得到多项式乘积;
-将所述多项式乘积的系数按比例缩小为第二模数(p),缩放的系数等于未缩放的系数乘以所述第二模数(p),再除以所述第一模数(q),并且舍入为最接近的整数,所述第二模数(p)小于所述第一模数(q),所述边界(s)最多为所述第二模数(p),
-将所述第一网络节点的所述公钥多项式发送到所述第二网络节点,
-接收所述第二网络节点的公钥多项式(pkR;pkI),
-计算原始密钥多项式为所述第二节点的所接收的公钥与所述第一网络节点的所述私钥多项式之间的多项式乘积对所述第二模数(p)取模,并且根据所述原始密钥来计算所述共享密钥。
条款2.一种用于第一电子网络节点(110)的电子密钥协商方法(400),所述方法包括:
-在所述第一网络节点和第二网络节点之间布置(410)数字通信,
-获得(420)共享多项式(a),所述共享多项式通过所述数字通信与所述第二网络节点共享,所述共享多项式a的系数被选择对第一模数q取模,
-生成(430)私钥多项式(skI),所述私钥多项式的系数的绝对值以边界(s)为界,
-通过以下方式来生成(440)公钥多项式(pkI):
-计算(442)所述共享多项式(a)与所述私钥多项式(skI)之间的多项式乘积模所述第一模数(q),以得到多项式乘积,
-将所述多项式乘积的所述系数按比例缩小(444)为第二模数(p),缩放的系数等于未缩放的系数乘以所述第二模数(p),再除以所述第一模数(q),并且舍入到最接近的整数,所述第二模数(p)小于所述第一模数(q),所述边界(s)最多为所述第二模数(p),
-将所述第一网络节点的所述公钥多项式发送(452)到所述第二网络节点,
-接收(454)所述第二网络节点的公钥多项式(pkR),
-计算(460)原始密钥多项式为所述第二节点的所接收的公钥与所述第一网络节点的所述私钥多项式之间的多项式乘积对所述第二模数(p)取模,并且根据所述原始密钥来计算所述共享密钥。
在权利要求中,置于括号之间的任何附图标记不应解释为对权利要求的限制。动词“包括”及其词形变化的使用不排除权利要求中所述的元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这样的元素的存在。本发明可以通过包括若干不同元素的硬件以及通过适当编程的计算机来实现。在枚举若干单元的设备权利要求中,这些单元中的若干个可以由一个且相同的硬件项来体现。在互不相同的从属权利要求中记载某些措施的仅有事实并不指示不能有利地使用这些措施的组合。
在权利要求书,括号内的引用是指示例性实施例的附图中的附图标记或实施例的公式,从而增加了权利要求的可理解性。这些引用不应被解释为限制权利要求。

Claims (13)

1.一种被配置用于密钥协商协议的第一电子网络节点(110),所述第一电子网络节点包括:
-通信接口(120),其被布置用于与第二网络节点进行数字通信,以及
-处理器电路,其被配置为:
-获得共享多项式(a),所述共享多项式通过所述通信接口与所述第二网络节点共享,所述共享多项式(a)的系数被选择对第一模数( q) 取模,
-生成私钥多项式(skI;skR),所述私钥多项式的系数的绝对值以边界(s)为界,所述边界(s)小于第二模数(p),所述第二模数(p)小于所述第一模数(q),
-通过以下方式来生成公钥多项式(pkI;pkR):
-计算所述共享多项式(a)与所述私钥多项式(skI;skR)之间的多项式乘积对所述第一模数(q)取模,以得到多项式乘积;
-将所述多项式乘积的系数按比例缩小为第二模数(p),缩放的系数等于未缩放的系数乘以所述第二模数(p),再除以所述第一模数(q),并且舍入为最接近的整数,
-将所述第一电子网络节点的所述公钥多项式发送到所述第二网络节点,
-接收所述第二网络节点的公钥多项式(pkR;pkI),
-计算原始密钥多项式为所述第二网络节点的所接收的公钥与所述第一电子网络节点的所述私钥多项式之间的多项式乘积对所述第二模数(p)取模,并且根据所述原始密钥来计算共享密钥,其中,所述第一电子网络节点还被配置为:
-接收所述第二网络节点的对帐数据(h),
-通过对所接收的对帐数据和所述原始密钥多项式的多个系数应用对帐函数(rec)来计算共享密钥,或者
其中,所述第一电子网络节点还被配置为:
-从所述原始密钥多项式的多个系数获得所述共享密钥和所述对帐数据,
-将所述对帐数据发送到所述第二网络节点。
2.根据权利要求1所述的第一电子网络节点,其中,所述第一电子网络节点还被配置为:
-接收所述第二网络节点的帮助者数据,所述帮助者数据包括信息,所述信息允许在所述第一电子网络节点和所述第二网络节点处导出相同的共享密钥,以消除在所述第一电子网络节点和所述第二网络节点处导出的所述原始密钥之间的差异,以及
-根据所述帮助者数据和所述原始密钥多项式的多个系数来计算共享密钥,或者
其中,所述第一电子网络节点还被配置为:
-获得所述共享密钥,并且至少从所述原始密钥多项式的多个系数获得所述帮助者数据,以及
-将所述帮助者数据发送到所述第二网络节点。
3.根据前述权利要求中的任一项所述的第一电子网络节点,其中,所述私钥多项式(skI,skR)的系数的绝对值的所述边界(s)为2(s=2),或者其中,所述边界为1(s=1),后者对应于有符号的二进制。
4.根据权利要求1-2中的任一项所述的第一电子网络节点,其被配置为具有预定数量(hs)的非零系数,并且其中,
-所述私钥多项式(skI)被生成有最多所述数量(hs)的非零系数,或者
-所述私钥多项式(skI;skR)是从概率分布中选择的,所述概率分布具有针对所述私钥多项式(skI;skR)的固定预期数量(hs)的非零系数。
5.根据权利要求1-2中的任一项所述的第一电子网络节点,其中,所述第二模数(p)整除所述第一模数(q)。
6.根据权利要求1-2中的任一项所述的第一电子网络节点,其中,所述第二模数(p)和/或所述第一模数(q)是2的幂。
7.根据权利要求1-2中的任一项所述的第一电子网络节点,其被布置为针对每个新密钥交换获得新的共享多项式(a)和/或新的私钥。
8.根据权利要求1-2中的任一项所述的第一电子网络节点,其中,对帐数据是针对少于所述原始密钥多项式的所有系数来获得、发送、接收和/或应用的。
9.根据权利要求1-2中的任一项所述的第一电子网络节点,其中,所述对帐数据的大小是所述原始密钥多项式的每个对应系数2比特或更大。
10.根据权利要求1-2中的任一项所述的第一电子网络节点,其中,
-所述第一模数(q)的比特大小为12或更大,和/或
-所述第二模数(p)的比特大小为7或更大。
11.根据权利要求1-2中的任一项所述的第一电子网络节点,其中,所述共享多项式(a)与所述私钥多项式(skI)之间的多项式乘积以及所述第二网络节点的所接收的公钥与所述第一电子网络节点的所述私钥多项式之间的多项式乘积二者对归约多项式取模。
12.一种用于第一电子网络节点(110)的电子密钥协商方法(400),所述方法包括:
-在所述第一电子网络节点和第二网络节点之间布置(410)数字通信,
-获得(420)共享多项式(a),所述共享多项式通过所述数字通信与所述第二网络节点共享,所述共享多项式( a) 的系数被选择对第一模数( q) 取模,
-生成(430)私钥多项式(skI),所述私钥多项式的系数的绝对值以边界(s)为界,所述边界(s)小于第二模数(p),所述第二模数(p)小于所述第一模数(q),
-通过以下方式来生成(440)公钥多项式(pkI):
-计算(442)所述共享多项式(a)与所述私钥多项式(skI)之间的多项式乘积对所述第一模数(q)取模,以得到多项式乘积,
-将所述多项式乘积的所述系数按比例缩小(444)为第二模数(p),缩放的系数等于未缩放的系数乘以所述第二模数(p),再除以所述第一模数(q),并且舍入为最接近的整数,
-将所述第一电子网络节点的所述公钥多项式发送(452)到所述第二网络节点,
-接收(454)所述第二网络节点的公钥多项式(pkR),
-计算(460)原始密钥多项式为所述第二网络节点的所接收的公钥与所述第一电子网络节点的所述私钥多项式之间的多项式乘积对所述第二模数(p)取模,并且根据所述原始密钥来计算共享密钥,其中,所述方法还包括:
-接收所述第二网络节点的帮助者数据,所述帮助者数据包括信息,所述信息允许在所述第一电子网络节点和所述第二网络节点处导出相同的共享密钥,以消除在所述第一电子网络节点和所述第二网络节点处导出的所述原始密钥之间的差异,
-根据所述帮助者数据和所述原始密钥多项式的多个系数来计算共享密钥,或者
其中,所述方法还包括:
-从所述原始密钥多项式的多个系数获得所述共享密钥和所述帮助者数据,
-将所述帮助者数据发送到所述第二网络节点。
13.一种计算机可读介质(1000),包括表示指令的暂时性或非暂时性数据(1020),所述指令用于使处理器系统执行根据权利要求12所述的方法。
CN201880045937.7A 2017-05-10 2018-05-02 密钥协商设备和方法 Active CN110870250B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17170508.0 2017-05-10
EP17170508.0A EP3402118A1 (en) 2017-05-10 2017-05-10 Key agreement devices and method
PCT/EP2018/061089 WO2018206344A1 (en) 2017-05-10 2018-05-02 Key agreement devices and method

Publications (2)

Publication Number Publication Date
CN110870250A CN110870250A (zh) 2020-03-06
CN110870250B true CN110870250B (zh) 2022-12-13

Family

ID=58701497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880045937.7A Active CN110870250B (zh) 2017-05-10 2018-05-02 密钥协商设备和方法

Country Status (9)

Country Link
US (1) US11050557B2 (zh)
EP (2) EP3402118A1 (zh)
JP (1) JP6720424B1 (zh)
CN (1) CN110870250B (zh)
BR (1) BR112019023412A2 (zh)
ES (1) ES2842954T3 (zh)
PL (1) PL3622663T3 (zh)
RU (1) RU2736109C1 (zh)
WO (1) WO2018206344A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018108313A1 (de) * 2018-04-09 2019-10-10 Infineon Technologies Ag Verfahren und Verarbeitungsvorrichtung zum Ausführen einer kryptografischen Operation auf Gitterbasis
CN112715016B (zh) * 2018-07-17 2024-04-09 皇家飞利浦有限公司 密钥封装协议
DE102018122278A1 (de) * 2018-09-12 2020-03-12 Infineon Technologies Ag Ausführen einer kryptographischen Operation
CN109861821B (zh) * 2019-02-26 2020-10-30 清华大学 一种用于lwe公钥密码的错误协调方法
DE102019108095A1 (de) * 2019-03-28 2020-10-01 Infineon Technologies Ag Ausführen einer kryptografischen Operation
WO2021061833A1 (en) * 2019-09-26 2021-04-01 Visa International Service Association Lattice based signatures with uniform secrets
EP3843320A1 (en) * 2019-12-24 2021-06-30 Koninklijke Philips N.V. Public/private key system with increased security
CN111464289B (zh) * 2020-01-13 2021-07-27 华中科技大学 一种后量子密钥交换协议的实现方法、设备及系统
JP7318743B2 (ja) * 2020-01-20 2023-08-01 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
JP7460515B2 (ja) 2020-03-13 2024-04-02 Kddi株式会社 電子署名生成装置、電子署名生成方法及び電子署名生成プログラム
US11374740B2 (en) * 2020-03-13 2022-06-28 Infineon Technologies Ag Controller area network key exchange
CN111885058B (zh) * 2020-07-23 2022-05-13 伊拉克巴士拉大学 物联网云中端到端智能设备通信的轻量级消息传递方法
CN116318677A (zh) * 2020-08-31 2023-06-23 Oppo广东移动通信有限公司 一种数据传输方法、客户端、服务端及存储介质
CN112738038A (zh) * 2020-12-17 2021-04-30 北京握奇智能科技有限公司 一种基于非对称口令认证的密钥协商的方法和装置
CN112713992B (zh) * 2020-12-22 2022-07-01 湖北工业大学 一种基于无证书的抗泄露认证与密钥协商方法及系统
CN113242122B (zh) * 2021-04-15 2022-11-25 哈尔滨工业大学 一种基于dh和rsa加密算法的加密方法
CN113473460B (zh) * 2021-06-07 2022-07-01 西安电子科技大学 基于纠错码判决的无线物理层密钥协商方法
US11569994B2 (en) * 2021-06-24 2023-01-31 Intel Corporation Accelerating multiple post-quantum cryptograhy key encapsulation mechanisms
US11792004B2 (en) * 2021-09-17 2023-10-17 Intel Corporation Polynomial multiplication for side-channel protection in cryptography
CN114095423B (zh) * 2021-10-11 2023-04-14 北京东方京海电子科技有限公司 基于mpls的电力通信骨干网数据安全防护方法及系统
CN113965325B (zh) * 2021-10-20 2023-07-25 成都卫士通信息产业股份有限公司 数据传输认证方法、装置、电子设备及计算机存储介质
CN115361682B (zh) * 2022-08-10 2024-05-07 东莞理工学院 一种水下无线传感器网络密钥预分配方法
CN115348017B (zh) * 2022-10-18 2023-02-07 阿里巴巴(中国)有限公司 密文处理方法以及装置
CN115361096B (zh) * 2022-10-19 2022-12-20 无锡沐创集成电路设计有限公司 一种rfid标签电路及基于rfid标签电路的数据传输方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181014B1 (en) * 1999-09-10 2007-02-20 Cisco Technology, Inc. Processing method for key exchange among broadcast or multicast groups that provides a more efficient substitute for Diffie-Hellman key exchange
CN101374043A (zh) * 2007-08-24 2009-02-25 管海明 密钥协商的方法、加/解密的方法及签名/验证的方法
WO2013021360A1 (en) * 2011-08-10 2013-02-14 Pes Carlo Encryption and decryption method
CN104854814A (zh) * 2012-12-21 2015-08-19 皇家飞利浦有限公司 密钥共享网络设备及其配置
WO2017025597A1 (en) * 2015-08-11 2017-02-16 Koninklijke Philips N.V. Key sharing device and method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2277633C (en) * 1999-07-19 2009-10-20 Certicom Corp. Split-key key-agreement protocol
EP1735945B1 (en) * 2004-04-02 2009-08-05 Research In Motion Limited Deploying and provisioning wireless handheld devices
US8422681B2 (en) * 2008-03-06 2013-04-16 International Business Machines Corporation Non-interactive hierarchical identity-based key-agreement
RU2452111C1 (ru) * 2010-11-17 2012-05-27 ЗАО Институт инфокоммуникационных технологий Способ пороговой генерации ключей для системы защиты информации на основе идентификационных данных
EP2493112B1 (en) * 2011-02-28 2018-02-28 Certicom Corp. Accelerated key agreement with assisted computations
US9673977B1 (en) * 2016-09-15 2017-06-06 ISARA Corporation Refreshing public parameters in lattice-based cryptographic protocols
US9942039B1 (en) * 2016-09-16 2018-04-10 ISARA Corporation Applying modular reductions in cryptographic protocols
US9698986B1 (en) * 2016-09-23 2017-07-04 ISARA Corporation Generating shared secrets for lattice-based cryptographic protocols
WO2018083075A1 (en) 2016-11-04 2018-05-11 Koninklijke Philips N.V. Reaching agreement on a secret value
EP3364596A1 (en) * 2017-02-15 2018-08-22 Koninklijke Philips N.V. Key exchange devices and method
US10742413B2 (en) * 2017-04-25 2020-08-11 International Business Machines Corporation Flexible verifiable encryption from lattices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181014B1 (en) * 1999-09-10 2007-02-20 Cisco Technology, Inc. Processing method for key exchange among broadcast or multicast groups that provides a more efficient substitute for Diffie-Hellman key exchange
CN101374043A (zh) * 2007-08-24 2009-02-25 管海明 密钥协商的方法、加/解密的方法及签名/验证的方法
WO2013021360A1 (en) * 2011-08-10 2013-02-14 Pes Carlo Encryption and decryption method
CN104854814A (zh) * 2012-12-21 2015-08-19 皇家飞利浦有限公司 密钥共享网络设备及其配置
WO2017025597A1 (en) * 2015-08-11 2017-02-16 Koninklijke Philips N.V. Key sharing device and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Post-quantum key exchange for the TLS protoc;Joppe W. Bos等;《International association for cryptologic research》;20161027;全文 *

Also Published As

Publication number Publication date
BR112019023412A2 (pt) 2020-06-16
EP3622663A1 (en) 2020-03-18
EP3402118A1 (en) 2018-11-14
JP2020522912A (ja) 2020-07-30
US20200153618A1 (en) 2020-05-14
JP6720424B1 (ja) 2020-07-08
RU2736109C1 (ru) 2020-11-11
WO2018206344A1 (en) 2018-11-15
US11050557B2 (en) 2021-06-29
EP3622663B1 (en) 2020-11-25
CN110870250A (zh) 2020-03-06
ES2842954T3 (es) 2021-07-15
PL3622663T3 (pl) 2021-10-25

Similar Documents

Publication Publication Date Title
CN110870250B (zh) 密钥协商设备和方法
CN110419194B (zh) 密钥交换设备和方法
RU2728519C1 (ru) Протокол согласования ключей на основе изогении эллиптических кривых
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
CN111049650B (zh) 一种基于sm2算法的协同解密方法及装置、系统、介质
US10673631B2 (en) Elliptic curve isogeny-based cryptographic scheme
CN111162906B (zh) 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质
CN111492615B (zh) 具有可更新共享矩阵的加密设备
EP3987711B1 (en) Authenticated lattice-based key agreement or key encapsulation
CN109474425B (zh) 一种基于多个共享密钥获得任意指定长度派生密钥的方法
CN112715016B (zh) 密钥封装协议
JP2019528028A (ja) 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム
CN112997448A (zh) 具有减小的公钥大小的公钥/私钥系统
CN114338047A (zh) 基于国密的区块链工业数据加密方法、装置及存储介质
RU2787692C9 (ru) Протоколы инкапсуляции ключей
RU2787692C2 (ru) Протоколы инкапсуляции ключей

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