同态加密方案

合集下载

同态加密——精选推荐

同态加密——精选推荐

同态加密同态加密是指这样⼀种加密函数,对明⽂进⾏环上的加法和乘法运算再加密,与加密后对密⽂进⾏相应的运算,结果是等价的。

全同态加密是指同时满⾜加同态和乘同态性质,可以进⾏任意多次加和乘运算的加密函数。

⽤数学公式来表达,即Dec(f(En(m1),En(m2),…,En(mk)))=f(m1,m2,…,mk),或写成:f(En(m1),En(m2),…,En(mk))=En(f(m1,m2,…,mk)),如果f是任意函数,称为全同态加密。

加法同态,如果存在有效算法⊕,E(x+y)=E(x)⊕E(y)或者 x+y=D(E(x)⊕E(y))成⽴,并且不泄漏 x 和 y。

乘法同态,如果存在有效算法,E(x×y)=E(x) E(y)或者 xy=D(E(x) E(y))成⽴,并且不泄漏 x 和 y。

加密就是将消息或原始信息,⽤数学⽅法打乱,然后将其保存或传递给另⼀⽅,后者将使⽤另⼀种数学⽅法对信息进⾏解密并读取它。

理想情况下,加密可以增加数据的安全性,因为只有我们授权的⼈可以读取消息。

信息在解密之前都是很难辨认的,⼀旦加密后,则只有给定密钥才可以解密。

虽然不同形式的加密已存在⼏个世纪,但它仍然是有效果的:加密的数据⼀定⽐不加密的数据安全得多,哪怕是在防⽕墙和杀毒软件之后也⼀样。

加密是保护您的数据避免第三⽅窥探的⽅法,就像你的⽹上购物车⾥,填满了商品。

Gentry发现了⼀个⽅法:Boostrapping,该⽅法我把它称之为:同态解密。

(他为什么可以构造全同态加密⽅案呢)这个⽅法的作⽤是约减噪⾳。

因为格上加密法案是噪⾳⽅案,即在密⽂中含有噪⾳,所以每次密⽂计算后,噪⾳都会增加,尤其是密⽂乘法导致噪⾳增长的⾮常快。

即使你构造了⼀个具有同态性的加密⽅案,由于噪⾳增长,导致⽆法获得同态性。

因此,约减密⽂计算后的噪⾳变得异常关键。

当然在此之前应该构造⼀个具有同态性的⽅案Gentry是在格上⾸先构造⼀个具有同态性的加密⽅案,该⽅案能够做加法,也能够做乘法,但是只能做有限次的乘法。

同态加密体制构造及应用

同态加密体制构造及应用

同态加密体制构造及应用代号 10701 学号 0921980017分类号 TP309.7 密级公开题 ( 中、英文 ) 目同态加密体制构造及应用Construction and Application ofHomomorphic Encryption Schemes作者姓名柳曙光指导教师姓名、职务马建峰教授学科门类工学学科、专业计算机软件与理论提交论文日期二○一三年四月十八日西安电子科技大学学位论文独创性( 或创新性 ) 声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。

尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。

与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。

申请学位论文与资料若有不实之处,本人承担一切的法律责任。

本人签名: 日期:西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。

学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。

同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。

(保密的论文在解密后遵守此规定)本学位论文属于保密,在年解密后适用本授权书。

本人签名: 日期:导师签名: 日期:摘要本文研究同态加密体制的构造及应用。

在构造方面,首先对现有的类同态加密方案和全同态加密方案进行了较全面的介绍,重点介绍了全同态加密方案构造中采用的 Gentry 蓝图和 BV11b 方法,并对现有构造方法进行分析与总结。

在此基础上, 基于 LWE over Ring (RLWE ) 假设, 利用正则映射的方法, 构造了一种多比特类同态加密方案,能实现任意次数的加法和一次乘法, 该方案具有较短的密钥长度和较高的效率。

同态加密方案

同态加密方案

若一个加密方案对密文进行任意深度的操作后解密,结果与对明文做相应操作的结果相同,则该方案为完全同态加密方案。

通常一个公钥加密方案有三个算法:KeyGen算法(密钥生成),Enc算法(加密),Dec算法(解密)。

但是在全同态加密中,除了上述三个算法之外,还包含第四个算法:Evaluate算法(密文计算),这个算法的功能是对输入的密文进行计算。

KeyGen算法(密钥生成)用于生成公钥和密钥,公钥用于加密,私钥用于解密。

还可能生成另外一种公钥,即密文计算公钥,我们把它称之为Evk。

密文计算公钥Evk的作用是在执行Evaluate算法时用到,而且Evk 的形式与使用的全同态方案直接相关。

例如,如果是通过启动技术(Bootstrapple)获得全同态加密,即每次密文计算前要用同态解密约减密文的噪音,这时Evk就是对密钥的每一位加密后生成的密文,即密钥有多少位,Evk里包含的公钥就有多少个。

Evk中每个公钥的大小就是使用Enc加密后产生密文的大小。

当然还有其他情况,例如,如果使用密钥交换与模交换技术获得全同态加密,典型代表就是BGV方案。

这时Evk中包含的就是L–1个矩阵,L是方案中电路的深度,该矩阵用于密钥转换。

每次密文计算后,都需要使用Evk中的公钥将维数扩张的密文向量转换成正常维数的密文向量。

当然还有一种情况就是不需要Evk,例如在Crypto13会议的论文GSW13中,Gentry使用的密文是矩阵(方阵),所以密文乘积或相加不会产生密文维数改变的事情,所以在密文计算时没有用到公钥,这也是该论文可以产生基于身份或基于属性全同态加密方案的根本原因。

Enc算法(加密)和我们平常意义的加密是一样的,但是在全同态加密的语境里,使用Enc算法加密的密文,一般称之为新鲜密文,即该密文是一个初始密文,没有和其他密文计算过。

所以新鲜密文的噪音称之为初始噪音。

Dec算法(解密)不仅能对初始密文解密,还能对计算后的密文解密。

全同态加密方案

全同态加密方案

引言全同态加密是一种先进的加密技术,可以将加密数据进行计算而无需解密,在计算结果上也能保持加密状态。

这种加密方案广泛应用于云计算、数据隐私保护等领域,具有重要的研究和实际价值。

本文将介绍全同态加密的基本概念、原理和应用,并探讨其在信息安全领域的前景。

全同态加密的基本概念全同态加密是指一种加密方案,允许对密文进行计算操作,得到的结果仍然是加密后的数据。

具体来说,对于两个密文C1和C2,全同态加密方案应具备以下性质:1.加法同态性: 对于明文m1和m2,通过加密算法加密得到的密文C1和C2,满足C1+C2 = Enc(m1) + Enc(m2) = Enc(m1+m2)。

即,对密文进行加法运算的结果与对应的明文之和的加密结果相同。

2.乘法同态性: 对于明文m1和m2,通过加密算法加密得到的密文C1和C2,满足C1 * C2 = Enc(m1) * Enc(m2) = Enc(m1 * m2)。

即,对密文进行乘法运算的结果与对应的明文乘积的加密结果相同。

3.解密性: 对于密文C,通过解密算法解密得到的结果D(C),满足D(C) = m。

即,密文经过解密操作能够还原为明文。

全同态加密的实现原理主要基于数学上的复杂运算和密码学技术。

其中,主要的数学基础涉及到离散对数问题、整数分解问题等难题。

具体实现全同态加密的算法有DGHV方案、BGV方案等。

下面简要介绍DGHV方案的原理:DGHV方案是一种基于整数分解问题的全同态加密方案。

其主要思想是通过整数分解问题构建一个同态系统,并利用置换和扩展技术来实现同态性。

具体实现步骤如下:1.参数生成:选择合适的安全参数n,并生成两个大素数p和q,使得p q >n^2。

此外,还需生成一些辅助参数,如模数N=p q、生成元g。

2.密钥生成:随机选择一个秘密密钥sk,并根据参数生成公钥pk。

3.加密算法:对于明文m,根据公钥pk和参数生成一个加密密钥ek,并将明文m和加密密钥ek进行加密,得到密文C。

同态加密比较运算

同态加密比较运算

同态加密比较运算1.引言1.1 概述概述部分是文章的引言,用来简要介绍同态加密比较运算这个主题。

在此,我们将概述同态加密的基本概念和原理,以及同态加密在各个应用领域中的重要性和现实意义。

同态加密是一种特殊的加密技术,它允许在不解密的情况下对加密数据进行运算,包括加法和乘法等特定运算。

这种加密方式使得数据的隐私得到了更高的保护,同时也能够方便地进行计算和分析。

同态加密的基本原理是通过将数据进行加密,使得只有具有相应解密密钥的合法用户才能够解密和访问数据。

与其他传统的加密方式不同的是,同态加密不需要解密就能够对加密数据进行运算,这为一些特定的应用场景提供了便利。

同态加密技术在各个领域都有着广泛的应用。

例如,在云计算中,用户可以将加密的数据上传到云端,而云服务器可以在不知道具体数据内容的情况下进行计算,并返回相应的结果。

这样既保障了用户数据的隐私安全,又能够充分利用云计算的高效性能。

同样地,在数据隐私保护和共享计算等领域,同态加密也起到了重要的作用。

本文旨在介绍同态加密比较运算,探讨其在各个领域中的重要性和应用。

接下来的章节将详细介绍同态加密的基本概念和原理,以及同态加密在不同领域的具体应用。

同时,我们将对不同的同态加密方案进行比较和评价,以期能够更好地理解和应用这一技术。

1.2文章结构1.2 文章结构本文将从以下几个方面对同态加密比较运算进行详细阐述。

首先,我们将介绍同态加密的基本概念和原理。

在这一部分,我们将解释什么是同态加密,以及它的核心思想和基本原理。

我们还将介绍同态加密的加密和解密算法,并探讨其在安全领域中的作用。

其次,我们将探讨同态加密在实际应用领域中的具体应用。

同态加密作为一种能够在加密状态下进行计算的技术,具有广泛的应用前景。

我们将重点介绍同态加密在云计算、数据隐私保护和安全多方计算等领域的应用案例,并讨论其所带来的好处和挑战。

接下来,我们将在结论部分强调同态加密比较运算的重要性。

同态加密比较运算作为同态加密的一个重要应用场景,具有很高的实用价值和研究意义。

全同态加密自举方案

全同态加密自举方案

全同态加密自举方案引言在现代密码学中,全同态加密(Fully Homomorphic Encryption,FHE)是一种特殊的加密方案,它允许在加密状态下进行计算,而不需要解密。

自举方案是指使用加密的密文对加密方案进行更新或修改。

全同态加密自举方案将全同态加密与自举技术相结合,允许对密文进行操作和计算,从而实现更强大的功能。

本文将介绍全同态加密自举方案的基本原理和应用场景,并分析其中的优缺点。

全同态加密概述全同态加密是一种特殊的加密技术,它允许对密文进行特定的计算操作,而不需要解密密文。

这意味着在不暴露明文内容的情况下,可以对密文进行数学运算,得到计算结果。

全同态加密可以实现加法和乘法操作,有些方案还支持更复杂的计算,如逻辑门操作。

全同态加密方案通常包括三个算法: - 密钥生成算法(Key Generation):生成公钥和私钥,用于加密和解密操作。

- 加密算法(Encryption):将明文转换为密文。

- 解密算法(Decryption):将密文转换回明文。

全同态加密的核心挑战是在保持加密状态下进行计算,并在解密时获得正确的结果。

全同态加密自举方案全同态加密自举方案是一种特殊的应用,它允许使用加密的密文对全同态加密方案进行更新或修改。

自举方案的关键思想是使用全同态加密的密文进行计算和加密操作,以实现更复杂的功能。

一种常见的全同态加密自举方案是基于评估电路(Circuit Evaluation)的方法。

该方法将计算任务表示为一个电路,然后使用全同态加密方案对电路进行计算。

通过将输入数据和电路表示为加密的密文,可以在不暴露明文的情况下进行计算,并获得加密的结果。

全同态加密自举方案的一个重要应用是安全外包计算(Secure Outsourced Computation)。

通过将计算任务外包给不可信的云服务器,使用全同态加密自举方案可以保护用户的隐私和数据安全。

全同态加密自举方案的优缺点优点1.隐私保护:使用全同态加密自举方案可以在不暴露明文的情况下进行计算,保护数据隐私和安全。

多次加法和一次乘法的同态加密方案_概述说明

多次加法和一次乘法的同态加密方案_概述说明

多次加法和一次乘法的同态加密方案概述说明1. 引言1.1 概述:在现代信息社会中,数据安全和隐私保护是至关重要的。

同态加密技术作为一种强大的密码学工具,在解决隐私保护和数据处理方面发挥着重要的作用。

