CN117394982A - 多密钥同态加密方法、计算方法、存储介质及计算机设备 - Google Patents

多密钥同态加密方法、计算方法、存储介质及计算机设备 Download PDF

Info

Publication number
CN117394982A
CN117394982A CN202311525190.4A CN202311525190A CN117394982A CN 117394982 A CN117394982 A CN 117394982A CN 202311525190 A CN202311525190 A CN 202311525190A CN 117394982 A CN117394982 A CN 117394982A
Authority
CN
China
Prior art keywords
key
ciphertext
encryption
bootstrap
participant
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
CN202311525190.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.)
Beijing Information Science And Technology Research Institute
Original Assignee
Beijing Information Science And Technology Research Institute
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 Information Science And Technology Research Institute filed Critical Beijing Information Science And Technology Research Institute
Priority to CN202311525190.4A priority Critical patent/CN117394982A/zh
Publication of CN117394982A publication Critical patent/CN117394982A/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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • 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/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种多密钥同态加密方法、计算方法、存储介质及计算机设备。其中,该方法包括:获取消息多项式m,其中,m用于表征参与方上传至服务器进行同态计算的消息;根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成参与方对应的评估密钥evk和参与方对应的加密私钥F;基于加密方法MKHE_Enc(m,F),采用加密私钥F为m进行加密,得到参与方对应的加密密文c;将评估密钥evk和加密密文c发送至服务器,其中,服务器用于对加密密文和其他加密密文进行同态计算,其他加密密文由其他参与方发送至服务器。本发明解决了缺少安全的且支持超常数参与方的基于NTRU的多密钥全同态加密方案的技术问题。

Description

