同态加密技术

最近领导安排研究下大数据的安全,计算机安全是个系统工程,分很多层面:

1)硬件安全

2)应用软件安全

3)操作系统安全

4)数据库系统安全

5)网络安全技术

涉及到具体的技术又有:

1)密码技术

2)计算机病毒&防范

3)防火墙技术

4)黑客的攻击和防范

等等。

大数据技术除了传统的系统级别,软件级别的安全外,我觉得要重点关注数据的安全和隐私。

数据安全有一个很有意思的加密方法,这种方法叫同态同态加密。

同态加密是指2009年,IBM公司的克雷格·金特里(Craig Gentry)发表了一篇文章,公布了一项关于密码学的全新发现:一项真正的突破。他发现,对加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。这听起来就像是不知道问题也能给出问题的答案一样。

记加密操作为 E,明文为 m,加密得 e,即 e = E(m),m = E'(e)。已知针对明文有操作 f,针对 E 可构造 F,使得 F(e) = E(f(m)),这样 E 就是一个针对 f 的同态加密算法。

假设 f 是个很复杂的操作,有了同态加密,我们就可以把加密得到的 e 交给第三方,第三方进行操作 F,我们拿回 F(e) 后,一解密,就得到了 f(m)。第三方替我们干了活,对 m 却仍一无所知,——多么融洽的关系啊。

找到这样的 E 并不容易,单纯从数学角度看,E(x) = x,就是同态的,但是可惜没有加密效果,说了等于白说。RSA 算法对于乘法操作是同态的,对应的操作 F 也是乘法,对别的比如加法就无法构造出对应的 F;而 Paillier 算法则是对加法同态的。如果一种加密算法,对于乘法和加法都能找到对应的操作,就称其为全同态加密算法。目前还没有真正可用的全同态加密算法,虽然 Craig Gentry 已经前进了一大步。

考虑一个匿名投票系统,投票方、计票方、宣布方三权分立,采用公钥加密,只有宣布方拥有私钥。投票方将加密的票送到计票方,计票方利用同态特性进行操作 F,得到汇总的结果,宣布方拿到该结果后解密之,即得总票数。宣布方不知道单独每张票的情况,从而实现了匿名;计票方解不出票面信息,于是可以防止计票方从中作梗。选择对加法同态的加密算法:投谁的票给谁记“1”,不投计“0”;也可选择对乘法同态的算法:投谁的票给谁记“N”,不投计“1”。大致原理如上所述,实现起来还有其它一些难点:1. 赞成/反对票加密出来的结果应该多种多样,以防计票方胡乱推测;2. 能在不解密的情况下对票的有效性进行校验,不能允许一个人一下子投 10000 票。

全同态加密的意义对于允许任意复杂的 f,都能构造出相应的 F。这样,就能得到一些匪夷所思的应用:我能解决你的问题,即使我并不知道你的问题。

当前同态加密最主要的问题是不太成熟,效率损失太大(损失10倍以上),未来成熟的话,应用前景很大。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2016-03-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏专知

【读书笔记】基于知识库的问答:生成查询图进行语义分析

【导读】将DBPedia和Freebase这样的大规模知识库组织并存储在一个结构化的数据库,这已成为支持开放领域问题问答的重要资源。 KB-QA的大多数方法基于...

3897
来自专栏生信小驿站

生存分析①R语言

生存分析(Survival analysis)是指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小...

1474
来自专栏CSDN技术头条

饿了么推荐系统:从0到1

随着移动互联网的发展,用户使用习惯日趋碎片化,如何让用户在有限的访问时间里找到想要的产品,成为了搜索/推荐系统演进的重要职责。作为外卖领域的独角兽, 饿了么拥有...

3076
来自专栏SDNLAB

5G革命的技术,一个都不能少

第五代移动网络简称5G是产业界即将实现的移动技术革命,是LTE-A网络的深层演进技术。5G网络中的关键技术包括MIMO、OFDM、SC-FDMA等。 超密集微型...

42212
来自专栏人工智能LeadAI

python根据BM25实现文本检索

目的 给定一个或多个搜索词,如“高血压 患者”,从已有的若干篇文本中找出最相关的(n篇)文本。 理论知识 文本检索(text retrieve)的常用策略是:用...

7405
来自专栏一心无二用,本人只专注于基础图像算法的实现与优化。

13行代码实现最快速最高效的积分图像算法。

  研究图像到一定程度的人,应该都对积分图像有所了解,大家在百度或者google中都可以搜索到大量的相关博客,我这里不做多介绍。用积分图也确实能解决很多实际的问...

3948
来自专栏FreeBuf

关于口令强度等级的设计

近来在笔者所参与的一款产品中涉及到口令安全的功能设计,其中一项功能是有关于口令强度的。在设计该功能过程中势必涉及到口令强度的划分设计,怎样的口令...

2219
来自专栏生信技能树

如何通过Google来使用ggplot2可视化

今天是大年初二,这篇文章我只想传达一点: 没有什么菜鸟级别的生物信息学数据处理是不能通过Google得到解决方案的,如果有,请换个关键词继续Google! 第一...

3088
来自专栏Python小屋

Python计算电场中两点间的电势差

根据组合数定义,需要计算3个数的阶乘,在很多编程语言中都很难直接使用整型变量表示大数的阶乘结果,虽然Python并不存在这个问题,但是计算大数的阶乘仍需要相当多...

751
来自专栏iOSDevLog

机器学习研究和开发所需的组件列表

Here is a list of components that are needed for the successful machine learning...

952

扫码关注云+社区