同态加密技术允许在不暴露原始数据的情况下对其进行计算,使得云计算等场景下的数据共享变得更加安全可行。

本文旨在介绍一种特殊类型的同态加密方案,即多次加法和一次乘法的同态加密方案。

该方案通过支持多次加法和一次乘法操作实现了高效且安全的数据处理能力。

我们将详细探讨这个方案的原理、实现以及与其他同态加密方案进行对比分析。

1.2 文章结构:本文主要由以下几个部分组成:- 引言:介绍文章的背景、目的和结构。

- 多次加法和一次乘法的同态加密方案:详细介绍该方案的基本概念、原理和实现方法。

- 多次加法和一次乘法同态加密方案的对比分析:从安全性、效率和应用场景等角度与其他同态加密方案进行比较。

- 结论和展望:总结主要发现,讨论存在的问题与挑战,并提出对进一步研究方向的建议。

1.3 目的:本文的目的是介绍多次加法和一次乘法的同态加密方案,并通过比较分析评估其在数据安全和处理效率等方面的优劣。

希望通过本文的阐述,读者可以更深入地理解同态加密技术及其应用,并了解这个特定方案在实际场景中的潜力和局限性。

最后,我们也希望为相关领域的研究者提供进一步探索该方向的研究建议。

2. 多次加法和一次乘法的同态加密方案2.1 同态加密的基本概念同态加密是一种特殊的加密技术,可以在不解密数据的情况下进行运算操作。

与传统的加密方式不同,同态加密方案允许对加密数据进行数学运算,得到的结果仍然以加密形式存在。

其中,多次加法和一次乘法是两种常见的同态运算。

2.2 多次加法同态加密方案的原理与实现多次加法同态加密方案基于公钥密码学原理,并采用混合密码体制来实现。

其核心思想是将待计算的数据进行分割并分别进行加密,在保证计算过程中不泄露信息的前提下完成所有的相应操作。

一个基于NTRU的多密钥同态加密方案

一个基于NTRU的多密钥同态加密方案

