CN116684068A - 一种高效的抗量子密钥交换方法和系统 - Google Patents

一种高效的抗量子密钥交换方法和系统 Download PDF

Info

Publication number
CN116684068A
CN116684068A CN202310631074.4A CN202310631074A CN116684068A CN 116684068 A CN116684068 A CN 116684068A CN 202310631074 A CN202310631074 A CN 202310631074A CN 116684068 A CN116684068 A CN 116684068A
Authority
CN
China
Prior art keywords
key
party
public
decryption
public key
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.)
Pending
Application number
CN202310631074.4A
Other languages
English (en)
Inventor
陈隆
张振峰
庄子迪
韩将
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Publication of CN116684068A publication Critical patent/CN116684068A/zh
Pending legal-status Critical Current

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/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • H04L9/0855Quantum cryptography involving additional nodes, e.g. quantum relays, repeaters, intermediate nodes or remote nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种高效的抗量子密钥交换方法和系统。本方法为:1)对于参与双方Pi、Pj,参与方Pi生成自己的公私钥对并将公钥bi发送给对方Pj;参与方Pj生成自己的公私钥对并将公钥bj发送给对方Pi;2)共享密钥加密数据阶段:对于参与双方中的任一参与方Pi,根据自己的私钥和公钥bj,调用第一密钥导出函数生成数据加密密钥Ki和纠错码;然后使用Ki加密待传输业务报文m并将其与纠错码发送给另一参与方Pj;3)共享密钥解密数据阶段:对于参与双方中的任一参与方Pj,根据收到的纠错码、公钥bi和自己的私钥sj,调用第二密钥导出函数生成解密密钥Ki'解密得到报文m。

Description

