CN109525385B - 一种共享密钥的封装方法、第一节点和第二节点 - Google Patents

一种共享密钥的封装方法、第一节点和第二节点 Download PDF

Info

Publication number
CN109525385B
CN109525385B CN201811408557.3A CN201811408557A CN109525385B CN 109525385 B CN109525385 B CN 109525385B CN 201811408557 A CN201811408557 A CN 201811408557A CN 109525385 B CN109525385 B CN 109525385B
Authority
CN
China
Prior art keywords
node
function
characterizing
determining
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.)
Active
Application number
CN201811408557.3A
Other languages
English (en)
Other versions
CN109525385A (zh
Inventor
路成业
王凌
王童
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Iallchain Co Ltd
Original Assignee
Iallchain Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Iallchain Co Ltd filed Critical Iallchain Co Ltd
Priority to CN201811408557.3A priority Critical patent/CN109525385B/zh
Publication of CN109525385A publication Critical patent/CN109525385A/zh
Application granted granted Critical
Publication of CN109525385B publication Critical patent/CN109525385B/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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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

Abstract

本发明提供了一种共享密钥的封装方法、第一节点和第二节点,应用于第一节点的方法,包括:针对外部的至少一个第二节点中的每一个所述第二节点,执行:获取所述第二节点共享的第二节点公钥;根据所述第二节点公钥,确定与所述第二节点的共享密钥;封装所述共享密钥,获得封装密文;将所述封装密文发送给所述第二节点。本方案能够抵抗量子计算机的攻击。

Description

一种共享密钥的封装方法、第一节点和第二节点
技术领域
本发明涉及计算机技术领域,特别涉及一种共享密钥的封装方法、第一节点和第二节点。
背景技术
随着量子计算机的出现,传统公钥密码的安全性将受到严峻的挑战,它将对通信双方的通信安全性造成极大威胁。
针对量子计算机的攻击,在密码学界,有学者提出使用量子密钥分发(QuantumKey Distribution,QKD)技术实现通信双方建立共享密钥。
但是,该技术需要通信双方建立量子信道,由于目前还无法有效地实现,从而无法抵抗量子计算机的攻击。
发明内容
本发明实施例提供了一种共享密钥的封装方法、第一节点和第二节点,能够抵抗量子计算机的攻击。
第一方面,本发明实施例提供了一种共享密钥的封装方法,应用于第一节点,包括:
针对外部的至少一个第二节点中的每一个所述第二节点,执行:
获取所述第二节点共享的第二节点公钥;
根据所述第二节点公钥,确定与所述第二节点的共享密钥;
封装所述共享密钥,获得封装密文;
将所述封装密文发送给所述第二节点。
优选地,
所述根据所述第二节点公钥,确定与所述第二节点的共享密钥,包括:
根据以下第一式子,确定所述第二节点公钥对应的共享函数:
第一式子:v(x)=u(x)s(x)+e1(x)∈Rq
其中,v(x)表征所述共享函数,u(x)表征所述第二节点公钥,s(x)表征预设的随机函数,e1(x)表征预设的误差函数,Rq表征由奇素数q构成的实数域,其中,
Figure BDA0001877956860000021
确定所述共享函数的信号向量,并确定所述信号向量的舍入结果;
根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥。
优选地,
在所述根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥之后,在所述封装所述共享密钥,获得封装密文之前,进一步包括:
根据以下第二式子,确定与所述舍入结果和所述共享密钥对应的验证密钥:
第二式子:
Figure BDA0001877956860000022
其中,
Figure BDA0001877956860000023
表征所述舍入结果,K表征所述共享密钥,y表征所述验证密钥,其中,y=n-l,n表征所述舍入结果的第一比特长度,l表征所述共享密钥的第二比特长度;
根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第一哈希函数;
根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第二哈希函数;
根据所述第一哈希函数,确定加密函数;
则,
所述封装所述共享密钥,获得封装密文,包括:
根据以下第三式子,获得封装密文:
第三式子:C
=(c0=H(y),c1=<v(x)>2∈(R2)n,c2=s(x)·F+e2(x)
∈(Rq)2m,c3=MACh(y)(c1,c2))
其中,C表征所述封装密文,H(y)表征所述第一哈希函数,<v(x)>2表征所述信号向量,n表征预设的密文指数,F表征所述加密函数,e2(x)表征预设的向量函数,m表征正整数,h(y)表征所述第二哈希函数,其中,MACh(y)(c1,c2)表征由所述第二哈希函数对所述(c1,c2)运算获得的消息验证码,c1=<v(x)>2∈(R2)n,c2=s(x)·F+e2(x)∈(Rq)2m,其中,
Figure BDA0001877956860000031
优选地,
所述根据所述第一哈希函数,确定加密函数,包括:
根据以下第四式子,确定加密函数:
第四式子:
Figure BDA0001877956860000032
其中,F表征所述加密函数,
Figure BDA0001877956860000033
表征预设的第一系统函数,
Figure BDA0001877956860000034
表征预设的第二系统函数,H(y)表征所述第一哈希函数,
Figure BDA0001877956860000035
表征预设的第三系统函数;其中,所述第一系统函数、所述第二系统函数和所述第三系统函数分别为m维的多项式列向量。
第二方面,本发明实施例提供了一种共享密钥的封装方法,应用于第二节点,包括:
确定第二节点公钥;
确定所述第二节点公钥对应的第二节点私钥;
将所述第二节点公钥共享给外部的至少一个第一节点;
针对每一个所述第一节点,接收所述第一节点根据共享的所述第二节点公钥发送的封装密文;
利用所述第二节点私钥对所述封装密文进行解封装,获得与所述第一节点的共享密钥。
优选地,
所述利用所述第二节点私钥对所述封装密文进行解封装,获得与所述第一节点的共享密钥,包括:
根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数,确定所述封装密文中的加密函数;
根据以下第五式子,确定多项式向量:
第五式子:
Figure BDA0001877956860000041
其中,
Figure BDA0001877956860000042
表征所述多项式向量,每个分量多项式e2,i(x)是系数选择{-1,0,1}的n-1次多项式,m表征正整数;
确定所述封装密文中的信号向量对应的共享函数;
根据以下第六式子,确定任意解:
第六式子:
Figure BDA0001877956860000043
其中,
Figure BDA0001877956860000044
表征所述第一系统函数、w(x)表征所述第六式子的任意解,v(x)表征所述共享函数,
Figure BDA0001877956860000045
表征所述第二系统函数,H(y)表征所述封装密文中的第一哈希函数,
Figure BDA0001877956860000046
表征所述第三系统函数,
Figure BDA0001877956860000047
表征所述多项式向量;
令w(x)=(w1(x),w2(x),...,wm(x))∈Rm,利用所述第二节点私钥S抽样分布
Figure BDA0001877956860000048
上的短向量e1,i(x)←χ(1≤i≤m);
根据以下第七式子,确定小尺寸的解:
第七式子:
Figure BDA0001877956860000049
其中,
Figure BDA00018779568600000410
表征所述小尺寸的解,e1,1(x),e1,2(x),...,e1,m(x)表征所述短向量;
根据所述小尺寸的解和所述多项式向量,确定解封函数;
根据所述解封函数和所述信号向量,确定与所述第一节点的共享密钥。
优选地,
所述根据所述小尺寸的解和所述多项式向量,确定解封函数,包括:
根据以下第八式子,确定解封函数:
第八式子:
Figure BDA0001877956860000051
其中,所述v1(x)表征所述解封函数,c1表征所述第一哈希函数,
Figure BDA0001877956860000052
表征所述小尺寸的解,
Figure BDA0001877956860000053
表征所述多项式向量。
优选地,
所述根据所述解封函数和所述信号向量,确定与所述第一节点的共享密钥,包括:
根据以下第九式子,确定与所述第一节点的共享密钥:
第九式子:rec(v1(x),<v(x)>2)=K||y
其中,所述v1(x)表征所述解封函数,<v(x)>2表征所述信号向量,K表征解封密钥,y表征获得的验证密钥;
根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第三哈希函数;
根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第四哈希函数;
确定所述封装密文中的所述第一哈希函数,是否与所述第三哈希函数相同;
如果是,确定所述封装密文中的所述第二哈希函数,是否与所述第四哈希函数相同;
如果是,将所述解封密钥作为与所述第一节点的共享密钥。
优选地,
所述根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数,确定所述封装密文中的加密函数,包括:
根据以下第四式子,确定所述封装密文中的加密函数:
第四式子:
Figure BDA0001877956860000061
其中,F表征所述加密函数,
Figure BDA0001877956860000062
表征预设的第一系统函数,
Figure BDA0001877956860000063
表征预设的第二系统函数,H(y)表征所述第一哈希函数,
Figure BDA0001877956860000064
表征预设的第三系统函数;其中,所述第一系统函数、所述第二系统函数和所述第三系统函数分别为m维的多项式列向量。
优选地,
所述确定第二节点公钥,包括:
根据以下第十式子,确定第二节点公钥:
第十式子:u(x)∈{Zq[x]/(x2k+1)}
其中,u(x)表征所述第二节点公钥,Zq表征由奇素数q构成的整数域,x表征预设的第一系统参数,k属于正整数。
优选地,
所述确定所述第二节点公钥对应的第二节点私钥,包括:
根据以下第十一式子,确定所述第二节点公钥对应的第二节点私钥:
第十一式子:
Figure BDA0001877956860000065
其中,S表征所述第二节点私钥,A表征预设的第一矩阵元素,B表征预设的第二矩阵元素,C表征预设的第三矩阵元素,Iσ表征阶为预设的第三系统参数σ的第四矩阵元素,D表征预设的第五矩阵元素,R表征实数集,m表征正整数,其中,A∈R(m-σ)×σ,B∈R(m-σ)×(m-σ)
Figure BDA0001877956860000066
Figure BDA0001877956860000067
D=[0|-2Ir|2(zi,j)]∈Rσ×(m-σ),其中,Im-r-σ表征阶为m-r-σ的第一单位矩阵,yi,j表征阶为(i,j)的第六矩阵元素,Ir表征阶为预设的第四系统参数r的第二单位矩阵,zi,j表征阶为(i,j)的第七矩阵元素。
第三发明,本发明实施例提供了一种第一节点,包括:
第一节点获取单元,用于针对外部的至少一个第二节点中的每一个所述第二节点,执行:获取所述第二节点共享的第二节点公钥;
第一节点确定单元,用于根据所述第一节点获取单元获取的所述第二节点公钥,确定与所述第二节点的共享密钥;
第一节点封装单元,用于封装所述第一节点确定单元确定的所述共享密钥,获得封装密文;
第一节点发送单元,用于将所述第一节点封装单元封装的所述封装密文发送给所述第二节点。
第四方面,本发明实施例提供了一种第二节点,包括:
第二节点确定单元,用于确定第二节点公钥;确定所述第二节点公钥对应的第二节点私钥;
第二节点共享单元,用于将所述第二节点确定单元确定的所述第二节点公钥共享给外部的至少一个第一节点;
第二节点接收单元,用于针对每一个所述第一节点,接收所述第一节点根据所述第二节点共享单元共享的所述第二节点公钥发送的封装密文;
第二节点解封单元,用于利用所述第二节点确定单元确定的所述第二节点私钥对所述第二节点接收单元接收的所述封装密文进行解封装,获得与所述第一节点的共享密钥。
本发明一实施例提供了一种共享密钥的封装方法,在应用于第一节点的方法中,第一节点针对外部的每一个第二节点,在与该第二节点进行交互之前,需要先获取该第二节点共享的第二节点公钥,再利用该第二节点公钥确定在与其交互时所使用的共享密钥,对共享密钥进行封装处理,获得封装密文,最后将该封装密文发送给该第二节点,以使该第二节点通过封装密文获取交互时使用的共享密钥,抵抗量子计算机的攻击的目的,提高共享密钥传输过程中的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种共享密钥的封装方法的流程图;
图2是本发明一实施例提供的另一种共享密钥的封装方法的流程图;
图3是本发明一实施例提供的又一种共享密钥的封装方法的流程图;
图4是本发明一实施例提供的一种第一节点的结构示意图;
图5是本发明一实施例提供的一种第二节点的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种共享密钥的封装方法,应用于第一节点,包括:
步骤101:针对外部的至少一个第二节点中的每一个所述第二节点,执行:获取所述第二节点共享的第二节点公钥;
步骤102:根据所述第二节点公钥,确定与所述第二节点的共享密钥;
步骤103:封装所述共享密钥,获得封装密文;
步骤104:将所述封装密文发送给所述第二节点。
本发明一实施例提供了一种共享密钥的封装方法,在应用于第一节点的方法中,针对外部的每一个第二节点,在与该第二节点进行交互之前,需要先获取该第二节点共享的第二节点公钥,再利用该第二节点公钥确定在与其交互时所使用的共享密钥,对共享密钥进行封装处理,获得封装密文,最后将该封装密文发送给该第二节点,以使该第二节点通过封装密文获取交互时使用的共享密钥,抵抗量子计算机的攻击的目的,提高共享密钥传输过程中的安全性。
在本发明一实施例中,所述根据所述第二节点公钥,确定与所述第二节点的共享密钥,包括:
根据以下第一式子,确定所述第二节点公钥对应的共享函数:
第一式子:v(x)=u(x)s(x)+e1(x)∈Rq
其中,v(x)表征所述共享函数,u(x)表征所述第二节点公钥,s(x)表征预设的随机函数,e1(x)表征预设的误差函数,Rq表征由奇素数q构成的实数域,其中,
Figure BDA0001877956860000091
确定所述共享函数的信号向量,并确定所述信号向量的舍入结果;
根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥。
在本发明实施例中,在确定与第二节点交互时所使用的共享密钥之前,需要,先随机选择
Figure BDA0001877956860000092
Figure BDA0001877956860000093
作为预设的随机函数,再抽样误差向量
Figure BDA0001877956860000094
利用获取的第二节点公钥,通过上述第一式子计算共享函数v(x),确定v(x)的信号向量,即二进制信号,对所述信号向量进行模2运算,获得舍入结果,最后根据预设的划分规则,即可从该舍入结果中确定交互时所使用的出共享密钥。
在本发明一实施例中,在所述根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥之后,在所述封装所述共享密钥,获得封装密文之前,进一步包括:
根据以下第二式子,确定与所述舍入结果和所述共享密钥对应的验证密钥:
第二式子:
Figure BDA0001877956860000095
其中,
Figure BDA0001877956860000096
表征所述舍入结果,K表征所述共享密钥,y表征所述验证密钥,其中,y=n-l,n表征所述舍入结果的第一比特长度,l表征所述共享密钥的第二比特长度;
根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第一哈希函数;
根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第二哈希函数;
根据所述第一哈希函数,确定加密函数;
则,
所述封装所述共享密钥,获得封装密文,包括:
根据以下第三式子,获得封装密文:
第三式子:C
=(c0=H(y),c1=<v(x)>2∈(R2)n,c2=s(x)·F+e2(x)
∈(Rq)2m,c3=MACh(y)(c1,c2))
其中,C表征所述封装密文,H(y)表征所述第一哈希函数,<v(x)>2表征所述信号向量,n表征预设的密文指数,F表征所述加密函数,e2(x)表征预设的向量函数,m表征正整数,h(y)表征所述第二哈希函数,其中,MACh(y)(c1,c2)表征由所述第二哈希函数对所述(c1,c2)运算获得的消息验证码,c1=<v(x)>2∈(R2)n,c2=s(x)·F+e2(x)∈(Rq)2m,其中,
Figure BDA0001877956860000101
在本发明实施例中,通过定义模2舍入函数
Figure BDA0001877956860000103
Zq→Z2表达式为
Figure BDA0001877956860000102
根据预设的划分规则,将
Figure BDA0001877956860000104
分成两部分
Figure BDA0001877956860000105
其中,K是要传输的共享密钥,K的大小是根据设计需求随机选择,用l比特表示K的大小,y表示剩余的n-l比特,即验证密钥,再通过单向哈希函数和成对独立的哈希函数确定验证密钥分别对应的第一哈希函数和第二哈希函数。再通过确定加密函数,即可通过上述第三式子,根据第一哈希函数、信号向量、加密函数、预设的向量函数、第二哈希函数,以及第一哈希函数和信号向量的消息认证码,获得封装密文。
其中,c2=s(x)·F+e2(x)∈(Rq)2m中的运算按照多项式乘法定义进行计算。
Figure BDA0001877956860000111
的两部分从离散高斯分布中随机抽取。
在本发明一实施例中,所述根据所述第一哈希函数,确定加密函数,包括:
根据以下第四式子,确定加密函数:
第四式子:
Figure BDA0001877956860000112
其中,F表征所述加密函数,
Figure BDA0001877956860000113
表征预设的第一系统函数,
Figure BDA0001877956860000114
表征预设的第二系统函数,H(y)表征所述第一哈希函数,
Figure BDA0001877956860000115
表征预设的第三系统函数;其中,所述第一系统函数、所述第二系统函数和所述第三系统函数分别为m维的多项式列向量。
在本发明实施例中,通过预先设置m维的多项式向量第一系统函数、第二系统函数和第三系统函数,再根据上述第四式子和第一哈希函数,即可确定一个2m维的多项式向量,即加密函数。
可以理解的是,m维的第一系统函数,如:
Figure BDA0001877956860000116
即每一个第一系统函数分量为一个系数在Zq上的n-1次多项式ai(x)∈Rq,i=1,2,...,m。
同样地,m维的第二系统函数,如:
Figure BDA0001877956860000117
即每一个第二系统函数分量为一个系数在Zq上的n-1次多项式bi(x)∈Rq,i=1,2,...,m。
同样地,m维的第二系统函数,如:
Figure BDA0001877956860000118
即每一个第三系统函数分量为一个系数在Zq上的n-1次多项式ci(x)∈Rq,i=1,2,...,m。
Figure BDA0001877956860000119
简写为
Figure BDA00018779568600001110
将ai(x)简写为ai。定义Rq上的两种乘法运算:
1)
Figure BDA00018779568600001111
b∈Rq
2)
Figure BDA0001877956860000121
b∈(Rq)m
如图2所示,本发明实施例提供了一种共享密钥的封装方法,应用于第二节点,包括:
步骤201:确定第二节点公钥;
步骤202:确定所述第二节点公钥对应的第二节点私钥;
步骤203:将所述第二节点公钥共享给外部的至少一个第一节点;
步骤204:针对每一个所述第一节点,接收所述第一节点根据共享的所述第二节点公钥发送的封装密文;
步骤205:利用所述第二节点私钥对所述封装密文进行解封装,获得与所述第一节点的共享密钥。
本发明一实施例提供了一种共享密钥的封装方法,在应用于第二节点的方法中,第二节点在与外部的每一个第一节点交互之前,需要先确定自身的第二节点公钥和对应的第二节点私钥,共享第二节点公钥,以使外部的各个第一节点利用该第二节点公钥封装交互时所使用的共享密钥,在接收到任一第一节点发来的封装密文时,利用确定的第二节点私钥可以对该封装密文进行解封,即可得到与发来封装密文的第一节点交互时所使用的共享密钥,从而实现抵抗量子计算机的攻击的目的,提高共享密钥传输的安全性。
在本发明一实施例中,所述利用所述第二节点私钥对所述封装密文进行解封装,获得与所述第一节点的共享密钥,包括:
根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数,确定所述封装密文中的加密函数;
根据以下第五式子,确定多项式向量:
第五式子:
Figure BDA0001877956860000122
其中,
Figure BDA0001877956860000123
表征所述多项式向量,每个分量多项式e2,i(x)是系数选择{-1,0,1}的n-1次多项式,m表征正整数;
确定所述封装密文中的信号向量对应的共享函数;
根据以下第六式子,确定任意解:
第六式子:
Figure BDA0001877956860000131
其中,
Figure BDA0001877956860000132
表征所述第一系统函数、w(x)表征所述第六式子的任意解,v(x)表征所述共享函数,
Figure BDA0001877956860000133
表征所述第二系统函数,H(y)表征所述封装密文中的第一哈希函数,
Figure BDA0001877956860000134
表征所述第三系统函数,
Figure BDA0001877956860000135
表征所述多项式向量;
令w(x)=(w1(x),w2(x),...,wm(x))∈Rm,利用所述第二节点私钥S抽样分布
Figure BDA0001877956860000136
上的短向量e1,i(x)←χ(1≤i≤m);
根据以下第七式子,确定小尺寸的解:
第七式子:
Figure BDA0001877956860000137
其中,
Figure BDA0001877956860000138
表征所述小尺寸的解,e1,1(x),e1,2(x),...,e1,m(x)表征所述短向量;
根据所述小尺寸的解和所述多项式向量,确定解封函数;
根据所述解封函数和所述信号向量,确定与所述第一节点的共享密钥。
在本发明实施例中,在利用第二节点私钥解封封装密文确定密钥时,需要先确定加密函数、多项式向量和共享函数,其中,加密函数可以根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数确定,多项式向量可以根据上述第五式子确定,而共享函数可以根据封装密文中的信号向量确定(如根据封装密文中的信号向量<v(x)>2,确定其对应的共享函数v(x)),再用线性代数的方法将加密函数、多项式向量、共享函数、预设的第一系统函数、预设的第二系统函数和预设的第三系统函数,代入上述第六式子即可获得该式子的任意解w(x),令w(x)=(w1(x),w2(x),...,wm(x))∈Rm,然后用密钥S抽样分布
Figure BDA0001877956860000139
上的短向量e1,i(x)←χ(1≤i≤m),它满足后用密钥
Figure BDA00018779568600001310
Figure BDA00018779568600001311
Figure BDA00018779568600001312
这里调用离散高斯分布采用算法。再通过确定的解封函数和信号向量即可确定共享密钥。
在本发明一实施例中,所述根据所述小尺寸的解和所述多项式向量,确定解封函数,包括:
根据以下第八式子,确定解封函数:
第八式子:
Figure BDA0001877956860000141
其中,所述v1(x)表征所述解封函数,c1表征所述第一哈希函数,
Figure BDA0001877956860000142
表征所述小尺寸的解,
Figure BDA0001877956860000143
表征所述多项式向量。
在本发明实施例中,利用确定的第一哈希函数、小尺寸的解和多项式列向量,通过上述第八式子,即可确定解封函数。
在本发明一实施例中,所述根据所述解封函数和所述信号向量,确定与所述第一节点的共享密钥,包括:
根据以下第九式子,确定与所述第一节点的共享密钥:
第九式子:rec(v1(x),<v(x)>2)=K||y
其中,所述v1(x)表征所述解封函数,<v(x)>2表征所述信号向量,K表征解封密钥,y表征获得的验证密钥;
根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第三哈希函数;
根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第四哈希函数;
确定所述封装密文中的所述第一哈希函数,是否与所述第三哈希函数相同;
如果是,确定所述封装密文中的所述第二哈希函数,是否与所述第四哈希函数相同;
如果是,将所述解封密钥作为与所述第一节点的共享密钥。
在本发明实施例中,通过确定的解封函数和封装密文中的信号向量,确定调和函数rec(v1(x),<v(x)>2)=K||y,进而确定解封密钥和验证密钥,通过计算验证密钥的第三哈希函数和第四哈希函数,再将第三哈希函数与封装密文中的第一哈希函数比对,将第四哈希函数与封装密文中的第二哈希函数进行比对,以验证第三哈希函数和第四哈希函数是否正确,如果均正确,则可确定解封密钥即为与第一节点交互时所使用的共享密钥。
在本发明一实施例中,所述根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数,确定所述封装密文中的加密函数,包括:
根据以下第四式子,确定所述封装密文中的加密函数:
第四式子:
Figure BDA0001877956860000151
其中,F表征所述加密函数,
Figure BDA0001877956860000152
表征预设的第一系统函数,
Figure BDA0001877956860000153
表征预设的第二系统函数,H(y)表征所述第一哈希函数,
Figure BDA0001877956860000154
表征预设的第三系统函数;其中,所述第一系统函数、所述第二系统函数和所述第三系统函数分别为m维的多项式列向量。
在本发明实施例中,通过预先设置m维的多项式向量第一系统函数、第二系统函数和第三系统函数,再根据上述第四式子和第一哈希函数,即可确定一个2m维的多项式向量,即加密函数。
在本发明一实施例中,所述确定第二节点公钥,包括:
根据以下第十式子,确定第二节点公钥:
第十式子:u(x)∈{Zq[x]/(x2k+1)}
其中,u(x)表征所述第二节点公钥,Zq表征由奇素数q构成的整数域,x表征预设的第一系统参数,k属于正整数。
在本发明实施例中,(x2k+1)即等于f(x),是一个次数为2k的分圆多项式,设q为满足f(x)在有限域Zq上只有n个线性因式。设R=Z[X]/(f(x)),Rq=Zq[X]/(f(x)),即可确定第二节点公钥,其中,u(x)∈Rq
在本发明一实施例中,所述确定所述第二节点公钥对应的第二节点私钥,包括:
根据以下第十一式子,确定所述第二节点公钥对应的第二节点私钥:
第十一式子:
Figure BDA0001877956860000161
其中,S表征所述第二节点私钥,A表征预设的第一矩阵元素,B表征预设的第二矩阵元素,C表征预设的第三矩阵元素,Iσ表征阶为预设的第三系统参数σ的第四矩阵元素,D表征预设的第五矩阵元素,R表征实数集,m表征正整数,其中,A∈R(m-σ)×σ,B∈R(m-σ)×(m-σ)
Figure BDA0001877956860000162
Figure BDA0001877956860000163
D=[0|-2Ir|2(zi,j)]∈Rσ×(m-σ),其中,Im-r-σ表征阶为m-r-σ的第一单位矩阵,yi,j表征阶为(i,j)的第六矩阵元素,Ir表征阶为预设的第四系统参数r的第二单位矩阵,zi,j表征阶为(i,j)的第七矩阵元素。
在本发明实施例中,私钥S是一个m×m的矩阵,矩阵元素属于R,其尺寸为:
Figure BDA0001877956860000164
其中Ef(f,2)=max{||g modf||/g|g∈Z[X]\{0}}且deg(g)≤2(deg(f)-1)。
综上可见,本发明提供的一种共享密钥的封装方法,采用后量子密钥封装方案在通信双方建立共享密钥,通过共享密钥实现通信双方交互抵抗量子计算机的攻击的目的。
如图3所示,下面以新入节点X和原始节点Y为例,对本发明实施例提供的一种共享密钥的封装方法进行说明,具体可以包括以下步骤:
步骤301:新入节点X确定新入节点公钥和对应的新入节点私钥。
具体地,新入节点X在与原始节点Y交互之前,需要先确定自身的新入节点公钥和对应的新入节点私钥,以使通过新入节点公钥与原始节点Y交互。
步骤302:新入节点X将新入节点公钥共享给原始节点Y。
具体地,新入节点X通过将新入节点公钥共享给原始节点Y,以使原始节点Y利用新入节点公钥确定双方通信时的共享密钥,利用该共享密钥加密交互信息,以抵抗量子计算机的攻击。
步骤303:原始节点Y获取新入节点X共享的新入节点公钥。
步骤304:原始节点Y根据新入节点公钥,确定与新入节点X的共享密钥。
具体地,原始节点Y在获取到新入节点公钥时,需要利用新入节点公钥确定共享密钥,以使该共享密钥与新入节点X相对应。
步骤305:原始节点Y封装共享密钥,获得封装密文。
步骤306:原始节点Y将封装密文发送给新入节点X。
具体地,原始节点Y在确定与新入节点X对应的共享密钥后,不是直接将共享密钥发送给新入节点X,而是需要先对共享密钥进行封装,以抵抗量子计算机的攻击,提高共享密钥传输的安全性,再将共享密钥封装后获得的封装密文发送给新入节点X,以使其通过封装密文,获得共享密钥。
步骤307:新入节点X接收原始节点Y根据共享的新入节点公钥发送的封装密文。
步骤308:新入节点X利用原始节点Y私钥对封装密文进行解封装,获得与第一节点的共享密钥。
如图4所示,本发明实施例提供了一种第一节点,包括:
第一节点获取单元401,用于针对外部的至少一个第二节点中的每一个所述第二节点,执行:获取所述第二节点共享的第二节点公钥;
第一节点确定单元402,用于根据所述第一节点获取单元401获取的所述第二节点公钥,确定与所述第二节点的共享密钥;
第一节点封装单元403,用于封装所述第一节点确定单元402确定的所述共享密钥,获得封装密文;
第一节点发送单元404,用于将所述第一节点封装单元403封装的所述封装密文发送给所述第二节点。
在本发明实施例中,针对外部的每一个第二节点,在与该第二节点进行交互之前,需要先通过第一节点获取单元获取该第二节点共享的第二节点公钥,再通过第一节点确定单元利用该第二节点公钥确定在第二节点其交互时所使用的共享密钥,通过第一节点封装单元对共享密钥进行封装处理,获得封装密文,最后通过第一节点发送单元将该封装密文发送给该第二节点,以使该第二节点通过封装密文获取交互时使用的共享密钥,抵抗量子计算机的攻击的目的,提高共享密钥传输过程中的安全性。
在本发明一实施例中,所述第一节点确定单元,用于根据第一式子,确定所述第二节点公钥对应的共享函数;确定所述共享函数的信号向量,并确定所述信号向量的舍入结果;根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥;其中,所述第一式子为:
第一式子:v(x)=u(x)s(x)+e1(x)∈Rq
其中,v(x)表征所述共享函数,u(x)表征所述第二节点公钥,s(x)表征预设的随机函数,e1(x)表征预设的误差函数,Rq表征由奇素数q构成的实数域,其中,
Figure BDA0001877956860000181
在本发明一实施例中,所述第一节点确定单元,进一步用于根据第二式子,确定与所述舍入结果和所述共享密钥对应的验证密钥;根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第一哈希函数;根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第二哈希函数;根据所述第一哈希函数,确定加密函数;其中,所述第二式子为:
第二式子:
Figure BDA0001877956860000182
其中,
Figure BDA0001877956860000183
表征所述舍入结果,K表征所述共享密钥,y表征所述验证密钥,其中,y=n-l,n表征所述舍入结果的第一比特长度,l表征所述共享密钥的第二比特长度;
所述第一节点封装单元,用于根据以下第三式子,获得封装密文:
第三式子:C
=(c0=H(y),c1=<v(x)>2∈(R2)n,c2=s(x)·F+e2(x)
∈(Rq)2m,c3=MACh(y)(c1,c2))
其中,C表征所述封装密文,H(y)表征所述第一哈希函数,<v(x)>2表征所述信号向量,n表征预设的密文指数,F表征所述加密函数,e2(x)表征预设的向量函数,m表征正整数,h(y)表征所述第二哈希函数,其中,MACh(y)(c1,c2)表征由所述第二哈希函数对所述(c1,c2)运算获得的消息验证码,c1=<v(x)>2∈(R2)n,c2=s(x)·F+e2(x)∈(Rq)2m,其中,
Figure BDA0001877956860000191
在本发明一实施例中,所述第一节点确定单元,用于根据以下第四式子,确定加密函数:
第四式子:
Figure BDA0001877956860000192
其中,F表征所述加密函数,
Figure BDA0001877956860000193
表征预设的第一系统函数,
Figure BDA0001877956860000194
表征预设的第二系统函数,H(y)表征所述第一哈希函数,
Figure BDA0001877956860000195
表征预设的第三系统函数;其中,所述第一系统函数、所述第二系统函数和所述第三系统函数分别为m维的多项式列向量。
如图5所示,本发明实施例提供了一种第二节点,包括:
第二节点确定单元501,用于确定第二节点公钥;确定所述第二节点公钥对应的第二节点私钥;
第二节点共享单元502,用于将所述第二节点确定单元501确定的所述第二节点公钥共享给外部的至少一个第一节点;
第二节点接收单元503,用于针对每一个所述第一节点,接收所述第一节点根据所述第二节点共享单元502共享的所述第二节点公钥发送的封装密文;
第二节点解封单元504,用于利用所述第二节点确定单元501确定的所述第二节点私钥对所述第二节点接收单元503接收的所述封装密文进行解封装,获得与所述第一节点的共享密钥。
在本发明实施例中,在与外部的每一个第一节点交互之前,需要先通过第二节点确定单元确定自身的第二节点公钥和对应的第二节点私钥,再通过第二节点共享单元共享第二节点公钥,以使外部的各个第一节点利用该第二节点公钥封装交互时所使用的共享密钥,在通过第二节点接收单元接收到任一第一节点发来的封装密文时,通过第二节点解封单元利用确定的第二节点私钥可以对该封装密文进行解封,即可得到与发来封装密文的第一节点交互时所使用的共享密钥,从而实现抵抗量子计算机的攻击的目的,提高共享密钥传输的安全性。
在本发明一实施例中,所述第二节点解封单元,包括:参数确定子单元、多项式确定子单元、解封确定子单元和密钥确定子单元;
所述参数确定子单元,用于根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数,确定所述封装密文中的加密函数;根据第五式子,确定多项式向量;确定所述封装密文中的信号向量对应的共享函数;其中,所述第五式子为:
第五式子:
Figure BDA0001877956860000201
其中,
Figure BDA0001877956860000202
表征所述多项式向量,每个分量多项式e2,i(x)是系数选择{-1,0,1}的n-1次多项式,m表征正整数;
所述解封确定子单元,用于根据第六式子,确定任意解;令w(x)=(w1(x),w2(x),...,wm(x))∈Rm,利用所述第二节点私钥S抽样分布
Figure BDA0001877956860000203
上的短向量e1,i(x)←χ(1≤i≤m);根据第七式子,确定小尺寸的解;根据所述小尺寸的解和所述多项式向量,确定解封函数;
其中,所述第六式子为:
第六式子:
Figure BDA0001877956860000204
其中,
Figure BDA0001877956860000205
表征所述参数确定子单元确定的所述第一系统函数、w(x)表征所述第六式子的任意解,v(x)表征所述参数确定子单元确定的所述共享函数,
Figure BDA0001877956860000206
表征所述参数确定子单元确定的所述第二系统函数,H(y)表征所述封装密文中的第一哈希函数,
Figure BDA0001877956860000207
表征所述参数确定子单元确定的所述第三系统函数,
Figure BDA0001877956860000208
表征所述参数确定子单元确定的所述多项式向量;
所述第七式子为:
第七式子:
Figure BDA0001877956860000211
其中,
Figure BDA0001877956860000212
表征所述解封确定子单元确定的所述小尺寸的解,e1,1(x),e1,2(x),...,e1,m(x)表征所述解封确定子单元抽样的所述短向量。
所述密钥确定子单元,用于根据所述解封确定子单元确定的所述解封函数和所述信号向量,确定与所述第一节点的共享密钥。
在本发明一实施例中,所述解封确定子单元,用于根据以下第八式子,确定解封函数:
第八式子:
Figure BDA0001877956860000213
其中,所述v1(x)表征所述解封函数,c1表征所述第一哈希函数,
Figure BDA0001877956860000214
表征所述小尺寸的解,
Figure BDA0001877956860000215
表征所述多项式向量。
在本发明一实施例中,所述密钥确定子单元,用于根据第九式子,确定与所述第一节点的共享密钥;根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第三哈希函数;根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第四哈希函数;确定所述封装密文中的所述第一哈希函数,是否与所述第三哈希函数相同;如果是,确定所述封装密文中的所述第二哈希函数,是否与所述第四哈希函数相同;如果是,将所述解封密钥作为与所述第一节点的共享密钥;其中,所述第九式子为:
第九式子:rec(v1(x),<v(x)>2)=K||y
其中,所述v1(x)表征所述解封函数,<v(x)>2表征所述信号向量,K表征解封密钥,y表征获得的验证密钥。
在本发明一实施例中,所述参数确定单元,用于根据以下第四式子,确定所述封装密文中的加密函数:
第四式子:
Figure BDA0001877956860000216
其中,F表征所述加密函数,
Figure BDA0001877956860000217
表征预设的第一系统函数,
Figure BDA0001877956860000218
表征预设的第二系统函数,H(y)表征所述第一哈希函数,
Figure BDA0001877956860000219
表征预设的第三系统函数;其中,所述第一系统函数、所述第二系统函数和所述第三系统函数分别为m维的多项式列向量。
在本发明一实施例中,所述第二节点确定单元,用于根据以下第十式子,确定第二节点公钥:
第十式子:u(x)∈{Zq[x]/(x2k+1)}
其中,u(x)表征所述第二节点公钥,Zq表征由奇素数q构成的整数域,x表征预设的第一系统参数,k属于正整数。
在本发明一实施例中,所述第二节点确定单元,用于根据以下第十一式子,确定所述第二节点公钥对应的第二节点私钥:
第十一式子:
Figure BDA0001877956860000221
其中,S表征所述第二节点私钥,A表征预设的第一矩阵元素,B表征预设的第二矩阵元素,C表征预设的第三矩阵元素,Iσ表征阶为预设的第三系统参数σ的第四矩阵元素,D表征预设的第五矩阵元素,R表征实数集,m表征正整数,其中,A∈R(m-σ)×σ,B∈R(m-σ)×(m-σ)
Figure BDA0001877956860000222
Figure BDA0001877956860000223
D=[0|-2Ir|2(zi,j)]∈Rσ×(m-σ),其中,Im-r-σ表征阶为m-r-σ的第一单位矩阵,yi,j表征阶为(i,j)的第六矩阵元素,Ir表征阶为预设的第四系统参数r的第二单位矩阵,zi,j表征阶为(i,j)的第七矩阵元素。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,本发明一实施例提供了一种共享密钥的封装方法,在应用于第一节点的方法中,第一节点针对外部的每一个第二节点,在与该第二节点进行交互之前,需要先获取该第二节点共享的第二节点公钥,再利用该第二节点公钥确定在与其交互时所使用的共享密钥,对共享密钥进行封装处理,获得封装密文,最后将该封装密文发送给该第二节点,以使该第二节点通过封装密文获取交互时使用的共享密钥,抵抗量子计算机的攻击的目的,提高共享密钥传输过程中的安全性。
2、在本发明实施例中,本发明一实施例提供了一种共享密钥的封装方法,在应用于第二节点的方法中,第二节点在与外部的每一个第一节点交互之前,需要先确定自身的第二节点公钥和对应的第二节点私钥,共享第二节点公钥,以使外部的各个第一节点利用该第二节点公钥封装交互时所使用的共享密钥,在接收到任一第一节点发来的封装密文时,利用确定的第二节点私钥可以对该封装密文进行解封,即可得到与发来封装密文的第一节点交互时所使用的共享密钥,从而实现抵抗量子计算机的攻击的目的,提高共享密钥传输的安全性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (7)