密码学报 I S S N 2095-7025 C N 10-1195/T NJournal of Cryptologic Research, 2020, 7(5): 683-697 ©《密码学报》编辑部版权所有.E-m a i l:j c r@c a c r n e t.o r g.c n h t t p://w w w.j c r.c a c r n e t.o r g.c nT e l/F a x:+86-10-82789618—个基于N T R U的多密钥同态加密方案#李瑞琪'贾春福W1.南开大学网络空间安全学院,天津3003502.天津市网络与数据安全技术重点实验室,天津300350通信作者:贾春福,E-m a i l:cfjia@n a n k a i.e d u.c n摘要:当前有关多密钥全同态加密的研究仍存在很多问題有待解决,如现有多密钥全同态加密方案的构造方法较为复杂;在云计算环境下,用户端的计算开销较大.针对上述问题,利用工具向量(g a d g e t v e c t o r)和比特分解(b i t d e c o m p o s i t i o n)技术,提出了一个基于N T R U的层级多密钥全同态加密方案,并给出了噪声增长与安全性的分析.该方案可以将之前方案中在同态运算阶段应用的重线性化(r e l i n e a r i z a t i o n)技木或密文扩张过程移除,进而在生成参数和密钥时元需生成运算密钥(e v a l u a t i o n k e y)或密文扩张所需的公共参数.同时,可以证明能够利用G e n t r y的b o o t s t r a p p i n g定理将该方案转化为完全的多密钥全同态加密方案.此外,该方案允许加密一个环中元素而不仅是1比特,从而可以利用中国剩余定理将该方案转化为支持批处理的多密钥同态加密方案.该方案与现有多密钥同态加密方案对比结果显示,该方案更加简洁,用户端的计算开铕相对较低.关键词:全同态加密;多密钥;N T R U;比特分解;批•处理中图分类号:T P309.7 文献标识码:A D O I: 10.13868/j.c n k i.j c r.000399中文引用格式:李瑞琪,贾春福.一个基于N T R U的多密钥同态加密方案问.密码学报.2020, 7(5): 683-697.[D O I: 10.13868/j.c n k i.j c r.000399]英文引用格式:L I R Q,J I A C F.A m u l t i-k e y h o m o m o r p h i c e n c r y p t i o n s c h e m e b a s e d o n N T R U[J j.J o u r n a l o f C r y p t o l o g i c R e s e a r c h, 2020, 7(5): 683-697. [D O I: 10.13868/j.c n k i.j c r.000399]A M u lti-k ey H om om orp h ic E n cryp tion S ch em eB ased on N T R UL I R u i-Q i1'2,J I A C h u n-F u1,21. College of C yb er Science, N ankai University, T ianjin 300350, C hina2. T ianjin Key L ab o rato ry of N etw ork an d D a ta Security Technology, T ian jin300350, C hinaC orresponding au th o r: JIA C hun-Fu, E-mail: cfjia@A b s t r a c t:T h e r e a r e m a n y p r o b l e m s t o b e s o l v e d o n t h e t o p i c o f m u l t i-k e y f u l l y h o m o m o r p h i c e n c r y p t i o n s c h e m e s.T h e e x i s t i n g M K F H E s c h e m e s a r e u s u a l l y c o m p l i c a t e d a n d dif f i c u l t t o i m p l e m e n t, w h i c h c a n c a u s e e x p e n s i v e c o m p u t a t i o n a l o v e r h e a d f o r u s e r s i n t h e c l o u d c o m p u t i n g e n v i r o n m e n t. T h i s p a p e r p r e s e n t s a l e v e l e d m u l t i-k e y f u l l y h o m o m o r p h i c e n c r y p t i o n s c h e m e b a s e d o n N T R U,a n d a n a l y z e s its n o i s e g r o w t h a n d s e c u r i t y.T h e g a d g e t v e c t o r a n d b i t d e c o m p o s i t i o n t e c h n i q u e s a r e u s e d +基金项目:国家重点研发计划(2018YFA0704703);国家自然科学基金(61972215, 61702399, 61972073);天津市自然科学基金(17JCZDJC30500)Foundation: National Key Research and Development Program of China (2018YFA0704703); National N atural Science Foundation of China (61972215, 61702399, 61972073); N atural Science Foundation of Tianjin M unicipality (17JCZDJC30500)收稿日期:2019-09-05 定稿日期:2019-12-02684Jem m a/ 〇//?esecirc/i 密码学报 Vol.7,No.5, O ct.2020i n t h e p r o p o s e d s c h e m e s u c h t h a t r e l i n e a r i z a t i o n o r c i p h e r t e x t e x t e n s i o n p r o c e d u r e c a n b e a v o i d e dd u r i n g t he h o m o m o r p h i c e v a l u a t i o n,a n d t h e r e is n o n e e d t o g e n e r a t e e v a l u a t i o n k e y o r p u b l i c c o m m o np a r a m e t e r s r e q u i r e d d u r i n g c i p h e r t e x t e x t e n s i o n.It c a n b e s h o w n t h a t,u s i n g G e n t r y’s b o o t s t r a p p i n g t h e o r e m,t h e p r o p o s e d s c h e m e c a n b e t r a n s f o r m e d i n t o a p u r e m u l t i-k e y f u l l y h o m o m o r p h i c e n c r y p t i o n s c h e m e.M o r e o v e r,t h e p r o p o s e d s c h e m e c a n e n c r y p t a r i n g e l e m e n t r a t h e r t h a n a s i n g l e b i t,s o it c a n b e c o n v e r t e d i n t o a b a t c h e d m u l t i-k e y h o m o m o r p h i c e n c r y p t i o n s c h e m e u s i n g C h i n e s e R e m a i n d e rT h e o r e m.T h e p r o p o s e d s c h e m e is c o m p a r e d w i t h e x i s t i n g o n e s,a n d t h e c o m p a r i s o n s h o w s t h a t t h e p r o p o s e d s c h e m e is m o r e c o n c i s e a n d u s e r s h a v e l o w e r c o m p u t a t i o n a l o v e r h e a d i n t h e c l o u d c o m p u t i n ge n v i r o n m e n t.K e y w o r d s:f u l l y h o m o m o r p h i c e n c r y p t i o n;m u l t i-k e y;N T R U;b i t d e c o m p o s i t i o n;b a t c hi引言全同态加密(F u l l y H o m o m o r p h i c E n c r y p t i o n,F H E)是-•种新型密码学工具,其支持在加密信息上 进行任意函数运算,并且解密后得到的结果与在明文上执行相应运算的结果一致.全同态加密的特性使其 能够广泛应用于云计算、物联网等多种计算场景.同态加密的思想最初由R i v e s t等人⑴在1978年提 出(最初的概念被称作“p r i v a c y h o m o m o r p h i s m”),但在此之后一直都没有具体的构造方法,直到2009年 G e n t r y才构造出了第一个全同态加密方案I2'3!.在G e n t r y的开创性工作之后,一系列关于全同态加密的 研究成果相继出现+81.多密钥全同态加密(M u l t i-K e y F u l l y H o m o m o r p h i c E n c r y p t i o n,M K F H E)是 F H E 在多用户场景 下的一种推广,其支持多方用户以各自的密钥对消息进行加密,得到的密文可以一起参与运算,运算结束 后将各参与方的密钥收集起来得到联合密钥,再用联合密钥对结果密文进行解密.M K F H E在安全多方计 算中有着重要应用.当前有关N1K F H E方案构造的研宄主要可以分为以下三类:•基于N T R U方案.L6p e z等首次提出了 M K F H E的概念,并且构造了第一个M K F H E方案下称L T V12方案),该方案是基于N T R U加密体制队叫的.作者利用重线性化(r e l i n e a r i z a t i o n)和模交换(m o d u l u s s w i t c h i n g)技术获得一个层级多密钥全同态加密(l e v e l e d M K F H E)方案.•基于 G e n t r y-S a h a i-W a t e r s (G S W)方案.2015 年,C l e a r 等丨叫构造了一个以 G S W 方案[7’12丨为基础的M K F H E方案,随后M u k h e r j e e等1131对C l e a r的方案进行了改进.由于这两个方案需 要在进行密文运算前就确定所有参与的用户,因此这两个方案被称作单跳的(s i n g l e-h o p).相对应 地,P e i k e r t等[141在2016年提出了多跳的(m u l t i-h o p)M K F H E方案(下称P S16方案),其支持 运算得到的结果密文继续参与到接下来的计算中,也支持新用户中途加入运算.同年,B r a k e r s k i 等1151提出了与多跳类似的概念---全动态(f u l l y d y n a m i c),并构造了一个全动态的M K F H E方案(下称B P16方案),该方案支持任意用户在任意时刻加入运算.多跳与全动态的区别仅在于是 否需要在同态计算前输入参与运算的用户数的上限..基于B r a k e r s k i-G e n t r y-V a i k u n t a n a t h a n (B G V)方案.2017 年,C h e n 等[16】提出了一个基于B G V问方案的M K F H E方案(下称C Z W17方案).该方案支持加密环中的元素而不只是1比特,并且该方案能够加入批处理机制.上述三种类型的方案推动了 M K F H E的研究,但仍然存在着一定的问题.这些方案存在的最主要问 题是,参与运算的用户除了生成公私钥以及对消息进行加解密外,还需产生大量额外的参数以保证多密 钥的同态密文计算能够进行,例如L T V12方案、B P16方案和C Z W17方案中需要用户生成运算密钥(e v a l u a t i o n k e y),P S16方案贝I]需要用户生成e x t e n s i o n k e y或冗余的密文,这增加了用户端的计算开销. 另外,基于B G V和基于G S W的方案都需要进行密文扩张,因为这两类方案中解密密钥的维数会随着用户数的增加而增加,这使得密文的尺寸也要随之增加才能正确解密.为了解决上述问题,我们提出了一种新的多密钥同态加密方案,利用工具向量和相应的分解函数将 N T R U方案转化成l e v e l e d M K F H E方案.本文所提方案的主要优势在于:李瑞琪等:一个基于n t r u的多密钥同态加密方案685•用户端只需要生成公钥和私钥以及对消息进行加解密,并不需要生成e v a l u a t i o n k e y或其他额外 的参数,减轻了用户端的计算负担.•使用比特分解技术来构造H E方案,这使得密文加法和乘法能够简单地实现,不需要加入其它辅助 技术(如r e l i n e a r i z a t i o n);也使得N T R U直接转化为l e v e l e d M K F H E方案,从而不需要m o d u l u s s w i t c h i n g技术.整个方案更加简洁、易于实现.•不需要进行密文扩张,即密文的(最大)尺寸是不变的.•支持加密环中的元素而并不只是1比特,因而本方案可以扩展成支持批处理的M K F H E方案.另夕卜,我们的方案是一个l e v e l e d M K F H E方案,仍需要利用G e n t r y的b o o t s t r a p p i n g定理将l e v e l e d M K F H E方案转化为一个完全的M K F H E方案.2预备知识本文中我们使用加粗大写字母表示矩阵,如M;使用加粗小写字母表示向量,如1;.在矩阵中,表示位于第i行第j列的元素;在向量中,表示向量中的第i个元素.矩阵和向量中的元素标号从1开始.本文中运算符“•”表示矩阵乘法,包括矩阵-矩阵乘法和标量矩阵乘法(向量可以看作n x 1或者 1x n的矩阵).令必m〇r)为分圆多项式,其次数为n =#(•;)为欧拉函数.本文涉及到的所有运算均在环7? =Z[a:V〈0m(x)〉中进行,令:=尺/研,&中元素的系数都在区间{-L g/2」,...,k/2」}内.定义环中元素 a=a…-i x n_1 +a…—2X n-2 +---h a#+a〇 的无穷范数为 ||a||〇〇 =m a x|a i|.下面的引理给出了环尺中多项式加法和乘法后范数的增长情况:引理1令只=Z[x^〈0m(x)〉,对于任意的a,6 G仏c G Z,有||a+b\\〇〇 < ||a||〇〇+ ||^>||〇〇||c-a||〇〇 < |c| • ||a||〇〇||a•b\\〇c<S■H a l l o o•||6||〇〇其中5是一个只与环丑有关的常数,称作环常数.2.1离散高斯分布我们将均值为0、标准差为r的离散高斯分布记作Z)Z n,r.在本文中唯一需要用到的有关离散高斯分 布的性质是,从中抽取的样本的范数大概率在某一范围内.由此我们可以定义如下的概念:定义1网如果一族分布丨X n^e N满足P r[||e||〇〇 >B] =n e g l(n)e—X n则称其为s界分布.而离散高斯分布有如下性质:引理2 W令n e N.对于满足r >u;(v/I^)的离散高斯分布〇Z n,T•,有P r[||x|U >< 2~"+1X i— D jr n r本文中所涉及到的离散高斯分布均定义为B界分布.由引理2可知,离散高斯分布£>z n,r■是一个 界分布.另外,结合定义1和引理1可以直接得到下面的推论.686Jo u m a/ 〇/C n/pbZ即zc 7?e<searc/i 密码学报 Vol.7,No.5, O c t.2020推论1间令i? =Z l#〈办m(a〇>.令X为丑上的S界分布,设/i,/2,...,A — X,有f c<s k~i B k2.2 R1A V E问题与D S P R•假设环上带错学习问题(R i n g L e a r n i n g W i t h E r r o r s,R L W E)最初是由L y u b a s h e v s k y等丨17丨提出的,判别版本的R L W E问题定义如下:定义2 1171设1/(入)为集合X上的均匀分布.给定一个秘密多项式s e—个上的分布X,我们定义一个A x上的分布九,x:随机选取a叫仏),随机抽取…个差错e — X,输出(a,b=a.s+e).判别版本的RLW E问题(记作DRLWE^)定义为:当s — [/(&)时,区分儿,x与U(凡,x 7?9)两个分布.F面的定理阐述了问题D R I A V E+x的困难性,即区分4S,X与[/(/^ x这两个分布是困难的.定理1令么n(a〇为分圆多项式,其次数为n =V5(m).令a > 0, 9为素数且满足g = 1m o d m和a g 2w(v l^).那么,存在一个多项式时间的量子规约算法,将7? =Z丨〇:]/〈冷m〇r)〉中理想格上的近似 因子为 <5(^/^/〇)的近似最短线性无关向量问题(A p p r o x i m a t e S h o r t e s t I n d e p e n d e n t V e c t o r P r ob l e m,A p p r o x i m a t e-S I V P)规约到D R L W E q问题,其中分布x为满足r >的离散高斯分布D z'r.文献[18]中的引理2证明了秘密多项式s并不必须从上的均匀分布中随机选取,而是可以从选 取差错e的分布x中选取,因此在本方案中,为减缓噪声的增长速度,s和e均从分布x中选取.L c j p e z 等在文献间中介绍了D S P R(D e c i s i o n a l S m a l l P o l y n o m i a l R a t i o)问题,定义如下:定义3间令0(x)G Z[.r]是次数为r i的多项式,9为素数,x是环i? =Z M/W O e)〉上的一个分布.D S P R问题(记作D S P R^J定义为区分以下两个分布:•h=3/一1服从的分布,其中/,5是从分布X中随机选取的(这里要求/在中可逆);•/?<(上的均匀分布.此前有关N T R U的研宄19’1Q,19 211己经证明,当</>(〇:)为任意分圆多项式,分布x为离散高斯分布 为分圆多项式的次数),并且r > ^.P〇l y(n)时,D S P R a9,x问题是困难的(即定义3中的两个 分布在统计意义上是接近的).然而,为了能够进行多密钥同态密文计算,我们需要进行如下的假设:假设1令是次数为n的分圆多项式,分布x为离散高斯分布假设当r =p o l y(n)时,D S P R n x问题仍是困难的.2.3多密钥同态加密-个多密钥同态加密方案包含四个算法(K e y G e n,E n c,D e c,E v a l),具体描述如下:•(P k,s k)i K e y G e n(l A):给定安全参数A,输出公钥p k和私钥s k;•c— E n c(p k,m):输入消息明文m和公钥p k,输出密文c;•m:=D e c(s k i,s k2,...,s k;v,c):输入密文c,以及密文所对应的运算参与方的私钥s k b s l^.^s k i v,输出消息明文m;•(c*,S):= ,(c t,S t)):算法的输入包括一个电路C,以及f个元组(C i,S,),i e {1,...,<}.每个元组中包括一个密文c,和其对应的用户(密钥)集合算法的输出为结果密文f和其对应的用户(密钥)集合S=U S,:(在用户(密钥)集合中可以找到任意参与运 算的用户的公私钥).2.4 B o o t s t r a p p i n gG e n t r y在文献[2,3]中提出了 “b o o t s t r a p p i n g”技术,该技术利用重加密的思想更新密文,从而控制 噪声膨胀以保证解密正确性,进而实现任意次的密文同态运算.G e n t r y的b o o t s t r a p p i n g定理也可以用于 多密钥的场景.具体来说,该技术要求H E方案能够对“增强解密电路(a u g m e n t e d d e c r y p t i o n c i r c u i t,)”进行处理,同时也需要该H E方案具存弱循环安全性(w e a k l y c i r c u l a r s e c u r e).有关b o o t s t r a p p i n g技术 的更多细节参见文献[2,3].李瑞琪等:一个基于N T R U的多密钥同态加密方案687定义4令£为一个多密钥同态加密方案.该方案的增强解密电路/C1,C2定义为/C l,C2(sk i,sk2,... ,skyv) = 5.Dec(ski,sk2,... ,sk^, c i)A.Dec(sk i,sk2,••• ,skyv,C2)定义5如果一个公钥加密方案在敌手获得其私钥的所有比特的密文时仍然是I N D-C P A安全的,则称该方案具有弱循环安全性.结合定义4和5,可以得到多密钥版本的b o o t s t r a p p i n g定理如下:定理2如果一个多密钥同态加密方案能够同态运行其增强解密电路,并且具有弱循环安全性,那么该 方案就能转化为一个完全的多密钥全同态加密方案.2.5工具向量和比特分解函数文献丨22]中提出了“工具向量(g a d g e t v e c t o r)”沒及其对应的比特分解函数它们最初是用来操作中的整数的.本文中,我们将这两个概念推广到多项式环中使用,并且基不局限为2.对于模数(7和基令々=「l o g^l.定义工具向量为分=(1,〇;,〇;2,…,o A—1相应的分解函数 g_1定义为:g ' :R q^R e J xl此函数的输入为凡中的一个多项式a,输出一个随机(歹l l)向量x1€ 乂〃1满足g .a:1' =a m o(i q.对于行向量v e9—Y r)表示将g-1作用于v的每一个分量从而得到一个矩阵V e2.6中国剩余定理与批处理中国剩余定理(C h i n e s e R e m a i n d e r T h e o r e m,C R T)是一个重要的工具,该定理内容如下:定理3 %设只是•个环,是尺中两两互素的理想,于是有R ^=j ik=<s>i=lRh其中 <8^=1 畀表示笛卡尔积,即区)〉=1 耷={(〇丨,a2,...,a fc)|c U= 1,...,*}.假设p A—个素数且满足(P,m) =\以及/ = 1 mod m,那么对于分圆多项式0m〇r),有必m(a:)=r t=1 m odp,其中每个/iOr)的次数为d.根据中国剩余定理可知R p =Z p[x]/0,…(i) =Zp[x]/f\(x)®Z p[x]//2(x)®®Zp[x]/f k{x) ^ (F p d)f c每一个Z p M A A b)可以看作一个“明文槽”,利用该同构可以将A:个F p(i中的明文用/?p中的一个元素 来表示,并且有如下性质:设(a0,a i,…,a n W b o A,... e (F p d)f c是两组明文,它们对应的中的元素分别是a,b,于是计算a+b相当于计算(a〇+b〇,a i +b i,…,a j t-i +b n),计算a6相当于计 算(a〇f e〇,a i6i,...,afc—i(u'—i).利用上述原理,文献[24]提出了支持 S I M D(S i n g l e I n s t r u c t i o n M u l t i p l e D a t a)操作的H E方案.在此基础上,文献丨25]利用/?p上的自同构映射a(;r)并结合B e n e§/\V a k s i n a n置換网络,可以使明文槽中的元素进行任意置换(p e r m u t a t i o n).具体来说,伽罗瓦群G a l(Q[;c]/<^m(:r))中的元素为 自同构映射14:^,丨6忑;1,该伽罗瓦群包含了一个子群£; = {:1:4;^>=0,1,...,£^—1}.文献[25]证明了商群//=G a l〇Q丨可以使明文槽中存储的消息进行轮换(r o t a t i o n).因此,以群//所包 含的自同构映射为基础再结合B e n e S/W a k s m a n置换网络,b]"以实现明文槽中兀素的任意置换.3基于N T R U的多密钥同态加密方案3.1 N T R U 方案我们首先介绍N T R U方案,这是构造我们的M K F H E 方案的基础.688JoumaZ 〇/CVypioZogic _R esearc/i 密码学报 Vol.7, No.5,O ct. 2020给定安全参数A,设存在多项式时间的算法输出以下参数:素数g =g(A),分圆多项式0m(a〇(次数为 n=n(A) =W m)),5(;\)界分布X.方案的明文空间为=H p,p为小整数(例如2或3),方案所涉及 到的所有运算均在环〈也中进行.N T R U方案由以下三个算法组成:•N T R U.K e y G e n(l A):随机抽取多项式/',g卜x,令/ := p/' + 1.如果/在&中不可逆,那么重新抽取输出公钥和私钥pk := h =p g f^1 6 R q,s k := / 6•N T R U.E n c(p k,/i):随机抽取多项式s,e i x.输出密文c=hs+pe+fi €R q.N T R_U.D e c(s k,c):计算//=/.c6 输出H=fi'm o d p当l l/c丨丨〇c <g/2时,解密的结果是正确的,这是由于此时/c m o d g=/c.3.2基于N T R U的多密钥同态加密方案这一小节介绍我们的基于N T R U的多密钥同态加密方案.给定安全参数A,设存在多项式时间的算法,输出素数9 =以A),分圆多项式次数为n =W m) =rz(A)),S(A)界分布 x.设基为 % 心=「l o g^^l,工具向量为 g = (l,w,w2,...明文空 间为,令p为小整数且满足p S w <g,所有的运算均在中进行.我们的多密钥同态加密方案包括以下四个算法:•M K H E.K e y G e n(l A):调用 N T R U.K e y G e n(l A),输出公钥和私钥p k~h =p g f-1 €R q,s k:= f e R•M K H E.E n c(p k,"):随机抽取々组S i,ei — x用于计算N T R U.E n c(/i,0)来得到々个“0的密文”,然后将得到的•^个0的密文组成一个向量C〇e最后输出密文c-.= c〇 +ng £R l q xlq•M K H E.D e c^s k^s k^,…,s k j v,c):析取每个私钥s k,:得到s k i = /i,令联合私钥为s k := / = /i/2…//v.计算并输出明文H =N T R U.D e c(/,c[l])•M K H E.E v a W C J c u A M c i&V.d c^S t)):设密文C l对应的用户(密钥)集合为&,密文c2对应的用户(密钥)集合为密文加法为C a d d =M K H E.A d d(c i,C2) =c i +C2 €R\x l,>密文乘法为c m u it =M K H E.M u l t(c U i c2) =c i •g~\c2)e同时,也需要输出c a d d和c m u l t对应的用户(密钥)集合S=&U S 2.李瑞琪等:一个基于N T R U的多密钥同态加密方案689 4方案分析本节将对我们提出的M K F H E方案的有关性质进行分析.4.1同态性分析设C,C为两个密文,其对应的明文分别为叫/i,对应的公私钥分别为令c a d d =C+占,C m u丨t =c.下面我们将说明使用联合密钥/= / . /可以将c a d d解密得到Ai+将C mult解密得到"•/i.对于加法我们有C a d d =C-f-C使用/= / ./解密C a d d时,需计算/ •C a d d[l],可得/*C a d d[l] =//•C(〇)[l]+//•C(〇)[l]+//(/X-h p>)g[l]由加密过程可知和是0的密文,于是有/ •c⑶[1]m o d p= 0和/•m o d p= 0.另外己知/三1 m o d p,/三1 m o d= 1,因此可以推出/ •c ad d[l]m o d p=p,从而加法正确.对于乘法我们有C m u l t= ^ 'Q(c)=(C(〇)-y_1(c)=C(〇) -^_1(c)+/i-c=C(〇) •p_1(c)+m(C(〇) +A•^)=c(〇) •g~\c)-I-[I•C(〇)I I-fl-g使用/=/•/解密c m u l t时,需计算/.c m u l t[l]•设f1⑷得到的矩阵为C e'可得/ •C m u l t[l] =f f^ +//(M•C(〇)[l])+//(/X•同样,我们己知c(〇)【l]和5(〇)[l]是0的密文,因此/ .c(0)[l]m o d p=0, /.m o d p=0.再加上己知 / e 1m o d p,/e 1m o d p,= 1,故可以推出/ •c m l,it[l]m o d p=n -fi从而乘法正确.在文献间的最初构造中,密文c2 +£需要使用联合私钥/2 ./解密,而密文c+52需要使用联合 私钥/./2解密,也就是说联合私钥会随着运算电路的变化而变化.但我们希望联合私钥仅与参与用户有 关,而与运算电路无关.在文献[8]中,作者利用r e l i n e a d z a t i o n技术解决了这个问题.而在本文中,我们 的M K F H E方案不需要额外添加任何技术就可以使得联合私钥只与参与用户有关,不受运算电路的影响. 下面我们来说明这一点.事实上只需证明在本方案中,仅使用私钥/就能正确解密密文c,nult =c.即可.690Jem m a/ 〇/CVyptoZopz'c /?esearc/i 密码学报 Vol.7, No.5,O c t.2020与上文类似,我们可将c•g q(c)表示为C •分_1(C)=c(0) •分一 1(c)+/X •〇(〇)+"•"•分设c=g—y c)e只&以' 用/解密时有/. Cmult[l] =/E c[i,l]c(0)[i] + /(" • c(〇)[l]) + / . /i •"己知 / .c(〇)[l]m o d p= 0, / s 1m o d p,故可以推出/ ■c m u it[l]m o d p=n-fi以上的推导说明了无论有多少个用同一公钥加密的密文相乘,解密时只需使用原私钥,这就意味着本方案 中的联合私钥与运算电路无关.4.2安全性分析N T R U型密码方案的安全性是基于RLW E问题的.在本方案中,考虑由公钥和密文向量中的一个 元素组成的二元组(/i =P S/_1,cM=/is+pe +a//^.若h是从上的均匀分布中选取的,并且 S,e — X,那么此时可以看作是从分布儿,x中选取的,因此我们需要保证选取的S和/能够使 得/i z p p/-1的分布与上的均匀分布是统计意义上接近的.文献[9,10,19-21]己经证明当r >M.p o l y h)时,D S P R^.m问题是困难的(即定义3中的两个 分布在统计意义上是接近的).然而正如前文所述,在多密钥场景中无法将r设定为r >.P〇l y(n),因此我们需要D S P R假设(即假设1),将r设定为P〇l y(n:).尽管D S P R假设未被证明是困难的,但是当 <j=2—,e G (0, D时,到目前为止仍然没有高效的方法去解决D S P R假设1261.根据定理1,我们可以得到如下的关于本方案安全性的结论.定理4当为分圆多项式,次数为n;x为离散高斯分布■〇z»,r,其中r =p o l y(n);g = 2n,e 6 (0, |)时,在D R L W E^与D S P R_,X的假设下,本方案是I N D-C P A安全的.4.3噪声分析在这一小节中,我们将分析执行同态运算的过程中,密文噪声的增长情况.首先,对密文的噪声进行定 义:定义6设c为一个密文,/为其对应的私钥.密文c的噪声定义为n o i s e(c) = ||/■c[l]||〇〇对于所有N T R U类型的方案,解密正确需要满足条件||/ .c||〇〇 $g/2.因此在本方案中,正确解密需 要保证密文噪声满足n o i s e(c X g/2.下面的引理给出了执行一次同态运算后密文噪声的增长幅度.引理3令c,c'是两个密文,它们对应的明文分别是&//,对应的用户(密钥)集合分别为令c和d之间执行一次同态运算(加法或乘法)后得到的密文所对应的用户(密钥)集合为S=氏U S2,且 ■S中包含i V个用户(密钥).解密c a d d =c+c'和c m u l t =c.g-H c')可以分别得到//+//和"■//.如 果 n o i s e(c) £i?,n o i s e(c’)幺五,那么进行一次同态运算后,有 n o i s e(c a d d),n o i s e(c m u it) <参数p,w,5,n,B的定义见3.2节.证明:已知每个用户最初的私钥/,的范数上界为p s+i./S根据推论1可知l l/s||〇c <李瑞琪等:一个基于N T R U 的多密钥同态加密方案6911)N < W p S 广.对于加法有=||/sius2(c[l] + 〇[1])||〇〇=ll/saNSiC/si • c[l]) + /s!\s2(/f» ' cflD H oo<<5||/slW I/Sl 'CW IIO O +列/S ||oc ||/S2< 2{2p 5B )NE其中灸\而表示集合的差,即S 2 -&.显然我们可以得到2(2p 5S )N J 5 <,因此加法情况结论成立.对于乘法,令得到的矩阵为C ' e 丑^〃9,我们有< ^q\\f s C '[l , l]C(〇)[l]||cx3 + ||m /s C (〇)[1]||o o + ||/s /i M l |c< ^<5-^ll/sc(〇)[l]ll 〇〇 + <5|ll/sC(〇)[l ]||〇〇 + <52(^)2||/s ||< (^^2 + |)5II^s 2\S i (/S i C(〇)[1])||o o + <52(|)2||/s ||〇〇< ^+ \){2p 5B)N E + 5(^f (2pSB)N <(^n +^-5+^)(2P 6B )N E< 2p 2b 〇nS (2pSB)NE< (2pumSB)2NE其中,已知c '[i ,fc ] e 扎,以及e 丑p ,从而有丨1匚'[1,句|丨〇〇 < w /2,以及h l l o c l l /Z I U s p /2. c(0),c ,(〇)是与c ,c ,在同一层的(〇的)密文,故而它们的上界一致,即||/C (0)K f i j /c h K 五.当 g = 2n<,e G (0, 时,上式中倒数第三个不等号成立;w > 1时,w + 1 < 2i V ,7V + 2幺2A T ,最后一个不我们注意到噪声中有项,如果我们依照文献[9,10,19-21]设定r > ^.p o l y (n ),再根据引理2, 可以得到S > v ^.p o l y (n ),那么当i V > 1时噪声不可能小于g /2,因此我们需要D S P R 假设(即假设1), 将 r 设置为 r = p o l y (n ),即 S = p o l y (n ).下面的引理表明了本方案是一个l e v e l e d MK F H E 方案,同时也说明了在进行多方同态运算前,需要 预先设定用户数和运算电路深度的上界.引理4令9 = 2"'££(0,§),乂为5界分布且丑=口〇以(〇).当密钥(用户)数斤和方案允许运算 的电路的深度i 满足本方案是一个l e v e l e d M K F H E 方案.证明:引理3给出了一次同态运算后密文噪声的增长情况,于是我们可以从初始密文中的噪声五〇 < 4p 2<5S 2开始计算L 层(乘法)运算后密文噪声的大小.经过i 层运算后,密文噪声增长为n o i s e (c m u i t ) — \\fs ■ c m u it [l ]||c x j等号成立.N L < 0{n e / l o g n ){(2p 〇jn 6B )2N )LE 〇 < (2pu ;n 6B )2N L +2692JournaZ 〇/CVyptok^ic i?esearc/i 密码学报 Vol.7, No.5, O ct. 2020为了能够正确解密,我们需要保证g g/2.已知p = 0(l),w = 0(1),B =p o l y(n),并 且文献[3]指出大多数情况下环常数<5满足<5=P〇l y(n)(这就要求我们选取满足此项要求的分圆多项式).根据上述条件可得N L < 0(l o g q/l o g n) =0(n£/l o g n)□4.4完全的多密钥全同态加密上文中我们得到的方案是一个l e v e l e d M K F H E方案.在这一小节中我们将说明,可以利用G e n t r y 所提出的b o o t s t r a p p i n g定理,将丨e v e l e d M K F H E方案转化为完全的M K F H E方案.G e n t r y在其开创性的工作%31中提出了 b o o t s t r a p p i n g定理,该定理指出如果一个同态加密方案能 够同态运行自己的增强解密电路,那么该方案就能够转化为一个完全的全同态加密方案.因此,需要对本 方案的解密电路的深度进行衡量.下面的引理给出了本方案解密电路深度的上界.弓丨理5本方案的解密电路可以用G F(2)上的深度为C»(l〇g i V.(l o g l〇g g+l〇g r a))的算术电路来实现.证明:假设c是密文,其对应的私钥集合为{/^方,...,/;v},那么解密c的过程可以表示为NM K H E.DecC/i,/2,•■•,f N,c[l]) =c[l] ■/,i=l文献[4]己经证明,两个仏中的多项式的乘法可以通过深度为〇(l〇g l〇g g+l〇gn)的布尔电路来实 现.7V个多项式相乘可以通过深度为l o g7V的二叉树来实现,因此解密过程的布尔电路的深度为0(l o g7V• (l o g l o g^ +l〇g n))□根据上文的结论,我们得到定理5.定理5当g = 2n'e G(0,|),x为召界分布且召=P〇M n)时,存在一个支持iV$1/^7^. (ne/2/l〇g n)个用户(C为常数),安全性基于DRLWEg,x与DSPR^,X假设,且满足弱循环安全性的多 密钥全同态加密方案.证明:根据G e n t r y的b o o t s t r a p p i n g定理,要达到完全的全同态加密,解密电路的深度需要小于方 案能够同态运行的电路的深度,即对于某个常数C〉0,有如下不等式l o g A^•(l o g l o g^ +l o g n) <C•1〇S qN• log n当 .h e/2/1〇g几)时,有l o g N•(l o g l o g q+l o g n) ■N•l o g n <N2 •l o g n•(l o g l o g q+l o g n).C n e_ . . 2<2* ' 1^2^ '+€)'loS n<C-n€=C•l o g q从而得到定理中的结论.□4.5批处理利用中国剩余定理和文献I24j中提出的S I M D技术,可以将本方案转化为一个支持批处理的多密钥 同态加密方案.当选取合适的参数p和分圆多项式时,我们可以通过C R T将一组明文,//;〇映射为一个多项式,抖),然后将"加密得到密文c.根据同态加密和C R T映射的特 性,并行加法和乘法可以分别通过密文加法和乘法实现.因此在本小节中,我们将主要讨论如何进行置换 运算.文献I25j提出了以自同构映射为基础来实现置换的方法,其中自同构映射是核心技术,下文将介绍 自同构映射在本方案中的应用.设密文C对应的明文为/i,对应的密钥为/ =/i/j…知,因此我们可知f(x)c(x) = n(x)g + pe(x)+(/>m(x)k(x)其中以办知⑷^/^^将自同构^:^:^:^泛^作用于该等式可得f(x l)c(xl)=n{xz)g+pe(xl)+(p m(xl)k(xl)己知0m〇r)能够整除彡€Z L从而我们可以将看作关于密钥/(V)的密文•然而 我们需要的密文应当是对应于密钥/(a〇的密文,因此我们在进行置换运算时,需要借助于密钥交换技术 (k e y s w i t c h i n g),将密文c〇c2)转化为一个新的密文c' =K e y S w i t c h W:^)),使得新密文能够用/⑷解密.下面将说明本方案中为实现置换运算所需要的密钥交换过程.设密文c(a;)对应的联合密钥为/⑷=/i(a;)/2(a〇•••/"(〇;),密钥交换过程K e y S w i t c h k h1》分为 以下2步:•拥有密钥力的用户首先计算=M K H E.E n c^k,/^;^)),然后每个用户将各自的计算结果c t 发送到云端.•云端计算c,=c/i '9~\c h) ■■g~1{c f N)-g'^c^1))得到的计算结果c'即是所需的密文.下面说明K e y S w i t c h k W))输出的密文能够用联合密钥/解密.由加密过程可知,可以表示为 c/j =c(〇),A +其中是对应于/)的0的密文.于是有c/i'9_1(c/2) =c(0)i/l^~\〇/2) + f2{x')c{0)j2 + f i(x l)f2(xl)g在这个等式中,可以看作是对应于密钥A的0的密文,/2(;^)£:(0),/2可以看作是对应于 密钥/2的〇的密文,因此前两项之和.9_1(<;/2)+/2〇^)<=(0),/2可以看作对应于密钥/l/2的0的密文,我们将其记作c(0),/l/2,于是C/l的结果可以写作C/i' 9_1(c/2) =C(〇),/l/2+f i(x l)f2(x')g以此类推,我们能够得出c'可以表示为c,=c(〇),h h-f N+/i(x l)M x t)' ■'/n(x')c(x')=C(〇)i/l/2'-/jV f(X )C(X )其中C W A/l./i v是对应于密钥/ = /1/2...力V的0的密文.显然,当密文噪声不超过上界时,c'能够用 f =h f2. —f N 解密.5方案对比本节中我们将对比本方案与其他经典方案在性能上的差异.首先简要对比本方案与D o r f i z等人在2016年提出的方案(下称D S16方案)之间的异同.本方 案与D S16方案使用了类似的技术(即比特分解)来处理噪声的增长,但是不同之处在于D S16方案使用 了B i t D e c o m p、F l a t t e n等函数进行比特分解;本方案则利用工具向量g及其相对应的分解函数进行分解,此项差异造成了两个方案的密文大小以及同态运算的复杂度有所不同.设表示分圆多项式的 次数,g表示模数,那么D S16方案中密文的尺寸为0(n l o g3 g),本方案中密文的尺寸为0(n l o g2g).相较 于D S16方案,本方案中的密文尺寸相对较小.在同态运算过程中,D S16方案需进行(维数为l o g q的,元 素为多项式的)矩阵加法和矩阵乘法,本方案则进行的是(维数为l o g g的,元素为多项式的)向量加法和 矩阵-向量乘法.相比之下,本方案的计算复杂度较低.另外,D S16方案讨论的是单密钥场景下的同态加 密算法,不需要D S P R假设;而本方案是多密钥场景下的基于N T R U的冋态加密方案,无法避免D S P R 假设.下面我们将与经典的多密钥同态加密方案进行对比.5.1与LTV12方案的比较本方案与L T V12方案都是基于N T R U的M K F H E方案,既有共同点也有不同点.两个方案在噪 声增长、可同态运行的电路深度等方面有着类似的结论,但是二者是利用不同的技术达成的.L T V12方 案利用r e lin e a r iz a tio n技术消除了联合私钥中的平方项,同时也实现了 key s w itc h in g的功能;又使用 了m o d u lu s s w itc h in g技术,将N T R U方案转化为一个leveled M K F H E方案.这两项技术的使用使 得L T V12方案必须在生成公私钥的同时生成运算密钥,并且在进行每一次同态运算(加法或乘法)时都 需要执行re lin e a riz a tio n操作,每一层同态运算后都要进行m odulus s w itc h in g,才能使得方案成为一个 leveled M K F H E方案.而本方案使用了工具向量和比特分解技术,使得实现同态运算所需的操作变得非 常简单,不需要额外的技术,并且直接将N T R U方案转化为一个leveled M K F H E方案.另外,实现本方案 的同态运算过程仅需要普通的多项式加法和乘法,以及一个将多项式分解的函数.相较于LTV12 方案,本方案更易于理解和代码实现.表1中列出了本方案与L T V12方案的一些基本参数之间的对比,其中n表示分圆多项式的次数,9 表示模数.从表1中可以看到,我们的方案不需要运算密钥,而L T V12方案需要尺寸为0(n l o g3g)的运 算密钥.虽然本方案在同态运算过程中的密文的尺寸是大于L T V12方案的(表1中密文尺寸一行),但是 运算后得到的最终密文(解密时所需的密文)的尺寸与L T V12方案相同(表1中最终密文尺寸一行).表1与L T V12方案的基本性质的比较Table 1 Comparisons of basic properties with LTV12 scheme基本参数本方案L T V12方案公钥尺寸0{n\o g q)0(n log g)密文尺寸0(n log2 q)0(n log g)最终密文尺寸0(n log q)0(n log g)运算密钥/0(n log3 q)下面我们将对比本方案与L T V12方案在云计算场景下,用户端和云端分别所需执行的操作.将同 态加密算法应用于云计算场景时,用户端需要执行的主要操作是生成密钥和同态计算所需的参数(即运 行K e y G e n算法),加密(E n c)和解密(D e c);云端进行的操作则是对用户上传的密文进行同态运算.我们 对两个方案在用户端所需的操作进行比较,因为在云计算场景中,我们希望用户端的开销能够尽可能地降 低.比较结果如表2所示.我们将表2中所列出的密钥生成和加密两个过程中用户端所做的操作综合起来进行对比:若加密1比特,本方案中用户端所需的全部操作是随机生成2个多项式,进行l o g g次多项式乘法和21〇g g次多项式 加法;L T V12方案中用户端所需的全部操作是随机生成2(l o g2 g+l o g(?)个多项式,进行6 l o g2<7+1次多。

