什么是同态化(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 都曾经是该奖项的获得者,他们的研究对于当今的计算机世界都造成过巨大的影响。

  总结

  有件事我还没想清楚:同态加密真的能改变如今的云计算加密问题么?它是否能像今年肆虐美国的龙卷风一样,在时间和条件成熟时就能带来巨大的冲击呢?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