多密钥同态加密方法、计算方法、存储介质及计算机设备
技术领域
本发明涉及密码学领域,具体而言,涉及一种多密钥同态加密方法、计算方法、存储介质及计算机设备。
背景技术
全同态加密(FHE)允许对加密数据进行直接计算,使得将敏感信息的计算任务安全地外包给不可信环境(如云计算)成为可能,近年收到广泛关注。自从Gentry于2009年提出首个FHE方案以来,通过一系列的研究工作,FHE的安全性、功能和性能都得到了显著改进。现有的全同态加密方案大都是基于误差学习(Learning with Errors,LWE)问题及其环变体RLWE问题以及NTRU问题设计的,这些基于格的数学困难问题结构简单且能够抵抗量子计算机攻击。
然而,在许多应用场景中,需要在不损害数据隐私的情况下对由不同方提供的数据进行协同计算。例如,每个参与方都持有各自的私人数据且不能被披露。然而,他们希望能够联合计算一个函数,例如使用来自所有方的数据对机器学习模型进行预测。传统的FHE方案要求所有数据都使用相同的公私钥对加密,这与现实应用场景不符。为了解决多用户密文数据联合计算的问题,López-Alt等人引入了多密钥全同态加密(Multi-key fullyhomomorphic encryption,MKFHE)的概念。与传统的单密钥全同态加密(FHE)不同,MKFHE允许对不同用户(即不同密钥)的密文进行任意的同态运算,并要求参与计算的所有用户联合解密运算结果。这种方法能够有效解决多用户密文联合计算的挑战。
目前,多密钥全同态加密方案可以分为四个大类:BGV型,GSW型,TFHE型以及NTRU型。BGV型MKFHE方案具有相对简单的密文扩展方式和容易实现的多跳功能,但存在密钥交换过程的复杂性和生成计算密钥的计算复杂度较高的问题。GSW型MKFHE方案具有简单的同态运算形式和无需提前生成计算密钥的优点,但密文扩展和多跳功能的实现方式十分复杂。TFHE型MKFHE方案具有快速的加解密和自举过程,但扩展密文长度的与用户数量线性增长、以及支持的明文空间较小。NTRU型MKFHE具有加解密速度快、密文尺寸小等优点,但是这类方案参与方数量需要预先设定且不满足多跳功能,并且现有的NTRU型MKFHE都需要指数级别的密文模数,最多支持常数级别的参与方。综上所述,各种类型的MKFHE方案都需要进一步改进,因此提出新的高效的多密钥全同态加密方案具有重要意义。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种多密钥同态加密方法、计算方法、存储介质及计算机设备,以至少解决缺少安全的且支持超常数参与方的基于NTRU的多密钥全同态加密方案的技术问题。
根据本发明实施例的一个方面,提供了一种多密钥同态加密方法,包括:获取消息多项式m,其中,所述消息多项式m用于表征参与方上传至服务器进行同态计算的消息;根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成所述参与方对应的评估密钥evk和所述参与方对应的加密私钥F;基于加密方法MKHE_Enc(m,F),采用所述加密私钥F为所述消息多项式m进行加密,得到所述参与方对应的加密密文c;将所述评估密钥evk和所述加密密文c发送至服务器,其中,所述服务器用于对所述加密密文和其他加密密文进行同态计算,所述其他加密密文由其他参与方发送至所述服务器,所述其他加密密文为所述其他参与方采用各自的加密私钥加密各自的消息多项式后得到的密文。
可选地,所述根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成所述参与方对应的评估密钥evk和所述参与方对应的加密私钥F,包括:根据所述安全参数λ,随机从分布χ中采样所述加密私钥F←χn×n,且使得所述加密私钥F的逆元存在;随机从分布χ中采样向量e←χn,计算生成所述评估密钥evk,其中表示舍入函数。
可选地,所述基于加密方法MKHE_Enc(m,F),采用所述加密私钥F为所述消息多项式m进行加密,得到所述参与方对应的加密密文c,包括:随机从分布χ中采样向量e'←χn;根据向量e'、所述加密私钥F的逆元和参数q,根据如下公式对所述消息多项式m∈{0,1}进行加密,生成所述加密密文c:其中
可选地,所述方法还包括:接收所述服务器发送的联合加密密文其中,所述联合加密密文为所述服务器基于所述加密密文c进行同态计算后生成的密文;根据所述加密私钥F对所述联合加密密文进行解密,得到所述参与方对应的解密密文m',其中,
可选地,所述方法还包括:根据密钥生成方法MS_KG(1λ)和所述安全参数λ,生成所述参与方的自举私钥s和自举公钥b;根据加密方法MS_UniEnc(μ,s),采用自举私钥s为辅助消息μ∈RQ进行加密,得到所述参与方的辅助消息密文(d,f);将所述辅助消息密文(d,f)和所述自举公钥b发送至所述服务器,其中,所述服务器用于根据所述辅助消息密文(d,f)和所述自举公钥b对同态计算后得到的联合加密密文进行自举刷新。
可选地,所述方法还包括:根据密钥生成方法ExtProdKGen(s,f)、所述自举私钥s和自举私钥f,生成所述参与方对应的重线性化密钥rlk;根据所述辅助消息μ和所述f,生成向量NTRU密文NTRU′Q,fi(μ/fi);将所述重线性化密钥rlk和所述向量NTRU密文NTRU′Q,fi(μ/fi)发送至所述服务器,其中,所述服务器用于根据所述重线性化密钥rlk和所述向量NTRU密文NTRU′Q,fi(μ/fi)对同态计算后得到的联合加密密文进行自举刷新。
根据本发明实施例的另一方面,还提供了一种多密钥同态计算方法,包括:获取第一密文第二密文以及全体参与方中第i个参与方的评估密钥evki,其中,所述第一密文为对应于k1个参与方的同态密文,所述第二密文为对应于k2个参与方的同态密文,所述全体参与方包括所述k1个参与方和所述k2个参与方;对所述第一密文进行扩展,得到对应于私钥组的第一扩展密文以及对所述第二密文进行扩展,得到对应于所述私钥组的第二扩展密文其中,所述私钥组由所述k1个参与方和所述k2个参与方各自的私钥构成,根据所述第i个参与方的评估密钥evki,对所述第一扩展密文和所述第二扩展密文进行与非门同态计算,得到计算结果密文其中,01表示维度为i的0向量,02表示维度为k-i的0向量。
可选地,所述方法还包括:接收所述第i个参与方发送的自举公钥bi、自举密钥{brki,j}j∈[k]、重线性密钥rlki和密钥切换密钥kski;根据自举计算方法和旋转多项式r,对所述计算结果密文进行自举,得到刷新后的计算结果密文。
可选地,所述自举公钥bi、所述自举密钥{brki,j}j∈[k]、所述重线性密钥rlki和所述密钥切换密钥kski由所述第i个参与方通过如下方式生成:根据所述第i个参与方的加密私钥Fi,采用密钥生成方法MS_KG(1λ)和所述安全参数λ,生成所述第i个参与方的自举私钥si和自举公钥bi;对于参与方1,所述自举密钥的生成方式如下:
对于1≤j≤n-2
对于参与方2≤i≤k,所述自举密钥的生成方式如下:
对于1≤j≤n-1
所述重线性化密钥rlki根据加密方法MS_UniEnc(fi,si)生成;
所述密钥切换密钥kski根据密钥切换密钥生成方法KSKG(si,Fi,q,B)生成;
所述根据自举计算方法和旋转多项式r,对所述计算结果密文进行自举,得到刷新后的计算结果密文,包括:
计算
对于1≤i≤k,初始化
对于0≤j<n,迭代的执行以下循环
初始化对于1≤i≤k,迭代的计算:
的模数从Q切换回q,得到
进行密钥切换,得到刷新后的计算结果密文其中,刷新后的计算结果密文
可选地,所述方法还包括:接收所述第i个参与方发送的自举公钥bi,自举密钥{brki,j}j∈[0,n-1]和密钥切换密钥kski;根据自举计算方法和旋转多项式r,对所述计算结果密文进行自举,得到刷新后的计算结果密文。
可选地,所述自举公钥bi,所述自举密钥{brki,j}j∈[0,n-1]和所述密钥切换密钥kski由所述第i个参与方通过如下方式生成:根据所述第i个参与方的加密私钥Fi,采用密钥生成方法MS_KG(1λ)和所述安全参数λ,生成所述第i个参与方的自举私钥si和自举公钥bi;对于参与方1,所述自举密钥的生成方式如下:
brk1,0=MS_UniEnc(z1,0/si,s1);brk1,j=MS_UniEnc(z1,j,s1)对于2≤j≤n-1;
对于参与方2≤i≤k,所述自举密钥的生成方式如下:
brki,j=MS_UniEnc(zi,j) 1≤j≤n-1;
所述密钥切换密钥kski根据密钥切换密钥生成方法KSKG(si,Fi,q,B)生成;
所述根据自举计算方法和旋转多项式r,对所述计算结果密文进行自举,得到刷新后的计算结果密文,包括:
1)计算
2)初始化累加器
3)对于1≤i≤k,对于0≤j<n迭代的执行以下循环:
将ACC的模数从Q切换回q,得到ACC';对ACC'进行密钥切换,得到刷新后的计算结果密文其中,刷新后的计算结果密文
可选地,所述密钥切换密钥kski通过密钥切换密钥生成方法KSKG(si,Fi,q,B),所述密钥切换密钥生成方法KSKG(si,Fi,q,B)包括如下步骤:输入所述第i个参与方的自举私钥si∈R,加密私钥整数B,q;计算并令表示一个秩为N的单位矩阵IN与gadget向量g的张量运算结果;令是一个除了E[0][0]=1其他位置都是0的矩阵,采样矩阵Gi←χ(N·d)×n;输出在需要利用所述密钥切换密钥kski进行密钥切换的情况下,密钥切换方法包括如下切换步骤:输入MK-NTRU密文和所述密钥切换密钥{kski}i∈[k];令(ci,0,…,ci,N-1)表示ci的系数,计算计算输出进行密钥切换后得到的密文
根据本发明实施例的又一方面,还提供了一种非易失性存储介质,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行上述任意一项所述的多密钥同态加密方法或上述任意一项所述的多密钥同态计算方法。
根据本发明实施例的再一方面,还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器用于存储程序,所述处理器用于运行所述存储器存储的程序,其中,所述程序运行时执行上述任意一项所述的多密钥同态加密方法或上述任意一项所述的多密钥同态计算方法。
在本发明实施例中,采用安全参数λ和密钥生成方法MKHE_KG(1λ)为消息多项式m加密,生成参与方对应的评估密钥evk和参与方对应的加密私钥F,然后基于加密方法MKHE_Enc(m,F),采用加密私钥F为消息多项式m进行加密,得到参与方对应的加密密文c;将评估密钥evk和加密密文c发送至服务器,使得服务器可以对加密密文和其他加密密文进行同态计算,达到了提供一种基于NTRU的多密钥全同态加密方案来实现全同态计算的目的,从而实现了提高多密钥全同态加密方案的计算效率的技术效果,进而解决了缺少安全的且支持超常数参与方的基于NTRU的多密钥全同态加密方案的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了一种用于实现多密钥同态加密方法的计算机终端的硬件结构框图;
图2是根据本发明实施例提供的多密钥同态加密方法的流程示意图;
图3是根据本发明实施例提供的多密钥同态计算方法的流程示意图;
图4是根据本发明实施例提供的多密钥同态加密装置的结构框图;
图5是根据本发明实施例提供的多密钥同态计算装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种多密钥同态加密的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现多密钥同态加密方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中采用处理器102a、处理器102b,……,处理器102n来示出)处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的多密钥同态加密方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的多密钥同态加密方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10的用户界面进行交互。
首先,对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
同态加密,一种基于数学困难问题的计算复杂性密码学技术,对于经过同态加密的数据进行运算得到的结果与用相同方法处理未经加密的数据得到的结果一致。作为一种能保护数据隐私的加密算法,2009年IBM的Craig Gentry首次提出了一种基于理想格的全同态算法。
自同构是指从一个数学对象到自身的同构过程,即将这一数学对象映射到自身而保持该数学对象的全部结构的一个途径。
LWE密文,表示基于容错学习问题进行加密得到的密文,其中,容错学习(learningwith errors,简称LWE)问题是一种求解带噪声的线性方程组问题。
RLWE密文,表示基于环上带错误学习问题(ring learning with errorsproblem,简称RLWE)进行加密得到的密文。
NTRU密文,基于1996年由美国布朗大学三位数学教授发明的公开秘密体制进行加密得到的密文。NTRU(Number Theory Research Unit,简称NTRU)作为一种公开密钥体制,由于NTRU产生的密钥方法比较容易,加密、解密的速度比RSA等著名算法快得多。
自举,一种密文刷新技术,利用同态解密达到降低密文噪音的目的。
表示由整数构成的集合,即 表示模q剩余类构成的集合,即其中q是正整数;对于任意的正整数n,表示n个的直积,即 表示模Q剩余类构成的集合,即其中Q是正整数;表示n个的直积。
是正整数,R是定义在上次数为N-1的多项式环,Rq是定义在上的次数为N-1的多项式环,RQ是定义在上的次数为N-1的多项式环;是定义在上次数为n-1的多项式环,是定义在上的次数为n-1的多项式环,是定义在上的次数为n-1的多项式环。
对于分布D,x←D表示根据分布D随机选取x;对于有限集合S,x←S表示从集合S中均匀随机选取x。
对于实数 表示最接近x的整数。
符号:=表示赋值,即对于任意两个值a,b,a:=b表示将a赋值作为b。
本发明提供了一种实用化的新型多密钥全同态加密方法。具体的,本发明基于矩阵NTRU困难性问题设计了一种支持NAND门运算的多密钥全同态加密方案。并设计了基于NTRU的多密钥密文与单密钥密文快速外积方法;设计了一种高效的向量NTRU密文与多密钥NTRU密文扩展密文外积方法;并基于该多密钥全同态加密方案提出了两种快速自举方法。本发明设计的多密钥全同态加密方案参与方数量不需要设置且满足多跳功能,相比于同类型TFHE类多密钥全同态加密方案,计算效率高、评估密钥更小。
图2是根据本发明实施例提供的多密钥同态加密方法的流程示意图,该方法可以应用于任意一个参与方,可选地,任意一个参与方可以将其想要进行全同态计算的消息多项式进行加密并上传到执行多密钥全同态计算的服务器,由服务器来完成计算,并将计算结果返回至对应的参与方。如图2所示,该方法包括如下步骤:
步骤S201,获取消息多项式m,其中,消息多项式m用于表征参与方上传至服务器进行同态计算的消息。
步骤S202,根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成参与方对应的评估密钥evk和参与方对应的加密私钥F。
本步骤中的加密私钥F为用于对消息多项式m进行加密的私钥,该私钥不会传输到参与方外部。作为一种可选的实施例,根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成参与方对应的评估密钥evk和参与方对应的加密私钥F,可以包括如下步骤:根据安全参数λ,随机从分布χ中采样加密私钥F←χn×n,且使得加密私钥F的逆元存在;随机从分布χ中采样向量e←χn,计算生成评估密钥evk,其中表示舍入函数。
步骤S203,基于加密方法MKHE_Enc(m,F),采用加密私钥F为消息多项式m进行加密,得到参与方对应的加密密文c。
作为一种可选的实施例,基于加密方法MKHE_Enc(m,F),采用加密私钥F为消息多项式m进行加密,得到参与方对应的加密密文c,包括如下过程:随机从分布χ中采样向量e'←χn;根据向量e'、加密私钥F的逆元和参数q,根据如下公式对消息多项式m∈{0,1}进行加密,生成加密密文c:其中
步骤S204,将评估密钥evk和加密密文c发送至服务器,其中,服务器用于对加密密文和其他加密密文进行同态计算,其他加密密文由其他参与方发送至服务器,其他加密密文为其他参与方采用各自的加密私钥加密各自的消息多项式后得到的密文。
通过上述步骤,采用安全参数λ和密钥生成方法MKHE_KG(1λ)为消息多项式m加密,生成参与方对应的评估密钥evk和参与方对应的加密私钥F,然后基于加密方法MKHE_Enc(m,F),采用加密私钥F为消息多项式m进行加密,得到参与方对应的加密密文c;将评估密钥evk和加密密文c发送至服务器,使得服务器可以对加密密文和其他加密密文进行同态计算,达到了提供一种基于NTRU的多密钥全同态加密方案来实现全同态计算的目的,从而实现了提高多密钥全同态加密方案的计算效率的技术效果,进而解决了缺少安全的且支持超常数参与方的基于NTRU的多密钥全同态加密方案的技术问题。
作为一种可选的实施例,上述方法还可以包括解密过程:接收服务器发送的联合加密密文其中,联合加密密文为服务器基于加密密文c进行同态计算后生成的密文;根据加密私钥F对联合加密密文进行解密,得到参与方对应的解密密文m',其中,
可选地,联合加密密文还可以为同态计算服务器经过同态计算和自举刷新步骤后生成的密文,公式中的Fi表示这个加密私钥为第i个参与方的加密私钥。
作为一种可选的实施例,该方法还可以通过如下方式实现服务器侧的密文自举:根据密钥生成方法MS_KG(1λ)和安全参数λ,生成参与方的自举私钥s和自举公钥b;根据加密方法MS_UniEnc(μ,s),采用自举私钥s为辅助消息μ∈RQ进行加密,得到参与方的辅助消息密文(d,f);将辅助消息密文(d,f)和自举公钥b发送至服务器,其中,服务器用于根据辅助消息密文(d,f)和自举公钥b对同态计算后得到的联合加密密文进行自举刷新。
作为一种可选的实施例,上述自举方法还可以包括如下步骤:根据密钥生成方法ExtProdKGen(s,f)、自举私钥s和自举私钥f,生成参与方对应的重线性化密钥rlk;根据辅助消息μ和自举私钥f,生成向量NTRU密文将重线性化密钥rlk和向量NTRU密文发送至服务器,其中,服务器用于根据重线性化密钥rlk和向量NTRU密文对同态计算后得到的联合加密密文进行自举刷新。
图3是根据本发明实施例提供的多密钥同态计算方法的流程示意图,该多密钥同态计算方法可以应用于同态计算服务器,同态计算服务器可以从多个参与方各自获得加密后的密文,加密后的密文为各个参与方分别采用自己的加密私钥对自己传递的消息进行加密后得到的密文,然后由服务器对加密后的密文执行多密钥同态计算,得到同态计算结果。如图3所示,该方法包括如下步骤:
步骤S301,获取第一密文第二密文以及全体参与方中第i个参与方的评估密钥evki,其中,第一密文为对应于k1个参与方的同态密文,第二密文为对应于k2个参与方的同态密文,全体参与方包括k1个参与方和k2个参与方。
步骤S302,对第一密文进行扩展,得到对应于私钥组的第一扩展密文以及对第二密文进行扩展,得到对应于私钥组的第二扩展密文其中,私钥组由k1个参与方和k2个参与方各自的私钥构成,
步骤S303,根据第i个参与方的评估密钥evki,对第一扩展密文和第二扩展密文进行与非门同态计算,得到计算结果密文其中,01表示维度为i的0向量,02表示维度为k-i的0向量。本发明以与非门NAND进行同态计算,这是由于与非门是完备的。
作为一种可选的实施例,上述方法还包括:接收第i个参与方发送的自举公钥bi、自举密钥{brki,j}j∈[k]、重线性密钥rlki和密钥切换密钥kski;根据自举计算方法和旋转多项式r,对计算结果密文进行自举,得到刷新后的计算结果密文。
作为一种可选的实施例,自举公钥bi、自举密钥{brki,j}j∈[k]、重线性密钥rlki和密钥切换密钥kski由第i个参与方通过如下方式生成:根据第i个参与方的加密私钥Fi,采用密钥生成方法MS_KG(1λ)和安全参数λ,生成第i个参与方的自举私钥si和自举公钥bi;对于参与方1,自举密钥的生成方式如下:
对于1≤j≤n-2
对于参与方2≤i≤k,自举密钥的生成方式如下:
对于1≤j≤n-1
重线性化密钥rlki根据加密方法MS_UniEnc(fi,si)生成;
密钥切换密钥kski根据密钥切换密钥生成方法KSKG(si,Fi,q,B)生成;
根据自举计算方法和旋转多项式r,对计算结果密文进行自举,得到刷新后的计算结果密文,包括:
计算
对于1≤i≤k,初始化
对于0≤j<n,迭代的执行以下循环
初始化对于1≤i≤k,迭代的计算:
的模数从Q切换回q,得到
进行密钥切换,得到刷新后的计算结果密文其中,刷新后的计算结果密文
作为一种可选的实施例,方法还包括:接收第i个参与方发送的自举公钥bi,自举密钥{brki,j}j∈[0,n-1]和密钥切换密钥kski;根据自举计算方法和旋转多项式r,对计算结果密文进行自举,得到刷新后的计算结果密文。
作为一种可选的实施例,自举公钥bi,自举密钥{brki,j}j∈[0,n-1]和密钥切换密钥kski由第i个参与方通过如下方式生成:根据第i个参与方的加密私钥Fi,采用密钥生成方法MS_KG(1λ)和安全参数λ,生成第i个参与方的自举私钥si和自举公钥bi;对于参与方1,自举密钥的生成方式如下:
brk1,0=MS_UniEnc(z1,0/si,s1);brk1,j=MS_UniEnc(z1,j,s1)对于2≤j≤n-1;
对于参与方2≤i≤k,自举密钥的生成方式如下:
brki,j=MS_UniEnc(zi,j) 1≤j≤n-1;
密钥切换密钥kski根据密钥切换密钥生成方法KSKG(si,Fi,q,B)生成;
根据自举计算方法和旋转多项式r,对计算结果密文进行自举,得到刷新后的计算结果密文,包括:
1)计算
2)初始化累加器
3)对于1≤i≤k,对于0≤j<n迭代的执行以下循环:
将ACC的模数从Q切换回q,得到ACC';对ACC'进行密钥切换,得到刷新后的计算结果密文其中,刷新后的计算结果密文
作为一种可选的实施例,密钥切换密钥kski通过密钥切换密钥生成方法KSKG(si,Fi,q,B),密钥切换密钥生成方法KSKG(si,Fi,q,B)包括如下步骤:输入第i个参与方的自举私钥si∈R,加密私钥整数B,q;计算并令表示一个秩为N的单位矩阵IN与gadget向量g的张量运算结果;令是一个除了E[0][0]=1其他位置都是0的矩阵,采样矩阵Gi←χ(N·d)×n;输出在需要利用密钥切换密钥kski进行密钥切换的情况下,密钥切换方法包括如下切换步骤:输入MK-NTRU密文和密钥切换密钥{kski}i∈[k];令(ci,0,…,ci,N-1)表示ci的系数,计算计算输出进行密钥切换后得到的密文
基于上述实施例及可选实施例,本发明提出了基于M-NTRU的多密钥全同态加密方法,如下步骤为该方法的可选实施方式,该可选实施方式可以包括如下子方法:
密钥生成方法MKHE_KG(1λ):输入安全参数λ,生成评估密钥evk与私钥F。
加密方法MKHE_Enc(m,F):输入待加密的消息m∈{0,1}与加密私钥F,输出密文c。
解密方法输入由联合密文以及私钥{Fi}i∈[k],输出解密m。
同态计算NAND门方法输入两个联合密文以及参与方i的评估密钥evki输出同态计算结果参与方i为两个联合密文中的任意一个参与方。每个NAND门只支持两个数据间的运算,因此复杂的运算过程可以拆解为多个NAND门进行。
本实施例描述的基于M-NTRU的多密钥全同态加密方法将由5个正整数参数n,q,k,k1,k2来实例化。本发明提出的基于M-NTRU数学困难问题的多密钥全同态加密方法描述如下:
密钥生成方法MKHE_KG(1λ):输入安全参数λ,执行如下:
1)随机从分布χ中采样矩阵F←χn×n,使得矩阵F的逆元F-1中存在;
2)随机从分布χ中采样向量e←χn,计算
3)输出评估密钥evk与加密私钥F。
加密方法MKHE_Enc(m,F):输入待加密的消息多项式m∈{0,1}与加密私钥F,执行如下:
1)随机从分布χ中采样向量e'←χn;计算
2)计算并输出加密密文
解密方法输入在k个参与方的联合私钥(k个参与方对应的私钥组)下加密的密文计算并输出:
同态计算NAND门方法假设evki为第i方的评估密钥,分别对应于参与方为k1,k2的同态密文。令k表示所有参与方的数量,执行如下:
1)扩展得到对应于私钥的密文
2)令01表示维度为i的0向量,02表示维度为k-i的0向量,计算并输出联合加密密文:
以及本发明提出了基于NTRU的高效扩展密文外积方法。密文外积是指将两个密文相乘得到的结果。在加密算法中,常常需要进行一些数学运算,例如加、减、乘等。但是,在密文状态下,直接进行这些运算是不可行的,因为密文是经过加密处理的,无法直接获取明文的数值。为了能够在密文状态下进行数学运算,引入了密文外积的概念。密文外积允许在密文状态下进行乘法运算,而不会暴露明文的数值,这有助于增强加密算法的安全性,保护用户的数据隐私。
本发明提出的基于NTRU的高效密文外积方法包括以下子方法:
密钥生成方法MS_KG(1λ):输入安全参数λ,输出自举公钥b以及自举私钥s。
加密方法MS_UniEnc(μ,s):输入辅助消息μ∈RQ以及自举私钥s,输出辅助消息密文(d,f)。
扩展外积方法输入多密钥NTRU密文公钥集{bj}j∈[k]以及第i方的UniEnc密文(di,fi),输出外积运算后的密文
本实施例描述的基于NTRU数学困难问题的密文外积方法将由5个正整数参数N,Q,d,k,B来实例化。本实施例涉及使用定义在上次数为N-1的多项式环R,令表示维度为d的gadget向量,表示格密码中的gadget分解,<·,·>表示内积运算。
本发明提出的基于NTRU数学困难问题的密文外积方法的具体步骤描述如下:
密钥生成方法MS_KG(1λ):输入安全参数λ,公共随机串a∈Rd,执行如下:
1)从私钥分布χ中均匀随机采样s∈RQ,且s在RQ中可逆;
2)从误差分布D中随机采样计算b=-a·s+e;
3)输出自举公钥b以及自举私钥s。
加密方法MS_UniEnc(μ,s):输入辅助消息μ∈RQ以及自举私钥s,执行如下:
1)从私钥分布χ中均匀随机采样r∈RQ,且r在RQ中可逆;
2)从误差分布D中随机采样计算
3)从误差分布D中随机采样计算f=(e2+rg)/s;
4)输出密文
扩展外积方法输入多密钥NTRU密文对应于k个参与方的公钥集合{bj}j∈[k]以及第i方的UniEnc密文(di,fi),执行如下:
1)对于1≤i≤k,计算uj=<g-1(cj),di>,
2)计算
3)输出
此外,本发明还提出了一种高效的向量NTRU密文与MK-NTRU密文扩展外积方法,本发明提出的基于NTRU的高效扩展外积方法包括以下子方法:
密钥生成方法ExtProdKGen(si,fi):输入第i方的私钥si和fi,输出重线性化密钥rlki
扩展外积方法输入MK-NTRU密文公钥集{bj}j∈[k],向量NTRU密文NTRU′Q,fi(μ/fi)以及重线性化密钥rlki,输出扩展外积计算结果
本实施例描述的基于NTRU数学困难问题的密文外积方法将由4个正整数参N,Q,d,k来实例化。本实施例涉及使用定义在上次数为N-1的多项式环RQ。本实施例所用的向量NTRU密文的形式为其中e表示噪音向量,是gadget向量。
本发明提出的基于NTRU的扩展密文外积方法的具体实现步骤描述如下:
密钥生成方法ExtProdKGen(si,fi):输入第i方的私钥si和fi,计算并输出重线性化密钥rlki=MS_UniEnc(fi,si)。
扩展外积方法输入一个在自举私钥s=(s1,…,sk)下加密的MK-NTRU密文以及公钥集{bj}j∈[k],向量NTRU密文以及重现性化密钥rlki,执行如下:
1)对于j∈[k]计算
2)计算并输出
MK-NTRU密文到基于MK-FHE密文的密钥切换方法,本发明提出的密钥切换包括以下子方法:
密钥切换密钥生成方法KSKG(si,Fi,q,B):输入私钥si∈R,整数q,B,输出密钥切换密钥kski
密钥切换方法输入多密钥NTRU密文密钥切换密钥{kski}i∈[k],输出密文
每个参与方可以独立运行以下密钥生成算法:
密钥切换密钥生成KSKG(si,Fi,q,B):输入私钥si∈R,整数B,q。计算表示一个秩为N的单位矩阵IN与gadget向量g的张量运算结果.令是一个除了E[0][0]=1其他位置都是0的矩阵.采样矩阵Gi←χ(N·d)×n输出
密钥切换方法输入多密钥NTRU密文密钥切换密钥{kski}i∈[k],执行如下:
1)令(ci,0,…,ci,N-1)表示ci的系数,计算
2)计算输出
本发明可选实施方式还提供了两种自举算法,本发明提出的基于NTRU密文的自举算法一包括以下子方法:
自举密钥生成方法BSKGen(Fi,fi):输入参与方i的私钥Fi,fi,生成公私钥(si,bi),自举密钥{brki,j}j∈[k],重线性密钥rlki,密钥切换密钥kski
自举计算方法输入多密钥密文四元组公钥对{(bi,brki,rlki,kski)}i∈[k]以及旋转多项式r,输出刷新后的密文
本发明提出的基于NTRU密文的自举算法一的具体步骤描述如下:
每个参与方独立运行以下密钥生成算法(以参与方i为例);
自举密钥生成方法BSKGen(Fi,fi):输入参与方i的私钥Fi,fi,矩阵Fi的第一列向量用col0(Fi)=(z0,…,zn-1)表示,执行如下:
1)生成公私钥(si,bi)=MS_KG;
2)参与方1生成自举密钥如下:
对于1≤j≤n-2
参与方2≤i≤k生成自举密钥如下:
对于1≤j≤n-1
3)重线性化密钥生成rlki=MS_UniEnc(fi,si);
4)密钥切换密钥生成kski=KSKG(si,Fi,q,B)。
自举计算方法输入多密钥密文四元组公钥对{(bi,brki,rlki,kski)}i∈[k]以及旋转多项式r,执行如下:
1)计算
2)对于1≤i≤k,初始化
3)对于0≤j<n迭代的执行以下循环
4)初始化对于1≤i≤k,迭代的计算:
5)模切换.利用模切换技术将的模数从Q切换回q得到
6)密钥切换.计算
本发明提出的基于NTRU密文的自举算法二包括以下子方法:
自举密钥生成方法BSKGen(Fi):输入参与方i的私钥Fi,生成公私钥(si,bi),输出自举密钥{brki,j}j∈[0,n-1],密钥切换密钥kski
自举计算方法输入多密钥密文三元组公钥对{(bi,brki,kski)}i∈[k]以及旋转多项式r,输出刷新后的密文
本发明提出的基于NTRU密文的自举算法二描述如下:
每个参与方独立运行以下密钥生成算法(以参与方i为例)
自举密钥生成方法BSKGen(Fi):输入参与方i的私钥Fi,矩阵Fi的第一列向量用col0(Fi)=(zi,0,…,zi,n-1)表示,执行如下:
1)生成公私钥(si,bi)=MS_KG(1λ);
2)参与方1生成自举密钥如下:
brk1,0=MS_UniEnc(z1,0/si,s1);brk1,j=MS_UniEnc(z1,j,s1)对于2≤j≤n-1;
参与方2≤i≤k生成自举密钥如下:
brki,j=MS_UniEnc(zi,j) 1≤j≤n-1
3)密钥切换密钥生成kski=KSKG(si,Fi,q,B)。
自举计算方法输入多密钥密文三元组公钥对{(bi,brki,kski)}i∈[k]以及旋转多项式r,执行如下:
1)计算
2)初始化累加器
3)对于1≤i≤k,对于0≤j<n迭代的执行以下循环:
4)模切换。利用模切换技术将ACC的模数从Q切换回q得到ACC';
5)密钥切换。计算
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的多密钥同态加密方法和多密钥同态计算方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例,还提供了一种用于实施上述多密钥同态加密方法的多密钥同态加密装置,图4是根据本发明实施例提供的多密钥同态加密装置的结构框图,如图4所示,该多密钥同态加密装置包括:第一获取模块41,生成模块42,加密模块43和发送模块44,下面对该多密钥同态加密装置进行说明。
第一获取模块41,用于获取消息多项式m,其中,所述消息多项式m用于表征参与方上传至服务器进行同态计算的消息;
生成模块42,连接于上述第一获取模块41,用于根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成所述参与方对应的评估密钥evk和所述参与方对应的加密私钥F;
加密模块43,连接于上述生成模块42,用于基于加密方法MKHE_Enc(m,F),采用所述加密私钥F为所述消息多项式m进行加密,得到所述参与方对应的加密密文c;
发送模块44,连接于上述加密模块43,用于将所述评估密钥evk和所述加密密文c发送至服务器,其中,所述服务器用于对所述加密密文和其他加密密文进行同态计算,所述其他加密密文由其他参与方发送至所述服务器,所述其他加密密文为所述其他参与方采用各自的加密私钥加密各自的消息多项式后得到的密文。
此处需要说明的是,上述第一获取模块41,生成模块42,加密模块43和发送模块44对应于实施例中的步骤S201至步骤S204,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例提供的计算机终端10中。
根据本发明实施例,还提供了一种用于实施上述多密钥同态计算方法的多密钥同态加密装置,图5是根据本发明实施例提供的多密钥同态计算装置的结构框图,如图5所示,该多密钥同态计算装置包括:第二获取模块51,密文扩展模块52和同态计算模块53,下面对该多密钥同态计算进行说明。
第二获取模块51,用于获取第一密文第二密文以及全体参与方中第i个参与方的评估密钥evki,其中,所述第一密文为对应于k1个参与方的同态密文,所述第二密文为对应于k2个参与方的同态密文,所述全体参与方包括所述k1个参与方和所述k2个参与方;
密文扩展模块52,连接于上述第二获取模块51,用于对所述第一密文进行扩展,得到对应于私钥组的第一扩展密文以及对所述第二密文进行扩展,得到对应于所述私钥组的第二扩展密文其中,所述私钥组由所述k1个参与方和所述k2个参与方各自的私钥构成,
同态计算模块53,连接于上述密文扩展模块52,用于根据所述第i个参与方的评估密钥evki,对所述第一扩展密文和所述第二扩展密文进行与非门同态计算,得到计算结果密文其中,01表示维度为i的0向量,02表示维度为k-i的0向量。
此处需要说明的是,上述第二获取模块51,密文扩展模块52和同态计算模块53对应于实施例中的步骤S301至步骤S303,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例提供的计算机终端10中。
本发明的实施例可以提供一种计算机设备,可选地,在本实施例中,上述计算机设备可以位于计算机网络的多个网络设备中的至少一个网络设备。该计算机设备包括存储器和处理器。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的多密钥同态加密方法和多密钥同态计算方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的多密钥同态加密方法和多密钥同态计算方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取消息多项式m,其中,所述消息多项式m用于表征参与方上传至服务器进行同态计算的消息;根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成所述参与方对应的评估密钥evk和所述参与方对应的加密私钥F;基于加密方法MKHE_Enc(m,F),采用所述加密私钥F为所述消息多项式m进行加密,得到所述参与方对应的加密密文c;将所述评估密钥evk和所述加密密文c发送至服务器,其中,所述服务器用于对所述加密密文和其他加密密文进行同态计算,所述其他加密密文由其他参与方发送至所述服务器,所述其他加密密文为所述其他参与方采用各自的加密私钥加密各自的消息多项式后得到的密文。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取第一密文第二密文以及全体参与方中第i个参与方的评估密钥evki,其中,所述第一密文为对应于k1个参与方的同态密文,所述第二密文为对应于k2个参与方的同态密文,所述全体参与方包括所述k1个参与方和所述k2个参与方;对所述第一密文进行扩展,得到对应于私钥组的第一扩展密文以及对所述第二密文进行扩展,得到对应于所述私钥组的第二扩展密文其中,所述私钥组由所述k1个参与方和所述k2个参与方各自的私钥构成,根据所述第i个参与方的评估密钥evki,对所述第一扩展密文和所述第二扩展密文进行与非门同态计算,得到计算结果密文其中,01表示维度为i的0向量,02表示维度为k-i的0向量。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一非易失性存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种非易失性存储介质。可选地,在本实施例中,上述非易失性存储介质可以用于保存上述实施例所提供的多密钥同态加密方法和多密钥同态计算方法所执行的程序代码。
可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:获取消息多项式m,其中,所述消息多项式m用于表征参与方上传至服务器进行同态计算的消息;根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成所述参与方对应的评估密钥evk和所述参与方对应的加密私钥F;基于加密方法MKHE_Enc(m,F),采用所述加密私钥F为所述消息多项式m进行加密,得到所述参与方对应的加密密文c;将所述评估密钥evk和所述加密密文c发送至服务器,其中,所述服务器用于对所述加密密文和其他加密密文进行同态计算,所述其他加密密文由其他参与方发送至所述服务器,所述其他加密密文为所述其他参与方采用各自的加密私钥加密各自的消息多项式后得到的密文。
可选地,在本实施例中,非易失性存储介质被设置为存储用于执行以下步骤的程序代码:获取第一密文第二密文以及全体参与方中第i个参与方的评估密钥evki,其中,所述第一密文为对应于k1个参与方的同态密文,所述第二密文为对应于k2个参与方的同态密文,所述全体参与方包括所述k1个参与方和所述k2个参与方;对所述第一密文进行扩展,得到对应于私钥组的第一扩展密文以及对所述第二密文进行扩展,得到对应于所述私钥组的第二扩展密文其中,所述私钥组由所述k1个参与方和所述k2个参与方各自的私钥构成,根据所述第i个参与方的评估密钥evki,对所述第一扩展密文和所述第二扩展密文进行与非门同态计算,得到计算结果密文其中,01表示维度为i的0向量,02表示维度为k-i的0向量。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种多密钥同态加密方法,其特征在于,包括:
获取消息多项式m,其中,所述消息多项式m用于表征参与方上传至服务器进行同态计算的消息;
根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成所述参与方对应的评估密钥evk和所述参与方对应的加密私钥F;
基于加密方法MKHE_Enc(m,F),采用所述加密私钥F为所述消息多项式m进行加密,得到所述参与方对应的加密密文c;
将所述评估密钥evk和所述加密密文c发送至服务器,其中,所述服务器用于对所述加密密文和其他加密密文进行同态计算,所述其他加密密文由其他参与方发送至所述服务器,所述其他加密密文为所述其他参与方采用各自的加密私钥加密各自的消息多项式后得到的密文。
2.根据权利要求1所述的方法,其特征在于,所述根据安全参数λ和密钥生成方法MKHE_KG(1λ),生成所述参与方对应的评估密钥evk和所述参与方对应的加密私钥F,包括:
根据所述安全参数λ,随机从分布χ中采样所述加密私钥F←χn×n,且使得所述加密私钥F的逆元存在;
随机从分布χ中采样向量e←χn,计算生成所述评估密钥evk,其中「·」表示舍入函数。
3.根据权利要求2所述的方法,其特征在于,所述基于加密方法MKHE_Enc(m,F),采用所述加密私钥F为所述消息多项式m进行加密,得到所述参与方对应的加密密文c,包括:
随机从分布χ中采样向量e'←χn
根据向量e'、所述加密私钥F的逆元和参数q,根据如下公式对所述消息多项式m∈{0,1}进行加密,生成所述加密密文c:
其中Δ=「q/4」。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述服务器发送的联合加密密文其中,所述联合加密密文为所述服务器基于所述加密密文c进行同态计算后生成的密文;
根据所述加密私钥F对所述联合加密密文进行解密,得到所述参与方对应的解密密文m',其中,
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:
根据密钥生成方法MS_KG(1λ)和所述安全参数λ,生成所述参与方的自举私钥s和自举公钥b;
根据加密方法MS_UniEnc(μ,s),采用自举私钥s为辅助消息μ∈RQ进行加密,得到所述参与方的辅助消息密文(d,f);
将所述辅助消息密文(d,f)和所述自举公钥b发送至所述服务器,其中,所述服务器用于根据所述辅助消息密文(d,f)和所述自举公钥b对同态计算后得到的联合加密密文进行自举刷新。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据密钥生成方法ExtProdKGen(s,f)、所述自举私钥s和自举私钥f,生成所述参与方对应的重线性化密钥rlk;
根据所述辅助消息μ和所述自举私钥f,生成向量NTRU密文
将所述重线性化密钥rlk和所述向量NTRU密文发送至所述服务器,其中,所述服务器用于根据所述重线性化密钥rlk和所述向量NTRU密文对同态计算后得到的联合加密密文进行自举刷新。
7.一种多密钥同态计算方法,其特征在于,包括:
获取第一密文第二密文以及全体参与方中第i个参与方的评估密钥evki,其中,所述第一密文为对应于k1个参与方的同态密文,所述第二密文为对应于k2个参与方的同态密文,所述全体参与方包括所述k1个参与方和所述k2个参与方;
对所述第一密文进行扩展,得到对应于私钥组的第一扩展密文以及对所述第二密文进行扩展,得到对应于所述私钥组的第二扩展密文其中,所述私钥组由所述k1个参与方和所述k2个参与方各自的私钥构成,
根据所述第i个参与方的评估密钥evki,对所述第一扩展密文和所述第二扩展密文进行与非门同态计算,得到计算结果密文其中,01表示维度为i的0向量,02表示维度为k-i的0向量。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述第i个参与方发送的自举公钥bi、自举密钥{brki,j}j∈[k]、重线性密钥rlki和密钥切换密钥kski
根据自举计算方法和旋转多项式r,对所述计算结果密文进行自举,得到刷新后的计算结果密文。
9.根据权利要求8所述的方法,其特征在于,所述自举公钥bi、所述自举密钥{brki,j}j∈[k]、所述重线性密钥rlki和所述密钥切换密钥kski由所述第i个参与方通过如下方式生成:
根据所述第i个参与方的加密私钥Fi,采用密钥生成方法MS_KG(1λ)和所述安全参数λ,生成所述第i个参与方的自举私钥si和自举公钥bi
对于参与方1,所述自举密钥的生成方式如下:
对于1≤j≤n-2
对于参与方2≤i≤k,所述自举密钥的生成方式如下:
对于1j≤n-1
所述重线性化密钥rlki根据加密方法MS_UniEnc(fi,si)生成;
所述密钥切换密钥kski根据密钥切换密钥生成方法KSKG(si,Fi,q,B)生成;
所述根据自举计算方法和旋转多项式r,对所述计算结果密文进行自举,得到刷新后的计算结果密文,包括:
计算
对于1≤i≤k,初始化
对于0≤j<n,迭代的执行以下循环
初始化对于1≤i≤k,迭代的计算
的模数从Q切换回q,得到
进行密钥切换,得到刷新后的计算结果密文其中,刷新后的计算结果密文
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述第i个参与方发送的自举公钥bi,自举密钥{brki,j}j∈[0,n-1]和密钥切换密钥kski
根据自举计算方法和旋转多项式r,对所述计算结果密文进行自举,得到刷新后的计算结果密文。
11.根据权利要求10所述的方法,其特征在于,所述自举公钥bi,所述自举密钥{brki,j}j∈[0,n-1]和所述密钥切换密钥kski由所述第i个参与方通过如下方式生成:
根据所述第i个参与方的加密私钥Fi,采用密钥生成方法MS_KG(1λ)和所述安全参数λ,生成所述第i个参与方的自举私钥si和自举公钥bi
对于参与方1,所述自举密钥的生成方式如下:
brk1,0=MS_UniEnc(z1,0/si,s1);brk1,j=MS_UniEnc(z1,j,s1)对于2≤j≤n-1;
对于参与方2≤i≤k,所述自举密钥的生成方式如下:
brki,j=MS_UniEnc(zi,j)1≤j≤n-1;
所述密钥切换密钥kski根据密钥切换密钥生成方法KSKG(si,Fi,q,B)生成;
所述根据自举计算方法和旋转多项式r,对所述计算结果密文进行自举,得到刷新后的计算结果密文,包括:
计算
2)初始化累加器
3)对于1≤i≤k,对于0≤j<n迭代的执行以下循环
将ACC的模数从Q切换回q,得到ACC';
对ACC'进行密钥切换,得到刷新后的计算结果密文其中,刷新后的计算结果密文
12.根据权利要求8至11中任意一项所述的方法,其特征在于,所述密钥切换密钥kski通过密钥切换密钥生成方法KOKG(Si,Fi,q,B),所述密钥切换密钥生成方法KSKG(si,Fi,q,B)包括如下步骤:
输入所述第i个参与方的自举私钥si∈R,加密私钥整数B,q;
计算并令表示一个秩为N的单位矩阵IN与gadget向量g的张量运算结果;
是一个除了E[0][0]=1其他位置都是0的矩阵,采样矩阵Gi←χ(Nd)×n
输出
在需要利用所述密钥切换密钥kski进行密钥切换的情况下,密钥切换方法包括如下切换步骤:
输入MK-NTRU密文和所述密钥切换密钥{kski}i∈[k]
令(ci,0,…,ci,N-1)表示ci的系数,计算
计算输出进行密钥切换后得到的密文
13.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至6中任意一项所述多密钥同态加密方法或执行权利要求7至12中任意一项所述多密钥同态计算方法。
14.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器用于存储程序,所述处理器用于运行所述存储器存储的程序,其中,所述程序运行时执行权利要求1至6中任意一项所述多密钥同态加密方法或执行权利要求7至12中任意一项所述多密钥同态计算方法。
CN202311525190.4A 2023-11-15 2023-11-15 多密钥同态加密方法、计算方法、存储介质及计算机设备 Pending CN117394982A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311525190.4A CN117394982A (zh) 2023-11-15 2023-11-15 多密钥同态加密方法、计算方法、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311525190.4A CN117394982A (zh) 2023-11-15 2023-11-15 多密钥同态加密方法、计算方法、存储介质及计算机设备