几类同态加密方案的研究

几类同态加密方案的研究

几类同态加密方案的研究几类同态加密方案的研究同态加密是一种特殊的加密技术,允许在加密状态下进行计算操作,同时对结果进行解密得到正确的结果。

它在保护数据隐私的同时,允许数据在加密状态下进行计算,为云计算、大数据等领域提供了重要的支持。

目前,同态加密方案主要分为全同态加密、部分同态加密和多方计算等几类。

本文将重点介绍这几类同态加密方案的研究进展和应用。

全同态加密是指能够对加密数据进行任意计算操作的同态加密方案。

最早的全同态加密方案是由Craig Gentry于2009年提出的Gentry全同态加密方案。

该方案使用了复杂的数学结构,实现了对加密数据的任意计算操作,但其计算效率较低。

随后的研究者们提出了一系列改进方案,如Vinod Vaikuntanathan于2010年提出的FHEW方案,在实际计算中显著提高了计算效率。

全同态加密的研究仍在不断进行中,希望能够进一步提高计算效率,并推动其在更广泛的应用中的使用。

部分同态加密是指可以对加密数据进行部分计算操作的同态加密方案。

相比于全同态加密,部分同态加密方案更加高效,并且已经有一些实际应用。

比较典型的部分同态加密方案是Elgamal同态加密方案。