1.一种共享密钥的封装方法,其特征在于,应用于第一节点,包括:
针对外部的至少一个第二节点中的每一个所述第二节点,执行:
获取所述第二节点共享的第二节点公钥;
根据所述第二节点公钥,确定与所述第二节点的共享密钥;
封装所述共享密钥,获得封装密文;
将所述封装密文发送给所述第二节点;
所述根据所述第二节点公钥,确定与所述第二节点的共享密钥,包括:
根据以下第一式子,确定所述第二节点公钥对应的共享函数:
第一式子:v(x)=u(x)s(x)+e1(x)∈Rq
其中,v(x)表征所述共享函数,u(x)表征所述第二节点公钥,s(x)表征预设的随机函数,e1(x)表征预设的误差函数,Rq表征由奇素数q构成的实数域,其中,
Figure RE-FDA0003359107730000011
确定所述共享函数的信号向量,并确定所述信号向量的舍入结果;
根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥;
在所述根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥之后,在所述封装所述共享密钥,获得封装密文之前,进一步包括:
根据以下第二式子,确定与所述舍入结果和所述共享密钥对应的验证密钥:
第二式子:
Figure RE-FDA0003359107730000012
其中,
Figure RE-FDA0003359107730000013
表征所述舍入结果,K表征所述共享密钥,y表征所述验证密钥,其中,y等于剩余的n-l比特,n表征所述舍入结果的第一比特长度,l表征所述共享密钥的第二比特长度;
根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第一哈希函数;
根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第二哈希函数;
根据所述第一哈希函数,确定加密函数;
则,
所述封装所述共享密钥,获得封装密文,包括:
根据以下第三式子,获得封装密文:
第三式子:
Figure RE-FDA0003359107730000021
Figure RE-FDA0003359107730000022
其中,C表征所述封装密文,H(y)表征所述第一哈希函数,<v(x)>2表征所述信号向量,n表征预设的密文指数,F表征所述加密函数,e2(x)表征预设的向量函数,m表征正整数,h(y)表征所述第二哈希函数,其中,MACh(y)(c1,c2)表征由所述第二哈希函数对所述(c1,c2)运算获得的消息验证码,c1=<v(x)>2∈(R2)n,c2=s(x)·F+e2(x)∈(Rq)2m,其中,
Figure RE-FDA0003359107730000023
2.根据权利要求1所述的共享密钥的封装方法,其特征在于,
所述根据所述第一哈希函数,确定加密函数,包括:
根据以下第四式子,确定加密函数:
第四式子:
Figure RE-FDA0003359107730000024
其中,F表征所述加密函数,
Figure RE-FDA0003359107730000025
表征预设的第一系统函数,
Figure RE-FDA0003359107730000026
表征预设的第二系统函数,H(y)表征所述第一哈希函数,
Figure RE-FDA0003359107730000027
表征预设的第三系统函数;其中,所述第一系统函数、所述第二系统函数和所述第三系统函数分别为m维的多项式列向量。
3.一种共享密钥的封装方法,其特征在于,应用于第二节点,包括:
确定第二节点公钥;
确定所述第二节点公钥对应的第二节点私钥;
将所述第二节点公钥共享给外部的至少一个第一节点;
针对每一个所述第一节点,接收所述第一节点根据共享的所述第二节点公钥发送的封装密文;
利用所述第二节点私钥对所述封装密文进行解封装,获得与所述第一节点的共享密钥;
其中,所述利用所述第二节点私钥对所述封装密文进行解封装,获得与所述第一节点的共享密钥,包括:
根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数,确定所述封装密文中的加密函数;
根据以下第五式子,确定多项式向量:
第五式子:
Figure RE-FDA0003359107730000031
其中,
Figure RE-FDA0003359107730000032
表征所述多项式向量,每个分量多项式e2,i(x)是系数选择{-1,0,1}的n-1次多项式,m表征正整数;
确定所述封装密文中的信号向量对应的共享函数;
根据以下第六式子,确定任意解:
第六式子:
Figure RE-FDA0003359107730000033
其中,
Figure RE-FDA0003359107730000034
表征所述第一系统函数、w(x)表征所述第六式子的任意解,v(x)表征所述共享函数,
Figure RE-FDA0003359107730000035
表征所述第二系统函数,H(y)表征所述封装密文中的第一哈希函数,
Figure RE-FDA0003359107730000036
表征所述第三系统函数,
Figure RE-FDA0003359107730000037
表征所述多项式向量;
令w(x)=(w1(x),w2(x),...,wm(x))∈Rm,利用所述第二节点私钥S抽样分布
Figure RE-FDA0003359107730000038
上的短向量e1,i(x)←χ(1≤i≤m);
根据以下第七式子,确定小尺寸的解:
第七式子:
Figure RE-FDA0003359107730000039
其中,
Figure RE-FDA00033591077300000310
表征所述小尺寸的解,e1,1(x),e1,2(x),...,e1,m(x)表征所述短向量;
根据所述小尺寸的解和所述多项式向量,确定解封函数;
根据所述解封函数和所述信号向量,确定与所述第一节点的共享密钥;
其中,所述根据所述小尺寸的解和所述多项式向量,确定解封函数,包括:
根据以下第八式子,确定解封函数:
第八式子:
Figure RE-FDA0003359107730000041
其中,所述v1(x)表征所述解封函数,c1表征所述第一哈希函数,
Figure RE-FDA0003359107730000042
表征所述小尺寸的解,
Figure RE-FDA0003359107730000043
表征所述多项式向量;
其中,
所述根据所述解封函数和所述信号向量,确定与所述第一节点的共享密钥,包括:
根据以下第九式子,确定与所述第一节点的共享密钥:
第九式子:rec(v1(x),<v(x)>2)=K||y
其中,所述v1(x)表征所述解封函数,<v(x)>2表征所述信号向量,K表征解封密钥,y表征获得的验证密钥;
根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第三哈希函数;
根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第四哈希函数;
确定所述封装密文中的所述第一哈希函数,是否与所述第三哈希函数相同;
如果是,确定所述封装密文中的第二哈希函数,是否与所述第四哈希函数相同;
如果是,将所述解封密钥作为与所述第一节点的共享密钥。
4.根据权利要求3所述的共享密钥的封装方法,其特征在于,
所述根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数,确定所述封装密文中的加密函数,包括:
根据以下第四式子,确定所述封装密文中的加密函数:
第四式子:
Figure RE-FDA0003359107730000051
其中,F表征所述加密函数,
Figure RE-FDA0003359107730000052
表征预设的第一系统函数,
Figure RE-FDA0003359107730000053
表征预设的第二系统函数,H(y)表征所述第一哈希函数,
Figure RE-FDA0003359107730000054
表征预设的第三系统函数;其中,所述第一系统函数、所述第二系统函数和所述第三系统函数分别为m维的多项式列向量。
5.根据权利要求3至4中任一所述的共享密钥的封装方法,其特征在于,
所述确定第二节点公钥,包括:
根据以下第十式子,确定第二节点公钥:
第十式子:u(x)∈{Zq[x]/(x2k+1)}
其中,u(x)表征所述第二节点公钥,Zq表征由奇素数q构成的整数域,x表征预设的第一系统参数,k属于正整数;
和/或,
所述确定所述第二节点公钥对应的第二节点私钥,包括:
根据以下第十一式子,确定所述第二节点公钥对应的第二节点私钥:
第十一式子:
Figure RE-FDA0003359107730000055
其中,S表征所述第二节点私钥,A表征预设的第一矩阵元素,B表征预设的第二矩阵元素,C表征预设的第三矩阵元素,Iσ表征阶为预设的第三系统参数σ的第四矩阵元素,D表征预设的第五矩阵元素,R表征实数集,m表征正整数,其中,A∈R(m-σ)×σ,B∈R(m-σ)×(m-σ)
Figure RE-FDA0003359107730000056
Figure RE-FDA0003359107730000057
D=[0|-2Ir|2(zi,j)]∈Rσ×(m-σ),其中,Im-r-σ表征阶为m-r-σ的第一单位矩阵,yi,j表征阶为(i,j)的第六矩阵元素,Ir表征阶为预设的第四系统参数r的第二单位矩阵,zi,j表征阶为(i,j)的第七矩阵元素。
6.一种第一节点,其特征在于,包括:
第一节点获取单元,用于针对外部的至少一个第二节点中的每一个所述第二节点,执行:获取所述第二节点共享的第二节点公钥;
第一节点确定单元,用于根据所述第一节点获取单元获取的所述第二节点公钥,确定与所述第二节点的共享密钥;
第一节点封装单元,用于封装所述第一节点确定单元确定的所述共享密钥,获得封装密文;
第一节点发送单元,用于将所述第一节点封装单元封装的所述封装密文发送给所述第二节点;
所述根据所述第二节点公钥,确定与所述第二节点的共享密钥,包括:
根据以下第一式子,确定所述第二节点公钥对应的共享函数:
第一式子:v(x)=u(x)s(x)+e1(x)∈Rq
其中,v(x)表征所述共享函数,u(x)表征所述第二节点公钥,s(x)表征预设的随机函数,e1(x)表征预设的误差函数,Rq表征由奇素数q构成的实数域,其中,
Figure RE-FDA0003359107730000061
确定所述共享函数的信号向量,并确定所述信号向量的舍入结果;
根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥;
在所述根据预设的划分规则,从所述舍入结果中划分出与所述第二节点的共享密钥之后,在所述封装所述共享密钥,获得封装密文之前,进一步包括:
根据以下第二式子,确定与所述舍入结果和所述共享密钥对应的验证密钥:
第二式子:
Figure RE-FDA0003359107730000062
其中,
Figure RE-FDA0003359107730000071
表征所述舍入结果,K表征所述共享密钥,y表征所述验证密钥,其中,y等于剩余的n-l比特,n表征所述舍入结果的第一比特长度,l表征所述共享密钥的第二比特长度;
根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第一哈希函数;
根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第二哈希函数;
根据所述第一哈希函数,确定加密函数;
则,
所述封装所述共享密钥,获得封装密文,包括:
根据以下第三式子,获得封装密文:
第三式子:
Figure RE-FDA0003359107730000072
Figure RE-FDA0003359107730000073
其中,C表征所述封装密文,H(y)表征所述第一哈希函数,<v(x)>2表征所述信号向量,n表征预设的密文指数,F表征所述加密函数,e2(x)表征预设的向量函数,m表征正整数,h(y)表征所述第二哈希函数,其中,
Figure RE-FDA0003359107730000074
表征由所述第二哈希函数对所述(c1,c2)运算获得的消息验证码,c1=<v(x)>2∈(R2)n,c2=s(x)·F+e2(x)∈(Rq)2m,其中,
Figure RE-FDA0003359107730000075
7.一种第二节点,其特征在于,包括:
第二节点确定单元,用于确定第二节点公钥;确定所述第二节点公钥对应的第二节点私钥;
第二节点共享单元,用于将所述第二节点确定单元确定的所述第二节点公钥共享给外部的至少一个第一节点;
第二节点接收单元,用于针对每一个所述第一节点,接收所述第一节点根据所述第二节点共享单元共享的所述第二节点公钥发送的封装密文;
第二节点解封单元,用于利用所述第二节点确定单元确定的所述第二节点私钥对所述第二节点接收单元接收的所述封装密文进行解封装,获得与所述第一节点的共享密钥;
所述利用所述第二节点私钥对所述封装密文进行解封装,获得与所述第一节点的共享密钥,包括:
根据预设的第一系统函数、预设的第二系统函数、预设的第三系统函数和所述封装密文中的第一哈希函数,确定所述封装密文中的加密函数;
根据以下第五式子,确定多项式向量:
第五式子:
Figure RE-FDA0003359107730000081
其中,
Figure RE-FDA0003359107730000082
表征所述多项式向量,每个分量多项式e2,i(x)是系数选择{-1,0,1}的n-1次多项式,m表征正整数;
确定所述封装密文中的信号向量对应的共享函数;
根据以下第六式子,确定任意解:
第六式子:
Figure RE-FDA0003359107730000083
其中,
Figure RE-FDA0003359107730000084
表征所述第一系统函数、w(x)表征所述第六式子的任意解,v(x)表征所述共享函数,
Figure RE-FDA0003359107730000085
表征所述第二系统函数,H(y)表征所述封装密文中的第一哈希函数,
Figure RE-FDA0003359107730000086
表征所述第三系统函数,
Figure RE-FDA0003359107730000087
表征所述多项式向量;
令w(x)=(w1(x),w2(x),...,wm(x))∈Rm,利用所述第二节点私钥S抽样分布
Figure RE-FDA0003359107730000088
上的短向量e1,i(x)←χ(1≤i≤m);
根据以下第七式子,确定小尺寸的解:
第七式子:
Figure RE-FDA0003359107730000089
其中,
Figure RE-FDA00033591077300000810
表征所述小尺寸的解,e1,1(x),e1,2(x),...,e1,m(x)表征所述短向量;
根据所述小尺寸的解和所述多项式向量,确定解封函数;
根据所述解封函数和所述信号向量,确定与所述第一节点的共享密钥;
其中,所述根据所述小尺寸的解和所述多项式向量,确定解封函数,包括:
根据以下第八式子,确定解封函数:
第八式子:
Figure RE-FDA0003359107730000091
其中,所述v1(x)表征所述解封函数,c1表征所述第一哈希函数,
Figure RE-FDA0003359107730000092
表征所述小尺寸的解,
Figure RE-FDA0003359107730000093
表征所述多项式向量;
其中,
所述根据所述解封函数和所述信号向量,确定与所述第一节点的共享密钥,包括:
根据以下第九式子,确定与所述第一节点的共享密钥:
第九式子:rec(v1(x),<v(x)>2)=K||y
其中,所述v1(x)表征所述解封函数,<v(x)>2表征所述信号向量,K表征解封密钥,y表征获得的验证密钥;
根据单向哈希函数H:{0,1}*→Rq,确定所述验证密钥的第三哈希函数;
根据成对独立的哈希函数h:{0,1}*→{0,1}l,确定所述验证密钥的第四哈希函数;
确定所述封装密文中的所述第一哈希函数,是否与所述第三哈希函数相同;
如果是,确定所述封装密文中的第二哈希函数,是否与所述第四哈希函数相同;
如果是,将所述解封密钥作为与所述第一节点的共享密钥。
CN201811408557.3A 2018-11-23 2018-11-23 一种共享密钥的封装方法、第一节点和第二节点 Active CN109525385B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811408557.3A CN109525385B (zh) 2018-11-23 2018-11-23 一种共享密钥的封装方法、第一节点和第二节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811408557.3A CN109525385B (zh) 2018-11-23 2018-11-23 一种共享密钥的封装方法、第一节点和第二节点

