CN116455575B - 一种密钥生成、加密、解密方法、电子设备及存储介质 - Google Patents

一种密钥生成、加密、解密方法、电子设备及存储介质 Download PDF

Info

Publication number
CN116455575B
CN116455575B CN202310712729.0A CN202310712729A CN116455575B CN 116455575 B CN116455575 B CN 116455575B CN 202310712729 A CN202310712729 A CN 202310712729A CN 116455575 B CN116455575 B CN 116455575B
Authority
CN
China
Prior art keywords
encryption
vector
encrypted data
preset operator
private 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
CN202310712729.0A
Other languages
English (en)
Other versions
CN116455575A (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.)
Beijing Tianrun Foundation Technology Development Co ltd
Original Assignee
Beijing Tianrun Foundation Technology Development 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 Beijing Tianrun Foundation Technology Development Co ltd filed Critical Beijing Tianrun Foundation Technology Development Co ltd
Priority to CN202310712729.0A priority Critical patent/CN116455575B/zh
Publication of CN116455575A publication Critical patent/CN116455575A/zh
Application granted granted Critical
Publication of CN116455575B publication Critical patent/CN116455575B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • 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/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书公开了一种密钥生成、加密、解密方法、电子设备及存储介质,涉及数据安全领域。密钥生成方法包括:确定私钥以及公钥。其中,确定公钥包括根据预设参数确定第一加密向量以及根据第一加密向量基于第一预设算子对私钥的处理结果,确定第二加密向量。加密方法包括基于前述公钥按预设规则对原始数据进行同态加密。解密方法包括基于前述私钥按预设规则对加密后数据进行同态解密。本说明书提供的第一预设算子可以在保证全同态特性的情况下,减少处理结果的维度数,从而大幅度降低了公钥的长度,进而保证了公钥在传输过程中的准确性,并提高了基于公钥的同态运算的速度。

Description