该方案通过利用离散对数问题的难解性,允许加密数据进行加法运算,但并不能进行乘法运算。

部分同态加密在隐私保护和数据分析等方面具有重要的应用价值。

多方计算是指多个参与方通过交换加密数据来完成联合计算的过程。

同态加密可以应用于多方计算中,保护各方的隐私。

典型的多方计算方案是安全多方计算(Secure Multi-Party Computation, MPC)。

MPC通过同态加密保护计算过程中的数据隐私,在实现数据共享和联合计算的同时,确保各个参与方的数据不被泄露。

多方计算在医疗、金融等领域具有广泛的应用场景,在隐私保护和数据安全方面具有重要意义。

同态加密方案的研究和应用离不开安全性和效率的权衡。

安全性是同态加密方案的核心要求,只有数据经过加密后,同样的操作可以保持结果不变,并且无法得到原始数据的具体信息。

同态加密

同态加密

同态加密同态加密是基于数学难题的计算复杂性理论的密码学技术。

对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。

同态加密的基本概念:同态加密的思想起源于私密同态,代数同态和算术同态是私密同态的子集。

R 和S 是域,称加密函数E:R→S 为:1)加法同态,如果存在有效算法⊕,E(x+y)=E(x)⊕E(y)或者x+y=D(E(x)⊕E(y))成立,并且不泄漏x 和y。

2)乘法同态,如果存在有效算法,E(x×y)=E(x) E(y)或者xy=D(E(x) E(y))成立,并且不泄漏x 和y。

3)混合乘法同态,如果存在有效算法,E(x×y)=E(x) y 或者xy=D(E(x) y)成立,并且不泄漏x。

4)减法同态,如果存在有效算法○- ,E(x-y)=E(x)○- E(y)或者x-y=D(E(x)○- E(y))成立,并且不泄漏x 和y,则称E 为减法同态。

5)除法同态,如果存在有效算法○/ ,E(x/y)=E(x)○/ E(y)或者x/y=D(E(x)○/ E(y))成立,并且不泄漏x 和y,则称E 为减法同态。

6)代数同态,如果E 既是加法同态又是乘法同态。

7)算术同态,如果E 同时为加法同态、减法同态、乘法同态和除法同态。

同态加密是一种加密形式,它允许人们对密文进行特定的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。

换言之,这项技术令人们可以在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。

其意义在于,真正从根本上解决将数据及其操作委托给第三方时的保密问题,例如对于各种云计算的应用。

这一直是密码学领域的一个重要课题,以往人们只找到一些部分实现这种操作的方法。

而2009年9月克雷格·金特里(Craig Gentry)的论文,从数学上提出了“全同态加密”的可行方法,即可以在不解密的条件下对加密数据进行任何可以在明文上进行的运算,使这项技术取得了决定性的突破。

同态加密——精选推荐

同态加密——精选推荐

同态加密⼀:什么是同态加密(Homomorphic Encryption)Craig Gentry给出的直观定义:A way to delegate processing of your data, without giving away access to it. ⼀般的加密⽅案关注的都是数据存储安全。

没有密钥的⽤户,不可能从加密结果中得到有关原始数据的任何信息。

我们注意到,这个过程中⽤户是不能对加密结果做任何操作的,只能进⾏存储、传输。

对加密结果做任何操作,都将会导致错误的解密,甚⾄解密失败。

同态加密⽅案最有趣的地⽅在于,其关注的是数据处理安全。

同态加密提供了⼀种对加密数据进⾏处理的功能。

也就是说,其他⼈可以对加密数据进⾏处理,但是处理过程不会泄露任何原始内容。

同时,拥有密钥的⽤户对处理过的数据进⾏解密后,得到的正好是处理后的结果。

⼆:同态加密有什么⽤处?同态加密⼏乎就是为云计算⽽量⾝打造的!我们考虑下⾯的情景:⼀个⽤户想要处理⼀个数据,但是他的计算机计算能⼒较弱。

这个⽤户可以使⽤云计算的概念,让云来帮助他进⾏处理⽽得到结果。

但是如果直接将数据交给云,⽆法保证安全性啊!于是,他可以使⽤同态加密,然后让云来对加密数据进⾏直接处理,并将处理结果返回给他。

这样⼀来:⽤户向云服务商付款,得到了处理的结果;云服务商挣到了费⽤,并在不知道⽤户数据的前提下正确处理了数据;但是,这么好的特性肯定会带来⼀些缺点。

同态加密现在最需要解决的问题在于:效率。

效率⼀词包含两个⽅⾯,⼀个是加密数据的处理速度,⼀个是这个加密⽅案的数据存储量。

业界如何评价全同态加密的构造?在此引⽤⼀个前辈的话:如果未来真的做出了Practical Fully Homomorphic Encryption,那么Gentry⼀定可以得到图灵奖。

(第⼀个构造出全同态加密⽅案的⼈是Gentry)三:同态加密具体如何定义?我们在云计算应⽤场景下⾯进⾏介绍:Alice通过Cloud,以Homomorphic Encryption(以下简称HE)处理数据的整个处理过程⼤致是这样的:1. Alice对数据进⾏加密。

同态加密方向的相关背景知识

同态加密方向的相关背景知识

同态加密:开启信息安全的新篇章随着信息技术的飞速发展,数据安全和隐私保护逐渐成为人们关注的焦点。

在这个背景下,同态加密作为一种革命性的加密方式,引起了广泛的关注。

本文将介绍同态加密的基本概念、发展历程及其在信息安全领域的重要应用。

一、同态加密概述同态加密是一种允许对加密数据执行计算并得到加密结果,而不需要解密的加密方式。

换句话说,它允许用户在不解密的情况下对加密数据进行分析和处理,从而在保证数据隐私的同时实现数据的计算价值。

这一概念在理论上提供了一种平衡数据隐私和计算需求的方法,具有重要的实际应用价值。

二、同态加密的发展历程同态加密的思想可以追溯到20世纪70年代,然而其实际发展过程充满了挑战。