一种高效的抗量子密钥交换方法和系统
技术领域
本发明属于密码领域,公开了一种基于RLWE的高效的抗量子密钥交换方法和系统,该方案通过将“依赖于对方的密钥交换信息”后移至数据加解密阶段进行处理,实现了密钥交换阶段的“非交互性”。
背景技术
基于公钥密码学的密钥交换技术是保证信息安全不可或缺的工具。密钥交换方案的思想是,参与密钥交换的双方各自生成私有元素和公开元素,并将公开元素发给对方;收到对方发送的公开元素后,将其与自己的私有元素结合计算,便能使双方计算出一致的共享密钥。并且经典的密钥交换算法DH,双方用于密钥交换的消息不具有先后顺序,任意一方不需要等待收到对方的消息,即可发送自己的消息,我们称这种性质为“非交互性”;非交互性在离线的端到端加密中具有重要的应用场景,如Signal协议中的X3DH协议。
随着对量子计算机的研究,量子算法(运行在量子计算机上的算法)逐渐被大家所认识。与经典算法不同,量子算法有着更强大的计算能力,一些在经典模型下非常困难的问题,在量子计算理论面前变得简单,后量子密码学应运而生。作为经典密码学中被广泛使用密钥交换算法DH,其基于的离散对数困难性假设在量子设定下不再成立,因此也亟需确定其后量子的替代算法。其中,基于格的密码学是目前最具前景的候选之一。而在基于格的后量子密码方案中,基于环上容错学习问题(RLWE)以及分块的环上容错学习问题(ModuleRLWE,或M-LWE)的方案,因其相对更小的密钥尺寸以及允许使用NTT变换加速计算的代数结构,成为备受关注的技术路线。
在NIST的算法征集中,Kyber(入选最终标准)和NewHope(在第二轮评估中被淘汰)分别包含基于M-LWE和RLWE问题的困难性假设而构造的密钥封装方案(KEM)。但通过KEM实现密钥交换,要求双方发送消息是有顺序的,即一方必须等待收到另一方发送的消息后才能发送自己的消息,不具有“非交互性”,从而无法满足一些离线场景的应用。本发明通过将依赖于对方的密钥交换信息,后移至使用导出共享密钥进行数据对称加解密的阶段进行处理,从而实现了密钥交换阶段的“非交互性”。
发明内容
本发明的目的在于构造一个高效的抗量子密钥交换方案,它的特征在于基于RLWE问题困难性,并且通过将“依赖于对方的密钥交换信息”后移至数据加解密阶段进行处理,实现了密钥交换阶段的“非交互性”。
符号定义。本发明基于格密码的RLWE问题,密钥、加密、解密等计算均定义在多项式环Rq=Zq[X]/<Xn+1>上,其中Zq[X]为系数大于小于/>的整系数多项式构成的环,Rq为Zq[X]中的多项式再模多项式Xn+1所构成的环。
本发明定义Rq中的维数n=512,模数q=257。
本发明采用的技术方案如下:
一种高效的抗量子密钥交换方法,其步骤包括:
1)对于参与双方Pi、Pj,参与方Pi生成自己的公私钥对si、bi并将自己的公钥bi发送给对方Pj;参与方Pj生成自己的公私钥对sj、bj并将自己的公钥bj发送给对方Pi
2)共享密钥加密数据阶段:对于参与双方中的任一参与方Pi,根据自己的私钥si和收到的公钥bj,调用第一密钥导出函数Combine(·),生成自己的数据加密密钥Ki和纠错码σi,即(Kii)=Combine(bj,si);然后使用Ki加密待传输业务报文m得到发送给另一参与方Pj
3)共享密钥解密数据阶段:对于参与双方中的任一参与方Pj,根据收到的纠错码σi、公钥bi和自己的私钥sj,调用第二密钥导出函数Combine’(·),生成解密密钥K’i=Combine’(bi,sji),然后使用K’i解密
进一步的,参与方Pi调用第一密钥导出函数Combine(·)生成自己的数据加密密钥Ki和纠错码σi的方法为:计算vi=bj·si;从短向量分布χ’中采样生成e’,并计算v’i=vi+e’;计算纠错码σi=HelpRec(v’i),导出Ki=Rec(v’ii),HelpRec(·)为纠错码生成函数。
进一步的,参与方Pj调用第二密钥导出函数Combine’(·),生成解密密钥K’i的方法为:首先计算vj=bi·sj,然后生成解密密钥K’i=Rec(vji),Rec(·)为纠错函数;对于密钥交换过程中所选短向量分布χ的误差e*,当v*=v+e*时,对于纠错码生成函数计算出的纠错码σ=HelpRec(v),Rec(v*,σ)≠Rec(v,σ)的概率是小于设定的失败率阈值。
进一步的,共享密钥加密数据阶段、共享密钥解密数据阶段的计算为多项式环Rq=Zq[X]/<Xn+1>上的运算,其中Zq[X]为系数大于小于/>的整系数多项式构成的环,所述多项式环Rq中模多项式次数n=512、模数q=257。
进一步的,对于参与双方Pi、Pj,每一参与方从中心二项分布ψ1中,采样生成私钥s与误差e;然后对s与e执行NTT变换,得到与/>然后计算公钥 为按分量乘法;然后将/>序列化得到私钥sk,将/>序列化得到公钥pk;其中/>为公共参数。
进一步的,参与方Pi生成数据加密密钥Ki的方法为:
210)输入公钥pkj和自己的私钥ski,或输入已经计算并存储的vi0;vi0为参与方Pj公钥和参与方Pi私钥的乘积;
220)当输入vi0不为空值时,直接跳转至步骤250);否则,按顺序执行步骤230);
230)将输入的pkj和ski分别解序列化得到和/>
240)计算
250)从中心二项分布ψη中采样生成e’,并计算vi1=vi0+e’;
260)计算纠错码σi=HelpRec(vi1);
270)导出共享密钥Ki=Rec(vi1i)。
进一步的,参与方Pj生成解密密钥K’i的方法为:
310)输入对方的公钥pki和自己的私钥skj,或输入已经计算并存储的vj0;输入对方同密文一并发来的σi;vj0为参与方Pi公钥和参与方Pj私钥的乘积;
320)当输入vj0不为空值时,直接跳转至步骤350);否则,按顺序执行步骤330);
330)将输入的pki和skj分别解序列化得到和/>
340)计算
350)导出共享密钥K’i=Rec(vj0i)。
一种高效的抗量子密钥交换系统,其特征在于,包括密钥交换模块、数据加密模块和数据解密模块;
所述密钥交换模块,用于参与双方Pi生成自己的公私钥对并将自己的公钥发送给对方;其中,对于参与双方Pi、Pj,参与方Pi生成自己的公私钥对si、bi并将自己的公钥bi发送给对方Pj;参与方Pj生成自己的公私钥对sj、bj并将自己的公钥bj发送给对方Pi
所述数据加密模块,用于对于参与双方中的任一参与方Pi,根据自己的私钥si和收到的公钥bj,调用第一密钥导出函数Combine(·),生成自己的数据加密密钥Ki和纠错码σi,即(Kii)=Combine(bj,si);然后使用Ki加密待传输业务报文m得到发送给另一参与方Pj
所述数据解密模块,用于对于参与双方中的任一参与方Pj,根据收到的纠错码σi、公钥bi和自己的私钥sj,调用第二密钥导出函数Combine’(·),生成解密密钥K’i=Combine’(bi,sji),然后使用K’i解密
一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明分为三个阶段:
密钥交换初始化阶段,使用共享密钥加密数据阶段,使用共享密钥解密数据阶段。
其中,密钥交换初始化阶段的步骤如下:
假设参与双方为P1和P2,并有公共参数a∈Rq,参与方Pi(i=1或2)各自执行以下操作,
(1)从短向量分布χ中采样生成私钥si,从短向量分布χ’中,采样生成误差ei
(2)计算bi=a·si+ei,其中乘法与加法均为在环上的多项式乘法与加法,下文同;
(3)将bi发送给另一方Pj
应当注意,上述阶段对于参与方中的任意一方是相同的,并且计算过程不依赖任何另一方的隐私数据,因此具有“非交互性”。
接着,使用共享密钥加密数据阶段,该阶段调用第一密钥导出函数Combine(·),其步骤如下(对于参与方Pi):
此时参与方Pi拥有自己的si和另一方的bj,从而Pi能够执行以下操作,
(1)使用第一密钥导出函数,生成(Kii)=Combine(bj,si);
(2)使用Ki加密待传输业务报文m,得到
(3)将发送给Pj
其中,第一密钥导出函数Combine(bj,si)是两输入、两输出的函数,会调用纠错码生成函数HelpRec(·)以及纠错函数Rec(·),执行如下步骤:
(1)计算vi=bj·si
(2)从短向量分布χ’中采样生成e’,并计算v’i=vi+e’;
(3)计算纠错码σi=HelpRec(v’i);
(4)导出Ki=Rec(v’ii)作为加密数据的对称密钥;
(5)输出密钥、纠错码对(Kii)。
最后,使用共享密钥解密数据阶段,该阶段调用第二密钥导出函数Combine’(·),其步骤如下(对参与方Pj):
此时参与方Pj拥有另一方的σi,并且:或者拥有自己的sj和另一方的bi。从而Pj能够执行以下操作,
(1)使用第二密钥导出函数,生成K’i=Combine’(bi,sji);
(2)使用K’i解密
其中,第二密钥导出函数Combine’(bi,sji)是三输入、一输出的函数,会调用纠错函数Rec(·),执行如下步骤:
(1)计算vj=bi·sj
(2)输出密钥K’i=Rec(vji)。
注意,第一密钥导出函数和第二密钥导出函数,均存在缓存vi或vj(即多加一个输出项),并且允许vi或vj代替输入(b,s)对的变体(即当输入vi或vj而非(b,s)时,执行Combine(bj,si)或Combine’(bi,sji)时直接跳过步骤(1))。
上述流程中,纠错码生成函数HelpRec(·)以及纠错函数Rec(·)在此不做指定,可采用公知的实现,实现的目标功能为:且对于所选短向量分布χ在密钥交换过程中引入的误差e*,对于环Rq中任意元素v以及纠错码生成函数计算出的σ=HelpRec(v),纠错函数的输出结果Rec(v+e*,σ)≠Rec(v,σ)的概率是小于所设定失败率阈值的。
应当注意,两个参与方P1和P2的地位是平等的,数据加密过程与数据解密过程没有谁先谁后的顺序,即任意一方都可以在未收到对方消息时,就执行数据加密发送。即双方各自的数据加密可以“并发执行”,而无需等待对方的消息到达后再进行计算。
并且注意,本方法共享的密钥有两个,参与方P1和P2各自的数据加密密钥K1和K2,且二者均有一定概率出现共享错误,即K’i≠Ki(i=1或2),从而出现对称加密数据解密失败的情况。但只要辅以适当的约定,这种情形并不影响满足安全性要求和功能需求。具体而言:
1)密钥交换中的公私钥(si,bi)只作为一次性密钥元素使用,完成第二阶段后即刻销毁(si,bi),只保留计算出的vi
2)可在具体握手协议中约定第一条加密报文m为定值,从而确认共享密钥的一致性;
3)假如共享密钥Ki的一致性确认失败,则抛弃失败的共享密钥Ki,重新回到第一阶段。
由于上述方案中的公私钥对只是一次性的,用完即弃,因此CPA安全性即可满足要求;并且经过一致性确认,即便解密错误即共享失败的概率相比于CCA的KEM较大,但仍可充分满足功能性需求。
本发明的运算模块包括:
取模运算模块。用于提供环上乘法运算中模q的运算功能。可以采用Montgomery算法等通用性算法实现,也可采用针对模数q=257实现定制化的取模运算。
多项式乘法加速运算模块。为环上的多项式乘法提供高性能运算功能,包括NTT变换与逆变换,Karatsuba加速的多项式卷积乘法。对于环上的两个多项式相乘,采用先分别做NTT变换,再按分量做Karatsuba乘法(记为),对所得乘积结果的向量做NTT逆变换,即可高效地得到这两个多项式在环上的乘积。
伪随机数生成器模块。实现伪随机数生成功能,用于提供密码运算中的随机参数或密钥。
序列化与解序列化模块。用于实现密码运算元素与计算机存储数据之间的转换。
对称运算模块。使用对称密码算法,利用导出的共享密钥对数据进行加解密。
密钥交换初始化模块。用于生成用于密钥共享的公私钥元素(si,bi),期间会调用伪随机数生成器模块用于生成随机参数以及进行短向量分布的采样,并且会调用取模运算以及多项式乘法加速运算模块进行公私钥元素生成计算,最后会调用序列化模块对生成的密钥对进行序列化。
共享密钥导出模块。提供两种功能:1)输入对方的公钥元素bj和自己的私钥元素si,输出其乘积vi,共享密钥Ki和纠错码σi;2)输入自己的vi和对方的纠错码σj,输出共享密钥K’j。期间会调用解序列化模块对公钥解序列化,并且会调用取模运算以及多项式乘法加速运算模块进行相关的运算。
应当注意,本系统共享的密钥有两个,参与方P1和P2各自的数据加密密钥K1和K2,并且二者均有一定概率出现共享错误,即K’i≠Ki(i=1或2),从而出现对称加密数据解密失败的情况。但只要辅以适当的约定,这种情形并不影响满足安全性要求和功能需求。同前文所述,不再赘述。
附图说明
图1是本发明实施例提供的密钥交换初始化模块的流程图。
图2是本发明实施例提供的加密时密钥导出模块的流程图。
图3是本发明实施例提供的解密时密钥导出模块的流程图。
图4是本发明方法中第一第二密钥导出算法的核心逻辑伪代码图。
图5是本发明实施例提供的密钥交换+数据加解密方法的交互流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。
图1、图2、图3是本发明实施例提供的密钥交换初始化模块,以及加、解密时密钥导出模块的流程图。
所述实施例中,私钥和误差采样的短向量分布,均使用参数k=1的中心二项分布ψ1=b-b’,其中b与b’为{0,1}中的均匀采样值,即χ=χ’=ψ1
所述实施例对环上的多项式乘法,采用NTT与Karatsuba乘法相结合的方式进行加速。具体而言,对于模数q=257,已知系数域Zq包含模q的256次本原单位根即满足ζ256≡1(mod q)且/>ζd≠1(mod q),满足该条件的不同取值的本原单位根共计有/>个,并且对任意选定的其中一个ζ,全部256次本原单位根可表示为{ζ,ζ35,…,ζ255},其中ζ的指数与256互素,即取遍所有小于256的正奇数。
所述实施例取ζ为模q的第一个256次本原单位根ζ=3,则环Rq所模多项式X512+1在Zq[X]中可因式分解为:
其中br7(i),i=0,…,127表示7bit正整数i的比特逆序。抽象代数中的中国剩余定理表明,对f=f0+f1X+…+f511X511∈Rq,可通过NTT变换同构于模各因子多项式的子环上多项式组成的向量,且变换结果的乘法为其按分量乘法,加法为其按分量加法:
其中,
记Rq中的元素经上述变换得到的所有多项式向量组成的环为为多项式环Rq经过NTT变换的结果环;对任意/>定义按分量乘法/> 其中每个分量figi分别为在对应子环上的多项式乘法,采用Karatsuba乘法进行加速运算。在下文中,将上述/>的同构变换记为/>并记其逆变换为/>并且对于任意f,g∈Rq,等式/>两边计算Rq中f,g乘积的结果是一致的。
图1是本发明实施例提供的密钥生成模块。
所述实施例中,为了避免多项式乘法运算时重复计算NTT变换,密钥以NTT变换后的形式进行存储与发布。
所述实施例中,密钥交换初始化模块步骤为:
110)从中心二项分布ψ1中,采样生成私钥s与误差e,并对s与e执行NTT变换,得到与/>
120)计算公钥其中/>为密钥交换的公共参数(算法开始前指定);
130)将私钥序列化并记为公钥序列化并记为/>
140)输出(pk,sk)。
图2是本发明实施例提供的加密时密钥导出模块。
所述实施例中,以参与方Pi为例,描述步骤如下:
210)输入对方的公钥pkj和自己的私钥ski,或输入已经计算并存储的对方的公钥和自己的私钥的乘积vi0
220)当输入vi0不为空值时,直接跳转至步骤250);否则,按顺序执行下一步,以pkj和ski作为输入计算;
230)将输入的pkj和ski分别解序列化得到和/>
240)计算
250)从中心二项分布ψη中采样生成e’,并计算vi1=vi0+e’;
260)计算纠错码σi=HelpRec(vi1);
270)导出共享密钥Ki=Rec(vi1i);
280)序列化并输出(vi0i,Ki),其中vi0和Ki本地留存,Ki用作对称密钥,作为参与方Pi的加密密钥,加密发送给参与方Pj的数据;σi在第一次使用Ki加密数据发送给Pj时,与密文一并发送。至于vi0,若Pi的解密密钥已经导出(解密来自Pj的消息所用),即可删去不再保留。其中步骤230-270,即为对(Kii)←Combine(bj,si)的展开。
图3是本发明实施例提供的解密时密钥导出模块。
所述实施例中,以参与方Pj为例,描述步骤如下:
310)输入对方的公钥pki和自己的私钥skj,或输入已经计算并存储的vj0,同时输入对方同密文一并发来的σi
320)当输入vj0不为空值时,直接跳转至步骤350);否则,按顺序执行下一步,以pki和skj作为输入计算vj0
330)将输入的pki和skj分别解序列化得到和/>
340)计算
350)导出共享密钥K’i=Rec(vj0i);
360)序列化并输出(vj0,K’i),二者均本地留存,其中K’i用作对称密钥,作为参与方Pj的解密密钥,解密来自参与方Pi的数据;至于vj0,若Pj的加密密钥已经导出(向Pi发送消息所用),即可删去不再保留。其中步骤330-350,即为对K’i←Combine’(bi,sji)的展开。
为便于解释说明仅以参与方Pi的加密阶段和参与方Pj的解密阶段为例,反方向即Pj的加密阶段与Pi的解密阶段和上述过程类似,只是步骤中的相应下标i,j做了对称的替换,不再赘述。
图4是本发明方法中第一第二密钥导出算法的核心逻辑伪代码图。用于直观替代图5中的步骤流程,其步骤在前文方法部分已经叙述过,因此不做赘述。
图5是本发明实施例提供的密钥交换+数据加解密方法的交互流程图。
图5完整展示了本发明的应用流程。可以看到,两个参与方P1和P2的地位是平等的,数据加密过程与数据解密过程没有谁先谁后的顺序,即任意一方都可以在未收到对方消息时,就执行数据加密发送。即双方各自的数据加密可以并发执行,而无需等待对方的消息到达后再进行计算。
本发明通过适当的调整,可以应用在使用临时生成的密钥对在离线场景下实现密钥共享的场景或协议步骤中,例如,Signal协议等。
本发明的另一实施例提供一种高效的抗量子密钥交换方法,其包括密钥交换初始化阶段,使用共享密钥加密数据阶段,使用共享密钥解密数据阶段。其中各阶段的具体实施过程参见前文对本发明方法的描述。
本发明的另一实施例提供一种计算机设备(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
本发明的另一实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
以上公开的本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例所公开的内容,本发明的保护范围以权利要求书界定的范围为准。

Claims (10)

1.一种高效的抗量子密钥交换方法,其步骤包括:
1)对于参与双方Pi、Pj,参与方Pi生成自己的公私钥对si、bi并将自己的公钥bi发送给对方Pj;参与方Pj生成自己的公私钥对sj、bj并将自己的公钥bj发送给对方Pi
2)共享密钥加密数据阶段:对于参与双方中的任一参与方Pi,根据自己的私钥si和收到的公钥bj,调用第一密钥导出函数Combine(·),生成自己的数据加密密钥Ki和纠错码σi,即(Kii)=Combine(bj,si);然后使用Ki加密待传输业务报文m得到发送给另一参与方Pj
3)共享密钥解密数据阶段:对于参与双方中的任一参与方Pj,根据收到的纠错码σi、公钥bi和自己的私钥sj,调用第二密钥导出函数Combine'(·),生成解密密钥K′i=Combine'(bi,sji),然后使用Ki′解密
2.根据权利要求1所述的方法,其特征在于,参与方Pi调用第一密钥导出函数Combine(·)生成自己的数据加密密钥Ki和纠错码σi的方法为:计算vi=bj·si;从短向量分布χ'中采样生成e',并计算v′i=vi+e′;计算纠错码σi=HelpRec(v′i),导出Ki=Rec(v′ii),HelpRec(·)为纠错码生成函数。
3.根据权利要求2所述的方法,其特征在于,参与方Pj调用第二密钥导出函数Combine'(·),生成解密密钥Ki'的方法为:首先计算vj=bi·sj,然后生成解密密钥Ki'=Rec(vji),Rec(·)为纠错函数;对于密钥交换过程中所选短向量分布χ的误差e*,当v*=v+e*时,对于纠错码生成函数计算出的纠错码σ=HelpRec(v),Rec(v*,σ)≠Rec(v,σ)的概率是小于设定的失败率阈值。
4.根据权利要求2所述的方法,其特征在于,共享密钥加密数据阶段、共享密钥解密数据阶段的计算为多项式环Rq=Zq[X]/<Xn+1>上的运算,其中Zq[X]为系数大于小于/>的整系数多项式构成的环,所述多项式环Rq中模多项式次数n=512、模数q=257。
5.根据权利要求1所述的方法,其特征在于,对于参与双方Pi、Pj,每一参与方从中心二项分布ψ1中,采样生成私钥s与误差e;然后对s与e执行NTT变换,得到然后计算公钥/> 为按分量乘法;然后将/>序列化得到私钥sk,将/>序列化得到公钥pk;其中/>为公共参数。
6.根据权利要求5所述的方法,其特征在于,参与方Pi生成数据加密密钥Ki的方法为:
210)输入公钥pkj和自己的私钥ski,或输入已经计算并存储的vi0;vi0为参与方Pj公钥和参与方Pi私钥的乘积;
220)当输入vi0不为空值时,直接跳转至步骤250);否则,按顺序执行步骤230);
230)将输入的pkj和ski分别解序列化得到和/>
240)计算
250)从中心二项分布ψη中采样生成e',并计算vi1=vi0+e';
260)计算纠错码σi=HelpRec(vi1);
270)导出共享密钥Ki=Rec(vi1i)。
7.根据权利要求6所述的方法,其特征在于,参与方Pj生成解密密钥Ki'的方法为:
310)输入对方的公钥pki和自己的私钥skj,或输入已经计算并存储的vj0;输入对方同密文一并发来的σi;vj0为参与方Pi公钥和参与方Pj私钥的乘积;
320)当输入vj0不为空值时,直接跳转至步骤350);否则,按顺序执行步骤330);
330)将输入的pki和skj分别解序列化得到和/>
340)计算
350)导出共享密钥K′i=Rec(vj0i)。
8.一种高效的抗量子密钥交换系统,其特征在于,包括密钥交换模块、数据加密模块和数据解密模块;
所述密钥交换模块,用于参与双方Pi生成自己的公私钥对并将自己的公钥发送给对方;其中,对于参与双方Pi、Pj,参与方Pi生成自己的公私钥对si、bi并将自己的公钥bi发送给对方Pj;参与方Pj生成自己的公私钥对sj、bj并将自己的公钥bj发送给对方Pi
所述数据加密模块,用于对于参与双方中的任一参与方Pi,根据自己的私钥si和收到的公钥bj,调用第一密钥导出函数Combine(·),生成自己的数据加密密钥Ki和纠错码σi,即(Kii)=Combine(bj,si);然后使用Ki加密待传输业务报文m得到发送给另一参与方Pj
所述数据解密模块,用于对于参与双方中的任一参与方Pj,根据收到的纠错码σi、公钥bi和自己的私钥sj,调用第二密钥导出函数Combine'(·),生成解密密钥K′i=Combine'(bi,sji),然后使用Ki′解密
9.一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1至7任一所述方法中各步骤的指令。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法的步骤。
CN202310631074.4A 2023-05-09 2023-05-31 一种高效的抗量子密钥交换方法和系统 Pending CN116684068A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310518532 2023-05-09
CN2023105185323 2023-05-09

