同态加密:一个基于多方计算的CKKS方案

这篇具有很好参考价值的文章主要介绍了同态加密:一个基于多方计算的CKKS方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇文章主要介绍LattiGo团队搞出来的一个多方同态加密的工作。个人觉得比较优雅,而且有库支持,方便把玩,所以记一下。
在攒毕业论文的时候整了这么个看上去很烂,但是(个人觉得)有一点意思的烂活,没心思写那么多的公式,各位dalao凑合看,欢迎轻喷。

简介和亮点

实现了CKKS方案的一个多方计算版本(对BFV也适用)。这个多方版本的方案将私钥拆分成了 n n n份分给 n n n个计算方,一方一个。

对应的安全性:只要这 n n n方别都是内鬼(比如所有方都沆瀣一气,沟通私钥),这个同态加密方案就具有语义安全性。

可以基于上述私钥拆分的想法设计一些有趣的多方解密/自举方案。

预备知识:CKKS同态加密方案的简介

引个流,看这儿。

LattiGo的多方CKKS方案

首先定义 n n n 个计算方: P = P 1 , . . . , P N \mathcal P = P_1, ..., P_N P=P1,...,PN

私钥生成

参与计算的 n n n方都随机生成一个私钥碎片 s k i , for   i = 1 , . . . , n sk_i, \textit{for}\ i=1,...,n ski,for i=1,...,n。最后 s k = ∑ s k i sk = \sum sk_i sk=ski就是完整的私钥多项式。这意味着每一方都持有一个私钥的碎片。

在具体操作中,可以让客户端先线下生成 n n n个私钥碎片再分发给 n n n个计算方,或者每个计算方先生成私钥碎片再发送给客户端。

在方案运行过程中,各个计算方持有一个私钥碎片和全部的公钥。

其他钥生成(不费脑子版本)

我们先假设客户端持有私钥。那么客户端其实已经可以根据私钥计算出一系列的公钥,比如加密公钥、重线性化钥、旋转钥blablabla,然后公布给 n n n个计算方使用。