Publications (1)

Publication Number Publication Date
CN117394982A true CN117394982A (zh) 2024-01-12

Family

ID=89470111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311525190.4A Pending CN117394982A (zh) 2023-11-15 2023-11-15 多密钥同态加密方法、计算方法、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN117394982A (zh)

Similar Documents

Publication Publication Date Title
CN110363030B (zh) 用于执行基于格的密码操作的方法和处理设备
CA3049531C (en) Homomorphic white box system and method for using same
JP5572610B2 (ja) セキュリティ強化のための転置データ変換
JP4025722B2 (ja) データ暗号化のための方法および装置
Fiskiran Workload characterization of elliptic curve cryptography and other network security algorithms for constrained environments
Toorani et al. A secure cryptosystem based on affine transformation
CN109450615A (zh) 一种高效的opc ua客户端与服务器端数据传输加密方法
Sarkar et al. Role of cryptography in network security
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
US11336425B1 (en) Cryptographic machines characterized by a Finite Lab-Transform (FLT)
Jing et al. Reconfigurable system for high-speed and diversified AES using FPGA
CN109756335A (zh) 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
Kaleel Rahuman et al. Reconfigurable architecture for elliptic curve cryptography using fpga
Smaoui et al. Cryptography with chaos and shadowing
CN116192361A (zh) 同态解密方法、装置、非易失性存储介质及计算机设备
Tahat et al. Hybrid publicly verifiable authenticated encryption scheme based on chaotic maps and factoring problems
Nedjah et al. A parallel yet pipelined architecture for efficient implementation of the advanced encryption standard algorithm on reconfigurable hardware
CN105099693B (zh) 一种传输方法及传输装置
CN117394982A (zh) 多密钥同态加密方法、计算方法、存储介质及计算机设备
Sundararajan et al. A comprehensive survey on lightweight asymmetric key cryptographic algorithm for resource constrained devices
CN108768923A (zh) 一种基于量子可逆逻辑线路的加密算法的聊天实时加密方法
Yu et al. An Energy-Efficient Double Ratchet Cryptographic Processor With Backward Secrecy for IoT Devices
Negi et al. Implementation of AES Employing Systolic Array and Pipelining Approach
Putra et al. Performance Analysis Of The Combination Of Advanced Encryption Standard Cryptography Algorithms With Luc For Text Security
Goswami et al. Comparison of Hardware Implementations of Cryptographic Algorithms for IoT Applications

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