Publications (1)

Publication Number Publication Date
CN116684068A true CN116684068A (zh) 2023-09-01

Family

ID=87784778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310631074.4A Pending CN116684068A (zh) 2023-05-09 2023-05-31 一种高效的抗量子密钥交换方法和系统

Country Status (1)

Country Link
CN (1) CN116684068A (zh)

Similar Documents

Publication Publication Date Title
US8520854B2 (en) Sharing a secret using polynomials over polynomials
JP4662577B2 (ja) 楕円曲線上での暗号操作の速度を高める方法
US9264406B2 (en) Public key cryptography with reduced computational load
US7773747B2 (en) Encryption apparatus, decryption apparatus, and method
CN112800478B (zh) 保护隐私数据的共有数据确定方法、装置和系统
US20030081769A1 (en) Non-algebraic method of encryption and decryption
JPS5950068B2 (ja) 公開キ−式の暗号装置
JP2012014203A (ja) デジタル署名と公開鍵の促進された検証
JP4453996B2 (ja) 通信方法、通信システム、及び、コンピュータ読み取り可能な記録媒体
Akavia et al. Linear-regression on packed encrypted data in the two-server model
CN114866225A (zh) 一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法
US20230361986A1 (en) Simd interactive comparison using garbled circuits and interactive bootstrapping for homomorphic encryption
Azarderakhsh et al. How not to create an isogeny-based PAKE
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
Bavdekar et al. Post quantum cryptography: Techniques, challenges, standardization, and directions for future research
JP4875686B2 (ja) 楕円曲線上の有限体演算の加速方法
CN116684070A (zh) 一种可用于tls协议的抗量子密钥封装方法与系统
CN116684069A (zh) 一种ind-cpa安全的抗量子密钥封装方法和系统
US20040105546A1 (en) Geometry-Based Symmetric Cryptosystem Method
US20060104447A1 (en) Discrete logarithm-based cryptography using the Shafarevich-Tate group
CN116684068A (zh) 一种高效的抗量子密钥交换方法和系统
CN112019335B (zh) 一种基于sm2算法的多方协同加解密方法及装置、系统、介质
Patel et al. A novel verifiable multi-secret sharing scheme based on elliptic curve cryptography
JPH10340048A (ja) ハッシュ値生成方法、データ暗号化方法、データ復号化方法、ハッシュ値生成装置、データ暗号化装置およびデータ復号化装置

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