文档章节

当局者“密”,密钥者清

openfea
 openfea
发布于 2017/08/10 10:14
字数 1200
阅读 97
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

目前,面对国防、医疗保健以及金融行业的数据安全问题,越来越多的应用程序开始应用于数据的处理。其实,任何一个组织都难以保证重要的数据不会被窥探,而对于公有云来说,这个问题更为严重。

传统的加密方案关注的是数据存储安全。即我要给其他人发个加密的东西,或者在服务器上存一个东西,我要对数据进行加密后再发送或者存储。没有私钥的用户,不可能从加密结果中得到有关原始数据。只有拥有私钥的用户才能够正确解密,得到原始的内容。我们注意到,这个过程中用户是不能对加密结果做任何操作的,只能进行存储、传输。对加密结果做任何操作,都会导致解密失败。

同态加密是指能够在不知道密钥的情况下,对密文进行任意计算,即对于任意有效的 f 函数及明文 m,有性质 f(enc(m))=enc(f(m))。这种特殊的性质使得全同态加密有广泛的理论与实际应用,如云计算安全,密文检索,第三方代理计算安全等。2009年IBM的研究员Gentry构造出了第一个全同态加密方案,这是密码学界的一个重大突破,之后称为了一个开放性难题,被誉为“密码学的圣杯”。

同态加密方案最有趣的地方在于,其关注的是数据处理安全。同态加密提供了一种对加密数据进行处理的功能。其他人可以对加密数据进行处理,但是处理过程不会泄露任何原始内容。同时,拥有密钥的用户对处理过的数据进行解密后,得到的正好是原文处理后的结果。

举个实际生活中的例子。有个用户买到了一大块金块,她想让工人把这块金块打造成一根金项链。但是工人在打造的过程中有可能会偷金块,因此能不能有一种方法,让工人可以对金块进行加工,但是不能得到任何金块?有个办法可以这样做,如下图所示:

同态加密例子

用户将金块锁在一个密闭的盒子里面,这个盒子安装了一对手套。工人可以带着手套,对盒子内部的金块进行处理。但是盒子是锁着的,所以工人不仅拿不到金块,连处理过程中掉下的任何金子都拿不到。加工完成后。用户拿回这个盒子,把锁打开,就得到了金项链。

这里面的对应关系是:

盒子:加密算法。

盒子上的锁:用户私钥。

将金块放在盒子里面并且用锁锁上:将数据用同态加密方案进行加密。

对金块的加工:应用同态特性,在无法取得数据的条件下直接对加密结果进行处理。

开锁:对结果进行解密。

金项链:经过同态算法处理后的结果。

同态加密的运算流程如下图所示:

同态加密运算流程

Alice对数据进行加密,将密文发送云环境。同时将处理数据的方法也提交服务器,这里用f表示。

云环境拿到密文后,用f函数的同态加密算法对数据进行处理,并将处理后的密文数据回传给Alice。

Alice拿到密文后对数据进行解密后得到原文经过函数f后的结果。

流程走完用户就感觉变魔术一样,在对方不知道你任何信息的情况下就帮你把事情办好了。

一、Paillier算法

Paillier算法,基于复合剩余类的困难问题,满足加法同态和明文数乘同态。

(一)密钥生成

(二)公钥加密

(三)私钥解密

(四)同态性质

(五)对负数的处理

二、ElGamal算法与改良

ElGamal算法,是一种非对称加密算法,基于Diffie-Hellman密钥交换算法。该算法可以应用在任意一个循环群上,在群中有的运算求解很困难,这些运算通常与求解离散对数相关,求解的困难程度决定了算法的安全性。

(一)密钥生成

(二)公钥加密

(三)私钥解密

(四)同态性质

三、测试结果

(一)paillier算法,加法同态性质测试

(二)elgamal算法,乘法同态性质测试

© 著作权归作者所有

openfea

openfea

粉丝 25
博文 91
码字总数 101905
作品 1
杭州
其他
私信 提问
加载中

评论(0)

量子十问之五:量子密码就是量子通信吗?

密码学是内容极其丰富的学科,目前量子信息技术仅仅在“密钥分配”这个具体分支上可望发挥独特的作用。保密通信是密码学的重要内容,其基本原理是采用密钥K1(0,1的随机数列)通过加密算法将...

雪花又一年
2018/05/03
0
0
【科普一下】量子密码就是量子通信?

密码学是内容极其丰富的学科,目前量子信息技术仅仅在“密钥分配”这个具体分支上可望发挥独特的作用。    保密通信是密码学的重要内容,其基本原理是采用密钥 (0,1的随机数列)通过加密...

雪花又一年
2018/05/03
0
0
“九”答不可 | 量子保密,完美无缺?

为什么“绝对安全”? 需要明确的是:密码学和量子技术两者各自包含的内容都很丰富,目前人们讨论的已经可以开始实际运用的,只是量子技术在“密钥分配”这个具体的分支上的作用。 密码学中所...

雪花又一年
2018/05/03
0
0
基于国密算法SM2SSL证书的https加密,如何实现?

如果要在客户端/网关系统和服务端之间进行SSL加密通信,当客户端应用(浏览器等)发起登录认证、加密、签名等请求时,服务端如何实现基于国密算法的SSL加密连接呢?如何解决国密算法的浏览器...

wossl
2019/03/28
120
0
SM2 国密算法SSL证书应用于HTTPS加密,如何实现?

如果要在客户端/网关系统和服务端之间进行SSL加密通信,当客户端应用(浏览器等)发起登录认证、加密、签名等请求时,服务端如何实现基于国密算法的SSL加密连接呢?如何解决国密算法的浏览器...

北阙青云
2019/03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IDEA安装 IntelliJ IDEA 下载安装与破解教程

IntelliJ IDEA 下载安装与破解教程 一、首先到IDEA官网下载正版的IDEA 网址:https://www.jetbrains.com/idea/download/#section=windows 请直接用下面的链接下载 上面网址加载慢的话可以用这...

osc_u9wft6hh
39分钟前
20
0
mysql执行过程以及顺序

前言:mysql在我们的开发中基本每天都要面对的,作为开发中的数据的来源,mysql承担者存储数据和读写数据的职责。因为学习和了解mysql是至关重要的,那么当我们在客户端发起一个sql到出现详细的查...

osc_r2jpynxi
40分钟前
20
0
去阿里,是不可能的,这辈子都不可能的

前几天,又有一个朋友邀请我去阿里,然后,,,,,我不假思索地就拒绝了。 因为说实话,阿里的修福报文化不适合我——不小心又装逼了。主要是感觉自己的学历配不上进大厂,就一个大专而已。...

osc_7nzqlmki
42分钟前
15
0
IDEA安装 IntelliJ IDEA 下载安装与破解教程

IntelliJ IDEA 下载安装与破解教程 一、首先到IDEA官网下载正版的IDEA 网址:https://www.jetbrains.com/idea/download/#section=windows 请直接用下面的链接下载 上面网址加载慢的话可以用这...

osc_wy8nhxhn
43分钟前
15
0
如何使用Lock?Lock 与synchronized 区别是什么?

Lock 就像同步块一样, java.util.concurrent.locks.Lock是线程同步机制。但是,锁比同步块更灵活,更复杂。由于Lock是接口,因此需要使用其实现之一在应用程序中使用Lock。 ReentrantLock是...

极客编程111
43分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部