同态加密能否拯救云计算
什么是同态化(Homomorphic)?牛津英语大辞典给出了如下解释:“Pertaining to two sets that are related by a homomorphism.”
没看懂?那我再将这个解释同态化:“从一种形态转变到另一种形态,同时在第二种形态中保留与第一种形态相关联的元素”
加密技术上所谓的同态化,可以参考维基百科给出的说明:“一种加密形式,即对明文进行的一种特定的代数算法与对密码进行的另一种(可能与前者不同)代数算法是等价的。”
我再解释的简单一些。同态加密是对数据进行的一种复杂运算过程,不论数据是否已经被加密。
为什么要关注同态加密?
原因很简单,有了同态加密,有预谋的盗取敏感数据的情况将成为历史。因为在同态加密环境下,敏感数据总是处于加密状态,而这些加密数据对盗贼来说是没用的。
更新内容:有些聪明的读者问我这种技术对支付卡交易是否有帮助。我一开始的回答是肯定的。但是后来我意识到,还是应该问问这方面的专家。于是我找到了Craig Stuntz先生为我答疑解惑:
“我不确定这个技术用在信用卡交易中是否是个好主意,因为一般在交易时对于信用卡信息只是读取而不是计算。”
Stuntz先生还提供了一个更加合适应用同态加密的场景:
“考虑到报税员,或者一些财务服务机构,如mint.com:你将个人财务信息提供给他们,他们通过计算来优化你的财务/税务策略。但是你真的会将自己的银行账号和个人财务信息提交到财务优化网站上么?
现在换一种情况,你所提交的是一个代码,财务优化网站凭此代码可以从银行数据库下载同态加密过的你的财务数据。他们可以直接对加密数据进行计算,将所得到的税务优化结果再以加密的形式发送给你,这些加密的数据他们也无法破解,但是你可以。”
回顾
我是在2009年第一次接触同态加密技术的,当时我阅读了Craig Gentry的博士论文。后来在IBM,我看到了1978年由Ronald Rivest教授和相关人员所写的论文。
在加密技术领域,我只能算是个小学生,所以那篇论文在我看来晦涩难懂。但是我注意到Gentry先生在他的论文里很喜欢用类比的说明方法,因此我才对这种算法有了一定的认识。
手套箱的比喻
在Gentry的论文里,他虚构了一个场景,用来说明同态加密技术,这个场景是一个叫做爱丽丝的珠宝店主如何为自己的珠宝店防盗:
“Alice是一家珠宝店的店主,她打算让员工将一些贵重的珠宝组合成首饰,但是她由担心被小偷盯上。于是她造了一个手套箱存放制作好的首饰,而钥匙她随身保管。”
通过手套箱,员工可以将手伸入箱子来装配首饰,仅限于此。爱丽丝则可以通过钥匙,向手套箱中添加原材料,并取出制作好的首饰。
下图是个大型的手套箱示例图。
类比的关联
让我们看看是否能通过这个故事来理解同态加密
· 店主爱丽丝>最终用户
· 首饰原材料>原始数据
· 钥匙>网络
· 锁住手套箱>加密
· 员工>数据计算过程
· 完整的首饰>数据计算结果
记住这个比喻,然后让我们看看同态加密是如何处理2+3这样的问题的:假设数据已经在本地被加密了,2加密后变为22,3加密后变为33。加密后的数据被发送到服务器,在进行相加运算。然后服务器将加密后的结果55发送回来。然后本地解密为5。
在博客上Craig Stuntz提供了另一个针对门外汉的同态加密解释,这个解释可以让大家更好的理解同态加密。解释内容包括下面这个图表:
Mr. Stuntz解释说:“这个案例比较偶然。在案例中,同态连接(连接两个加密字符段)与非同态连接(连接两个明文字符段)的运算相同。不过情况并不总是这样的。
重要的是,我们可以对输入的加密内容进行某种运算,生成新的加密数据,而当解密的时候,所解密出的明文内容,与我们输入明文内容进行加密运算后再解密得到的结果是一致的。”
没那么简单
其实在上面两个例子之下,还隐藏这很多技术上的细节,但是我也不想装作我什么都懂,毕竟在过去30年,有很多非常聪明的人一直在研究这个技术,我也不可能在短短时间内就把人家几十年的研究搞明白。
解决方案
我没有机会直接访问Gentry 。但是福布斯杂志的Andy Greenberg确实采访了Gentry,他们聊到了Gentry在进行同态加密研究时遇到的问题以及如何克服这些问题的,下面是我从采访内容中摘抄下来的片段:
“Gentry的完全同态方案最早是在纽约一家咖啡店开始的。这种对已加密数据进行少量乘法或加法运算的加密技术当时引起了Gentry的兴趣。但是在研究过程中他遇到了很多麻烦。
因为每个算法步骤都会不可避免的给加密数据带来微小的改变,而当这种计算步骤增多,最终会导致数据的改变量过大,无法进行精密的解密还原运算了。
Gentry发现可以通过双重加密数据的方法,将运算带来的误差消除。
通过定期解锁加密数据外层不规则数据的下层数据,可以解决云计算混乱的数据安全现状,而且不会在云环境中出现任何明文数据。
Gentry在解决了加密问题后,才忽然发现,自己解决了加密领域一个悬而未决的加密算法问题。”
时机还不成熟
和所有好技术一样,将同态加密技术应用到现实生活还需要一段时间。另外,该技术还需要解决一些应用上的障碍。其中之一就是大量的计算需求。Gentry表示,如果再一个简单的明文搜索中应用同态加密技术,将使得运算量增加上万亿倍。
尽管如此,加密领域的专家们对此还是抱有很大的信心。就好像开闸放水一样,只要障碍被解决,该技术将快速应用到各个领域。实际上, Gentry已经有了新版的改进型同态加密技术,只不过还在完善,很快就会发表。
大生意
除了加密领域的专家对此看好外,其他行业的专家也对同态加密的潜在价值产生了兴趣。最近,美国国防部高级研究计划局(DARPA)最近就宣布了一项投资2000万美元的研究项目,用来解决加密方面的问题。并且已经将其中500万美元拨给了研究公司Galois 。
另外还要提一句, Craig Gentry 因为在加密领域的贡献,获得了美国计算机协会(ACM)颁发的Grace Murray Hopper 奖项。没听过这个奖项吗? Steve Wozniak 和 Bob Metcalfe 都曾经是该奖项的获得者,他们的研究对于当今的计算机世界都造成过巨大的影响。
总结
有件事我还没想清楚:同态加密真的能改变如今的云计算加密问题么?它是否能像今年肆虐美国的龙卷风一样,在时间和条件成熟时就能带来巨大的冲击呢?
同态加密能否拯救云计算相关推荐
- 5、隐私计算--同态加密
目录 同态加密 同态加密研究进展 同态加密原理及方案 同态加密分类 HE方案安全性 同态加密与区块链 同态加密应用 全同态工程实现开源工具 参考推荐: 同态加密_federated的博客-CSDN博客 ...
- 探索密码学的未来:SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算
密码算法在现代通信与信息安全中发挥着至关重要的作用,SM1.SM2.SM3.SM4.同态加密.密态计算.隐私计算和安全多方计算等密码算法被广泛应用于各种信息安全领域.本篇博客将会为大家介绍这些密码算法 ...
- 同态加密实现数据隐私计算,能让你的小秘密更加秘密
摘要:同态加密作为实现数据隐私计算的关键技术,在云计算.区块链.隐私计算等领域均存在着广泛的应用需求和一些可行的应用方案. 本文分享自华为云社区<同态加密在联邦计算中的应用>,作者:生也有 ...
- 隐私计算:数据脱敏、匿名化、假名化、差分隐私和同态加密
随着数据挖掘技术的普遍应用,一些厂商通过发布用户数据集的方式鼓励研究人员进一步深入挖掘数据的内在价值,在数据集发布的过程中,就存在安全隐患,可能导致用户隐私的泄露.2016年欧盟通过< ...
- 安全多方计算之三:同态加密
同态加密 1. 同态加密概述 2. 乘同态的ElGamal加密方案 3. 加同态的Paillier加密方案 4. 全同态加密方案 1. 同态加密概述 同态加密首次由R.Rivest等人于1978年在& ...
- 隐私计算之全同态加密
[引]走近任何一个领域,都会发现自己的渺小和微不足道,会越发地敬畏技术和未知,隐私计算也不例外.读了一点儿文章和paper,觉得还是ACM 上的这篇综述(https://queue.acm.org/d ...
- 同态加密在联邦计算中的应用
[摘要] 在大数据时代背景下,如何在保护数据安全隐私的前提下充分发挥数据的价值,成了一个亟待解决的问题.同态加密作为实现数据隐私计算的关键技术,在云计算.区块链.隐私计算等领域均存在着广泛的应用需求和 ...
- SEAL全同态加密开源库(十二) CKKS-源码浅析
2021SC@SDUSC 2021-12-19 前言 前两篇我们讨论了SEAL对于BFV的实现.本篇开始我将开始讨论SEAL对于CKKS的实现. 照例我会先补充理论知识,然后分析源码native/ex ...
- 密码学学习笔记(五)——CKKS同态加密方案
文章目录 1. 提出背景 2. 方案原理 3. 算法描述 4.方案改进 4.1 自举方案 4.2 RNS变体 1. 提出背景 1978年,Rivest.Adleman和Dertouzos在文献[1]中 ...
最新文章
- LabVIEW实现应用程序停止或退出
- python 调用函数 开销_减少python中的函数调用开销
- python函数拟合不规则曲线_python中的多变量(多项式)最佳拟合曲线?
- 大一java实训报告1500字_社会实践报告1500字
- QML基础类型之var
- LeetCode 209. 长度最小的子数组(滑动窗口)
- c++ map底层_深入浅出Redisredis底层数据结构(上)
- smc数显压力表设定方法_自动增压泵不停止工作原因及解决方法
- 数据类型oracle,oracle的数据类型
- 其实我只想设置客户端实现跨域请求
- 8.2 复用(protected+向上转型+final关键字+类的初始化)
- php中的get_called_class()方法
- Mujoco的关节与外力和驱动器
- RK G68三模说明书
- mac 修改hosts不生效问题
- xp计算机启动检测硬盘,WindowsXP系统,每次开机都自动检测硬盘处理办法
- 智商高的人情商都低?這個人來告訴你
- 你所不知道的测试经验分享之安卓UI控件定位!
- Mydrivers: 64国IT竞争力排名 中国仅第49
- python爬虫下载梨视频
热门文章
- “凡尔赛文学”是奢侈品电商的“取款机”?
- 微软统一打补丁的服务器,明白打补丁! 微软公布2月Win10/Win8.1/Win7更新详情
- 灵魂拷问:Java的可变参数究竟是怎么一回事?
- nn.Parameter
- 发表论文级别及期刊选择
- 职场表达,你不能没有的套路——SCQA架构
- 机器学习_论文笔记_2: bagging predictors ( BREIMAN[1996])
- FPGA HLS 卷积神经网络软硬件映射
- 首席新媒体运营教程:电商UGC社区运营全攻略电商
- 计算机网络总结600字,电脑的自述600字