至于 n n n个计算方如何派生出这一系列公钥,可以在看完下面多方解密和多方自举部分后留作文末习题(doge

多方解密和多方自举

我们先通过介绍多方解密和多方自举方案来阐明文章里的一些核心想法。

多方解密

对于密文多项式对 c = ( c 0 , c 1 ) c=(c_0, c_1) c=(c0,c1),解密方案就是求解 m = c 0 + c 1 ⋅ s k m = c_0+c_1\cdot sk m=c0+c1sk

这里,多方参与完成解密就是计算 c 0 + c 1 ⋅ ∑ s k i c_0+c_1\cdot \sum sk_i c0+c1ski

解密方法如下:

各方计算 c 1 ⋅ s k i + e i c_1 \cdot sk_i + e_i c1ski+ei,其中 e i e_i ei是噪声。然后计算

c 0 + ∑ ( c 1 ⋅ s k i + e i ) c_0+ \sum (c_1 \cdot sk_i+e_i) c0+(c1ski+ei)

就完成了解密(虽然带了点噪声)。

在这个方案中,RLWE问题的语义安全性保证了 s k i sk_i ski很难被爆破,于是只要至少有一个计算方不是内鬼(不是内鬼:指保护好自己的私钥碎片),那么私钥就不会被破解。

多方自举

在实现多方自举之前,我们首先让各个计算方生成一个公有的密文 d d d

首先各方生成随机密文 d i d_i di,然后各方共同参与求和,得到 d = ∑ d i d = \sum d_i d=di d d d被对外公布。

在这个过程中,只要计算方不是全员内鬼,那么 d i d_i di d d d就是语义安全的。

基于上述这些秘密 d i d_i di d d d,我们可以设计多方自举方案。

对于密文多项式对 c = ( c 0 , c 1 ) c=(c_0, c_1) c=(c0,c1)

首先,各方计算 c 1 ⋅ s k i + d i + e i c_1\cdot sk_i +d_i + e_i c1ski+di+ei,其中 e i e_i ei是噪声。

求和得到 m = c 0 + ∑ ( c 1 ⋅ s k i + d i + e i ) m = c_0 + \sum(c_1\cdot sk_i +d_i + e_i) m=c0+(c1ski+di+ei)

然后,计算 m − d m - d md

于是多方自举就完成了。

本质上是对解密后的明文加上一层mask,然后再把它抹掉就完事了。

其他钥生成(费脑子版本)

课后习题:

n n n个计算方如何派生出加密公钥、重线性化钥、旋转钥blablabla一系列公钥呢?
(思路就是各方对密钥碎片进行加噪,用RLWE的方法保证安全性)

Contact

Wechat: FivevYwW9qHHXUdMk。欢迎各位做HE/MPC的dalao、萌新、瓜众来玩。文章来源地址https://www.toymoban.com/news/detail-456156.html

到了这里,关于同态加密:一个基于多方计算的CKKS方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索密码学的未来:SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算

    密码算法在现代通信与信息安全中发挥着至关重要的作用,SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算等密码算法被广泛应用于各种信息安全领域。本篇博客将会为大家介绍这些密码算法,以及它们在信息安全中的作用和应用。 SM1、SM2、SM3、SM4是中国国

    2024年02月08日
    浏览(45)
  • 隐私计算之全同态加密

    【引】走近任何一个领域,都会发现自己的渺小和微不足道,会越发地敬畏技术和未知,隐私计算也不例外。读了一点儿文章和paper,觉得还是ACM 上的这篇综述(https://queue.acm.org/detail.cfm?id=3561800)可以对全同态加密有一个概貌,从而了解其脉络方向,进而对隐私计算增加一点

    2024年02月07日
    浏览(37)
  • 关于在Win11-Visual Studio 2022环境中安装MicrosoftSEAL4.0(新支持BGV方案的版本)同态加密运算库

    事先下载好Visual Studio 17 2022 在GitHub上下载SEAL-4.0.0.zip并解压或者使用Git克隆SEAL源文件夹, 在SEAL文件夹所在目录打开终端(PS:需使用Visual Studio下的Developer Command Prompt for VS 2022终端) 完成以上三步,可以看到SEAL文件夹中 ...buildlibReleaseseal-4.0.lib .lib文件,以及 C:Program Files 目

    2024年02月06日
    浏览(55)
  • 【展望】多方计算展望:基于人工智能的数据分析平台

    作者:禅与计算机程序设计艺术 当前,随着人类对社会生活的依赖程度越来越高、信息化水平越来越高,越来越多的个人消费行为被计算机和智能手机等各种设备所代替。而数字经济也正在以惊人的速度发展。尽管如此,人工智能技术在数据驱动下对实体经济产生的深远影响

    2024年02月13日
    浏览(45)
  • 同态加密详解

    同态加密(Homomorphic Encryption)是指将原始数据经过同态加密后,对得到的密文进行特定的运算,然后将计算结果再进行同态解密后得到的明文等价于原始明文数据直接进行相同计算所得到的数据结果。 同态加密与一般加密方案的关注点不同 ,一般的加密方案关注的是 数据存

    2024年02月03日
    浏览(78)
  • FHE全同态加密简介

    FHE (Fully homomorphic encryption): 是一种隐私技术,支持直接对密文进行计算,而无需对密文先解密再计算。 即,任何第三方或云厂商,都可对敏感信息的密文进行处理,而无需访问密文内的任何明文数据。 FHE历史演变路径为: Ronald Rivest、Leonard Adleman 和 Mike Dertouzos 于1978年 On

    2024年04月11日
    浏览(28)
  • 全同态加密:BFV

    参考文献: O. Regev. On lattices, learning with errors, random linear codes, and cryptography. In H. N. Gabow and R. Fagin, editors, STOC , pages 84–93. ACM, 2005. Full version in J. ACM 56(6), 2009. V. Lyubashevsky, C. Peikert, and O. Regev. On Ideal Lattices and Learning with Errors over Rings. In Advances in Cryptology - EUROCRYPT 2010 , volume 611

    2023年04月08日
    浏览(36)
  • 同态加密的理解

    同态加密 是数据加密方式的一种,特点是允许加密后的数据(密文)进行数学或逻辑运算,同时密文进行数学或逻辑运算之后再解密,结果 近似等于 原始数据(明文)的数学或逻辑运算结果。 假设:我们想通过云计算平台进行两个数的加法运算,如: m 1 = 100 m_1 = 100 m 1 ​

    2024年02月06日
    浏览(32)
  • 全同态加密:GSW

    参考文献: Micciancio D, Peikert C. Trapdoors for lattices: Simpler, tighter, faster, smaller[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 2012: 700-718. Gentry C, Sahai A, Waters B. Homomorphic encryption from learning with errors: Conceptually-simpler, asymptotically-fast

    2023年04月08日
    浏览(32)
  • 隐私保护技术之同态加密(转)

    参考链接: https://blog.csdn.net/shn111/article/details/124594241 chapters 同态加密(Homomorphic Encryption)是指将原始数据经过同态加密后,对得到的密文进行特定的运算,然后将计算结果再进行同态解密后得到的明文等价于原始明文数据直接进行相同计算所得到的数据结果。 同态加密与一

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包