一种密钥生成、加密、解密方法、电子设备及存储介质
技术领域
本说明书涉及数据安全领域,具体涉及一种密钥生成、加密、解密方法、电子设备及存储介质。
背景技术
全同态加密是一种广泛应用于云计算、人工智能以及金融领域的数据加密方法。基于全同态加密技术,相关设备对处于密文状态的数据进行处理,相当于直接加密前的原始数据中。
在执行全同态加密时,需要生成用于解密的私钥以及用于加密的公钥。其中,私钥是保密信息,公钥的开放信息。因此,在实际应用场景中,公钥经常在不同节点间传输,并经常用于计算过程。由此,如何构建一个方便计算与传输的公钥是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本说明书实施例提供了一种密钥生成、加密、解密方法、电子设备及存储介质,以提供一种便于安全多方运算中进行数据加密的公钥。
第一方面,本说明书实施例提供了一种密钥生成方法,包括:确定私钥;以及根据私钥确定公钥。其中,公钥用于对原始数据进行全同态加密处理以确定加密后数据,公钥包括第一加密向量与第二加密向量。第一加密向量以及第二加密向量按如下方法确定:根据预设参数确定第一加密向量;以及根据第一加密向量基于第一预设算子对私钥的处理结果,确定第二加密向量,其中,对于两个任意n维向量,基于第一预设算子的处理结果为n维向量,且对于三个任意n维向量以不同预设运算顺序基于第一预设算子与第二预设算子确定的两个混合运算结果恒等。
第二方面,本说明书实施例提供了一种加密方法,包括:确定公钥,其中,公钥包括第一加密向量以及第二加密向量。以及根据公钥处理原始数据,确定加密后数据,其中,加密后数据包括第一加密数据以及第二加密数据。第一加密数据以及第二加密数据按如下方法确定包括:根据加密尺度参数处理原始数据,确定转换数据;根据第一加密向量基于第一预设算子对随机向量的处理结果确定第一加密数据,其中,第一预设算子用于处理两个n维向量以得到一个n维向量结果,且对于三个n维向量根据第一预设算子与第二预设算子的混合运算结果满足预设交换规则;以及根据第二加密向量基于第二预设算子对随机向量的处理结果与转换数据叠加,以确定第二加密数据。
第三方面,本说明书实施例提供了一种解密方法,包括:确定私钥以及加密后数据,其中,加密后数据包括第一加密数据以及第二加密数据;根据私钥基于第二预设算子对第一加密数据的处理结果以及第二加密数据确定中间结果,其中,第二预设算子与第一预设算子对应,对于两个任意n维向量,基于第一预设算子的处理结果为n维向量,且对于三个任意n维向量以不同预设运算顺序基于第一预设算子与第二预设算子确定的两个混合运算结果恒等;以及根据加密尺度参数以及中间结果确定原始数据。
第四方面,本说明书实施例提供了一种电子设备,电子设备包括处理器以及用于存储所述处理器可执行指令的存储器。其中,所述处理器用于执行上述第一方面、第二方面或第三方面所述的方法。
第五方面,本说明书实施例提供了一种非暂时性计算机可读存储介质,包括计算机指令,其特征在于,当计算机指令被执行时实现如下操作的一种或多种组合:如第一方面所示的密钥生成方法;如第二方面所示的的公钥加密方法;以及如第三方面所示的私钥解密方法。
基于本说明书实施例提供了一种密钥生成、加密、解密方法、电子设备及存储介质,可以通过本说明书实施例提供的第一预设算子在保证全同态特性的情况下,极大地减少处理结果的维度数,从而大幅度降低了公钥的长度。保证了公钥在传输过程中的准确性,并提高了基于公钥的同态运算的速度。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1是根据本说明书一示例性实施例提供的密钥生成方法的示例性流程图。
图2是根据本说明书一示例性实施例提供的第二加密向量确定方法的示例性流程图。
图3是根据本说明书一示例性实施例提供的加密方法的示例性流程图。
图4是根据本说明书一示例性实施例提供的解密方法的示例性流程图。
图5是根据本说明书一示例性实施例提供的数据传输系统的应用场景示意图。
图6是根据本说明书一示例性实施例提供的全同态加密装置的结构示意图。
图7是本说明书一示例性实施例提供的用于全同态加密的电子设备的框图。
图8a是根据本说明书一示例性实施例提供的发起者节点与参与者节点之间的数据交互示意图。
图8b是根据本说明书一示例性实施例提供的发起者节点、参与者节点以及第三方节点之间的数据交互示意图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另作说明,图中相同标号代表相同结构或操作。
说明书概述
全同态加密是一种广泛应用于云计算、人工智能以及金融领域的数据加密方法。基于全同态加密技术,相关设备对处于密文状态的数据进行处理,相当于直接加密前的原始数据中。
在全同态加密中,对处于密文状态的数据进行处理可以记作同态运算。同态运算主要包括同态加法运算、同态乘法运算以及同态常数乘法运算,其他运算(如大小比较等)可以基于上述同态运算构建。上述同态运算可以通过以下公式表示:①同态加法运算:*a*+*b*=*a+b*,即对a的密文与b的密文的加法运算,相当于a+b的密文,其中**表示加密运算。②同态乘法运算:*a*×*b*=*a×b*,即对a的密文与b的密文的乘法运算相当于a×b的密文。③同态常数乘法运算:C×*a*=*C×a*,即对常数C与a的密文的乘法运算,相当于C×a的密文。
基于上述同态运算,可以保证对加密后数据的运算可以反映在原始数据上,因此,为多方安全计算提供的基础性的保障,进而可以广泛应用于云计算、金融计算以及人工智能领域。
基于上述同态运算可知,基于加密算法对0的加密数据与其他加密后数据的和运算不会影响加密后数据的解密。基于此,在一些实施例中,可以基于0的加密运算生成用于加密的公钥。示例性地,令Enc表示全同态加密方案中的概率私钥加密算法,我们可以对0进行l次加密得到密文c1=Enc(0;r1),...,cl=Enc(0;rl),其中r1,...,rn为随机数,表示噪声或误差。基于上述0加密结果,可以将PK:=(c1,...,cl)作为公钥。用公钥PK加密时,令密文c′=Enc(m;0)为明文m的平凡加密,即非安全的不需密钥的加密。随机生成长度为l的0/1向量(r1,...,rl),则公钥加密m的密文为c=r1c1+...+rlcl+c′。由于前述同态运算的性质,若干0的加密和m的加密仍为m的加密,因此保证解密Dec(c)=m的正确性。
上述公钥加密方案需要生成大量的0的加密,使得公钥长度非常大,在公钥传输过程中速度慢、易出错、存储难等技术问题。示例性地,在TFHE(Fast Fully HomomorphicEncryption over the Torus)加密算法中。在加密参数(安全性参数κ=128bit,私钥长度n=1024,RLWE的密文空间系数q=2^64)的情况下,随机噪声或误差的标准差一般选择σ=2^39,此时,基于TFHE生成的公钥长度l=(n+1)log2 q+k=65728≈216,公钥大小为llog2 q≈526KB。
由此可见,同态加密算法中确定的公钥较大,在实际传输十分容易出错,从而导致全同态加密的运算过程出现问题。此外,基于前述误差的引入,在同态运算中往往需要利用公钥进行运算。基于上述公钥,会显著增大同态加密运算的运算量。
在同态加密方法中,为进一步保证数据安全引入的噪声干扰,并逐渐发展出误差学习(Learning With Errors,LWE)、环上误差学习(Ring Learning With Errors,RLWE)、广义误差学习(Generalized Learning With Errors,GLWE)等多种技术方案。
上述技术方案的核心技术思想可以总结为如下公式:
其中,s(S0,S1,...,Sk-1)为全同态加密中的私钥,A(A0,A1,...,Ak-1)以及B为全同态加密中的公钥,E为预设噪声。算子×可以反映数值乘法或多项式乘法。上述公式中各个元素与算子的具体类型可以根据技术方案确定。
在基于LWE的主流方法中,k=n且Ak-1一般呈现为数值,即向量A(A0,A1,...,An-1)中各个元素均为数值元素。则对应的算子×可以为数值乘法运算。
在基于RLWE的主流方法中,k=1且Ak-1为一个多项式,即向量A(A0)只有一个元素且该元素为多项式。则对应的算子×可以反映多项式乘法。其中,多项式可以理解为其中,x为未知数,A0为该未知数x的各次系数的集合。多项式乘法可以理解为对两个多项式相乘后,其未知数x的各次系数的计算结果。
在基于GLWE的主流方法中,k=n且Ak-1为一个多项式向量,即向量A(A0,A1,...,An-1)中各个元素均为多项式。则对应的算子×可以为多项式乘法运算。
需要说明的事,上述公式仅对其加密原理进行说明,在实际加密过程中还可以包括其他运算或进一步处理。例如,在RLWE中B需要进行基于模长的取模运算。再例如,前述前可以根据添加系数,以与解密方法对称。此外,在计算层面向量和多项式是可以互相转换的。例如,对于向量(u1,u2,...,un),在某些计算中可以转换为多项式u1+u2x+...+unxn-1
在上述加密方案中,综合性能与安全性的考虑,RLWE的应用较为广泛,但在RLWE的加密方案中,因为执行多项式乘法,其计算结果维度非常的多。例如,对于n维多项式与m维多项式的多项式乘法,其计算出未知数x的最高次幂为(n-1)×(m-1),则其计算结果的系数约为nm项,再考虑到加密空间系数一般较大,其产生的公钥长度与大小均非常的大,不便于传输与储存。
由此,本说明书提供一种基于第一预设算子的全同态加密、解密及密钥生成方法,基于本说明书提供的第一预设算子可以在保证全同态特性的情况下,减少处理结果的维度数,从而大幅度降低了公钥的长度,进而保证了公钥在传输过程中的准确性,并提高了基于公钥的同态运算的速度。
示例性密钥生成方法
图1是根据本说明书一示例性实施例提供密钥生成方法的示例性流程图。图1的方法/流程P100可以由基于全同态加密技术实现,并由发起者节点、密钥生成模块或其他计算设备执行。
如图1所示,P100可以包括如下步骤:
S110,确定私钥。
私钥可以指全同态加密中用于解密的解密密钥。在一些实施例中,私钥可以基于全同态加密中的预设加密参数确定。在一些实施例中,私钥一般与私钥长度以及密文空间系数q(也称为模长q)确定。私钥长度可以决定私钥的内部元素的数量(维度数),加密空间系数q可以决定私钥的各个元素的取值范围。
在一些实施例中,私钥的呈现形式可以根据具体加密方案确定。例如,在LWE方案中,私钥可以是一个n维向量,其中,向量的每个元素可以从Zq内取值,其中,Zq指(-q/2,q/2]内的整数范围。再例如,在RLEW方案中,私钥可以是一个n维多项式,其中,多项式的每个系数可以从(-q/2,q/2]的整数范围内选取。又例如,在GLEW方案中,私钥可以是一个n维矩阵(也可以理解为n维向量,向量的每个元素为多项式),其中,每个元素可以从(-q/2,q/2]的整数范围内选取。
S120,根据私钥确定公钥。
公钥可以指全同态加密中用于加密的加密密钥,即公钥可以用于对原始数据进行全同态加密处理以确定加密后数据。在一些实施例中,公钥可以呈现为一个二元组,其中,公钥可以包括第一加密向量与第二加密向量。
需要说明的是,在实际应用层面不同的加密方案在应用层面会对公钥进行进一步处理。例如,在RLEW方案中,对于第二加密向量需要进行取整以及基于模长q取模的计算操作。本说明书提供的计算方法仅对生成原理进行说明,更多细节内容可以根据现有技术进行适应性处理。
S120可以包括如下子步骤:
S121,根据预设参数确定第一加密向量。
第一加密向量可以是前述说明书概述处的向量A(A0,A1,…,Ak-1)。预设参数可以指反应私钥呈现方式的参数,如前述私钥长度以及模长q。在一些实施例中,第一加密向量与私钥的呈现形式类似,可以是一个在Zq内取值的随机向量。其中,当私钥为向量或多项式时,第一加密向量中的每个元素可以为数值。当私钥为以多项式为元素的向量时,第一加密向量中的每个元素可以为多项式。
S122,根据第一加密向量基于第一预设算子对私钥的处理结果,确定第二加密向量。
第二加密向量可以是前述说明书概述处的向量B。在本说明书中第二加密向量的维度数与第一加密向量一致。例如,当第一加密向量中的每个元素可以为数值,第二加密向量B的每个元素也为数值。当第一加密向量中的每个元素可以为多项式,第二加密向量B的每个元素也为多项式。
根据第一加密向量基于第一预设算子对私钥的处理结果可以记作A★S,其中,S可以指前述私钥,★是第一预设算子。在一些实施例中,可以基于处理结果A★S替换前述说明书概述处的相关计算并进行适应性调整,从而确定第二加密向量B。
第一预设算子是一种基于加法与乘法的混合运算而构建的加密算子,可以用于处理两个n维向量以得到一个n维向量结果。即基于第一预设算子可以将多项式以向量的方法进行处理,在保证全同态性能的同时,得到一个维度较小的结果(结果与原多项式维度相同),从而减少结果的大小。
考虑到上述第一预设算子是一种复合运算,在解密时无法基于现有解密方法直接基于加减运算将相同项消除以确定原始数据。由此,本说明书提供第二预设算子,其中,对于三个n维向量以不同预设运算顺序基于第一预设算子与第二预设算子确定的两个混合运算结果恒等。示例性地,第二预设算子记作对于三个n维向量θ、β、γ,混合运算结果可以包括/>以及/>预设交换规则可以理解为/>
由此,可以基于第一预设算子与第二预设算子构建全同态加密与解密方法,从而使解密时构建前述两种形式的混合运算结果,从而实现相同项消除以确定原始数据。
需要说明的是,两个混合运算结果恒等可以理解为在第一预设算子与第二预设算子的允许运算范围内成立。对于无法基于第一预设算子与第二预设算子运算的情况,混合运算结果是否恒等不在本说明书的讨论范围内。此外,考虑到向量与算子在计算顺序上的排列组合,混合运算结果可以包括多种情况,上述等式的恒成立可以理解为基于两个固定运算顺序确定的两个不同的混合运算结果,其在结果层面恒等,对于其他运算顺序的对应情况本说明书不做限制。
基于上述密钥生成方法,在构建公钥时基于第一预设算子对私钥进行处理。当私钥包含多项式时,第一预设算子可以通过向量处理的方案,确定一个与原多项式维度相同的处理结果,从而在保证全同态特性的情况下明显减少公钥中相关处理结果的维度数,大幅度降低了公钥的长度,进而保证了公钥在传输过程中的准确性,并提高了基于公钥的同态运算的速度。
在一些实施例中,第一预设算子与第二预设算子中的一个可以基于全同态加密的方案从向量/矩阵一般运算或其混合运算确定。则对应的另一个可以基于已确定的算子而构建。
在一些实施例中,第二预设算子可以是向量内积运算或矩阵乘法运算。其中,第二预设算子可以根据实际全同态加密方案确定。例如,在LWE以及RLWE方案中,第二预设算子可以是向量内积运算。在GLWE方案中,第二预设算子可以是矩阵乘法运算(即矩阵×乘)。
当第二预设算子为向量内积运算或矩阵乘法运算时,考虑到向量内积运算或矩阵乘法运算为常见运算,第二预设算子的执行速度较快,处理方法也较为直接。
在一些实施例中,响应于第二预设算子为向量内积运算或矩阵乘法运算,第一预设算子可以构建为两个向量中对应向量的乘积的加减混合运算。
以第一向量u=(u1,…,un)与第二向量v=(v1,…,vn)为例,第一向量u基于第一预设算子★对第二向量v进行处理结果可以通过如下公式确定:
需要说明的是,上述公式仅作为一种示例,在实际应用层面可以对上述公式进行调整。例如,求和的第一项中i的取值范围可以调整为[1,k),第二项中j的取值范围可以调整为[k,n]。此外,本说明书并不对第一预设算子处理对象的维度进行强制要求。例如,对于n维向量与m维向量(n>m),也可以基于第一预设算子进行运算,在运算前可以利用0元素在m维向量的第m项后填充中少的元素,从而将m维向量转换为一个n维再进行处理,以确定处理结果。
基于上述第一预设算子在确定第二加密向量时,相对于传统多项式乘法,第一预设算子并未明显增加运算量,进而可以保证一个较快的执行速度。
在一些实施例中,在实际应用层面,第一加密向量基于第一预设算子对私钥的处理结果中的具体运算可以根据实际情况确定。
在一些实施例中,当私钥包括n维数值向量或n维多项式,前述第一加密向量基于第一预设算子对私钥的处理结果可以根据公式a★s确定。
其中,表示第一预设算子,s表示私钥,a表示第一加密向量。进一步地,s可以具体为私钥的n维向量表示。即当私钥为n维多项式时,可以将多项式系数转化为n维向量。
在一些实施例中,当私钥包括n维私钥向量,其中,n维私钥向量中的各个向量元素为多项式,第一加密向量中各个向量元素为多项式。前述第一加密向量基于第一预设算子对私钥的处理结果可以是一个元素为多项式的n维向量。具体可以为如下形式:
(a1★s1,a2★s2,……,an★sn)
其中,★表示第一预设算子,sk表示私钥向量中第k个元素对应的多项式,ak表示第一加密向量中第k个元素对应的多项式。
在一些实施例中,数值矩阵也可以转化为一个各个向量元素为多项式的n维向量。
需要说明的是,当对第二加密向量的数据结构有特殊要求时,还可以对上述过程进行调整。例如,当私钥为多项向量,但第二加密向量要求呈现为数值向量时,可以对前述计算结果进行对应元素位置求和,以满足加密要求。
基于上述处理结果,方便在确定第二加密向量时,根据不同的加密方案进行适应性调整,提高了本方法在不同加密方案中的迁移能力。
示例性第二加密向量确定方法
图2是根据本说明书一示例性实施例提供的第二加密向量确定方法的示例性流程图。图2所示的方法/流程P200可以由的密钥生成模块执行。
如图2所示,P200可以包括如下步骤:
S210、确定噪声向量以及加密系数。
噪声向量可以指为提高安全性能在第二加密向量中添加的随机向量。在一些实施例中,噪声向量可以基于预设参数确定。噪声向量的各个元素值一般为离散高斯误差分布中的随机值。例如,预设参数可以包括安全性参数,可以根据安全性参数确定离散高斯误差分布的方差,从而确定离散高斯误差分布,再从离散高斯误差分布中确定噪声向量。
加密系数可以指在确定第二加密向量时各个元素的系数。在一些实施例中,加密系数与私钥解密时的解密系数对应,用于在解密时基于第一预设算子与第二预设算子的交换规则消除第一预设算子与第二预设算子的混合运算。在一些实施例中,为避免加密系数在同态运算时影响实际数值,加密系数一般取值为±1。
S220、根据加密系数,将第一加密向量基于第一预设算子对私钥的处理结果与噪声向量叠加,以确定第二加密向量。
在一些实施例中,噪声向量的数据结构可以与处理结果一致,将噪声向量叠加在处理结果时,可以基于加密系数执行向量/多项式加法。即基于加密系数将对应元素进行加减,以确定第二加密向量。
基于上述噪声叠加方法,在确定第二加密向量时,噪声向量并不产生额外的维度信息,进一步减少了第二加密向量的大小。
仅作为一种示例,第二加密向量可以基于公式b=a★s+e确定,其中,加密系数为1。
需要说明的是,上述公式进说明第二加密向量的原理公式,在实际应用时可以根据具体全同态加密方案进行调整。例如,在RLWE中,在基于上述计算后需要对计算结果基于模长q进行取整与取模,则第二加密向量基于公式b=[a*s+e]mod q确定。
基于上述公钥生成方法,仍以RLWE方案为例,选取说明书概述处TFHE算法相同的加密参数(即安全性参数κ=128bit,私钥长度n=1024,RLWE的密文空间系数q=2^64、标准差σ=2^39)。基于本说明书提供的技术方案,公钥中第一加密向量以及第二加密向量均为n维度的数值向量,且噪声直接叠加在向量中不而外产生长度,则可知,基于本说明书提供的公钥生成方案,公钥长度为l=2n log2q,公钥大小约为8.2KB。与前述TFHE算法比较,公钥大小仅为TFHE算法确定公钥的1.56%。考虑到公钥频繁传输于节点之间,并广泛用于同态运算,基于本说明书提供的公钥可以明显提高全同态加密的准确性与安全性。具体地,将全同态加密应用于云计算场景中,可以明显减少云计算的计算量。
示例性公钥加密方法
图3是根据本说明书一示例性实施例提供的基于全同态加密技术的加密方法的示例性流程图。图3的方法/流程P300可以由的参与者节点、公钥加密模块或其他计算设备执行。
如图3所示,P300可以包括如下步骤:
S310、确定公钥。
S310中的公钥可以是P100所确定的公钥。其中,公钥包括第一加密向量以及第二加密向量。在一些实施例中,执行P300的参与者节点可以从发起者节点处确定公钥。关于参与者节点与发起者节点之间的数据交互可以参见图5-8的相关描述。
S320、根据公钥处理原始数据,确定加密后数据。
原始数据可以指需要进行加密的明文数据,加密后数据可以指对原始数据进行全同态加密后的密文数据。在一些实施例中,原始数据指将原始信息进行转换后的一个预设长度的数字串。例如,可以按照文字的编码方式将字符转化为数字串。再例如,可以根据编码方式将字符串转为为一个或多个数字串。
在一些实施例中,基于本说明书提供的密钥加密方法,加密后数据呈现为一个二元组。即加密后数据可以包括第一加密数据以及第二加密数据。
S320可以包括如下子步骤:
S321、根据加密尺度参数处理原始数据,确定转换数据。
加密尺度参数可以指将明文转化为密文时的数字比例。加密尺度参数可以根据预设加密参数确定。即加密尺度参数Δ=q/t,其中,q为前述密文空间系数q,t为明文空间系数。
转换数据可以理解为将原始数据按加密尺寸参数放大后的数据。例如,转换数据可以以Δm形式呈现,其中,m为原始数据。
S322、根据第一加密向量基于第一预设算子对随机向量的处理结果确定第一加密数据。
随机向量可以指与第一加密向量数据结构对应且元素值较小的随机生成的向量。其中,元素值较小值可以理解为随机向量中的最大范数小于预设预设阈值(如明文空间系数t)。例如,随机向量中各个元素可以在[-1,1]中取整数值。
在一些实施例中,第一加密向量基于第一预设算子对随机向量的处理结果可以表征为a★r。其中,第一预设算子的具体内容可以参见前述P100的相关描述。
在一些实施例中,在确定第一加密向量时可以引入噪声。即可以先确定第一噪声向量,在将第一噪声向量叠加在处理结果a★r中。第一噪声向量的形式与噪声向量一致,具体可以参见P200的相关描述。
在一些实施例中,第一加密向量可以基于公式c1=a★r+e1确定。其中,c1表示第一加密向量,a表示第一加密向量,r为随机向量,★为第一预设算子,e1为第一噪声向量。
S323、根据第二加密向量基于第二预设算子对随机向量的处理结果,与转换数据叠加,以确定第二加密数据。
第二预设算子可以指前述与第一预设算子对应的算子,具体为方便说明,在后续说明中第二预设算子直接以向量内积为例进行说明。
第二加密向量基于第二预设算子与随机向量的处理结果可以表征为<b|r>,其中,<b|r>表示向量b、r之间的向量内积运算(即前述第二预设算子)。将转换数据叠加在处理结果<b|r>上可以理解为基于向量加法/多项式加法,将对应元素的数值叠加。
在一些实施例中,在确定第二加密向量时可以引入噪声。即可以先确定第二噪声向量,在将第二噪声向量叠加在处理结果<b|r>+Δm中。第二噪声向量的形式与噪声向量一致,具体可以参见P200的相关描述。
在一些实施例中,第一加密向量可以基于公式c2=<b|r>+Δm+e2确定。其中,c2表示第二加密向量,b表示第二加密向量,r为随机向量,e2为第二噪声向量,Δm为转换数据。
基于上述公钥加密过程,实现了公钥在加密的实际应用,进而实现了基于第一预设算子与第二预设算子在加密层的落地。
需要说明的是,上述加密过程仅是一种基于加密原理上的示例,在实际应用中可以根据需要进行调整。例如,可以在进行转换时还可以为原始数据进行进一步加密,并将该加密算法的加密密钥作为私钥一部分。再例如,上述方案在应用与RLWE中,在确定第一加密数据与第二加密数据后需要对各个加密数据执行基于模长q的取模操作。
示例性私钥解密方法
图4是根据本说明书一示例性实施例提供的基于全同态加密技术的解密方法的示例性流程图。图4的方法/流程P400可以由的发起者节点、私钥解密模块或其他计算设备执行。
如图4所示,P400可以包括如下步骤:
S410,确定私钥以及加密后数据。
S410中的私钥可以是基于P100确定的私钥。在一些实施例中,加密后数据可以根据实际情况确定。例如,S410中的加密后数据可以指直接基于公钥对原始数据加密的加密结果。再例如,S410中的加密后数据可以对加密后结果执行同态运算后的数据,其中,加密后数据经同态运算其数据结构仍与原始的加密后数据一致,其解密结果可以为原始数据直接进行对应运算后的结果。在一些实施例中,S410还可以根据实际应用场景进行调整。具体可以参见图5-8的相关描述。
S420,根据私钥基于第二预设算子对第一加密数据的处理结果以及第二加密数据确定中间结果。
中间结果可以指不包含第一预设算子与第二预算算子混合运算结果的处理结果。即对于为进行同态运算的加密后数据,其基于理论推导的中间结果中不包含混合运算结果。
私钥基于第二预设算子对第一加密数据的处理结果可以表征为<c1|s>,处理结果<c1|s>=<a★r+e1|s>=<a★r|s>+<e1|s>。
前述第二加密数据c2=<b|r>+Δm+e2=<a★s+e|r>+Δm+e2=<a★s|r>+<e|r>+Δm+e2
为消除混合运算结果<a★r|s>以及<a★s|r>,可以将处理结果<c1|s>与第二加密数据c2执行多项式/向量减法。此时,中间结果μ=c2-<c1|s>=<a★s|r>-{a★r|s>+{e|r>-<e1|s>+e2+Δm。基于前述混合运算结果恒等性质,中间结果μ={e|r>-<e1|s>+e2+Δm=Δm+E,E=<e|r>-<e1|s>+e2
需要说明的是,本说明书并不限制第一预设算子与第二预设算子的优先级。前述示例中第一预设算子★与第二预设算子<|>优先级一致。其中,前述表示<a★r|sk>可以理解为<(a★r)|sk>。
S430,根据加密尺度参数以及中间结果确定原始数据。
在一些实施例中,基于前述中间结果μ,μ/Δ=(Δm+E)/Δ=m+E/Δ。在噪声的选取层面,各个噪声向量的最大范数较小,则E/Δ可以忽略不计。即原始数据m=μ/Δ。
在一些实施例中,上述过程基于加密系数为1执行,在实际应用层面可以根据加密系数确定对应的解密系数,从而确定中间结果。即在解密前,可以先确定解密系数;再根据私钥基于第二预设算子对第一加密数据的处理结果,基于解密系数对第二加密数据执行叠加处理,以确定中间结果。其中,解密系数与加密系数对应,用于消除第一预设算子与第二预设算子的混合运算结果。示例性地,当前述加密系数为-1时,则解密系数可以为1。则此时第二加密向量基于公式b=-a★s+e确定,对应的中间结果μ=c2+<c1|s>。
基于上述私钥解密过程,实现了私钥在加密的实际应用,进而实现了基于第一预设算子与第二预设算子在解密层的落地。此外,还论证了基于本说明书提供的解密方案能还原出原始数据。
需要说明的是,在实际应用层面,前述解密方法可以根据具体加密方案进行适应调整。例如,在RLWE中,原始数据需要取整后基于模长t进行取模操作,即原始数据m=[μ/Δ]mod t
全同态加密实例
本说明书还提供了一个基于前述方案的全同态加密实例。在本实例中,加密涉及参数选取为n=4,q=64,t=4,Δ=q/t=16。
私钥可以为:s←0+5X-1X2+0X3=(0,5,-1,0)
公钥可以基于如下过程生成:
a←3+0X+0X2+1X3=(3,0,0,1)
e←1+1X+0X2+0X3=(1,1,0,0)
a★1s=3×0一(0×0+0×5+1×(-1))=1
a★2s=(3×(-1)+0×0)-(0×0+1×5)=--8
a★3s=(3×5+0×(-1)+0×0)-1×0=15
a★4s=3×0+0×5+0×(-1)+1×0=0
b=a★s+e=(1+1,-1,15+0,0+0)=(2,-1,15,0)
基于上述过程,公钥p=(a,b)=(3+0X+0X2+1X3,2-1X+15X2+0X3)
基于上述过程,对于原始数据m=2,可以基于如下过程执行公钥加密:
m=2
r←(1,0,-2,0)
e1←(0,0,1,1)
e2←2
c1=a★r+e1=(2+0,-6+0,-1+1,3+1)=(2,-6,0,4)
c2=<b|r>+Δm+e2=2×1+(-1)×0+15×(--2)+0×0+16×2+2=6
基于上述过程,对原始数据m=2处理后的加密后数据c=(c1,c2)=(2-6X+0X2+4X3,6)
基于上述加密后数据,可以基于如下过程进行解密
μ=c2-<c1|s>=6-(2×0+(--6)×5+0×(-1)+4×0)=36
而解密后数据与原始元素m=2一致,可验证本说明书提供的全同态加密方法有效。
示例性应用场景
图5是根据本说明书一示例性实施例提供的数据传输系统的应用场景示意图。在一些实施例中,数据传输系统500可以是一种执行安全多方计算的系统,其中,数据传输系统500的内部节点之间基于全同态加密进行数据传输。
如图5所示的应用场景中,数据传输系统500可以包括发起者节点510、至少一个参与者节点520以及网络530。发起者节点510可以是安全多方计算的发起者。在一些实施例中,发起者节点510可以响应于安全多方事件而构建数据传输系统。其中,发起者节点510的安全多方事件可以反映本次多方安全计算的目的。例如,安全多方事件可以为数据传输事件,则本次多方安全计算可以用于将参与者节点520的数据传输至发起者节点510。
在一些实施例中,发起者节点510可以确定本次安全多方计算的部分参数。例如,发起者节点510可以确定全同态加密中的安全指标、明文空间系数、密文空间系数、维度等加密指标。再例如,发起者节点510可以确定全同态加密中的公钥,以使各个参与者节点520基于发起者节点510的公钥执行加密。
参与者节点520可以是本次安全多方计算的参与者。参与者节点520可以根据本次安全多方计算的实际应用场景确定。例如,在进行公司数据汇总时,参与者节点520可以是发起者节点510的下属部分。
在一些实施例中,参与者节点520可以基于发起者节点510的公钥执行全同态加密,从而实现与发起者节点510之间的数据传输。关于发起者节点510与参与者节点520之间的数据交互可以参见图8a及其相关描述,在此不做赘述。
网络530可以用于使数据传输系统500内部的各个节点实现通讯连接,促进数据和/或信息的交换。在一些实施例中,网络530可以是有线网络或无线网络中的任意一种或多种。在一些实施例中,网络可以是点对点的、共享的、中心式的等各种拓扑结构或者多种拓扑结构的组合。在一些实施例中,网络530可以包括一个或以上网络接入点。例如,网络530可以包括有线或无线网络接入点,例如基站和/或网络交换点531、532、…。通过这些交换点,数据传输系统500中的一个或多个组件可连接到网络530上以交换数据和/或信息。
在一些实施例中,如图5所示,数据传输系统500还可以包括第三方节点540。第三方节点540可以是一种用于对数据传输系统500内部数据进行数据处理的机构。在一些实施例中,第三方节点540可以基于同态运算实现对数据传输系统500内部数据进行数据处理。例如,第三方节点540可以基于同态乘法以及同态加法构建内部数据的数据处理,以确定处理结果。
在一些实施例中,第三方节点540一般为第三方服务结构和/或其他可信赖机构(如具有一定官方权威性的组织/机构)。在一些实施例中,第三方节点540执行的具体数据处理可以根据本次安全多方计算确定。例如,当本次安全多方计算为联邦学习时,第三方节点540可以根据发起者节点510的模型初始参数以及发起者节点510和参与者节点520提供的样本数据进行模型训练。关于包含第三方节点540的数据交互过程可以参见图8b及其相关描述。
在一些实施例中,安全多方计算可以指同态加密拍卖。其中,发起者节点510可以是拍卖标的持有方,参与者节点520可以是本次拍卖的参与者,第三方节点540可以是本次拍卖组织者。其中,参与者节点520可以对出价基于发起者节点510的公钥进行加密,并交付给第三方节点。并由第三方节点对加密后的价格进行比较处理,确定出价最高的目标参与者节点,并将目标参与者节点及其出价发送给发起者节点510,并由发起者510进行解密从而确定实际价格。
应当注意,数据传输系统500的以上描述仅出于说明的目的而提供,并不旨在限制本实施例的范围。对于本领域普通技术人员,可以在本实施例的教导下进行多种变化和修改。例如,可以根据具体的实施方案变化或改变数据传输系统500内各个设备的组装和/或功能。
示例性全同态加密装置
图6是根据本说明书一示例性实施例提供的全同态加密装置的结构示意图。其中,图6中的全同态加密装置600可以作为图5中数据传输系统500中的各个节点。
如图6所示,全同态加密装置600可以包括密钥生成模块610、公钥加密模块620、同态运算模块630以及私钥解密模块640中的一种或多种组合。
密钥生成模块610可以用于基于预设参数生成公钥与私钥,其中,私钥进行保护保存,公钥可以公开传播。例如,可以生成公钥并将下载链接传播到与该全同态加密装置200通信的其他全同态加密装置。关于密钥生成方法的具体内容可以参见P100及其相关描述,在此不做赘述。
公钥加密模块620可以用于基于公钥对原始数据进行加密,以确定加密后数据。关于公钥加密方法的更多内容可以参见P300及其相关描述,在此不做赘述。
同态运算模型630可以对加密后数据进行同态运算,以确定运算后的加密后数据。其中,基于本说明书提供的公钥加密方法,加密后数据的呈现形式与现有技术类似,本说明书中加密后数据的同态运算可以基于现有技术中的同态运算执行。例如,可以基于BFV(Brakerski-Fan-Vercauteren)加密算法的同态运算算法与过程执行。示例性地,本说明书生成的加密后数据为一个二元组,对于同态加密运算可以直接执行,对于同态乘法运算与同态常数乘法运算可以先进行乘法运算得到一个包含计算结果的三元组,再对三元组执行重线性化操作转化为二元组。在同态乘法运算与同态常数乘法运算中会基于公钥进行计算。
私钥解密模块640可以基于私钥对加密后数据进行解密,以得到原始数据。关于私钥解密方法的更多内容可以参见说明书P400及其相关描述,在此不做赘述。
需要说明的是,全同态加密装置600所包含的具体模块可以根据在实际应用场景其承担的具体功能确定。本说明书对此并不限制。
示例性地,当全同态加密装置600作为发起者节点510时,发起者节点510一般可以包括密钥生成模块610以及私钥解密模块640。当全同态加密装置600作为参与者节点520时,参与者节点520一般可以包括公钥加密模块620。当全同态加密装置600作为第三方节点540,第三方节点540,一般可以包括同态运算模型630。
示例性电子设备及计算机可读存储介质
图7是本说明书一示例性实施例提供的用于全同态加密的电子设备700的框图。在一些实施例中,电子设备700可以作为前述全同态加密装置600。
参照图7,电子设备700包括处理组件710,其进一步包括一个或多个处理器,以及由存储器720所代表的存储器资源,用于存储可由处理组件710的执行的指令,例如应用程序。存储器720中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件710被配置为执行指令,以执行上述全同态加密中的密钥生成方法、加密方法以及解密方法中的一种或多种组合。
电子设备700还可以包括一个电源组件被配置为执行电子设备700的电源管理,一个有线或无线网络接口被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口。可以基于存储在存储器720的操作系统操作电子设备700,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
一种非临时性计算机可读存储介质,当存储介质中的指令由上述电子设备700的处理器(如处理组件710)执行时,使得上述电子设备700能够执行一种上述全同态加密中的密钥生成方法、公钥加密方法以及私钥解密方法中的一种或多种组合。
示例性数据交互过程
图8是根据本说明书一示例性实施例提供的参与者节点之间的数据交互示意图。其中,图8a是一种发起者节点与参与者节点之间的数据交互示意图;图8b是一种发起者节点、参与者节点以及第三方节点之间的数据交互示意图。
如图8a所示,在该数据传输场景下包括发起者节点510与参与者节点520。
在发起者节点510以及参与者节点520的数据交互过程中:
发起者节点510可以响应于安全多方计算事件,执行密钥生成方法,生成私钥与公钥,并将公钥发送给参与者节点520。
参与者节点520可以接收公钥并基于公钥对原始数据执行加密处理,以确定加密后数据,再将加密后数据发送给发起者节点510。
发起者节点510可以接收加密后数据并基于私钥对加密后数据执行解密处理以确定原始数据。
需要说明的是,前述安全多方计算事件以及原始数据可以根据实际多方安全计算需求确定。例如,安全多方计算事件可以是数据汇总任务。前述原始数据可以为数据汇总任务需要的汇总数据。此时,仅作为一种示例性说明,前述发起者节点510以及参与者节点520可以是在实际中管辖关系的机构。例如,发起者节点510可以是金融机构的总部,参与者节点520可以是金融机构的分支机构。再例如,发起者节点510可以是金融监管部门,参与者节点520可以是金融机构。
如图8b所示,在该数据传输场景下包括发起者节点510、参与者节点520以及第三方节点540。
在发起者节点510、参与者节点520以及第三方节点540的数据交互过程中:
发起者节点510可以响应于安全多方计算事件,执行密钥生成方法,生成私钥与公钥,并将公钥发送给参与者节点520以及第三方节点540。
参与者节点520可以接收公钥并基于公钥对原始数据执行加密处理,以确定加密后数据,再将加密后数据发送给第三方节点540。
第三方节点540可以基于公钥对加密后数据进行同态运算处理,确定同态处理结果,并将同态处理结果发送到发起者节点510。
发起者节点510可以基于同态处理结果确定加密后数据,并对加密后数据执行解密处理以确定原始数据。
在一些实施例中,同态处理结果的数据结构可以根据实际需要调整。例如,当安全多方计算事件与选择参与者节点有关(如同态加密拍卖),则同态处理结果可以指向参与者节点520中的目标参与者节点(如同态处理结果为目标参与者节点的节点标识信息、指向该节点的数据指针等),以使发起者节点510从目标参与者节点处确定加密后数据。再例如,当安全多方计算事件与实际数据处理有关(如联邦学习),则同态处理结果本身可以包括同态运算后的加密后数据。此时,发起者节点510可以直接对该同态处理结果进行解密,从而确定处理后的原始数据(如基于联邦学习确定的模型参数)。
需要说明的是,前述安全多方计算事件、原始数据以及同态处理结果可以根据实际多方安全计算需求确定。例如,安全多方计算事件可以是标的物品的拍卖时间(如大宗货物拍卖),则对应的安全多方计算可以实际应用于同态加密拍卖(也可以称为隐私拍卖)。前述原始数据可以各个参与方对标的物品的具体出价,同态处理结果可以为本次拍卖的中标者。
上述所有可选技术方案,可采用任意结合形成本说明书的可选实施例,在此不再一一赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序校验码的介质。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所作的任何修改、等同替换等,均应包含在本说明书的保护范围之内。

Claims (15)

1.一种密钥生成方法,其特征在于,包括:
确定私钥;以及
根据所述私钥确定公钥,其中,所述公钥包括第一加密向量与第二加密向量,所述第一加密向量以及所述第二加密向量按如下方法确定:
根据预设参数确定所述第一加密向量;以及
根据所述第一加密向量基于第一预设算子对所述私钥的处理结果,确定所述第二加密向量,其中,对于两个任意n维向量,基于所述第一预设算子的处理结果为n维向量,且对于三个任意n维向量以不同预设运算顺序基于第一预设算子与第二预设算子确定的两个混合运算结果恒等。
2.根据权利要求1所述的方法,其特征在于,所述第一预设算子包括向量内积运算或矩阵乘法运算。
3.根据权利要求2所述的方法,其特征在于,对于两个任意n维向量u、v,基于所述第一预设算子的处理结果u*v,基于如下公式确定:
u★v=(u★1v,…,u*nv),其中,u*kv=∑(ui×vi+n-k)-∑(uj×vj-k),i为[1,k]内的任意整数值,j为(k,n]内的任意整数值,uk表示向量u中第k个元素对应的元素值,vk表示向量v中第k个元素对应的元素值,*表示所述第一预设算子。
4.根据权利要求1所述的方法,其特征在于,所述私钥包括n维数值向量或n维多项式,所述第一加密向量基于第一预设算子对所述私钥的处理结果根据公式a*s确定;
其中,*表示所述第一预设算子,s表示所述私钥,a表示所述第一加密向量。
5.根据权利要求1所述的方法,其特征在于,所述私钥包括n维私钥向量,其中,所述n维私钥向量中的各个向量元素为多项式,所述第一加密向量中各个向量元素为多项式,所述第一加密向量基于第一预设算子对所述私钥的处理结果根据公式(a1★s1,a2★s2,……,an★sn)确定;
其中,★表示所述第一预设算子,sk表示所述私钥向量中第k个元素对应的多项式,ak表示所述第一加密向量中第k个元素对应的多项式。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一加密向量基于第一预设算子对所述私钥的处理结果,确定所述第二加密向量,包括:
确定噪声向量以及加密系数;以及
根据所述加密系数,将所述第一加密向量基于所述第一预设算子对所述私钥的处理结果与所述噪声向量叠加。
7.根据权利要求1所述的方法,其特征在于,所述方法基于全同态加密技术实现、应用于安全多方计算并由发起者节点执行,所述方法还包括:
将所述公钥发送到所述安全多方计算的参与者节点,以使所述参与者节点基于所述公钥对原始数据进行加密处理,确定加密后数据;和/或
将所述公钥发送到所述安全多方计算的第三方节点,以使所述第三方节点基于所述公钥对所述加密后数据进行同态运算处理,确定处理结果。
8.一种加密方法,其特征在于,包括:
确定公钥,其中,公钥包括第一加密向量以及第二加密向量;以及
根据所述公钥处理原始数据,确定加密后数据,其中,所述加密后数据包括第一加密数据以及第二加密数据,所述第一加密数据以及所述第二加密数据按如下方法确定包括:
根据加密尺度参数处理所述原始数据,确定转换数据;
根据所述第一加密向量基于第一预设算子对随机向量的处理结果确定第一加密数据,其中,所述第一预设算子用于处理两个n维向量以得到一个n维向量结果,且对于三个n维向量以不同预设运算顺序基于第一预设算子与第二预设算子确定的两个混合运算结果恒等;以及
根据所述第二加密向量基于所述第二预设算子对所述随机向量的处理结果与所述转换数据叠加,以确定所述第二加密数据。
9.根据权利要求8所述的方法,其特征在于,所述方法基于全同态加密技术实现、应用于安全多方计算并由参与者节点执行,所述方法还包括:
将所述加密后数据发送到所述安全多方计算的发起者节点,以使所述发起者节点对所述加密后数据进行解密处理,确定所述原始数据;和/或
将所述加密后数据发送到所述安全多方计算的第三方节点,以使所述第三方节点基于所述公钥对所述加密后数据进行同态运算处理,确定处理结果。
10.一种解密方法,其特征在于,包括:
确定私钥以及加密后数据,其中,所述加密后数据包括第一加密数据以及第二加密数据;
根据所述私钥基于第二预设算子对所述第一加密数据的处理结果以及所述第二加密数据确定中间结果,其中,所述第二预设算子与第一预设算子对应,对于两个任意n维向量,基于所述第一预设算子的处理结果为n维向量,且对于三个任意n维向量以不同预设运算顺序基于所述第一预设算子与所述第二预设算子确定的两个混合运算结果恒等;以及
根据加密尺度参数以及所述中间结果确定原始数据。
11.根据权利要求10所述的方法,其特征在于,所述根据所述私钥基于第二预设算子对所述第一加密数据的处理结果以及所述第二加密数据确定中间结果,包括:
确定解密系数,所述解密系数与公钥的加密系数对应;以及
根据所述私钥基于第二预设算子对所述第一加密数据的处理结果,基于所述解密系数对所述第二加密数据执行叠加处理,以确定中间结果,其中,所述中间结果不包括所述第一预设算子以及所述第二预设算子的所述混合运算结果。
12.根据权利要求10所述的方法,其特征在于,所述方法基于全同态加密技术实现、应用于安全多方计算并由发起者节点执行,所述确定私钥以及加密后数据还包括:
接收所述安全多方计算的参与者节点的加密后数据。
13.根据权利要求12所述的方法,其特征在于,所述接收所述安全多方计算的参与者节点的所述加密后数据,包括:
接收所述安全多方计算的第三方节点确定的同态处理结果;以及
基于所述同态处理结果确定从所述安全多方计算的发起者节点中确定目标发起者节点;
确定所述目标发起者节点的加密后数据。
14.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器用于执行上述权利要求1至13任一项所述的方法。
15.一种非暂时性计算机可读存储介质,包括计算机指令,其特征在于,当所述计算机指令被执行时实现如权利要求1至13中任意一项所述的方法。
CN202310712729.0A 2023-06-16 2023-06-16 一种密钥生成、加密、解密方法、电子设备及存储介质 Active CN116455575B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310712729.0A CN116455575B (zh) 2023-06-16 2023-06-16 一种密钥生成、加密、解密方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310712729.0A CN116455575B (zh) 2023-06-16 2023-06-16 一种密钥生成、加密、解密方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116455575A CN116455575A (zh) 2023-07-18
CN116455575B true CN116455575B (zh) 2023-10-10

Family

ID=87135928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310712729.0A Active CN116455575B (zh) 2023-06-16 2023-06-16 一种密钥生成、加密、解密方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116455575B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147484A (zh) * 2017-05-12 2017-09-08 南京邮电大学 一种面向隐私保护的浮点数全同态加密方法
WO2018213875A1 (en) * 2017-05-22 2018-11-29 Commonwealth Scientific And Industrial Research Organisation Asymmetric cryptography and authentication

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313028B2 (en) * 2012-06-12 2016-04-12 Kryptnostic Method for fully homomorphic encryption using multivariate cryptography
US9306738B2 (en) * 2012-12-21 2016-04-05 Microsoft Technology Licensing, Llc Managed secure computations on encrypted data
US9749128B2 (en) * 2014-05-15 2017-08-29 Xerox Corporation Compact fuzzy private matching using a fully-homomorphic encryption scheme
JP2016012111A (ja) * 2014-06-30 2016-01-21 富士通株式会社 暗号処理方法、暗号処理装置、および暗号処理プログラム
JP6413598B2 (ja) * 2014-10-10 2018-10-31 富士通株式会社 暗号処理方法、暗号処理装置、及び暗号処理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147484A (zh) * 2017-05-12 2017-09-08 南京邮电大学 一种面向隐私保护的浮点数全同态加密方法
WO2018213875A1 (en) * 2017-05-22 2018-11-29 Commonwealth Scientific And Industrial Research Organisation Asymmetric cryptography and authentication

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
支持同态算术运算的数据加密方案算法研究;杨攀;桂小林;姚婧;林建财;田丰;张学军;;通信学报(第01期);全文 *

Also Published As

Publication number Publication date
CN116455575A (zh) 2023-07-18

Similar Documents

Publication Publication Date Title
EP3924852B1 (en) Fast oblivious transfers
RU2691874C2 (ru) Способ защиты информации в облачных вычислениях с использованием гомоморфного шифрования
CN112989368B (zh) 多方联合进行隐私数据处理的方法及装置
US20150381349A1 (en) Privacy-preserving ridge regression using masks
JP5762232B2 (ja) プライバシを保護したまま暗号化された要素の順序を選択するための方法およびシステム
US11764943B2 (en) Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology
EP3893429A1 (en) Apparatus and method for performing non-polynomial calculation on cryptogram
US20240163084A1 (en) Method of data transmission, and electronic devic
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
WO2018216512A1 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
CN116094686B (zh) 用于量子卷积计算的同态加密方法、系统、设备及终端
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
US10116439B2 (en) Encrypted data computation system, device, and program
US20220237322A1 (en) Systems and methods for privacy-preserving inventory matching with security against malicious adversaries
CN115412365B (zh) 基于多层加密的数据隐私保护方法
CN116455575B (zh) 一种密钥生成、加密、解密方法、电子设备及存储介质
CN114465708B (zh) 隐私数据处理方法及装置、系统、电子设备、存储介质
CN115529120A (zh) 一种保密计算系统
WO2022137447A1 (ja) 秘匿情報処理システムおよび秘匿情報処理方法
CN114629620A (zh) 同态加密计算方法及系统、同态请求、计算和密钥系统
CN113645022A (zh) 一种确定隐私集合交集方法、装置、电子设备及存储介质
JP2017129644A (ja) 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体
CN112217628B (zh) 一种通信信号混沌加密方法
US20220094532A1 (en) Methods and systems for homomorphic data representation and concealment powered by clifford geometric algebra
CN115460020B (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