早期的同态加密方案复杂度高、计算量大,难以实际应用。

直到近年来,随着数学和计算技术的发展,才出现了一些可实用的同态加密方案。

如今,同态加密已成为密码学领域的研究热点,并在多个领域展现出巨大的应用潜力。

三、同态加密的应用场景1.云计算:在云计算环境中,用户将数据存储在远程服务器上。

同态加密允许用户在不泄露原始数据的前提下,对加密数据进行计算并获得加密结果,从而保护了用户隐私和数据安全。

2.电子投票:在电子投票系统中,同态加密能够保证投票者的投票隐私,同时让投票结果真实有效。

通过同态加密技术,投票者可以将选票加密后上传至服务器,服务器可以在不解密的情况下统计选票,确保投票的公正性和隐私性。

3.生物信息学:在生物信息学领域,研究人员经常需要处理敏感的个人数据。

同态加密允许研究人员在不解密的情况下对数据进行处理和分析,从而保护个人隐私和数据安全。

4.金融领域:金融行业涉及大量的敏感数据,如交易记录、客户信息等。

同态加密可以为金融行业提供一种在保证数据隐私的同时进行数据分析的方法,有助于保障金融交易的公平性和隐私性。

四、结语同态加密作为一门新兴的密码学技术,为信息安全领域带来了革命性的变革。

它平衡了数据隐私和计算需求之间的关系,为多个领域提供了安全可靠的数据处理和分析方案。

同态加密 解密过程原理

同态加密 解密过程原理

同态加密解密过程原理同态加密解密过程原理什么是同态加密?同态加密是一种特殊的加密方式,它能够在不解密的情况下对密文进行计算,并得到正确的结果。

这种加密方式可以在保护数据隐私的同时,实现对加密数据的快速处理和分析,因此在云计算等领域有着广泛的应用。

同态加密的基本原理同态加密的实现基于数学上的一些特殊性质,主要包括以下几个方面:第一点:加法同态特性同态加密的基础是加法同态特性。

简单来说,就是对于两个密文c1和c2,对应的明文分别为m1和m2,则加法同态特性可以保证加密后的结果c1+c2对应的明文是m1+m2。

也就是说,在不解密的情况下,我们可以对密文进行加法运算得到正确的结果。

第二点:乘法同态特性除了加法同态特性,同态加密还具备乘法同态特性。

对于两个密文c1和c2,对应的明文分别为m1和m2,则乘法同态特性可以保证加密后的结果c1c2对应的明文是m1m2。

同样地,在不解密的情况下,我们可以对密文进行乘法运算得到正确的结果。

第三点:同态加密的限制然而,同态加密并不是无限制的。

同态加密有一个重要的限制条件,即只支持特定类型的运算。

在实际应用中,通常会选择支持加法和乘法运算,但不支持其他复杂运算。

因此,在设计和使用同态加密方案时,需要根据实际需求对加密算法进行选择和调整。

同态加密的解密过程同态加密的解密过程相对简单明了,以下是基本的解密流程:1.接收到加密的密文数据,将其用私钥进行解密,得到对应的明文数据。

2.根据加密方案的约定,使用明文数据进行需要的计算操作。

3.如果需要返回密文结果,将计算得到的明文数据用公钥进行加密,得到对应的密文数据。

4.返回密文结果或明文结果,完成解密过程。

同态加密的应用前景同态加密在云计算、数据安全和隐私保护等领域有着广阔的应用前景。

它可以在保护数据隐私的同时,使得在云端进行数据处理和计算成为可能。

例如,在医疗领域中,可以利用同态加密对医疗数据进行高效的分析和挖掘,同时保护医患隐私信息。

全同态加密方案的研究

全同态加密方案的研究

全同态加密方案的研究全同态加密方案的研究摘要:全同态加密是一种重要的密码学技术,能够对密文进行计算和操作,同时不需要解密。

本文对全同态加密的原理、实现方式以及应用进行了研究和探讨,介绍了几种常见的全同态加密方案,并分析了其优缺点和应用场景。

1. 引言全同态加密(Fully Homomorphic Encryption, FHE)是近年来密码学领域的突破性研究,是对传统加密算法的进一步扩展和发展。

在传统加密中,只能对密文进行传递和存储,对密文进行计算和操作的需求无法实现。

而全同态加密则能够满足对密文进行计算和操作的需求,实现对加密数据的高度保护和隐私安全。

2. 全同态加密的原理全同态加密的原理是通过混淆技术和特殊的加密算法,将明文加密为密文,并设计相应的解密算法。

与传统加密算法不同的是,全同态加密算法能够对密文进行计算和操作,而无需解密。

这是通过将计算操作转化为在密文上的操作实现的,使得加密数据在计算的过程中仍然保持加密状态。

3. 全同态加密的实现方式目前,全同态加密有多种实现方式,其中最为代表性的是基于整数和基于椭圆曲线的方案。

基于整数的方案利用整数的运算特性进行加密和计算,适用于简单的计算任务。

基于椭圆曲线的方案利用椭圆曲线的运算特性进行加密和计算,适用于复杂的计算任务。

此外,还有基于多线性映射和格的全同态加密方案,适用于不同场景和需求。

4. 几种常见的全同态加密方案4.1 基于整数的全同态加密方案基于整数的全同态加密方案主要有RSA全同态加密和Paillier全同态加密。

RSA全同态加密利用RSA算法的特性实现对密文的计算和操作。

而Paillier全同态加密则利用Paillier算法实现同样的功能。

这两种方案在实现方式和性能上有差异,可根据实际需求进行选择。

4.2 基于椭圆曲线的全同态加密方案基于椭圆曲线的全同态加密方案主要有ElGamal全同态加密和BGW全同态加密。

ElGamal全同态加密利用椭圆曲线的离散对数的困难性实现全同态加密。

同态加密技术的实际应用案例

同态加密技术的实际应用案例

同态加密技术的实际应用案例同态加密技术是一种能够在不暴露数据的情况下对其进行计算的加密技术。

它可以在加密状态下对数据进行运算,得到的结果仍然是加密的,只有在解密后才能获取明文结果。

由于其独特的特性,同态加密技术在多个领域都有广泛的应用。

以下是十个同态加密技术的实际应用案例。

1. 金融领域同态加密技术可以应用于金融领域中的数据处理。

例如,在支付系统中,可以使用同态加密技术对用户的交易数据进行加密处理,保护用户的隐私信息,同时保持数据的可计算性,以便进行风险评估和反欺诈分析。

2. 医疗保健同态加密技术可以应用于医疗保健领域中的数据处理。

例如,在电子病历系统中,可以使用同态加密技术对患者的个人信息进行加密处理,以保护其隐私。

同时,医院可以使用同态加密技术对医疗数据进行计算,例如统计分析和疾病预测,而不暴露敏感信息。

3. 云计算同态加密技术可以应用于云计算中的数据保护。

在云计算中,同态加密可以保护用户的数据隐私,同时允许云服务提供商进行计算,例如搜索和排序,而无需访问明文数据。

这可以提高云计算的安全性和隐私性。

4. 物联网同态加密技术可以应用于物联网中的数据保护。

在物联网中,大量的设备和传感器产生的数据需要进行安全处理和隐私保护。

使用同态加密技术,可以对物联网中的数据进行加密处理,同时允许进行数据分析和处理,例如异常检测和预测分析。

5. 数据共享同态加密技术可以应用于数据共享场景中。

在一些合作项目中,不同的组织需要共享数据,但又需要保护数据隐私。

使用同态加密技术,可以对数据进行加密处理,同时允许进行计算,例如数据聚合和数据分析,而不暴露敏感信息。

6. 版权保护同态加密技术可以应用于版权保护。

在数字内容的传输和使用中,版权保护是一个重要的问题。

使用同态加密技术,可以对数字内容进行加密处理,以防止未经授权的访问和复制。

7. 智能合约同态加密技术可以应用于智能合约中的数据保护。

在区块链技术中,智能合约可以自动执行合约规定的操作。

Paillier同态加密方案

Paillier同态加密方案

