WO2019231392A1 - 一种密钥协商系统、方法及装置 - Google Patents

一种密钥协商系统、方法及装置 Download PDF

Info

Publication number
WO2019231392A1
WO2019231392A1 PCT/SG2018/050266 SG2018050266W WO2019231392A1 WO 2019231392 A1 WO2019231392 A1 WO 2019231392A1 SG 2018050266 W SG2018050266 W SG 2018050266W WO 2019231392 A1 WO2019231392 A1 WO 2019231392A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
bit string
result
public
algorithm
Prior art date
Application number
PCT/SG2018/050266
Other languages
English (en)
French (fr)
Inventor
朋特其旺⋅大卫
王贵林
Original Assignee
华为国际有限公司
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 华为国际有限公司 filed Critical 华为国际有限公司
Priority to EP18920998.4A priority Critical patent/EP3793129A4/en
Priority to PCT/SG2018/050266 priority patent/WO2019231392A1/zh
Publication of WO2019231392A1 publication Critical patent/WO2019231392A1/zh
Priority to US17/107,218 priority patent/US11483142B2/en

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/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/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)
    • H04L9/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

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

Abstract

本申请提供一种密钥协商系统、方法及装置,该方法包括:第一设备生成一个公私钥对,向第二设备发送公私钥对中的公钥,接收密文和承诺值。第一设备获取第一结果,根据公私钥对中的私钥和密文获得原始密钥,并根据原始密钥中的部分比特确定第二比特串,根据第二比特串和第一结果计算得到第二结果,向第二设备发送第二结果。第一设备接收打开值,第一设备根据打开值和承诺值对第二设备得到认证结果并生成用于与第二设备通信的会话密钥。因此,采用本申请提供的方法可以在一定程度保证安全的情况下实现协商效率的明显提高,且该方法实施简便。

Description

