文档章节

当局者“密”,密钥者清

openfea
 openfea
发布于 2017/08/10 10:14
字数 1200
阅读 33
收藏 0
点赞 0
评论 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
粉丝 12
博文 86
码字总数 95615
作品 1
杭州
其他
量子十问之五:量子密码就是量子通信吗?

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

雪花又一年 ⋅ 05/03 ⋅ 0

【科普一下】量子密码就是量子通信?

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

雪花又一年 ⋅ 05/03 ⋅ 0

“九”答不可 | 量子保密,完美无缺?

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

雪花又一年 ⋅ 05/03 ⋅ 0

安卓应用安全指南 5.6.1 密码学 示例代码

5.6.1 密码学 示例代码 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 针对特定用途和条件开发了各种加密方法,包括加密和解密数据(...

apachecn_飞龙 ⋅ 04/05 ⋅ 0

重磅解读 | 赵义博:量子密码的绝对安全只存在于理论

导语 近日,中科大量子物理博士赵义博就量子密钥的安全性作了如下阐述:绝对安全被证明只存在于理论,实际应用中只能逼近该理论极限,而无法直接实现。量子密钥在实际应用中可以划分安全级别...

雪花又一年 ⋅ 05/04 ⋅ 0

量子通信,究竟是怎样保障信息安全的?

日前,中国科学技术大学合肥微尺度物质科学国家实验室潘建伟院士、陆朝阳教授等完成的“多自由度量子隐形传态”名列2015年度国际物理学领域的十项重大突破榜首。 而北京到上海的2000公里量子...

雪花又一年 ⋅ 05/15 ⋅ 0

号称“绝对安全”的量子通信到底是什么?

世界互联网大会正在乌镇办得如火如荼,《北京日报》的一篇报道称北京有望明年用上量子通信网,称量子通信技术“可以保证无条件安全的信息安全和沟通”,换句话说,“无条件安全”指的就是“绝...

雪花又一年 ⋅ 05/15 ⋅ 0

学者:中国科技发达 要让量子通信飞入寻常百姓家

去年中国的科技界捷报频传,令人目不暇接。跨入2017年,中国科技向前迈进的步伐有着进一步加快的迹象,两千公里长的京沪量子通信干线建成就是一个最好的证明。目前的量子通信实质上就是量子密...

雪花又一年 ⋅ 05/01 ⋅ 0

量子通信每秒4000组密码防黑客破解

量子通信每秒4000组密码防黑客破解 信息安全是目前大众关注的焦点,使用量子技术对信息进行加密是目前最有效的办法。由于日常通信遭遇日益严重的黑客攻击和窃密威胁。 “无条件安全”的量子通...

雪花又一年 ⋅ 05/02 ⋅ 0

使用 PGP 保护代码完整性(三):生成 PGP 子密钥

在第三篇文章中,我们将解释如何生成用于日常工作的 PGP 子密钥。 在本系列教程中,我们提供了使用 PGP 的实用指南。在此之前,我们介绍了基本工具和概念,并介绍了如何生成并保护您的主 PG...

作者: Konstantin Ryabitsev ⋅ 05/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

容器之重命名镜像

使用docker tag命令来重命名镜像名称,先执行help,查看如何使用如下 mjduan@mjduandeMacBook-Pro:~/Docker % docker tag --helpUsage:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TA...

汉斯-冯-拉特 ⋅ 26分钟前 ⋅ 0

with 的高级用法

那么 上下文管理器 又是什么呢? 上下文管理器协议包含 __enter__ 和 __exit__ 两个方法。with 语句开始运行时,会在上下文管理器对象上调用 __enter__ 方法。with 语句运行结束后,会在上下...

阿豪boy ⋅ 46分钟前 ⋅ 0

使用 jsoup 模拟登录 urp 教务系统

需要的 jsoup 相关 jar包:https://www.lanzous.com/i1abckj 1、首先打开教务系统的登录页面,F12 开启浏览器调试,注意一下 Request Headers 一栏的 Cookie 选项,我们一会需要拿这个 Cook...

大灰狼时间 ⋅ 46分钟前 ⋅ 0

关于线程的创建

转自自己的笔记: http://note.youdao.com/noteshare?id=87584d4874acdeaf4aa027bdc9cb7324&sub=B49E8956E145476191C3FD1E4AB40DFA 1.创建线程的方法 Java使用Thread类代表线程,所有的线程对......

MarinJ_Shao ⋅ 57分钟前 ⋅ 0

工厂模式学习

1. 参考资料 工厂模式-伯乐在线 三种工厂-思否 深入理解工厂模式 2. 知识点理解 2.1 java三种工厂 简单工厂 工厂模式 抽象工厂 2.2 异同点 逐级复杂 简单工厂通过构造时传入的标识来生产产品...

liuyan_lc ⋅ 今天 ⋅ 0

Java NIO

1.目录 Java IO的历史 Java NIO之Channel Java NIO之Buffer Java NIO之Selector Java NIO之文件处理 Java NIO之Charset Java 可扩展IO 2.简介 “IO的历史”讲述了Java IO API从开始到现在的发...

士别三日 ⋅ 今天 ⋅ 0

[Err] ORA-24344: success with compilation error

从txt文本复制出创建function的脚本,直接执行,然后报错:[Err] ORA-24344: success with compilation error。 突然发现脚本的关键字,居然不是高亮显示。 然后我把脚本前面的空格去掉,执行...

wenzhizhon ⋅ 今天 ⋅ 0

Spring Security授权过程

前言 本文是接上一章Spring Security认证过程进一步分析Spring Security用户名密码登录授权是如何实现得; 类图 调试过程 使用debug方式启动https://github.com/longfeizheng/logback该项目,...

hutaishi ⋅ 今天 ⋅ 0

HAProxy基于KeepAlived实现Web高可用及动静分离

前言 软件负载均衡一般通过两种方式来实现: 基于操作系统的软负载实现 基于第三方应用的软负载实现 LVS是基于Linux操作系统实现的一种软负载,而HAProxy则是基于第三方应用实现的软负载。 ...

寰宇01 ⋅ 今天 ⋅ 0

微软自研处理器的小动作:已经开始移植其他平台的工具链

微软将 Windows 10 、Linux 以及工具链如 C/C++ 和 .NET Core 运行时库、Visual C++ 2017 命令行工具、RyuJIT 编辑器等移植到其自主研发的处理器架构 E2。微软还移植了广泛使用的 LLVM C/C++...

linux-tao ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部