Paillier同态加密⽅案\(1.\) 背景\(1.1\) ⽣成公钥密钥随机选取⼤素数 \(p,\ q\),计算 \(n = pq,\ \lambda = [p - 1,\ q - 1]\),保证 \((pq,\ (p - 1)\cdot (q - 1)) = 1\),即 \((n,\ \phi(n)) = 1\)随机选取 \(g\in \mathbb{Z_{n^2}^{*}}\),计算 \(\mu = [L(g^{\lambda}\ mod\ n^2)]^{-1}\ mod\ n\),其中 \(L(x) = \frac{x - 1}{n}\)令 \((n,\ g)\) 为公钥,\((p,\ q,\ \lambda)\) 为私钥多说⼀嘴,很多⼈⽆法理解为何保证了 \((p,\ q) = 1\),还要保证 \((n,\ \phi(n)) = 1\),事实上如果构造出 \(p = kq + 1\),那么 \(n\) 和 \(\phi(n)\)就出现了 \(q\) 这个公因⼦\(1.2\) 加密将明⽂ \(m\) 映射成正整数选取 \(r\in \mathbb{Z_{n}^{*}}\),这意味着 \((r,\ n) = 1\)计算密⽂ \(c = g^{m}\cdot r^{n}\ (mod\ n^2)\)\(1.3\) 解密计算 \(m = L(c^{\lambda}\ mod\ n^2)\cdot \mu\ (mod\ n)\)\(1.4\) 正确性\(paillier\) 算法的正确性基于以下事实\[(1 + n)^{x}\equiv 1 + nx\ (mod\ n^2) \]由\[\lambda = [p - 1,\ q - 1] = \frac{(p - 1)(q - 1)}{(p - 1,\ q - 1)} \]所以对于 \(\forall v\in \mathbb{Z}\),满⾜\[v^{\lambda}\equiv 1\ (mod\ p),\ v^{\lambda}\equiv 1\ (mod\ q) \]所以 \(v^{\lambda}\equiv 1\ (mod\ n)\),这是因为 \(n = pq\) 且 \((p, q) = 1\)所以有 \(g^{\lambda}\equiv 1\ (mod\ n),\ r^{\lambda}\equiv 1\ (mod\ n)\)不妨设 \(g^{\lambda} = 1 + qn,\ r^{\lambda} = 1 + q'n\),满⾜ \(q,\ q'\in \mathbb{Z}\)计算\[\begin{aligned} c^{\lambda} & \equiv g^{m\lambda}\cdot r^{n\lambda}\ (mod\ n^2)\\ & \equiv (1 + qn)^{m}\cdot (1 + q'n)^{n}\ (mod\ n^2)\\ & \equiv (1 + qnm)\cdot (1 + q'n^2)\ (mod\ n^2)\\ & \equiv 1 + qnm\ (mod\ n^2) \end{aligned} \]所以\[\frac{c^{\lambda} - 1}{n}\equiv qm\ ( mod\ n^2) \]同理计算出\[\frac{g^{\lambda} - 1}{n}\equiv q\ (mod\ n^2) \]所以\[m\equiv \frac{\frac{c^{\lambda} - 1}{n}\ mod\ n^2}{\frac{g^{\lambda} - 1}{n}\ mod\ n^2}\equiv qm\cdot q^{-1}\equiv m\ (mod\ n) \]\(1.5\) 随机选取 \(g\)令 \(g = 1 + n\)则 \((1 + n)^n\equiv 1 + n^2\equiv 1\ (mod\ n^2)\),这意味着 \(ord(1 + n)\mid n\)⽽对于 \(0 < k < n\),有 \((1 + n)^k\equiv 1 + kn\not\equiv 1\ (mod\ n^2)\),所以 \(ord(1 + n) = n\)进⼀步,令 \(g = 1 + kn,\ 0 < k < n\)则 \((1 + kn)^n\equiv 1\ (mod\ n^2)\)对于 \(0 < k' < n\),有 \((1 + kn)^{k'}\equiv 1 + k'kn\ (mod\ n^2)\),只需要 \(kk'\not\equiv 0\ (mod\ n)\) 即可,即\[k\not\equiv p\ (mod\ n),\ k\not\equiv q\ (mod\ n) \]所以对 \(g\) 的随机选取,转化为对 \(k\in \mathbb{Z_{n}^{*}}\) 的随机选取\(1.6\) 加法同态性考虑加密 \(m_{1} + m_{2}\),得到\[c = Enc(m_{1} + m_{2}) \equiv g^{m_{1}+m_{2}}(mod\ n^2) \]在考虑分别加密 \(m_{1},\ m_{2}\),得到\[\begin{aligned} c_{1} & = Enc(m_{1})\equiv g^{m_{1}}\cdot r_{1}^{n}\ (mod\ n^2)\\ c_{2} & = Enc(m_{2})\equiv g^{m_{2}}\cdot r_{2}^{n}\ (mod\ n^2) \end{aligned} \]所以\[c_{1}c_{2}\equiv g^{m_{1} + m_{2}}\cdot (r_{1}\cdot r_{2})^n\ (mod\ n^2) \]考虑解密 \(c_{1}c_{2}\),设 \(g^{\lambda} = 1 + qn,\ q\in \mathbb{Z_{n}}^{*}\)\[(c_{1}c_{2})^{\lambda}\equiv 1 + qn(m_{1} + m_{2})\ (mod\ n^2) \]剩下的计算与之前类似,解密得到明⽂为 \(m_{1} + m_{2}\)也就是说 \(c_{1}c_{2}\) 的解密结果为 \(m_{1} + m_{2}\),即\[Dec(Enc(m_{1})\cdot Enc(m_{2})) = m_{1} + m_{2} \]满⾜加法同态⾄于为什么是加法同态,是因为我们对明⽂的操作是加法\(2.\) 问题描述随机选择两个 \(10\) 位素数,这⾥指的是 \(10\) 位⼆进制串令 \(n = pq\),随机选择 \(g\),计算公钥和私钥设消息 \(m_{1} = 15,\ m_{2} = 20\),随机选取 \(r_{1},\ r_{2}\in \mathbb{Z_{n}^{*}}\),求 \(m_{1},\ m_{2}\) 的密⽂ \(c_{1},\ c_{2}\)对 \(c_{1},\ c_{2}\) 进⾏解密,求 \(m'_{1},\ m'_{2}\)对 \(c_{1}c_{2}\) 做解密运算,得到 \(m'\),验证 \(m' = m_{1} + m_{2}\)\(3.\) 问题解与分析\(3.1\) 随机构造两个 \(10\) 位素数 \(p,\ q\)⽤字符串⽣成,转化为整数,并判断是否是素数,注意字符串的⾸末位都为 \(1\)bool isPrime(int x){if(x == 1) return 0;for(int i = 2; i * i <= x; ++i)if(x % i == 0) return 0;return 1;}int getPrime(int L){int ans = 0;do {ans = 1;for(int i = 0; i < L - 2; ++i)ans *= 2, ans += rand() % 2;ans *= 2, ans += 1;}while(!isPrime(ans));return ans;}\(3.2\) 随机选择 \(g\),计算公钥和私钥\(g = 1 + kn,\ k\in \mathbb{Z_{n}^{*}}\),对 \(g\) 的随机转化为对 \(k\) 的随机\(g = 1 + kn,\ k\in \mathbb{Z_{n}^{*}}\),对 \(g\) 的随机转化为对 \(k\) 的随机先筛出 \(\mathbb{Z_{n}^{*}}\),然后随机返回 \(k\in \mathbb{Z_{n}^{*}}\),计算具体的公钥和密钥struct PBK{int n;LL g;PBK() {}PBK(int _n, LL _g): n(_n), g(_g) {}void out() { cout << "公钥 <n, g>: <" << n << ", " << g << ">" << endl; }};struct SK{int p, q, lambda;SK() {}SK(int _p, int _q, int _lambda): p(_p), q(_q), lambda(_lambda) {}void out() { cout << "私钥 <p, q, lambda>: <" << p << ", " << q << ", " << lambda << ">" << endl; }};void getZnStar(vector<int>& ZnStar, int n){for(int i = 1; i < n; ++i)if(__gcd(i, n) == 1)ZnStar.pb(i);}int getNumOfZnStar(vector<int>& ZnStar) { return ZnStar[rand() % ZnStar.size()]; }int getLambda(int p, int q) { return (p - 1) * (q - 1) / __gcd(p - 1, q - 1); }pair<PBK, SK> getPublicKey(int L, vector<int>& ZnStar){int n, p, q, lambda;LL g;while(1) {p = getPrime(L);q = getPrime(L);lambda = getLambda(p, q);n = p * q;if(__gcd(n, lambda) == 1 && p != q) break;}LL nn = 1LL * n * n;getZnStar(ZnStar, n);g = (1 + 1LL * n * getNumOfZnStar(ZnStar)) % nn;return {PBK(n, g), SK(p, q, lambda)};}\(3.3\) 加密 \(m_{1},\ m_{2}\)根据⽅案进⾏模拟,加密函数如下,\(qmul()\) 为快速乘算法,避免爆出 \(long\ long\) 范围,\(qpow()\) 为快速幂算法,\(nn\) 为 \(n^2\) LL encryption(int m, LL g, int n, vector<int>& ZnStar){LL nn = 1LL * n * n;LL r = getNumOfZnStar(ZnStar);LL c = qmul(qpow(g, m, nn), qpow(r, n, nn), nn);return c;}\(3.4\) 解密 \(m_{1},\ m_{2}\)根据⽅案进⾏模拟,解密函数如下LL getLx(LL x, int n, LL nn) { return (x - 1) / n % nn; }LL decryption(LL c, LL g, int n, int lambda){LL nn = 1LL * n * n;LL x1 = qpow(c, lambda, nn), L1 = getLx(x1, n, nn);LL x2 = qpow(g, lambda, nn), L2 = getLx(x2, n, nn);LL mu = getInv(L2, n);LL plaintext = L1 * mu % n;return plaintext;}\(3.5\) 验证同态判断 \(m_{1} + m_{2} = Dec(m_{1}\cdot m_{2})\) 即可\(4.\) 代码\(4.\) 代码#include <bits/stdc++.h>#define LL long long#define pb push_backusing namespace std;struct PBK{int n;LL g;PBK() {}PBK(int _n, LL _g): n(_n), g(_g) {}void out() { cout << "公钥 <n, g>: <" << n << ", " << g << ">" << endl; }};struct SK{int p, q, lambda;SK() {}SK(int _p, int _q, int _lambda): p(_p), q(_q), lambda(_lambda) {}void out() { cout << "私钥 <p, q, lambda>: <" << p << ", " << q << ", " << lambda << ">" << endl; } };LL qmul(LL a, LL b, LL mod){LL res = 0;while(b > 0) {if(b & 1) res += a, res %= mod;a += a, a %= mod;b >>= 1;}return res;}LL qpow(LL a, LL b, LL MOD){if(!a) return 0;LL ans = 1;while(b) {if(b & 1) ans = qmul(ans, a, MOD), ans %= MOD;a = qmul(a, a, MOD), a %= MOD,b >>= 1;}return ans;}LL phi(LL m){LL ans = m;for(LL i = 2; i * i <= m; ++i) {if(m % i == 0) {ans -= ans / i;while(m % i == 0) m /= i;}}if(m > 1) ans -= ans / m;return ans;}LL getInv(LL a, LL MOD){return qpow(a, phi(MOD) - 1, MOD);}bool isPrime(int x){if(x == 1) return 0;for(int i = 2; i * i <= x; ++i)if(x % i == 0) return 0;return 1;}int getPrime(int L){int ans = 0;do {ans = 1;for(int i = 0; i < L - 2; ++i)ans *= 2, ans += rand() % 2;ans *= 2, ans += 1;}while(!isPrime(ans));return ans;}void getZnStar(vector<int>& ZnStar, int n){for(int i = 1; i < n; ++i)if(__gcd(i, n) == 1)ZnStar.pb(i);}int getNumOfZnStar(vector<int>& ZnStar) { return ZnStar[rand() % ZnStar.size()]; } int getLambda(int p, int q) { return (p - 1) * (q - 1) / __gcd(p - 1, q - 1); }pair<PBK, SK> getPublicKey(int L, vector<int>& ZnStar){int n, p, q, lambda;LL g;while(1) {p = getPrime(L);q = getPrime(L);lambda = getLambda(p, q);n = p * q;if(__gcd(n, lambda) == 1 && p != q) break;}LL nn = 1LL * n * n;getZnStar(ZnStar, n);g = (1 + 1LL * n * getNumOfZnStar(ZnStar)) % nn;return {PBK(n, g), SK(p, q, lambda)};}LL encryption(int m, LL g, int n, vector<int>& ZnStar){LL nn = 1LL * n * n;LL r = getNumOfZnStar(ZnStar);LL c = qmul(qpow(g, m, nn), qpow(r, n, nn), nn);return c;}LL getLx(LL x, int n, LL nn) { return (x - 1) / n % nn; }LL decryption(LL c, LL g, int n, int lambda){LL nn = 1LL * n * n;LL x1 = qpow(c, lambda, nn), L1 = getLx(x1, n, nn);LL x2 = qpow(g, lambda, nn), L2 = getLx(x2, n, nn);LL mu = getInv(L2, n);LL plaintext = L1 * mu % n;return plaintext;}int main(){srand((unsigned)time(NULL));int L = 10, m1 = 15, m2 = 20;vector<int> ZnStar;auto i = getPublicKey(L, ZnStar);PBK pbk = i.first;SK sk = i.second;pbk.out();sk.out();LL ciphertext1 = encryption(m1, pbk.g, pbk.n, ZnStar);LL ciphertext2 = encryption(m2, pbk.g, pbk.n, ZnStar);cout << "明⽂ m1 加密为: " << ciphertext1 << endl;cout << "明⽂ m2 加密为: " << ciphertext2 << endl;LL plaintext1 = decryption(ciphertext1, pbk.g, pbk.n, mbda);LL plaintext2 = decryption(ciphertext2, pbk.g, pbk.n, mbda);LL nn = 1LL * pbk.n * pbk.n;LL ciphertext = qmul(ciphertext1, ciphertext2, nn);LL plaintext = decryption(ciphertext, pbk.g, pbk.n, mbda);cout << "秘⽂ c1 解密为: " << plaintext1 << endl;cout << "秘⽂ c2 解密为: " << plaintext2 << endl;cout << "秘⽂ c1c2 解密为: " << plaintext << endl;if(plaintext1 + plaintext2 == plaintext) cout << "满⾜同态" << endl;return 0;}。

paillier同态加密原理

paillier同态加密原理

paillier同态加密原理宝子!今天咱们来唠唠Paillier同态加密这个超酷的东西。

Paillier同态加密呢,就像是给数据穿上了一件神奇的隐身衣。

你想啊,在这个信息爆炸的时代,数据的隐私可太重要啦。

比如说,你有一些超级机密的数据,像你的银行存款数字(嘿这可不能随便让人知道呢),或者是一些企业的商业机密数据。

但是呢,有时候又需要对这些数据进行一些计算,这可咋整?Paillier同态加密就闪亮登场啦。

那它到底是咋个原理呢?咱们先从加密说起。

它会把原始的数据,就像是把一个小宝贝放进一个超级神秘的盒子里。

这个盒子有特殊的加密规则,通过一些数学魔法,把数据变成了一串看起来乱七八糟的东西。

这串东西啊,对于那些没有解密钥匙的人来说,就跟天书一样。

比如说,你的那个银行存款数字,经过Paillier加密之后,外人看到的就是一堆让人摸不着头脑的符号。

然后呢,同态加密的厉害之处就在于它能在加密的数据上进行计算。

这就好比啊,你不用把小宝贝从神秘盒子里拿出来,就能对这个盒子做一些事情。

比如说,你想计算两个加密后的数字相加。

正常情况下,你得先解密,加起来,再加密,多麻烦呀。

但是Paillier同态加密呢,它可以直接对加密后的这两个数字进行操作,就好像这个加密的盒子自己知道怎么在加密的状态下完成加法一样。

这中间用到的可都是一些超级复杂的数学知识哦,什么数论之类的,听起来就很高大上吧。

再来说说这个解密。

解密就像是找到打开神秘盒子的钥匙。

只有拥有正确钥匙的人,才能把加密后的数据还原成原来的样子。

这个钥匙也是通过特殊的数学算法生成的,而且非常的安全。

就像你家的大门钥匙,只有你或者你允许的人才能打开。

对于那些想要偷偷窥探数据的坏蛋来说,想破解这个加密和解密的过程,那可真是比登天还难呢。

你可能会想,这东西有啥实际用处呢?用处可大啦!比如说在云计算的环境里。

企业可能把自己的数据放到云平台上去计算,但是又担心云平台的运营商偷看数据。

《2024年基于同态加密的联邦学习模型的设计与实现》范文

《2024年基于同态加密的联邦学习模型的设计与实现》范文

《基于同态加密的联邦学习模型的设计与实现》篇一一、引言随着大数据时代的到来,数据共享和协同学习成为了许多领域的研究热点。

然而,数据安全和隐私保护问题也日益突出。

联邦学习作为一种新兴的学习框架,能够在保护数据隐私的同时实现多方协同学习。

同态加密技术则能够在不暴露明文数据的情况下进行计算,为联邦学习提供了强有力的安全保障。

