V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sillydaddy
V2EX  ›  问与答

作为云服务大杀器的全同态加密(Fully Homomorphic Encryption),现在在实际的应用中是什么状态?

  •  2
     
  •   sillydaddy · 2020-08-24 13:32:53 +08:00 · 2304 次点击
    这是一个创建于 1553 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先抛问题:
    现在实际应用中有用到全同态加密的吗?像记账软件这种数据量比较小,而且运算比较简单的,可以用起来吗?

    虽说心里知道密码学总能带来惊喜,但在了解了全同态加密后,还是忍不住惊呼:太神奇了!

    全同态加密可以让服务器直接对加密的数据进行加减乘除等操作(这里是个比喻,实际上可以针对加密数据执行任意程序)
    而在这个过程中,客户不用担心服务器拿到具体的数据。

    这简直是一劳永逸地解决了云服务的信任问题

    • 1.客户(比如银行)提供加密后的数据
    • 2.云服务器在加密数据上执行某些算法(比如统计等),给客户返回运算后的结果
    • 3.客户解密运算后的结果,得到实际的结果

    不说银行这样的极度敏感的应用,即使是记账软件,也可以把这个特点用起来,让客户不用担心数据隐私的问题。

    比如 MoneyWiz 这个记账软件,看它的介绍,是对客户的数据整个加密打包上传到服务器的——服务器只起到一个远端网盘的作用。

    所有对数据的操作,还是在客户端进行的,也就是客户端下载加密数据包,然后解压后再操作。

    虽然这样对客户是比较友好的,但所有数据处理的逻辑都被迫放在客户端,很可能被破解!

    全同态加密迭代了 3 代(主要是同态运算方法的更新),由原来的比正常运算慢上万亿倍,到现在有了很大提高(具体的速度我没有查到)。
    但目前网上的说法都是,还不到实际应用的水平。那么,

    现在实际应用中有用到全同态加密的吗?像记账软件这种数据量比较小,而且运算比较简单的,可以用起来吗?

    第 1 条附言  ·  2020-08-24 15:30:51 +08:00
    我是从下面的资料中,了解到全同态加密的原理,感兴趣的可以看下:
    [初探全同态加密:FHE 的定义与历史回顾]( http://blog.higashi.tech/2020/06/21/fhe_cn_01.html )
    [初探全同态加密之二:格密码学与 LWE 问题]( http://blog.higashi.tech/2020/06/26/fhe_cn_02.html )
    [初探全同态加密之三:构建 GSW 全同态加密系统]( http://blog.higashi.tech/2020/07/04/fhe_cn_03.html )
    13 条回复    2021-03-26 17:10:20 +08:00
    qdwang
        1
    qdwang  
       2020-08-24 13:37:56 +08:00 via iPhone   ❤️ 1
    只涉及加法运算的还好,涉及乘法运算的还是不行。现在火很多了,而且大公司微软什么都在搞。感觉一有突破性成果,很快会爆发的
    sillydaddy
        2
    sillydaddy  
    OP
       2020-08-24 13:57:20 +08:00
    我是从下面的资料中,了解到全同态加密的原理,感兴趣的可以看下:
    [初探全同态加密:FHE 的定义与历史回顾]( http://blog.higashi.tech/2020/06/21/fhe_cn_01.html )
    [初探全同态加密之二:格密码学与 LWE 问题]( http://blog.higashi.tech/2020/06/26/fhe_cn_02.html )
    [初探全同态加密之三:构建 GSW 全同态加密系统]( http://blog.higashi.tech/2020/07/04/fhe_cn_03.html )
    lvybupt
        3
    lvybupt  
       2020-08-24 14:12:43 +08:00
    IBM 有开源的测试项目
    https://www.ibm.com/blogs/research/2020/06/ibm-releases-fully-homomorphic-encryption-toolkit-for-macos-and-ios-linux-and-android-coming-soon/

    实际上,目前效率问题还没有完全解决,测试效率距离具体项目可用可能还有相当大的差距。
    lvybupt
        4
    lvybupt  
       2020-08-24 14:17:40 +08:00
    微软对应的项目
    https://www.microsoft.com/en-us/research/project/homomorphic-encryption/

    不过微软的这个大部分是同态加密,不是全同态。

    密码学届研究全同态加密的顶级专家大都任职于这两家或者和他们有密切合作的高校。
    sillydaddy
        5
    sillydaddy  
    OP
       2020-08-24 14:28:57 +08:00
    @lvybupt 从 IBM 的测试项目看,好像就是一个很简单的查询,也需要几秒钟。我自己还没有测试过(不太熟,而且感觉需要的知识储备比较多)。

    查了半天,没有找到在实际项目中的性能分析。找到的只有这个,
    全同态加密在 ERP 系统中的性能评估(ERP Homomorphic Encryption Performance Evaluation)
    https://www.ida.org/-/media/feature/publications/e/er/erp-homomorphic-encryption-performance-evaluation/d-10634.ashx

    @qdwang
    @lvybupt 大佬们有没有遇到过实际的案例啊?
    lvybupt
        6
    lvybupt  
       2020-08-24 14:59:47 +08:00   ❤️ 1
    @sillydaddy 我上面说的很清楚了。

    #3 实际上,目前效率问题还没有完全解决,测试效率距离具体项目可用可能还有相当大的差距。


    没有落地的项目需要这么高的安全性还不在乎这么低的效率。

    全同态加密本质上应该还属于没有走出学术圈子走出实验室的事物。
    你仔细看我贴的链接,IBM 和微软都是把它作为 research 发布的。
    据我所知,谷歌、惠普、阿里、腾讯等等研究院也有召集了人在做相关研究,比上面两家还是要有差距的。
    有一些美密会上公布的来自大学的成果可能会领先于上面两家,但基本上也是以理论研究为主。
    sillydaddy
        7
    sillydaddy  
    OP
       2020-08-24 15:17:22 +08:00
    @lvybupt 是的,所以我上面提到了“记账软件”这些只需很小数据量、运算量,是不是可以尝尝鲜?

    这些小的服务,需要的可能只是在 10000 条数据条目上,进行 1000 次整数比较,100 次整数加法,10 次整数乘法,如果现在的计算速度已经足够支持这样的运算量。那这就是一个真实的案例啊,不一定非得是大规模的云计算。
    catror
        8
    catror  
       2020-08-24 15:28:48 +08:00 via Android
    记账软件没有服务端运算的需求,用不上同态加密
    lvybupt
        9
    lvybupt  
       2020-08-24 15:44:55 +08:00   ❤️ 1
    我重新看了一下你的贴子。 回答你两句话吧。

    全同态加密迭代了 3 代(主要是同态运算方法的更新),由原来的比正常运算慢上万亿倍,到现在有了很大提高(具体的速度我没有查到)。

    这个是真的,科研成果很振奋人心,新闻稿写的更是突出了一个震撼。
    但是,实际上是运算复杂度只是降低了多少个 0 的概念,它后面还有很多个 0 。

    你可能没什么概念。
    如果你想要精确的公开结果可以去查阅 2017 到 2019 年的美密会论文。
    我可以给你个不太负责任的复杂度参考,2018 年我自己实验 kb 以内运算,中间过程超过了 GB 的存储,导致我的实验失败,后来就没做了。

    1 楼给了很好的建议,你可以考虑只有加法的单同态。单同态和全同态并不相同。
    lvybupt
        10
    lvybupt  
       2020-08-26 09:24:29 +08:00
    昨天恰好有机会跟相关领域的人一起吃盒饭的时间聊个天,回来结个帖子,给你个参考,希望给你有帮助。

    现在针对神经网络算法有相关的加速,是最接近落地的。IBM 有公布的成果但是算法未公开大概有数十倍的内存扩张和几十倍左右的计算效率差。大概就是在不改进神经网络算法做适配的情况下 1 张 1080 训练 1 天可以获得结果的训练集,现在需要 50 个 1080 完美交火训练几十天的样子。通用的计算效率理论上能够做到 kb 的计算控制在 1G 以内也就是百兆级别内存的样子,计算效率大概是慢千倍到百万倍不等,具体要看计算电路的复杂程度和设计逻辑。

    对于楼主的需求,固定的计算需求并且是有限次,并不需要全同态,你只需要用到 bootstrap 前的算法,也就是所谓的 somewhat FHE 或者叫 LFHE 。
    sillydaddy
        11
    sillydaddy  
    OP
       2020-08-26 12:59:04 +08:00
    @lvybupt 谢谢回复啊。

    以我现在的理解,你说的“有限次”是说不需要对数据做 N(N 比较大)次连续的处理吧? LFHE 的能力我还不清楚,例如它能不能解决例如 1000 次加法,2 次乘法?

    我再去看下 LFHE 相关的资料,如果能用 LFHE 解决的话,那真是忍不住要去实际尝试一下了!

    再次感谢提供这么多参考信息!
    kickcellardoor
        12
    kickcellardoor  
       2021-03-16 13:54:34 +08:00
    @sillydaddy 如果计算量那么小,为什么不在本地解决呢?
    sillydaddy
        13
    sillydaddy  
    OP
       2021-03-26 17:10:20 +08:00
    @kickcellardoor

    记账软件只是一个类比的例子: 软件服务的提供方,不想把运算的逻辑暴露在客户端(容易泄露技术)。而客户也不愿把自己的明文数据交给软件服务的提供方。两不相让,这就尴尬了。。

    而全同态加密可以完美应对这种情形。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5675 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:44 · PVG 09:44 · LAX 17:44 · JFK 20:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.