Publications (2)

Publication Number Publication Date
CN109525385A CN109525385A (zh) 2019-03-26
CN109525385B true CN109525385B (zh) 2022-04-08

Family

ID=65778879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811408557.3A Active CN109525385B (zh) 2018-11-23 2018-11-23 一种共享密钥的封装方法、第一节点和第二节点

Country Status (1)

Country Link
CN (1) CN109525385B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111262868B (zh) * 2020-01-17 2021-04-06 中国科学院计算技术研究所 一种基于智能网卡的消息发送方法以及接收方法
CN113315628B (zh) * 2021-04-09 2022-12-16 中国科学院信息工程研究所 密钥封装方法、装置、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003302544A1 (en) * 2002-12-03 2004-06-23 Matsushita Electric Industrial Co., Ltd. Key sharing system, shared key creation device, and shared key restoration device
US7813512B2 (en) * 2003-10-16 2010-10-12 Panasonic Corporation Encrypted communication system and communication device
CN101388770B (zh) * 2008-10-20 2012-08-22 华为技术有限公司 获取动态主机配置协议密钥的方法、服务器及客户端装置
EP2406749B1 (en) * 2009-03-13 2018-06-13 Assa Abloy Ab Transfer device for sensitive material such as a cryptographic key
US9065637B2 (en) * 2012-01-25 2015-06-23 CertiVox Ltd. System and method for securing private keys issued from distributed private key generator (D-PKG) nodes
CN105099693B (zh) * 2014-05-23 2018-10-19 华为技术有限公司 一种传输方法及传输装置
EP3364596A1 (en) * 2017-02-15 2018-08-22 Koninklijke Philips N.V. Key exchange devices and method
CN108512662A (zh) * 2018-04-12 2018-09-07 上海海事大学 一种格上支持策略隐藏的多机构加密方法