一种密钥协商系统、 方法及装置 技术领域 本申请涉及量子安全技术领域, 特别涉及一种密钥协商系统、 方法及装置。 背景技术 密钥协商, 或者更准确地说是认证密钥协商 (Authenticated Key Exchange, AKE), 可以 使得两个通信主体安全地协商出一个共同的会话密钥, 用于随后的安全通信。
传统的 AKE协议使用公私钥对、 口令等作为密钥协商和认证的材料, 通信双方在公开 的非安全信道上协商出一个共同的安全会话密钥。 但这些协议, 比如加密密钥交换 (Encrypted Key Exchange, EKE)协议、 简单的基于 口令加密密钥交换 (Simple Password-based encrypted key exchange, SPAKE)协议、 基于验证值的双基口令指数密钥交 换 (Verifier-based Two-Basis Password Exponential Key Exchange, VTBPEKE)协议 , 本质 都以迪菲-赫尔曼 (Diffie-Hellman, DH) 密钥交换技术作为基础。 但该 DH密钥交换技术基 于离散对数问题, 该问题已被证明是可以破解的, 因此 DH密钥交换技术就在量子计算下不 再安全。
与此相比较, 现有的量子安全 AKE协议都比较复杂, 且效率不高。 比如凯伯 (Kyber) 协议需要通信双方共执行 6次密钥封装 (Key Encapsultation Mechanism, KEM) 加解密操 作, 虽然有其他科研人员提出了将系统参数进行优化的量子协议, 但还是需要通信双方共 执行 2次 KEM加解密操作和 4次数字签名相关操作。
由上可知, 现有的量子安全 AKE协议比较复杂, 效率不高。 发明内容
本申请实施例提供一种密钥协商系统、 方法及装置, 用以实现简便高效的量子安全密 钥协商。
第一方面, 本申请实施例提供一种密钥协商系统, 包括第一设备和第二设备, 其中: 所述第一设备用于采用密钥生成算法生成一个公私钥对, 向所述第二设备发送所述公 私钥对中的公钥; 所述第二设备用于根据接收到的所述公钥采用封装算法选取原始密钥, 根据所述公钥和所述原始密钥采用所述封装算法获得密文, 以及根据第一比特串和随机数 采用承诺算法获得承诺值和打开值, 向所述第一设备发送所述密文和所述承诺值, 所述第 一比特串为随机比特串; 以及, 根据所述原始密钥中的部分比特确定第二比特串, 根据所 述第一比特串和所述第二比特串计算得到第一结果; 所述第一设备还用于根据所述公私钥 对中的私钥和接收到的所述密文采用解封装算法获得所述原始密钥, 并根据所述原始密钥 中的所述部分比特确定所述第二比特串; 根据所述第二比特串和所述第一结果计算得到第 二结果, 向所述第二设备发送所述第二结果; 所述第二设备还用于在所述第一比特串与接 收到的所述第二结果相同的情况下, 向所述第一设备发送所述打开值并生成用于与所述第 一设备通信的会话密钥, 其中所述第一比特串与所述第二结果相同表示所述第二设备对所 述第一设备认证成功; 所述第一设备还用于根据接收到的所述打开值和所述承诺值对所述 第二设备进行认证, 得到认证结果, 所述认证结果用于指示所述第一设备对所述第二设备 认证成功, 并生成用于与所述第二设备通信的会话密钥。
因此, 本申请实施例提供的系统只在协商时生成和使用一个临时的 KEM公钥对, 通信 双方共执行 2次 KEM加解密操作, 以及一些简单的承诺操作。 与现有技术中提到的 Kyber协 议和系统参数优化后的量子协议相比, 在一定程度保证安全的情况下效率提高明显, 且实 施简便。
在一种可能的设计中, 所述第二设备具体用于采用第一算法对所述第一比特串和所述 第二结果进行计算, 以得到第一结果; 所述第一设备具体用于采用所述第一算法对所述第 二比特串和所述第一结果进行计算, 以得到第二结果; 所述第一算法为异或运算、 模加法 运算、 模减法运算、 模乘法运算中的任意一种运算或多种运算的组合。
因此, 第二设备可以采用多种可能的算法计算得到第一结果, 第一设备可以采用与计 算第一结果相同的算法计算得到第二结果。
在一种可能的设计中, 所述第一设备还用于在所述第一设备生成用于与所述第二设备 通信的会话密钥后,刪除所述公私钥对; 当发起与所述第二设备重新执行密钥协商,或者, 当发起与第三设备执行密钥协商, 重新生成一个公私钥对。
相较于现有技术中, 通信主体双方需要保存公私钥对、 口令等作为密钥协商和认证的 材料, 占用大量存储空间, 在本申请实施例中, 当第一设备生成用于与第二设备通信的会 话密钥后, 第一设备刪除公私钥对, 可以节省存储空间, 本申请实施例提供的方法更加适 用于硬件能力受限的设备。
在一种可能的设计中, 所述第二设备还用于在所述第二设备生成用于与所述第一设备 通信的会话密钥后, 刪除所述公钥; 当发起与所述第一设备重新执行密钥协商, 或者, 当 发起与第四设备执行密钥协商, 生成一个公私钥对。
相较于现有技术中, 通信主体双方需要保存公私钥对、 口令等作为密钥协商和认证的 材料, 占用大量存储空间, 在本申请实施例中, 当第二设备生成用于与第一设备通信的会 话密钥后, 第二设备刪除公钥, 可以节省存储空间, 本申请实施例提供的方法更加适用于 硬件能力受限的设备。
在一种可能的设计中, 所述第一设备具体用于根据所述第一设备的身份标识符、 所述 第二设备的身份标识符、 所述公钥、 所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个参数生成用于与所述第二设备通信的会话密钥;
所述第二设备具体用于根据所述一个或多个参数生成用于与所述第一设备通信的会 话密钥, 其中, 用于与所述第二设备通信的会话密钥与用于与所述第一设备通信的会话密 钥相同。
因此, 会话密钥的生成可以采用多种参数组合形式以及多种函数形式, 实施方式灵活 方便,
第二方面, 本申请实施例提供一种密钥协商方法, 包括:
第一设备采用密钥生成算法生成一个公私钥对, 向第二设备发送所述公私钥对中的公 钥; 所述第一设备接收密文和承诺值, 所述密文是根据所述公钥和原始密钥采用封装算法 获得的, 所述原始密钥是根据所述公钥采用所述封装算法选取的, 所述承诺值是根据第一 比特串和随机数采用承诺算法获得的, 所述第一比特串为随机比特串; 所述第一设备获取 第一结果, 所述第一结果是根据所述第一比特串和第二比特串计算得到的, 所述第二比特 串是根据所述原始密钥中的部分比特确定的; 所述第一设备根据所述公私钥对中的私钥和 所述密文采用解封装算法获得所述原始密钥, 并根据所述原始密钥中的所述部分比特确定 所述第二比特串; 所述第一设备根据所述第二比特串和所述第一结果计算得到第二结果, 向所述第二设备发送所述第二结果; 所述第一设备接收打开值, 其中, 所述打开值是在所 述第一比特串与所述第二结果相同的情况下所述第二设备向所述第一设备发送的, 所述打 开值是根据所述第一比特串和所述随机数采用所述承诺算法获得的; 所述第一设备根据所 述打开值和所述承诺值对所述第二设备进行认证, 得到认证结果, 所述认证结果用于指示 所述第二设备对所述第二设备认证成功, 并生成用于与所述第二设备通信的会话密钥。
因此, 本申请实施例提供的方法只在协商时生成和使用一个临时的 KEM公钥对, 通信 双方共执行 2次 KEM加解密操作, 以及一些简单的承诺操作。 与现有技术中提到的 Kyber协 议和系统参数优化后的量子协议相比, 在一定程度保证安全的情况下效率提高明显, 且实 施简便。
在一种可能的设计中, 在所述第一设备根据所述第二比特串和所述第一结果计算得到 第二结果时, 所述第一设备采用第一算法对所述第二比特串和所述第一结果进行计算, 以 得到第二结果, 所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任 意一种运算或多种运算的组合。
因此, 第一设备可以采用多种可能的算法计算第二结果。
在一种可能的设计中, 所述第一算法为异或运算;
在所述第一设备采用第一算法对所述第二比特串和所述第一结果进行计算, 以得到第 二结果时, 所述第一设备采用异或算法对所述第二比特串和所述第一结果进行计算, 得到 异或结果作为第二结果。
因此, 第一设备可以采用异或运算计算得到异或结果作为第二结果。
在一种可能的设计中, 在所述第一设备生成用于与所述第二设备通信的会话密钥后, 所述第一设备刪除所述公私钥对; 当所述第一设备发起与所述第二设备重新执行密钥协商, 或者, 当所述第一设备发起与第三设备执行密钥协商, 所述第一设备重新生成一个公私钥 对。
相较于现有技术中, 通信主体双方需要保存公私钥对、 口令等作为密钥协商和认证的 材料, 占用大量存储空间, 在本申请实施例中, 当第一设备生成用于与第二设备通信的会 话密钥后, 第一设备刪除公私钥对, 可以节省存储空间, 本申请实施例提供的方法更加适 用于硬件能力受限的设备。
在一种可能的设计中, 在所述第一设备生成用于与所述第二设备通信的会话密钥时, 所述第一设备根据所述第一设备的身份标识符、 所述第二设备的身份标识符、 所述公钥、 所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个参数 生成用于与所述第二设备通信的会话密钥。 可见, 第一设备可以采用多种参数组合形式以 及多种函数形式生成会话密钥, 实施方式灵活方便。
第三方面, 本申请实施例提供一种密钥协商方法, 包括:
第二设备接收公钥, 所述公钥为采用密钥生成算法生成的一个公私钥对中的公钥; 所述第二设备根据所述公钥采用所述封装算法选取原始密钥, 根据所述公钥和所述原 始密钥采用所述封装算法获得密文, 以及根据第一比特串和随机数采用承诺算法获得承诺 值和打开值, 向所述第一设备发送所述密文和所述承诺值,所述第一比特串为随机比特串; 所述第二设备根据所述原始密钥中的部分比特确定第二比特串, 根据所述第一比特串和所 述第二比特串计算得到第一结果; 所述第二设备接收第二结果, 所述第二结果是根据所述 第二比特串和所述第一结果计算得到的; 所述第二设备在所述第一比特串与所述第二结果 相同的情况下, 向所述第一设备发送所述打开值, 并生成用于与所述第一设备通信的会话 密钥, 其中所述第一比特串与所述第二结果相同表示所述第二设备对所述第一设备认证成 功。
因此, 本申请实施例提供的方法只在协商时生成和使用一个临时的 KEM公钥对, 通信 双方共执行 2次 KEM加解密操作, 以及一些简单的承诺操作。 因此, 与现有技术中提到的 Kyber协议和系统参数优化后的量子协议相比, 在一定程度保证安全的情况下效率提高明 显, 且实施简便。
在一种可能的设计中, 在所述第二设备根据所述第一比特串和所述第二比特串计算得 到第一结果时, 所述第二设备采用第一算法对所述第一比特串和所述第二比特串进行计算, 以得到第一结果; 所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的 任意一种运算或多种运算的组合。 第二设备可以采用多种可能的算法计算第一结果, 使实 施方式更灵活方便。
在一种可能的设计中, 所述第一算法为异或运算; 在所述第二设备采用第一算法对所 述第一比特串和所述第二比特串进行计算, 以得到第一结果时, 所述第二设备采用异或运 算对所述第一比特串和所述第二比特串进行计算, 得到异或结果作为第一结果。
在一种可能的设计中, 在所述第二设备生成用于与所述第一设备通信的会话密钥后, 所述第二设备刪除所述公钥; 当所述第二设备重新发起与所述第一设备执行密钥协商, 或 者, 当所述第二设备发起与第三设备执行密钥协商, 所述第二设备生成一个公私钥对。
相较于现有技术中, 通信主体双方需要保存公私钥对、 口令等作为密钥协商和认证的 材料, 占用大量存储空间, 在本申请实施例中, 当第二设备生成用于与第一设备通信的会 话密钥后, 第二设备刪除公钥, 可以节省存储空间, 本申请实施例提供的方法更加适用于 硬件能力受限的设备。
在一种可能的设计中, 在所述第二设备生成用于与所述第二设备通信的会话密钥时, 所述第二设备根据所述第一设备的身份标识符、 所述第二设备的身份标识符、 所述公钥、 所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个参数 生成用于与所述第一设备通信的会话密钥。
相较于现有技术中, 通信主体双方需要保存公私钥对、 口令等作为密钥协商和认证的 材料, 占用大量存储空间, 在本申请实施例中, 当第二设备生成用于与第二设备通信的会 话密钥后, 第二设备刪除公钥, 可以节省存储空间, 本申请实施例提供的方法更加适用于 硬件能力受限的设备。
第四方面, 本申请实施例提供一种密钥协商装置, 该装置可以为第一设备, 也可以为 第一设备内的芯片。 该装置可以包括处理单元和收发单元。 当该装置是第一设备时, 该处 理单元可以是处理器, 该收发单元可以是收发器, 该第一设备还可以包括存储单元, 该存 储单元可以是存储器, 该存储单元用于存储指令, 该处理单元执行该存储单元所存储的指 令, 以使该第一设备执行第二方面或第二方面任意一种可能的设计中的方法。 当该装置是 第一设备内的芯片时, 该处理单元可以是处理器, 该收发单元可以是输入 /输出接口、 管脚 或电路等; 该处理单元执行存储单元所存储的指令, 该存储单元用于存储指令, 该存储单 元可以是该芯片内的存储单元 (例如, 寄存器、 缓存等) , 也可以是该第一设备内的位于 该芯片外部的存储单元 (例如, 只读存储器、 随机存取存储器等) , 以使该第一设备执行 第二方面或第二方面任意一种可能的设计中的方法。
第五方面, 本申请实施例提供一种密钥协商装置, 该装置可以为第二设备, 也可以为 第二设备内的芯片。 该装置可以包括处理单元和收发单元。 当该装置是第二设备时, 该处 理单元可以是处理器, 该收发单元可以是收发器, 该第二设备还可以包括存储单元, 该存 储单元可以是存储器, 该存储单元用于存储指令, 该处理单元执行该存储单元所存储的指 令, 以使该第二设备执行第三方面或第三方面任意一种可能的设计中的方法。 当该装置是 第二设备内的芯片时, 该处理单元可以是处理器, 该收发单元可以是输入 /输出接口、 管脚 或电路等; 该处理单元执行存储单元所存储的指令, 该存储单元用于存储指令, 该存储单 元可以是该芯片内的存储单元 (例如, 寄存器、 缓存等) , 也可以是该第二设备内的位于 该芯片外部的存储单元 (例如, 只读存储器、 随机存取存储器等) , 以使该第二设备执行 第三方面或第三方面任意一种可能的设计中的方法。
第六方面, 本申请实施例还提供一种计算机可读存储介质, 该计算机可读存储介质存 储有计算机程序, 当该计算机程序在计算机上运行时, 使得计算机执行上述第一方面和 / 或第二方面所述的方法。
第七方面, 本申请实施例还提供一种包含程序的计算机程序产品, 当其在计算机上运 行时, 使得计算机执行上述第一方面和 /或第二方面所述的方法。 附图说明 图 1为本申请实施例中 IoT应用场景的示意图;
图 2为本申请实施例中密钥协商方法的概述流程图;
图 3为本申请实施例中设备 A与设备 B执行密钥协商的具体流程示意图;
图 4为本申请实施例中 LPN KEM参数图表;
图 5为本申请实施例中基于 DH KEM的密钥协商方法的具体流程示意图;
图 6为本申请实施例中密钥协商装置的结构示意图之一;
图 7为本申请实施例中密钥协商装置的结构示意图之二;
图 8为本申请实施例中通信设备的结构示意图。 具体实施方式 下面结合附图, 对本申请的实施例进行描述。
本申请实施例所提供的密钥协商方法可以应用于设备硬件能力受限的场景, 比如智能 家居、 车辆网等物联网 ( Internet of Things, IoT)场景。
本申请实施例中涉及的通信主体可以为在计算、 存储、 通信和能耗等某一方面或多方 面硬件能力受限的设备, 具体可以是任何硬件实现的设备, 或者软件实现的程序、 应用, 或其他组合实现的主体。 且本申请中的通信主体需具有简单的输入、 输出端口(1/0), 具体 来说, 设备输入端口可以是简单的键盘或按钮等, 设备输出端口可以是简单的显示屏、 灯 光颜色或灯光闪烁等。
本申请中的一种可能的应用场景为 IoT场景。 IoT是一种面向机器间通信 ( MTC, Machine-Type Communications ) 的网络, 如图 1所示, 可以用来实现连接工业、 连接出行、 连续用户、 连接城市以及连接设备等, 未来可以主要应用在智能抄表、 医疗检测监控、 物 流检测、 工业检测监控、 汽车联网、 智能社区以及可穿戴设备等领域。 本申请中涉及的通 信主体可以为 IoT终端, 例如, IoT终端为通常安装在室内甚至地下室的电表水表, 或者为 了检测土壤湿度实现自动灌派设置于土壤中的传感器, 又或者为了监控奶牛健康状况佩戴 在奶牛身上的检测仪器。 因此, 上述这类通信主体一般需要大规模部署, 为了降低成本, 这类通信主体的硬件配置一般不高,例如,某些 IoT终端是通过电池来供电的,为了保证 IoT 终端的使用时间不需要经常更换电池,这就要求 IoT终端能够以极低的电力消耗来工作, 因 此, 其计算能力、 存储能力等一般不高。
下面首先介绍本申请需要使用到的两个基本密码工具: KEM和承诺方案 (Commitment Scheme) 。
KEM可以包含如下三个算法:
( 1 ) 密钥生成算法 KeyGen(): 运行该算法可生成一对 KEM公私钥对 (sk; pk), 其中, sk表示私钥, pk表示公钥。
(2) 封装算法 Encaps(pk): 对某个给定的 KEM公钥 pk, 运行该算法输出 (C,k), 其中 k 是一个原始密钥, 而 C是对 k加密后的密文。
(3)解封装算法 Decaps(sk; C) :对密文 C和 KEM私钥 sk运行该算法,解密出原始密钥 k。 更为详细的对 KEM的解释和安全性定义, 可参见 ISO国际标准文档, 这里不再过多贅 述。
承诺方案可以包含如下两个算法:
( 1 ) 承诺算法 Commit(m; r) : 对输入消息 m, 该算法选择随机数 r, 然后运行该算法可 以输出 (F, t), 其中, F是对 m的承诺值, 而 t是验证该承诺值的打开值 (opening value);
(2)打开算法 Open(F; t): 运行该算法可以输出 m, 对所给的 (F, t, m), 该算法可以验证 承诺值 F是否为对消息 m关于打开值 t的承诺。
另外, 更为详细的对承诺方案的解释和安全性定义, 可参见具体科研论文。
另外, 本申请中的承诺方案还可以使用于哈希算法替换, 其中, 哈希算法是指密码意 义上安全的哈希函数 (hash function) 。 例如, 可以用 H(m, r)来代替上述承诺方案。 也就是 说, 将 m作为输入消息, 选择随机数 r, 计算承诺值 F=H(m, r), 并置打开值 t=r。 由于已有标 准化的 Hash函数, 因此工程实现上更为方便。 进一步地, 会话密钥的生成也可以使用 Hash 函数, 可以采用不同的 Hash函数, 也可以采用相同的 Hash函数, 这样更便于工程实现。
以下以两个通信主体包括第一设备和第二设备为例进行描述, 第一设备和第二设备可 以是任意两个需要进行密钥协商的设备, 其中, 第一设备发起与第二设备执行密钥协商。 参阅图 2所示, 本申请实施例提供一种密钥协商方法, 用以实现简便高效的量子安全密钥 协商, 该方法包括:
步骤 201 : 第一设备采用密钥生成算法生成一个公私钥对。
一种可实现的方案中, 第一设备可以采用 KEM中包含的密钥生成算法生成该公私钥对。 KEM可以为环上的带错误学习 (Ring Learning With Error, RLWE) KEM, 带噪音的学习 奇偶 (Learning Parity with Noise, LPN)KEM、我们数论家 (Number Theorist aRe Us, NTRU) KEM或 DH KEM 中的任意一种。
步骤 202 : 第一设备向第二设备发送公私钥对中的公钥。 第一设备可以通过公开信道 将该公钥发送给第二设备
步骤 203 : 第二设备根据接收到的公钥采用封装算法选取原始密钥, 根据原始密钥和 公钥采用封装算法获得密文, 根据第一比特串和随机数采用承诺算法获得承诺值和打开值, 以及根据原始密钥中的部分比特确定第二比特串, 根据第一比特串和第二比特串计算得到 第一结果。
一种可实现的方案中, 第二设备根据公钥采用 KEM中包含的封装算法选取原始密钥, 进一步根据原始密钥和公钥采用 KEM中包含的封装算法获得密文。 应理解的是, 这里第二 设备采用的封装算法与步骤 201中第一设备采用的密钥生成算法属于相同的 KEM。
第二设备可以随机生成第一比特串, 将第一比特串作为输入消息, 选择随机数, 运行 承诺算法获得承诺值和打开值; 或者, 第二设备选择随机数, 对第一比特串和随机数运行 哈希算法, 得到承诺值, 将随机数作为打开值。 应理解的是, 在本申请实施例的具体实施 过程中, 通信主体双方可以事先预定或预配置至少一种承诺方案或者至少一种哈希算法, 且通信主体双方在进行密钥协商通信时采用相同的承诺方案或者哈希算法。
第二设备可以根据原始密钥中的部分比特确定第二比特串。 其中, 第二设备生成的第 一比特串可以为长度为 L比特的随机比特串, L可以在 20-30范围之间。 第二比特串的长度 与第一比特串的长度相同, 第二比特串为原始密钥中任意 L位构成的比特串, 例如, 处于 原始密钥中较高比特位上的连续 L比特, 或者处于原始密钥中较低比特位上的连续 L比特, 或者原始密钥中不连续的 L比特, 本申请实施例对第二比特串的确定方式不做限定。
第二设备可以根据第一比特串与第二比特串采用第一算法计算得到第一结果, 第一算 法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任意一种运算或多种运算的组 合。 例如, 第一算法为异或运算, 第二设备可以根据第一比特串与第二比特串采用异或运 算计算得到异或结果作为第一结果。 应理解的是, 第二设备还可通过上述所列第一算法外 的算法将第一比特串和第二比特串 “混合”起来, 得到第一结果, 本申请实施例对此不作 限定。 以下仅以对第一比特串与第二比特串采用异或运算得到异或结果作为第一结果为例 进行说明。
步骤 204 : 第二设备向第一设备发送密文和承诺值。 第二设备这里可以通过公开信道 将密文和承诺值发送给第一设备。
步骤 205 : 第一设备获取第一结果。 具体的, 第一设备获取第一结果可以采用但不限 于以下方案:
方案 A: 工作人员将步骤 203中第二设备计算得到的第一结果, 输入到第一设备上。 例 如, 工作人员以人工的方式从第二设备上通过读、 看或听等方式获取第一结果, 然后在第 一设备上输入该第一结果。 这里要求第二设备具有简单的输出端口, 而第一设备具有简单 的输入端口。 设备输出端口可以是简单的显示屏、 灯光颜色、 灯光闪烁或声音等, 而设备 输入端口可以是简单的键盘或按钮等。在一种可能的设计中, 当第一比特串的长度为 20~30 比特, 第二比特串的长度与第一比特串的长度相同, 第一结果为第二设备根据第一比特串 与第二比特串采用异或运算计算得到的异或结果, 则第一结果的长度与第一比特串的长度 相同, 也为 20~30比特, 因此, 工作人员进行输入操作并不繁琐, 具有较好的可用性。
方案 B : 工作人员用第一设备扫描第二设备在步骤 203中确定的第一结果所对应的二維 码或者其他标识, 以使第一设备获取第一结果。
方案 C : 第一设备扫描第二设备在步骤 203确定的第一结果对应的二維码或者其他标识。 例如, 第一设备可以自动移动至第二设备附近, 利用第一设备上的摄像头采集第二设备的 显示屏上显示的第一结果, 或, 第一结果对应的二維码或者其他标识, 以使第一设备获取 第一结果。
应理解的是, 上述各个方案仅为举例, 不作为本申请实施例的限定。 本申请中假设第 一设备获取第一结果的过程是较安全的, 即攻击者无法获得第一结果。
步骤 206 : 第一设备根据公私钥对中的私钥和接收到的密文采用解封装算法获得原始 密钥, 根据原始密钥中的部分比特确定第二比特串, 以及根据第二比特串和第一结果计算 得到第二结果。
一种可实现的方案中, 第一设备可以根据公私钥对中的私钥和密文采用 KEM中包含的 解封装算法获得原始密钥。 同理, 第一设备采用的解封装算法, 与步骤 203中第二设备采 用的封装算法, 以及步骤 201中第一设备采用的密钥生成算法属于相同的 KEM。 在本申请 实施例的具体实施过程中, 通信主体双方可以事先预定或预配置至少一种 KEM, 且通信主 体双方在进行密钥协商通信时选择相同的 KEM。 例如, 设备 A采用 LPN KEM中的密钥生 成算法生成一个公私钥对, 并将该公私钥对中的公钥发送给设备 B。 设备 B在接收到设备 A 发送的公钥后, 采用 LPN KEM中包含的封装算法, 根据公钥选取原始密钥, 并根据公钥和 原始密钥获得密文, 将密文发送给设备 A。 设备 A在接收到设备 B发送的密文后, 采用 LPN KEM中包含的解封装算法, 根据密文和公私钥对中的私钥获得原始密钥。
应理解的是, 为了保证第二设备确定的第二比特串与第一设备确定的第二比特串相同, 第一设备确定第二比特串的方式与第二设备确定第二比特串的方式相同。 进一步地, 第一 设备可以根据第二比特串与第一结果采用第二设备计算第一结果时采用的算法计算第二 结果, 例如, 第二设备根据第一比特串和第二比特串采用异或运算计算得到第一结果, 则 第一设备根据第二比特串和第一结果采用异或运算计算得到第二结果。
步骤 207 : 第一设备向第二设备发送第二结果。 第一设备可以通过公开信道将第二结 果发送给第二设备。
步骤 208 : 第二设备从在第一比特串与第二结果相同的情况下, 第二设备对第一设备 认证成功。 在第一比特串与第二结果不相同的情况下, 第二设备对第一设备认证失败。 此 时, 第一设备需要与第二设备重新执行密钥协商, 第一设备可以重新生成一个公私钥对, 重复执行上述步骤直至步骤 208中第二设备对第一设备认证成功为止。
步骤 209 : 第二设备向第一设备发送打开值。 第二设备可以通过公开信道将打开值发 送给第一设备。 这里的打开值为上述步骤 203中获得的打开值。
步骤 210 : 第二设备生成用于与第一设备通信的会话密钥。 第二设备可以根据第一设 备的身份标识符、 第二设备的身份标识符、 公钥、 密文、 承诺值、 打开值、 原始密钥、 第 二结果中的一个或多个参数生成用于与第一设备通信的会话密钥, 例如, 第二设备可以根 据第一设备的身份标识符、 第二设备的身份标识符、 公钥和原始密钥生成用于与第一设备 通信的会话密钥。 又例如, 第二设备可以根据第一设备的身份标识符、 第二设备的身份标 识符、 公钥、 密文、 承诺值、 打开值、 原始密钥、 第二结果采用 Hash函数生成用于与第一 设备通信的会话密钥。
此外, 在第二设备生成用于与第一设备通信的会话密钥后, 第二设备可以刪除公钥, 以节省第二设备的存储空间。 当第二设备重新发起与第一设备执行密钥协商时, 或者, 当 第二设备发起与第三设备执行密钥协商时, 第二设备重新生成一个公私钥对, 其中, 第三 设备为除第一设备外的任一设备。 相较于现有技术中, 通信主体双方需要保存公私钥对、 口令等作为密钥协商和认证的材料, 占用大量存储空间, 在本申请实施例中, 当第二设备 生成用于与第一设备通信的会话密钥后, 第二设备刪除公钥, 可以节省存储空间, 因此, 本申请实施例提供的方法更加适用于硬件能力受限的设备。
应理解的是, 步骤 209和步骤 210的顺序可以调换或者两个步骤同时进行, 本申请不限 定这两个步骤的执行顺序。
步骤 211 : 第一设备根据接收到的打开值和承诺值对第二设备进行认证, 得到认证结 果, 认证结果用于指示第一设备对第二设备认证成功, 并生成用于与第二设备通信的会话 密钥。
若承诺值和打开值是第二设备根据第一比特串和随机数获得, 则第一设备采用打开算 法根据打开值和承诺值获得第三结果 (即采用打开算法根据打开值和承诺值解出第一比特 串) , 当第一设备确定第三结果与第二结果相同 (即第一设备确定第一比特串与第二结果 相同) 时, 则第一设备确定对第二设备认证成功。 应理解的是, 第二设备采用的承诺算法 与第二设备采用的打开算法属于相同的承诺方案。
或者, 若承诺值是第二设备采用哈希算法根据第一比特串和随机数获得, 打开值为该 随机数, 则第一设备采用哈希算法根据打开值和第二结果生成第四结果 (即重新生成一个 承诺值), 当第一设备确定第四结果与承诺值相同时(即第一设备确定两个承诺值相同), 则第一设备确定对第二设备认证成功。 应理解的是, 第二设备采用的哈希算法与第一设备 采用的哈希算法相同。
此外, 第一设备生成的用于与第二设备通信的会话密钥, 与第二设备生成的用于与第 一设备通信的会话密钥相同, 即两者采用相同的参数利用相同的函数生成相同的密钥。
在第一设备生成用于与第二设备通信的会话密钥后, 第一设备也可以刪除公私钥对。 当第一设备发起与第二设备重新执行密钥协商时, 第一设备重新生成一个公私钥对, 采用 新生成的公私钥对与第二设备进行密钥协商, 以节省第一设备的存储空间。 或者, 当第一 设备发起与第三设备执行密钥协商时, 第一设备重新生成一个公私钥对, 其中, 第三设备 为除第一设备外的任一设备。 相较于现有技术中, 通信主体双方需要保存公私钥对、 口令 等作为密钥协商和认证的材料占用大量存储空间, 在本申请实施例中, 当第一设备不保存 公私钥对, 可以节省存储空间, 因此, 本申请实施例提供的方法更加适用于硬件能力受限 的设备。 下面以设备 A与设备 B的密钥协商过程为例, 说明如图 2所示实施例提供的密钥协商方 法, 具体如图 3所示。
设备 A可以采用 KEM中包含的密钥生成算法生成随机的公私钥对(sk, pk),并可以通过 公开信道将公钥 pk发送给设备 B, 设备 A保存私钥 sk。
设备 B可可以采用 KEM中包含的封装算法根据公钥 pk选取原始密钥 k, 根据原始密钥 k 和公钥 pk计算得到密文 C, 并将原始密钥 k的高比特上的连续 L比特记为第二比特串 K, 计 算第二比特串 K与第一比特串 S (长度为 L的随机比特串) 的异或结果作为第一结果 E, 其 中, E = K©Sc 工作人员可以通过从设备 B读取第一结果 E, 然后在设备 A上输入第一结果 Ec 同时, 设备 B计算采用承诺方案中包含的承诺算法, 对第一比特串 S执行承诺, 选择随 机数 r,得到承诺值 F和打开值 t。设备 B可以通过公开信道将密文 C和承诺值 F发送给设备 A。
设备 A可以根据私钥 sk和密文 C采用 KEM中包含的解封装算法得到原始密钥 k, 并确定 原始密钥 k的高比特上的连续 L比特作为第二比特串 K, 然后将第二比特串 K和第一结果 E进 行异或运算得到第二结果 S’ , 其中, S' = K®E。设备 A可以通过公开信道将第二结果 S’ 发送给设备 B。
设备 B检查第二结果 S’ 是否等于第一比特串 S : 若不相等, 则可以确定对设备 A认证 失败, 不再继续执行密钥协商; 若相等, 则可以确定对设备 A认证成功, 设备 B可以通过公 开信道将打开值 t发送给设备 A。
设备 A在收到打开值 t后, 可以根据承诺值 F和打开值 t采用承诺方案中包含的打开算法 得到第三结果 S’ ’ 。进一步地, 设备 A检查第三结果 S’ ’是否等于第二结果 S’ : 若相等, 则可以确定对设备 B认证成功; 若不相等, 则可以确定对设备 B认证失败。
若设备 A和设备 B都认证成功, 最后双方计算出会话密钥 SK=H(AIIBIIpklOFIIS’ lltllk), 其中, A和 B分别表示设备 A的身份标识符和设备 B的身份标识符。 AlIBNpkNCNFNS’ lltllk可 视为会话识别号 (Session ID)。
另外, 可以用 Hash函数 H(S, r)来代替上述承诺方案。 具体的, 设备 B对第一比特串 S进 行承诺时, 选择随机数 r后计算承诺值 F=H(S, r), 并置打开值 t=r, 而设备 A收到打开值 t后, 若确定打开值 t满足 F=H(S’ , t), 或者计算第四结果 F’ =H(S , , t), 确定 F’ =F, 则可以确 定对设备 B认证成功。 下面结合具体 KEM说明如图 2和图 3所示实施例的具体实施过程。
应理解的是,下面 4个实施例仅对两个通信主体 (以设备 A和设备 B为例)使用具体 KEM 的过程进行详细描述, 其他过程与上述实施例类似, 此处不再进行描述。
实施例 1 : KEM为 RLWE KEM。
其中, 该 KEM为 CRYSTALS提出的具体 KEM 。 CRYSTALS是美国国家标准与技术研 究院 (National Institute of Standards and Technology, NIST) 后量子密码竞赛的一个候选算 法套件, 包括加密、 签名和密钥协商机制, 该 KEM是典型的格密码方案。
RLWE KEM工作在多项式环 Rq = Zq[x]/(xn + l)上, 其中, q是一个素数, n是一个整 数, x是多项式变量, Zp表示模一个素数 p的所有剩余类, 即 Zp = {0,l,2 p - l}c Rq中每 个元素是一个次数不超过 n-1的多项式。 另外, 用; x表示 Rq上的离散高斯分布 (discrete Gaussian distribution)。 RLWE KEM具体算法和使用描述如下:
密钥生成: 设备 A可以随机选取 s, e e X k, 并计算 b = As + e, 其中, k是一个正整数, 而 A e R$xk是一个 k行 k列的矩阵。 设备 A将 s作为 KEM私钥存储, 将 KEM公钥 (A, b)发给设 备 B。
封装过程: 设备 B在收到 KEM公钥 (A, b)后,可以随机选取 t, f e xk,并计算 c = ATt + f, 将密文 c发给设备 A。 这里密文 c是对原始密钥 bTt的加密, bTt e Rq作为一个 n-1次多项式, 其每个系数的奇偶性就表示原始密钥的一个比特。
解封装过程: 设备 A在收到密文 c后, 可以使用 KEM私钥 s计算 sTc e Rq,并将 sTc作为原 始密钥。
上述 KEM实现的一个关键问题是, bTt和 sTc并不绝对相等, 应理解的是, 只要相关参 数和向量选择合适, 二者就可以非常接近。 设备 A在解封装时, 需对密文和解密后的原始 密钥进行适当的调和 (reconciliation), 即一些近似和编码操作, 从而可保证 KEM解封装失败 的可能性非常低。
另外,为减少传输数据,在一种可能的设计中, KEM公钥 (A, b)中包含的多项式矩阵 A可 以由一个 256比特的随机种子按既定方法计算出来, 这样设备 A只需要给设备 B发送随机数 和 b即可, 而不必发送完整的矩阵 A。
下面是 NIST后量子密码算法标准化候选算法 CRYSTALS给出的参数,可以作为本申请 实施例的一种具体实现:
系统参数: n=256, q=7681=213-29+l, k=3。
对于上述系统参数, KEM公钥为 1088字节 (Bytes), KEM私钥为 2400字节, 密文为 1184 字节, 原始密钥长度为 256比特, 解封装失败率为 2_142
此外, 上述设备 A和设备 B使用的 KEM公私钥对是临时产生的、 只用一次。 所以, 与 现有技术中解密失败可能造成部分泄露私钥信息不同,这里 KEM解封装失败只意味着通信 双方需要再次产生并使用另一对 KEM公私钥。 因此, 可以对上述系统参数进行优化, 以适 当增大解封装失败率为代价, 减小 KEM公私密钥及密文的大小, 进而提高计算效率和通信 效率。 实施例 2: KEM为 LPN KEM。
LPN KEM工作在二元域 Z2上。参数 n, q, N, L, D均为正整数。参数 n和 q的选择需要适当 保证 LPN问题是困难的, n决定了密文的大小。 N是纠错码 C[N, L, D]码字的比特长度, 也 是编码后被封装信息的比特长度, 其中, 纠错码 C[N, L, D]表示将长度为 L比特的信息编码 为 N比特的码字, 各有效码字间的海明距离 (Hamming distance)至少是 D, 记 BerTS具有参 数 T的贝努利分布 (Bernouilli distribution) ,即该分布以 T的概率输出 1,而以 1-T的概率输出 0。
K是编码前信息的比特长度。 对于所给的贝努利分布参数 T, 参数 D决定封装后的消息有多 少错误可以被纠正。 这里推荐可被纠错的错误不超过 10%。 具体 LPN KEM算法和使用描述 如下:
密钥生成: 设备 A可以随机选取矩阵 S e ZgxN、 A e zgxn和 E e Ber^xN,计算 B = AS + E。 随后, 设备 A将 S作为 KEM私钥存储, 将 KEM公钥 (A, B)发送给设备 B。
封装过程 :设备 B在收到 KEM公钥 (A, B)后, 设备 B可以选择随机向量 f e Berl 将 fTB G ZpNt为原始密钥, 计算并发送密文 uT = fTA给设备 A。
解封装过程: 设备在 A收到密文 uT后, 可以根据 KEM私钥 S计算 uTS e Z xN, 并将其作 为原始密钥。
同样地,上述 LPN KEM实现的一个关键问题是, uTS和 fTB并不绝对相等。应理解的是, 只要选择合适的相关参数, E和 f分别为噪音矩阵和噪音向量, 故而 uTS和 fTB二者的比特值 非常接近的概率很大。事实上, fTB - uTS = fTE的平均海明重量 (Hamming weight)为 Nqx2, 只要 Nqx2 < D/2, 设备 A计算得到的 uTS就能以高概率与设备 B持有的原始密钥 fTB相同。
具体来讲,对于 i比特的真正原始密钥 c,设备 B可以将其分成 j块,每块长度为 L比特 (对 最后一块进行填充) 。 这里, (j - 1)N < i S JiV。 然后对每块使用纠错码 C[N, L, D]将 L比 特编码为 N比特的码字, 将每个码字视为一个属于 Z xN的一行 N列的行向量 (即上述方案中 的 fTB),设备 B可以使用上述 KEM公钥将其封装后发送设备 A。在收到所有 j块封装信息后, 设备 A可以使用上述 KEM私钥对所有 j块进行解封装, 然后利用纠错码 C[N, L, D]解码各块, 最后恢复出 i比特长的真正原始密钥 c。 这里的关键是, 需要选择合适参数使得封装和解封 装的误差 (即 fTB - uTS)能够被纠错码 C[N, L, D]将其视为错误后能以高概率纠正过来。 下面推荐两种方案能够实现正确纠错的概率至少为 90% (也就是说, 解封装失败率不 超过 10% ) 。
方案一: 使用 Golay码[23, 12, 7]传送 140比特的真正原始密钥 c。
首先, 设备 B可以将 140比特的真正原始密钥 c, 拆分成 12个块, 每个块 12比特 (使用适 当的方式填充最后一个块的 4比特)。
随后, 设备 B可以将每个 12比特的块使用 Golay码[23, 12, 7]编码为 23比特的码字, 这样 一共产生 12个码字。
设备 B再将这 12个码字使用上述 KEM公钥分别进行封装,然后将所得到封装后的结果 发给设备 A。
设备 A可以将收到的 12个封装块先使用上述 KEM私钥进行解封装,然后对得到的结果 按 Golay码[23, 12, 7]进行解码、 纠错, 即可恢复出 140比特的真正原始密钥 c。
为保证设备 A能正确纠错, 即可恢复出正确的真正原始密钥 c, 推荐使用的 LPN KEM 参数 (q, T)见图 4中的第一栏和第二栏。
若使用参数 (q = 512, x = 0.0029), n=512, 则传送 140比特真正原始密钥相关性能指标 如下: 公钥为 34240字节, 私钥为 1472字节, 密文为 64字节, 解封装失败率为 10%。
在一种可能的设计中, 为了减少 KEM公钥 (A, B)中的 A大小, 设备 B可以选择由一 256 比特的随机数种子生成 A。 这时, KEM公钥的变小为 1504字节。 方案 2 : 使用级联码 (Concatenated Code)进行编码, 传送 140比特的真正原始密钥 c。 比 如,可使用 Reed-Solomon[15, 7, 9]作为外码和具有单比特纠错能力的 Hamming[7, 4]作为内 码。
首先, 设备 B可以将 140比特的真正原始密钥 c拆分成 5个块, 每个块 28比特。
随后, 设备 B可以将每个 28比特的块使用外码 Reed-Solomon[15, 7, 9]进行编码。 也就 是说, 将 28比特视为 7个 4比特, 每个 4比特当作 Reed-Solomon[15, 7, 9]的一个字母。 这样, 一个 28比特的块将被编码为一个 15x4=60比特的 Reed-Solomon[15, 7, 9]码字。 5个块一共编 码为 5个码字, 长度为 5x60=300比特。
接下来, 设备 B使用内码 Hamming [7, 4]对上一步得到的 5个 Reed-Solomon码字中的每 个字母 (长度为 4比特)进行编码, 即将每个 4比特的字母编码为 7比特的 Hamming[7, 4]码字。 这样, 5个块一共得到 5x15=75个 Hamming[7, 4]码字。
之后, 设备 B使用上述 KEM公钥, 对这 75个 Hamming[7, 4]码字 (共计 5x15x7=525比 特) 进行封装, 并将所得到的封装结果发给设备 A。
设备 A在收到上述封装结果后, 可以先使用 KEM私钥进行解封装, 然后对所得到的结 果按内码 Hamming[7, 4]进行解码、纠错,再按外码 Reed-Solomon[15, 7, 9]进行解码、纠错, 以恢复出 140比特的真正原始密钥 c。
为保证设备 A能以不低于 90%的概率正确纠错以复出正确的真正原始密钥 c, 推荐使用 的 LPN KEM参数 (q, T)见图 3中的第一栏和第三栏。
若使用参数 (q = 512, x = 0.0063, n=512, N=105, L=28), 则传送 140比特真正原始密钥 相关性能指标如下: KEM公钥为 39488字节, KEM私钥为 6720字节, 密文为 128字节, 解封 装失败率为 10%。 实施例 3 : KEM为 NTRU KEM。
其中, NTRU已经在 IEEE 1394标准化, 目前在 IETF进行推标, 同时也是 NIST后量子标 准化项目的一个候选算法。与 RLWE KEM类似, NTRU也工作在多项式环 Rq = Zq [x]/(xn + 1)上, 其中 q是一个素数, 是系统参数, 是已知和公开的, 整数 n表示待封装密钥或消息的 比特长度。 另外, 用 Rq,s表示 Rq中所有小系数的多项式。 NTRU KEM算法和使用如下: 密钥生成: 设备 A可以随机选取小系数多项式 g e Rq,s作为 KEM私钥, 计算 h = f/g e Rq为 KEM公钥并将其发送给设备 B, 其中 f e Rq,s是另一 i随机的小系数多项式。
封装过程: 设备 B在收到 KEM公钥 h e Rq后, 对于一个 n比特的原始密钥 m e Zg, 将其 各个比特视为系数为 0或 1的一个小系数多项式, 设备 B可以选取两随机多项式 r, e e 1^,5使 得 m = e mod 2,然后计算 c = 2hr + e G Rq并将 c发给设备 A。 这里密文 c即是对原始密钥 m 的加密。
解封装过程: 设备 A在收到 c后, 可以使用 KEM私钥 g计算 ((cg mod q)mod 2)/g e Rq, 并将该结果作为原始密钥。
同样的, 上述 NTRU KEM实现的一个关键问题是, ((eg mod q)mod 2)/g和 e mod 2并 总是相等。 应理解的是, 只要相关参数选择合适, g, f, r, e e Rq,sS够小, 二者相等的概率 就非常大。 也就是说, 经过适当的调和 (reconciliation),上述 NTRU KEM解封装失败的可能 性可以非常低。
根据 NTRU所推荐的系统参数, 对于 128比特量子安全, 上述 NTRU KEM可使用如下参 数:
系统参数: 11=512^=12289 (14比特);小系数选取集合{0, ±1, ±2,..., ±12 }中的元素。 对于上述系统参数, KEM公钥为 896字节, KEM私钥为 320字节, 密文为 896字节, 而 被封装的原始密钥长度为 512比特, 解封装失败率小于 2_3Q。 其中, 128比特量子安全是密码 强度的概念, 相当于要破解这个密码系统, 需要做 2的 128次方个密码操作。
若原始密钥的长度更长, 也可以在上述系统参数中将 n设置为 1024。 实施例 4 : KEM是 DH (Diffie-Hellman) KEM。
与上述三个实施例不同, 由于 DH问题在量子计算下不再安全, 所以采用 DH KEM的密 钥协商方法不是量子安全的。 但该方法仍具有现实意义。 具体的现实意义可以包括但不限 于以下方面: 第一, 在量子计算机成为现实前, 该方法是安全的, 所以可在合适的场景使 用。第二,与上述三个基于格密码的实施例相比,采用 DH KEM的密钥协商方法对应的 KEM 公私钥长度都会大幅度降低, 变为格密码的 1/4到 1/30, 通信效率显著提升。
其中, 令 p为素数, G是某 p阶乘法群, g e G为群 G的一个生成元。 H()为一安全的 hash 函数, 其输出为 K比特。 基于 DH KEM的密钥协商方法如图 5所示, 具体描述如下:
设备 A可以随机选取 x e Zp作为 KEM私钥, 计算 KEM公钥 X = gx G G并通过公开信道 将 X发送给设备 B, 设备 A保存 KEM私钥 X。
设备 B在接收到 KEM公钥 X后, 可以随机选取 y e Zp, 置原始密钥为 k = H^X^, 计算 密钥封装值 C = Y = gY e G。 设备 B确定 k的高比特 1位 K和长度为 1比特的随机比特串 S的异 或结果 E (即 E=K㊉ S) 。 设备 A获取 E (具体可以采用步骤 105提供的任一方案) 。 设备 B可 以选择随机数 r e {0, 1}4 K , 计算 F = H(S, r)作为对 S的承诺值,并通过公开信道将 (Y, F)发送 给设备 A。
设备 A使用 KEM私钥 x解密 Y得到 k, k = H(;Yx:), 根据 k得到 K, 然后将 K和 E进行异或 运算得到 S’ (即 S'=K©E), 将 S’ 发送给设备 B。
设备 B检查 S’ 是否等于 S : 若不相等, 则不再继续执行密钥协商; 若相等, 即对设备 A认证成功, 并将承诺打开值 r发送给设备 A。
设备 A在收到检查 r后,检查 F是否等于 H(S ' , r) :若相等, 则设备 A对设备 B认证成功; 若不相等, 则设备 A对设备 B认证失败。
若设备 A和设备 B都认证成功, 最后双方计算出会话密钥 SK=H(ANBNXIIYNFNS’ llrllk)。 与常规基于离散对数问题的密码系统 (比如数字签名算法标准 (Digital Signature Algorithm , DSA)标准签名, 施诺 (Schnorr) 签名, 艾伽马 (ElGamal) 加密)类似, 上述 DH KEM有两 种典型参数选择: 剩余类群和椭圆曲线上的群。 具体来说, 上述方案中的群 G可选为 有限域 Zq的一个 p阶乘法子群,其中 p和 q都是素数, JLplq- 1。 p的比特长度一般可选择 1024, 1536或 2048 , q的比特长度可为 128或 256。 或者, G可以是基于 256比特的椭圆曲线群, 而 q 的比特长度可为 128或 256。
由上述各个实施例可知, 本申请实施例提供的方法只在协商时生成和使用一个临时的 KEM公钥对, 通信双方共执行 2次 KEM加解密操作, 以及一些简单的承诺操作。 因此, 与 现有技术中提到的 Kyber协议和系统参数优化后的量子协议相比, 在一定程度保证安全的 情况下效率提高明显, 且实施简便。
本申请实施例提供的方法具有严格的可证明安全性。 具体来说, 如果其中所使用的 KEM和承诺方案都是安全的, 则本申请实施例提供的方法在标准模型下是安全的; 如果其 中所使用的 KEM和 Hash函数都是安全的, 则本申请实施例提供的方法在随机预言模型 (random oracle)下是安全的。 另外, 若所使用的 KEM还是量子安全的, 则本申请实施例提 供的方法是量子安全的。 基于以上实施例, 本申请实施例提供一种密钥协商装置 600, 在一种示例下, 所述密 钥协商装置 600可以被包括于密钥协商系统中的第一设备中,如图 6所示, 该装置 600包括: 处理单元 610, 用于采用密钥生成算法生成一个公私钥对;
收发单元 620, 用于向第二设备发送所述公私钥对中的公钥, 接收密文和承诺值, 所 述密文是根据所述公钥和原始密钥采用封装算法获得的, 所述原始密钥是根据所述公钥采 用所述封装算法选取的, 所述承诺值是根据第一比特串和随机数采用承诺算法获得的, 所 述第一比特串为随机比特串;
所述收发单元 620, 还用于获取第一结果, 所述第一结果是根据所述第一比特串和第 二比特串计算得到的, 所述第二比特串是根据所述原始密钥中的部分比特确定的;
所述处理单元 610, 还用于根据所述公私钥对中的私钥和所述密文采用解封装算法获 得所述原始密钥, 并根据所述原始密钥中的所述部分比特确定所述第二比特串; 根据所述 第二比特串和所述第一结果计算得到第二结果;
所述收发单元 620, 还用于向所述第二设备发送所述第二结果; 接收打开值, 其中, 所述打开值是在所述第一比特串与所述第二结果相同的情况下所述第二设备向所述第一 设备发送的, 所述打开值是根据所述第一比特串和所述随机数采用所述承诺算法获得的; 所述处理单元 610, 还用于根据所述打开值和所述承诺值对所述第二设备进行认证, 得到认证结果, 所述认证结果用于指示所述第二设备对所述第二设备认证成功, 并生成用 于与所述第二设备通信的会话密钥。 在一种可能的设计中, 所述处理单元 610, 具体用于:
采用第一算法对所述第二比特串和所述第一结果进行计算, 以得到第二结果; 所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任意一种运算 或多种运算的组合。
在一种可能的设计中, 所述处理单元 610, 还用于:
在生成用于与所述第二设备通信的会话密钥后, 刪除所述公私钥对; 当发起与所述第 二设备重新执行密钥协商, 或者, 当发起与第三设备执行密钥协商, 重新生成一个公私钥 对。
在一种可能的设计中, 所述处理单元 610, 具体用于:
根据所述第一设备的身份标识符、所述第二设备的身份标识符、所述公钥、所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个参数生成用于与 所述第二设备通信的会话密钥。 基于以上实施例, 本申请实施例提供一种密钥协商装置 700, 在一种示例下, 所述密 钥协商装置 700可以被包括于密钥协商系统中的第二设备中,如图 7所示,该装置 700包括: 收发单元 710, 用于接收公钥, 所述公钥为采用密钥生成算法生成的一个公私钥对中 的公钥;
处理单元 720, 用于根据所述公钥采用所述封装算法选取原始密钥, 根据所述公钥和 所述原始密钥采用所述封装算法获得密文, 以及根据第一比特串和随机数采用承诺算法获 得承诺值和打开值; 所述收发单元 710, 还用于向所述第一设备发送所述密文和所述承诺 值, 所述第一比特串为随机比特串;
所述处理单元 720, 还用于根据所述原始密钥中的部分比特确定第二比特串, 根据所 述第一比特串和所述第二比特串计算得到第一结果;
所述收发单元 710, 还用于: 接收第二结果, 所述第二结果是根据所述第二比特串和 所述第一结果计算得到的;
所述处理单元 720, 还用于: 在所述第一比特串与所述第二结果相同的情况下, 生成 用于与所述第一设备通信的会话密钥, 其中所述第一比特串与所述第二结果相同表示所述 第二设备对所述第一设备认证成功; 所述收发单元 710, 还用于向所述第一设备发送所述 打开值。
在一种可能的设计中, 所述处理单元 720, 具体用于:
采用第一算法对所述第一比特串和所述第二比特串进行计算, 以得到第一结果; 所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任意一种运算 或多种运算的组合。
在一种可能的设计中, 所述处理单元 720, 还用于:
在生成用于与所述第一设备通信的会话密钥后, 刪除所述公钥; 当发起与所述第一设 备重新执行密钥协商, 或者, 当发起与第三设备执行密钥协商, 生成一个公私钥对。
在一种可能的设计中, 所述处理单元 720, 具体用于:
根据所述第一设备的身份标识符、所述第二设备的身份标识符、所述公钥、所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个参数生成用于与 所述第一设备通信的会话密钥。 可以理解的, 关于图 6和图 7的密钥协商装置包括的功能模块的具体实现方式及相应的 有益效果, 可参考前述图 2所示实施例的具体介绍, 这里不贅述。
应理解以上各个单元的划分仅仅是一种逻辑功能的划分, 实际实现时可以全部或部分 集成到一个物理实体上, 也可以物理上分开。 且这些单元可以全部以软件通过处理元件调 用的形式实现; 也可以全部以硬件的形式实现, 还可以部分单元以软件通过处理元件调用 的形式实现, 部分单元以硬件的形式实现。 在实现过程中, 上述方法的各步骤或以上各个 单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如, 以上这些单元可以是被配置成实施以上方法的一个或多个集成电路, 例如: 一 个或多个特定集成电路 (Application Specific Integrated Circuit, ASIC) , 或, 一个或多个 微处理器 (digital signal processor, DSP) , 或, 一个或者多个现场可编程门阵列 (Field Programmable Gate Array, FPGA) 等。 再如, 当以上某个单元通过处理元件调度程序的形 式实现时,该处理元件可以是通用处理器,例如中央处理器 (Central Processing Unit, CPU) 或其它可以调用程序的处理器。 再如, 这些单元可以集成在一起, 以片上系统 ( system-on-a-chip , S0C) 的形式实现。
作为另一种可选的变形, 本申请实施例提供一种密钥协商装置, 示例性地, 可以为一 种芯片, 该装置包括处理器和接口, 该接口可以为输入 /输出接口。 其中, 处理器完成上述 图 6中处理单元 610, 接口完成上述图 6中收发单元 620。 或处理器完成上述图 7中处理单元 720的功能, 接口完成上述图 7中收发单元 710的功能。 该装置还可以包括存储器, 存储器 用于存储可在处理器上运行的程序, 处理器执行该程序时实现上述如图 2所示实施例的方 法。
基于以上实施例, 本申请实施例还提供了一种通信设备, 参阅图 8所示, 该通信设备 800中包括: 收发器 801、 处理器 802、 存储器 803。 其中, 存储器 803用于存储计算机程序; 处理器 802调用存储器 803存储的计算机程序, 通过收发器 801执行上述如图 2所示的方法实 施例中第一设备的步骤或第二设备的步骤。其中,处理器可以是 CPU, 网络处理器 (network processor, NP),硬件芯片或者其任意组合。存储器可以包括易失性存储器 (volatile memory), 例如随机存取存储器 ( random access memory , RAM ) , 也可以包括非易失性存储器 (non-volatile memory) , 例如只读存储器 (read-only memory, ROM),快闪存储器 (flash memory) , 硬盘 (hard disk drive, HDD) 或固态硬盘 (solid-state drive, SSD) , 存储器 还可以包括上述种类的存储器的组合。
可以理解的, 上述图 6或图 7所示实施例中的装置可以以图 8所示的通信设备 800实现。 具体的, 图 6中处理单元 610可以由处理器 802实现, 收发单元 620可以由收发器 801实现。 图 7中处理单元 720可以由处理器 802实现, 收发单元 710可以由收发器 801实现。 通信结构 800的结构并不构成对本申请实施例的限定。
本申请实施例提供一种密钥协商系统, 包括第一设备和第二设备。 示例性地, 该系统 可以包括两个如图 8所示的通信设备, 其中, 一个设备用于执行上述如图 2所示的方法实施 例中第一设备的步骤, 另一个设备用于执行上述如图 2所示的方法实施例中第二设备的步 骤。
本申请实施例还提供一种计算机可读存储介质, 该计算机可读存储介质存储有计算机 程序, 当该计算机程序在计算机上运行时,使得计算机执行上述如图 2所示实施例的方法。
综上所述, 本申请实施例提供的方法只在协商时生成和使用一个临时的 KEM公钥对, 通信双方共执行 2次 KEM加解密操作, 以及一些简单的承诺操作。 因此, 与现有技术中提到 的 Kyber协议和系统参数优化后的量子协议相比, 在一定程度保证安全的情况下效率提高 明显, 且实施简便。
另外, 目前量子安全的密码系统公私钥尺寸都比较大, 这些量子安全 AKE需要通信双 方持有长期使用的量子安全公私密钥对, 对设备的存储能力也是一个挑战。 但本申请实施 例提供的方法不需要存储公私密钥对, 每次密钥协议所用到的 KEM公私密钥对都是临时的, 一次使用完后即可刪除, 可以有效节省设备的存储空间。
本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。 因此, 本申请实施例可采用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方面的 实施例的形式。 而且, 本申请实施例可采用在一个或多个其中包含有计算机可用程序代码 的计算机可用存储介质 (包括但不限于磁盘存储器、 CD-ROM、 光学存储器等) 上实施的 计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、 设备 (系统) 、 和计算机程序产品的 流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流程图和 /或方框图中的 每一流程和 /或方框、 以及流程图和 /或方框图中的流程和 /或方框的结合。 可提供这些 计算机程序指令到通用计算机、 专用计算机、 嵌入式处理机或其他可编程数据处理设备的 处理器以产生一个机器, 使得通过计算机或其他可编程数据处理设备的处理器执行的指令 产生用于实现在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的 功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方 式工作的计算机可读存储器中, 使得存储在该计算机可读存储器中的指令产生包括指令装 置的制造品, 该指令装置实现在流程图一个流程或多个流程和 /或方框图一个方框或多个 方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机 或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理, 从而在计算机或其他 可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和 /或方框图一个 方框或多个方框中指定的功能的步骤。
显然, 本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的 精神和范围。 这样, 倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技 术的范围之内, 则本申请也意图包含这些改动和变型在内。

Claims

权利要求
1、 一种密钥协商系统, 其特征在于, 包括第一设备和第二设备, 其中:
所述第一设备用于采用密钥生成算法生成一个公私钥对, 向所述第二设备发送所述公 私钥对中的公钥;
所述第二设备用于根据接收到的所述公钥采用封装算法选取原始密钥, 根据所述公钥 和所述原始密钥采用所述封装算法获得密文, 以及根据第一比特串和随机数采用承诺算法 获得承诺值和打开值, 向所述第一设备发送所述密文和所述承诺值, 所述第一比特串为随 机比特串; 以及, 根据所述原始密钥中的部分比特确定第二比特串, 根据所述第一比特串 和所述第二比特串计算得到第一结果;
所述第一设备还用于根据所述公私钥对中的私钥和接收到的所述密文采用解封装算 法获得所述原始密钥, 并根据所述原始密钥中的所述部分比特确定所述第二比特串; 根据 所述第二比特串和所述第一结果计算得到第二结果, 向所述第二设备发送所述第二结果; 所述第二设备还用于在所述第一比特串与接收到的所述第二结果相同的情况下, 向所 述第一设备发送所述打开值并生成用于与所述第一设备通信的会话密钥, 其中所述第一比 特串与所述第二结果相同表示所述第二设备对所述第一设备认证成功;
所述第一设备还用于根据接收到的所述打开值和所述承诺值对所述第二设备进行认 证, 得到认证结果, 所述认证结果用于指示所述第一设备对所述第二设备认证成功, 并生 成用于与所述第二设备通信的会话密钥。
2、 如权利要求 1所述的系统, 其特征在于, 所述第二设备具体用于采用第一算法对所 述第一比特串和所述第二结果进行计算, 以得到第一结果;
所述第一设备具体用于采用所述第一算法对所述第二比特串和所述第一结果进行计 算, 以得到第二结果;
所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任意一种运算 或多种运算的组合。
3、 如权利要求 1或 2所述的系统, 其特征在于, 所述第一设备还用于在所述第一设备 生成用于与所述第二设备通信的会话密钥后, 刪除所述公私钥对; 当发起与所述第二设备 重新执行密钥协商, 或者, 当发起与第三设备执行密钥协商, 重新生成一个公私钥对。
4、 如权利要求 1-3任一项所述的系统, 其特征在于, 所述第二设备还用于在所述第二 设备生成用于与所述第一设备通信的会话密钥后, 刪除所述公钥; 当发起与所述第一设备 重新执行密钥协商, 或者, 当发起与第四设备执行密钥协商, 生成一个公私钥对。
5、 如权利要求 1-4任一项所述的系统, 其特征在于, 所述第一设备具体用于根据所述 第一设备的身份标识符、所述第二设备的身份标识符、所述公钥、所述密文、所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个参数生成用于与所述第二设备 通信的会话密钥;
所述第二设备具体用于根据所述一个或多个参数生成用于与所述第一设备通信的会 话密钥, 其中, 用于与所述第二设备通信的会话密钥与用于与所述第一设备通信的会话密 钥相同。
6、 一种密钥协商方法, 其特征在于, 包括:
第一设备采用密钥生成算法生成一个公私钥对, 向第二设备发送所述公私钥对中的公 钥;
所述第一设备接收密文和承诺值, 所述密文是根据所述公钥和原始密钥采用封装算法 获得的, 所述原始密钥是根据所述公钥采用所述封装算法选取的, 所述承诺值是根据第一 比特串和随机数采用承诺算法获得的, 所述第一比特串为随机比特串;
所述第一设备获取第一结果, 所述第一结果是根据所述第一比特串和第二比特串计算 得到的, 所述第二比特串是根据所述原始密钥中的部分比特确定的;
所述第一设备根据所述公私钥对中的私钥和所述密文采用解封装算法获得所述原始 密钥, 并根据所述原始密钥中的所述部分比特确定所述第二比特串;
所述第一设备根据所述第二比特串和所述第一结果计算得到第二结果, 向所述第二设 备发送所述第二结果;
所述第一设备接收打开值, 其中, 所述打开值是在所述第一比特串与所述第二结果相 同的情况下所述第二设备向所述第一设备发送的, 所述打开值是根据所述第一比特串和所 述随机数采用所述承诺算法获得的;
所述第一设备根据所述打开值和所述承诺值对所述第二设备进行认证, 得到认证结果, 所述认证结果用于指示所述第二设备对所述第二设备认证成功, 并生成用于与所述第二设 备通信的会话密钥。
7、 如权利要求 6所述的方法, 其特征在于, 所述第一设备根据所述第二比特串和所述 第一结果计算得到第二结果, 包括:
所述第一设备采用第一算法对所述第二比特串和所述第一结果进行计算, 以得到第二 结果;
所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任意一种运算 或多种运算的组合。
8、 如权利要求 6或 7所述的方法, 其特征在于, 在所述第一设备生成用于与所述第二 设备通信的会话密钥后, 还包括:
所述第一设备刪除所述公私钥对;
当所述第一设备发起与所述第二设备重新执行密钥协商, 或者, 当所述第一设备发起 与第三设备执行密钥协商, 所述第一设备重新生成一个公私钥对。
9、 如权利要求 6-8任一项所述的方法, 其特征在于, 所述第一设备生成用于与所述第 二设备通信的会话密钥, 包括:
所述第一设备根据所述第一设备的身份标识符、 所述第二设备的身份标识符、 所述公 钥、 所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个 参数生成用于与所述第二设备通信的会话密钥。
10、 一种密钥协商方法, 其特征在于, 包括:
第二设备接收公钥, 所述公钥为采用密钥生成算法生成的一个公私钥对中的公钥; 所述第二设备根据所述公钥采用所述封装算法选取原始密钥, 根据所述公钥和所述原 始密钥采用所述封装算法获得密文, 以及根据第一比特串和随机数采用承诺算法获得承诺 值和打开值, 向所述第一设备发送所述密文和所述承诺值,所述第一比特串为随机比特串; 所述第二设备根据所述原始密钥中的部分比特确定第二比特串, 根据所述第一比特串 和所述第二比特串计算得到第一结果;
所述第二设备接收第二结果, 所述第二结果是根据所述第二比特串和所述第一结果计 算得到的;
所述第二设备在所述第一比特串与所述第二结果相同的情况下, 向所述第一设备发送 所述打开值, 并生成用于与所述第一设备通信的会话密钥, 其中所述第一比特串与所述第 二结果相同表示所述第二设备对所述第一设备认证成功。
11、 如权利要求 10所述的方法, 其特征在于, 所述第二设备根据所述第一比特串和所 述第二比特串计算得到第一结果, 包括:
所述第二设备采用第一算法对所述第一比特串和所述第二比特串进行计算, 以得到第 一结果;
所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任意一种运算 或多种运算的组合。
12、 如权利要求 10或 11所述的方法, 其特征在于, 在所述第二设备生成用于与所述第 一设备通信的会话密钥后, 还包括:
所述第二设备刪除所述公钥;
当所述第二设备发起与所述第一设备重新执行密钥协商, 或者, 当所述第二设备发起 与第三设备执行密钥协商, 所述第二设备生成一个公私钥对。
13、 如权利要求 10-12任一项所述的方法, 其特征在于, 所述第二设备生成用于与所述 第二设备通信的会话密钥, 包括:
所述第二设备根据所述第一设备的身份标识符、 所述第二设备的身份标识符、 所述公 钥、 所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个 参数生成用于与所述第一设备通信的会话密钥。
14、 一种密钥协商装置, 其特征在于, 包括:
处理单元, 用于采用密钥生成算法生成一个公私钥对;
收发单元, 用于向第二设备发送所述公私钥对中的公钥, 接收密文和承诺值, 所述密 文是根据所述公钥和原始密钥采用封装算法获得的, 所述原始密钥是根据所述公钥采用所 述封装算法选取的, 所述承诺值是根据第一比特串和随机数采用承诺算法获得的, 所述第 一比特串为随机比特串;
所述收发单元, 还用于获取第一结果, 所述第一结果是根据所述第一比特串和第二比 特串计算得到的, 所述第二比特串是根据所述原始密钥中的部分比特确定的;
所述处理单元, 还用于根据所述公私钥对中的私钥和所述密文采用解封装算法获得所 述原始密钥, 并根据所述原始密钥中的所述部分比特确定所述第二比特串; 根据所述第二 比特串和所述第一结果计算得到第二结果;
所述收发单元, 还用于向所述第二设备发送所述第二结果; 接收打开值, 其中, 所述 打开值是在所述第一比特串与所述第二结果相同的情况下所述第二设备向所述第一设备 发送的, 所述打开值是根据所述第一比特串和所述随机数采用所述承诺算法获得的; 所述处理单元, 还用于根据所述打开值和所述承诺值对所述第二设备进行认证, 得到 认证结果, 所述认证结果用于指示所述第二设备对所述第二设备认证成功, 并生成用于与 所述第二设备通信的会话密钥。
15、 如权利要求 14所述的方法, 其特征在于, 所述处理单元具体用于: 采用第一算法对所述第二比特串和所述第一结果进行计算, 以得到第二结果; 所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任意一种运算 或多种运算的组合。
16、 如权利要求 14或 15所述的装置, 其特征在于, 所述处理单元, 还用于: 在生成用于与所述第二设备通信的会话密钥后, 刪除所述公私钥对; 当发起与所述第 二设备重新执行密钥协商, 或者, 当发起与第三设备执行密钥协商, 重新生成一个公私钥 对。
17、 如权利要求 14- 16任一项所述的装置, 其特征在于, 所述处理单元, 具体用于: 根据所述第一设备的身份标识符、所述第二设备的身份标识符、所述公钥、所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个参数生成用于与 所述第二设备通信的会话密钥。
18、 一种密钥协商装置, 其特征在于, 包括:
收发单元, 用于接收公钥, 所述公钥为采用密钥生成算法生成的一个公私钥对中的公 钥;
处理单元, 用于根据所述公钥采用所述封装算法选取原始密钥, 根据所述公钥和所述 原始密钥采用所述封装算法获得密文, 以及根据第一比特串和随机数采用承诺算法获得承 诺值和打开值; 所述收发单元, 还用于向所述第一设备发送所述密文和所述承诺值, 所述 第一比特串为随机比特串;
所述处理单元, 还用于根据所述原始密钥中的部分比特确定第二比特串, 根据所述第 一比特串和所述第二比特串计算得到第一结果;
所述收发单元, 还用于: 接收第二结果, 所述第二结果是根据所述第二比特串和所述 第一结果计算得到的;
所述处理单元, 还用于: 在所述第一比特串与所述第二结果相同的情况下, 生成用于 与所述第一设备通信的会话密钥, 其中所述第一比特串与所述第二结果相同表示所述第二 设备对所述第一设备认证成功; 所述收发单元, 还用于向所述第一设备发送所述打开值。
19、 如权利要求 18所述的装置, 其特征在于, 所述处理单元, 具体用于:
采用第一算法对所述第一比特串和所述第二比特串进行计算, 以得到第一结果; 所述第一算法为异或运算、 模加法运算、 模减法运算、 模乘法运算中的任意一种运算 或多种运算的组合。
20、 如权利要求 18或 19所述的装置, 其特征在于, 所述处理单元, 还用于: 在生成用于与所述第一设备通信的会话密钥后, 刪除所述公钥; 当发起与所述第一设 备重新执行密钥协商, 或者, 当发起与第三设备执行密钥协商, 生成一个公私钥对。
21、 如权利要求 18-20任一项所述的装置, 其特征在于, 所述处理单元, 具体用于: 根据所述第一设备的身份标识符、所述第二设备的身份标识符、所述公钥、所述密文、 所述承诺值、 所述打开值、 所述原始密钥、 所述第二结果中的一个或多个参数生成用于与 所述第一设备通信的会话密钥。
PCT/SG2018/050266 2018-05-30 2018-05-30 一种密钥协商系统、方法及装置 WO2019231392A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP18920998.4A EP3793129A4 (en) 2018-05-30 2018-05-30 KEY EXCHANGE SYSTEM, METHOD AND APPARATUS
PCT/SG2018/050266 WO2019231392A1 (zh) 2018-05-30 2018-05-30 一种密钥协商系统、方法及装置
US17/107,218 US11483142B2 (en) 2018-05-30 2020-11-30 Key agreement system, method, and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2018/050266 WO2019231392A1 (zh) 2018-05-30 2018-05-30 一种密钥协商系统、方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/107,218 Continuation US11483142B2 (en) 2018-05-30 2020-11-30 Key agreement system, method, and apparatus

Publications (1)

Publication Number Publication Date
WO2019231392A1 true WO2019231392A1 (zh) 2019-12-05

Family

ID=68698981

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2018/050266 WO2019231392A1 (zh) 2018-05-30 2018-05-30 一种密钥协商系统、方法及装置

Country Status (3)

Country Link
US (1) US11483142B2 (zh)
EP (1) EP3793129A4 (zh)
WO (1) WO2019231392A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230143175A1 (en) * 2021-10-29 2023-05-11 Seagate Technology Llc Device specific multiparty computation

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630812B2 (en) * 2014-02-05 2020-04-21 Arc Bio, Llc Methods and systems for biological sequence compression transfer and encryption
US11770265B2 (en) * 2020-04-30 2023-09-26 Deere & Company Mobile machine with improved machine data authentication
CN111884798B (zh) * 2020-07-22 2023-04-07 全球能源互联网研究院有限公司 一种电力业务量子加密系统
US11153080B1 (en) * 2020-07-29 2021-10-19 John A. Nix Network securing device data using two post-quantum cryptography key encapsulation mechanisms
US11444753B1 (en) * 2021-03-09 2022-09-13 ISARA Corporation Protocol key negotiation
CN113315628B (zh) * 2021-04-09 2022-12-16 中国科学院信息工程研究所 密钥封装方法、装置、设备及存储介质
WO2022260672A1 (en) * 2021-06-10 2022-12-15 Pqsecure Technologies, Llc A low footprint resource sharing hardware architecture for crystals-dilithium and crystals-kyber
WO2023003582A1 (en) * 2021-07-21 2023-01-26 Visa International Service Association Authentication using group signatures of user devices
CN113839786B (zh) * 2021-10-29 2023-06-09 郑州信大捷安信息技术股份有限公司 一种基于sm9密钥算法的密钥分发方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100017602A1 (en) * 2008-06-26 2010-01-21 Microsoft Corporation Ad-Hoc Trust Establishment Using Visual Verification
CN104980928A (zh) * 2014-04-03 2015-10-14 华为终端有限公司 一种用于建立安全连接的方法、设备及系统
CN106603485A (zh) * 2016-10-31 2017-04-26 美的智慧家居科技有限公司 密钥协商方法及装置
CN107948189A (zh) * 2017-12-19 2018-04-20 数安时代科技股份有限公司 非对称密码身份鉴别方法、装置、计算机设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7649999B2 (en) * 2005-06-08 2010-01-19 Iris Anshel Method and apparatus for establishing a key agreement protocol
US8639931B2 (en) * 2008-12-16 2014-01-28 Certicom Corp. Acceleration of key agreement protocols
WO2013152725A1 (en) 2012-04-12 2013-10-17 Jintai Ding New cryptographic systems using pairing with errors
US9143331B2 (en) * 2013-02-07 2015-09-22 Qualcomm Incorporated Methods and devices for authentication and key exchange
US20150294123A1 (en) * 2014-04-11 2015-10-15 Krimmeni Technologies, Inc. System and method for sharing data securely

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100017602A1 (en) * 2008-06-26 2010-01-21 Microsoft Corporation Ad-Hoc Trust Establishment Using Visual Verification
CN104980928A (zh) * 2014-04-03 2015-10-14 华为终端有限公司 一种用于建立安全连接的方法、设备及系统
CN106603485A (zh) * 2016-10-31 2017-04-26 美的智慧家居科技有限公司 密钥协商方法及装置
CN107948189A (zh) * 2017-12-19 2018-04-20 数安时代科技股份有限公司 非对称密码身份鉴别方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3793129A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230143175A1 (en) * 2021-10-29 2023-05-11 Seagate Technology Llc Device specific multiparty computation

Also Published As

Publication number Publication date
EP3793129A4 (en) 2021-11-17
EP3793129A1 (en) 2021-03-17
US11483142B2 (en) 2022-10-25
US20210083862A1 (en) 2021-03-18

Similar Documents

Publication Publication Date Title
US11483142B2 (en) Key agreement system, method, and apparatus
US11050557B2 (en) Key agreement devices and method
US20230163966A1 (en) Configurable cryptographic device
US10623187B2 (en) Generating cryptographic checksums
EP3850784B1 (en) Public/private key system with decreased public key size
JP6975361B2 (ja) 鍵カプセル化プロトコル
CN112187461A (zh) 一种基于加密算法的武器装备数据混合加密方法
Niederhagen et al. Practical post-quantum cryptography
Dubrova et al. CRC-based message authentication for 5G mobile technology
EP3547603A1 (en) Configurable device for lattice-based cryptography
Cohen et al. AES as error correction: cryptosystems for reliable communication
US20230216838A1 (en) System and methods for puf-based authentication
Han et al. Joint encryption and channel coding scheme based on balancing indices and polar codes
RU2787692C2 (ru) Протоколы инкапсуляции ключей
RU2787692C9 (ru) Протоколы инкапсуляции ключей
CN117478321A (zh) 基于极化码的密钥封装机制
EP3609117A1 (en) Key encapsulation protocols
Zhang et al. A secure and reliable coding scheme over wireless links in cyber-physical systems
CN116996291A (zh) 面向核电实保通信的数据传输方法、设备及介质
KR20210074210A (ko) 가비둘린 부호를 이용한 부호기반 암호 생성 방법
CN116634421A (zh) 高安全性手机通信方法
CN115280813A (zh) 交互认证方法、装置及系统、计算机设备及可读存储介质
CN117082506A (zh) 一种高安全性的电力物联网无线通信方法
Yang et al. One-way information reconciliation schemes of quantum key distribution

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18920998

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018920998

Country of ref document: EP

Effective date: 20201210