同态加密技术

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

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 条评论
登录 后参与评论

相关文章

来自专栏每日一篇技术文章

opengL ES _ 入门_05

ID是漫反射的强度,Ii是光的入射光的强度,和KD的漫反射,是对粗糙松散耦合对象材料。松散的意思是,在许多现实世界的材料,实际表面可能有点抛光,但半透明的,而层...

973
来自专栏iOSDevLog

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

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

832
来自专栏AI研习社

用金庸、古龙群侠名称训练 LSTM,会生成多么奇葩的名字?

AI 研习社按:本文转载自 Magicly 博客,获作者授权。阅读原文请见:http://magicly.me/2017/04/07/rnn-lstm-gene...

36311
来自专栏北京马哥教育

Python自然语言处理分析倚天屠龙记

? 转载自:Python中文社区 ID:python-china 最近在了解到,在机器学习中,自然语言处理是较大的一个分支。存在许多挑战。例如: 如何...

3426
来自专栏专知

【AlphaGo Zero 核心技术-深度强化学习教程代码实战06】给Agent添加记忆功能

【导读】Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值...

4406
来自专栏生信技能树

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

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

2898
来自专栏小鹏的专栏

是AI就躲个飞机-纯Python实现人工智能

代码下载:Here。 很久以前微信流行过一个小游戏:打飞机,这个游戏简单又无聊。在2017年来临之际,我就实现一个超级弱智的人工智能(AI),这货可以躲避从...

9135
来自专栏Python小屋

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

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

631
来自专栏大数据文摘

简单易学多维数据可视化R实现:神奇的卡通脸谱图Chernoff faces

3195
来自专栏生信小驿站

生存分析①R语言

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

1033

扫码关注云+社区