Also Published As

Publication number Publication date
CN109525385A (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN109495249B (zh) 一种区块链系统的数据存储方法、节点和区块链系统
US9172529B2 (en) Hybrid encryption schemes
CN109347627B (zh) 数据加解密方法、装置、计算机设备及存储介质
CN110383754B (zh) 基于椭圆曲线同源的密钥协商协议
CN107395368B (zh) 无介质环境中的数字签名方法及解封装方法与解密方法
CN109067517B (zh) 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
US11824999B2 (en) Chosen-plaintext secure cryptosystem and authentication
CN102957538A (zh) 信息处理设备和信息处理方法
CN112715016B (zh) 密钥封装协议
CN115549891B (zh) 同态加密方法、同态解密方法、同态计算方法及设备
CN112997448A (zh) 具有减小的公钥大小的公钥/私钥系统
CN113141247B (zh) 一种同态加密方法、装置、系统及可读存储介质
CN109525385B (zh) 一种共享密钥的封装方法、第一节点和第二节点
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
CN112398646B (zh) 理想格上具有短公共参数的身份基加密方法及系统
WO2021130366A1 (en) Public/private key system with increased security
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
CN107846422A (zh) 一种网关的配置文件加密压缩和解密解压缩的方法
Gobi et al. A comparative study on the performance and the security of RSA and ECC algorithm
WO2013039659A1 (en) Hybrid encryption schemes
CN110677238A (zh) 广播加密方法和装置
CN113315628B (zh) 密钥封装方法、装置、设备及存储介质
CN115766244A (zh) 车联网信息加密方法、装置、计算机设备和存储介质
CN116094716A (zh) 基于椭圆曲线密码学的文本加解密方法、系统及设备

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