本文将探讨基于同态加密的联邦学习模型的设计与实现。

二、同态加密与联邦学习概述(一)同态加密技术同态加密是一种允许对密文进行复杂计算,并将计算结果直接在密文上反映出来的加密技术。

它具有同态加法和同态乘法的特性,使得在密文上进行复杂计算成为可能。

(二)联邦学习概述联邦学习是一种分布式机器学习方法,它允许多个参与方在保护本地数据隐私的前提下,共同训练一个机器学习模型。

通过共享模型参数而不是原始数据,联邦学习实现了数据的协同学习和隐私保护。

三、基于同态加密的联邦学习模型设计(一)模型架构设计本模型采用分层架构设计,包括数据层、同态加密层、计算层和模型训练层。

其中,同态加密层用于对数据进行加密处理,确保数据传输和计算过程中的隐私保护;计算层则负责执行加密数据的计算任务;模型训练层则负责训练联邦学习模型。

(二)数据处理与加密在数据层,首先对原始数据进行预处理和标准化处理。

然后,利用同态加密算法对数据进行加密处理,确保数据在传输和计算过程中的隐私保护。

(三)同态加密计算在同态加密层,采用同态加法和同态乘法对加密数据进行计算。

通过同态加密技术的特性,使得计算结果直接反映在密文上,从而保护了数据的隐私性。

(四)模型训练与更新在模型训练层,利用分布式机器学习方法对加密数据进行训练,得到联邦学习模型。

通过共享模型参数而不是原始数据,实现了数据的协同学习和隐私保护。

同时,根据训练结果对模型进行更新和优化。

四、模型实现与实验分析(一)实现流程本模型的实现流程包括数据预处理、同态加密处理、分布式训练和模型更新等步骤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

若一个加密方案对密文进行任意深度的操作后解密,结果与对明文做相应操作的结果相同,则该方案为完全同态加密方案。

通常一个公钥加密方案有三个算法:KeyGen 算法(密钥生成),Enc 算法(加密),Dec 算法(解密)。

但是在全同态加密中,除了上述三个算法之外,还包含第四个算法:Evaluate 算法(密文计算),这个算法的功能是对输入的密文进行计算。

KeyGen 算法(密钥生成)用于生成公钥和密钥,公钥用于加密,私钥用于解密。

还可能生成另外一种公钥,即密文计算公钥,我们把它称之为Evk 。

密文计算公钥Evk 的作用是在执行Evaluate 算法时用到,而且Evk 的形式与使用的全同态方案直接相关。

例如,如果是通过启动技术(Bootstrapple)获得全同态加密,即每次密文计算前要用同态解密约减密文的噪音,这时Evk 就是对密钥的每一位加密后生成的密文,即密钥有多少位,Evk 里包含的公钥就有多少个。

Evk 中每个公钥的大小就是使用Enc 加密后产生密文的大小。

当然还有其他情况,例如,如果使用密钥交换与模交换技术获得全同态加密,典型代表就是BGV 方案。

这时Evk 中包含的就是L–1 个矩阵,L 是方案中电路的深度,该矩阵用于密钥转换。

每次密文计算后,都需要使用Evk 中的公钥将维数扩张的密文向量转换成正常维数的密文向量。

当然还有一种情况就是不需要Evk,例如在Crypto13 会议的论文GSW13 中,Gentry 使用的密文是矩阵(方阵),所以密文乘积或相加不会产生密文维数改变的事情,所以在密文计算时没有用到公钥,这也是该论文可以产生基于身份或基于属性全同态加密方案的根本原因。

Enc 算法(加密)和我们平常意义的加密是一样的,但是在全同态加密的语境里,使用Enc 算法加密的密文,一般称之为新鲜密文,即该密文是一个初始密文,没有和其他密文计算过。

所以新鲜密文的噪音称之为初始噪音。

Dec 算法(解密)不仅能对初始密文解密,还能对计算后的密文解密。

但由于部分同态加密方案中密文存在噪音,例如在整数上的全同态加密方案里,密文乘积的噪音是噪音之积,密文加法的噪音是噪音之和。

所以当密文计算到一定程度,其噪音将超过上限,所以对这样的密文解密将可能失败。

全同态加密的关键就是对噪音的控制,使之能对任何密文解密。

最后一个算Evaluate算法(密文计算),这个算法是整个的地基,后面这个Evaluate 算法就是大楼。

这个比喻在后面会体会到它态加密四个算法中的核心。

可以做个这样的比喻:前面三个算法是大楼的地基,后面这个Evaluate 算法就是大楼。

这个比喻在后面会体会到它的用意。

密文的计算是在电路里进行的,电路是分层的,电路深度越深,层数越多,密文就能够进行更多次的计算。

随便提一句,密文计算的次数等于电路深度的对数。

什么是计算次数?例如c1*c2,就是进行了一次计算,次数为2,c1*c2*c3 就是进行了两次计算,次数为3。

在全同态加密中,我们一般用乘法次数来衡量计算次数,这是因为乘法的噪音比加法噪音增长的快很多。

Evaluate 算法有三个输入,第一个输入是计算公钥Evk。

Evk可以没有。

第二个输入是函数f,就是Evaluate 算法所要执行的函数,可以是任意函数,因为全同态加密的目标就是对密文能够进行任意计算。

当然这个函数也可以是“解密函数”,Gentry 通过观察发现了一个秘密,等会我们说。

第三个输入是密文,理论上可以有无穷多个密文,但是这是不可能的。

Evaluate 算法就是将密文输入到函数f 里进行计算。

我们知道在全同态加密的方案里,密文都是含有噪音的,密文的计算会导致噪音的增长,如果把函数f 表示成电路,那么Evaluate 算法实际上只能够对有限深度L 的电路进行计算,超过这个深度L 的电路就不行了。

所以我们把这样的方案称之为部分同态加密方案。

由此可见Evaluate算法的重要性,全同态加密就靠它了。

还记得刚才的比喻么?噪音问题导致了Evaluate算法不能够对任意电路(函数)进行计算。

Evaluate 算法相当于大楼,这个大楼的层数是有限的,而全同态加密的目标是无限高!噪音问题导致了Evaluate算法不能够对任意电路(函数)进行计算。

全同态加密(Fully Homomorphic Encryption )方案中,有一个非常重要技术:同态解密。

为什么要同态解密,前面说过噪音问题是实现全同态加密方案的最大障碍。

Gentry 在实现全同态加密方案时,注意到可以在Evaluate算法中执行自己的解密函数,那么输入的数据是什么呢?解密函数当然输入的是密钥sk 和密文c。

但是不要忘了Evaluate 算法是如何定义的。

Evaluate 算法是对输入的密文c1,c2,, 执行函数f 的操作,也就是对密文进行计算,本质是对密文做同态计算,即计算后的密文解密后要等于对明文做同样的计算,如果这点做不到,那么Evaluate 算法即使能对密文做很多次运算,也是没有意义的,这就是两种形态,明文态和密文态,两种形态对应的是同一个计算电路。

在明文态,输入电路的是明文,而这些明文都是位(因为是布尔电路)。

在密文态,输入电路的就是把每一个明文变成密文就可以了(算术电路)。

而现在如果f 是解密函数,那么输入的密文是什么呢?在明文态,对于解密电路,输入的肯定是密钥sk 的每一位二进制位,以及密文c 的每一位二进制位,因为是布尔电路,所以输入的数据都要化成二进制位的形式。

在密文态,相应的把明文位变成密文就可以了,原来是一个位的地方现在变成了一个密文,那么将这些密文输入到解密电路中,结果是一个密文,这个密文解密后等于在明文态对明文做同样计算的结果。

现在我们关心的是这个从解密电路里出来的新密文和原来的密文解密需要Evaluate 算法能够运行自己的解密函数,在早期的全同态加之间有什么关系?这两个密文对应的是同样的明文。

两个密文的噪音是不一样的,因为密文计算的噪音会随着计算次数不断增长。

而从解密电路里出来的密文的噪音是一个固定值,保持不变。

我们希望的是什么?是解密电路里出来的密文的噪音比原密文的噪音小么?NO!我们要求没有这么高。

我们只要求解密电路里出来的密文的噪音,还允许再进行一次乘法计算就可以了。

因为如果上面的要求成立的话,那么每次密文计算前,只要通过同态解密,出来的密文就可以保证再进行一次计算,不断循环下去,就可以做无限次计算了。

当然要想做无限次计算还需要一个假设条件就是:循环安全。

如果不做这个假设,我们只能做深度为L 的电路计算。

总之能够保证对密文做我们想要的计算了。

所以同态解密,是实现全同态加密的一个关键技术,Gentry 就通过它实现了全同态加密。

要想使用同态解密,必须在Evaluate 算法中能够执行自己的解密函数才可以。

很多人都纳闷,解密函数不就是计算一下么,例如在整数方案里解密函数就是:(c mod p) mod2,在LWE 或环-LWE 上解密函数是:(<c, s> mod q) mod 2,难道不能够执行这些函数?前面说过,想降低密文计算带来的噪音,可以通过同态解密得到一个新的密文(噪音是恒定),使得我们可以进行下一次计算,每次计算后都通过同态解密约减噪音,就能够获得全同态加密了。

然而同态密方案中(Gentry09,DGHV ),包括BV11方案如果最后一步不使用模维数约减的话,Evaluate 都不能够运行自己的解密函数。

很多同学学到这里的时候,都很纳闷,解密函数不就是一些加法乘法模运算么,为什么计算不了,难道还有计算不了的函数?这个问题是问我的人最多的,今天给大家好好解释一下。

所谓的运行不了自己的解密函数,是有语境的,准确的说是“Evaluate 算法不能够运行自己的解密函数”,而Evaluate算法的输入是什么?同态解密时,Evaluate算法输入的是解密电路(f 函数),还有往解密电路里输入的一些密文,这些密文是由密钥和密文的每一位加密而成的。

那么Evaluate 算法做的工作是什么呢?Evaluate 算法做的工作就是让这些密文在解密电路里计算,是密文的计算,记住了!由于密文计算过程会产生噪音,所以密文只能够进行有限次的计算,超过这个界就会产生解密的错误。

所以如果解密电路的深度小于方案所允许计算的深度(这里方案所允许计算的深度指的是Somewhat 同态方案的计算能力),那么就可以完成同态解密的工作。

但是如果解密电路的深度大于方案所允许计算的深度,那么就悲催了,我们就不能够使用同态解密这个方法去降低密文的噪音。

Gentry发明了一种方法叫“压缩解密电路”,就是把解密电路的深度降低,从而满足“解密电路的深度小于方案所允许计算的深度”,这样就可以使用同态解密技术,方案就可以启动了!压缩解密需要Evaluate 算法能够运行自己的解密函数,在早期的全同态加解密电路是要付出代价的,同时需要一个假设“稀疏子集和问题”,该问题没有被很好的研究过,所以是假设。

不过目前的方案已经不需要压缩解密电路了,例如BGV 方案,Bra12 方案,这些方案都能够运行自己的解密电路,所以不需要压缩的方法了。

同态解密的技术成就了全同态加密,然而其效率却非常低,所以后面诞生了模交换技术。

Gentry 第一个全同态加密方案是基于理想格构造的。

方案所选择的代数结构是理想格,是因为在格里解密操作比较简单,绝大多数都是矩阵向量乘或是内积,都属于NC1,具有低的解密电路复杂度,此外理想格像格一样具有加法结构,同时它还有乘法结构的特性。

所有后面沿着Gentry 的构造思路都是按照这个思想来的。

直到LWE 上的全同态加密方案的出现。

Gentry 构造全同态加密方案的思想可以抽象概述为:首先在环R 上构造一个线性纠错码C,“线性”意味着保证加法同态性,“纠错”意味着码字中存在错误,如果该错误在一定范围内就可以纠错。

而且C 是环上的一个理想,其基有两种表示,一种是“好”的表示,用来做密钥,可以对大的错误进行纠错(相当于解密),当错误超过上限后将无法纠错(即无法解密)。

另外一种表示是“坏”的表示,用来做公钥,可以产生随机的码字,用于加密。

由于线性纠错码C 的线性特性决定了其具有加法同态特性,另外C 是环上的一个理想,所以其乘法也具有同态特性,然而由于错误存在上限,因此仅对有限次的乘法计算保持其同态特性。

该思想形成的方案就是部分(Somewhat)同态加密方案,由于密文计算中错误增长的原因,该方案只能对密文进行有限次的运算。

最初的方案都可以用这种思想解释。

上述构造思想中的环结构保证了乘法计算,但是对于LWE (环LWE)上的加密方案由于没有环结构,所以无法提供密文向量的乘法,一度成为LWE(环LWE)上构造全同态加密的最大障碍。

相关文档
最新文档