什么是全同态加密?

2024-03-11 01:32
文章标签 加密 同态

本文主要是介绍什么是全同态加密?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

全同态加密属于密码学领域。由于全同态加密支持无需解密,就能够对密文进行任意计算,因此可以立竿见影的解决数据隐私安全问题,有很大的应用需求。例如,在云环境下,用户加密数据后存储在云端,由于数据加密使得云端无法获得数据的内容,从而保证了数据的隐私。此外,由于是全同态加密,云端可以对密文数据进行任意计算。总而言之,全同态加密不但通过加密保护了数据,而且没有丧失计算性。

这么好的性质到哪里找呀!?

全同态加密的概念早在1978年就提出,然后一找就是30多年过去了。当然这30多年也没闲着,30年间人们提出的方案随后就被证明是不安全的。

1

当然在这30年间,人们也退而求其次,能做一次加法和一次乘法的也可以,例如c1c2+c3c4,即一个二次多项式。这样的方案称为BGN方案。

当然再退而求其次,就是只能做加法,或者只能做乘法,这种方案称为单同态。例如,RSA就是乘法同态,Paillier就是加法同态。这些方案在有些地方大放异彩,尽管只能做一种同态计算。

直到2009年,Gentry,一个斯坦福大学的博士生,基于理想格提出一个全同态加密方案。Craig Gentry. Fully Homomorphic Encryption Using Ideal Lattices. In the 41st ACM Symposium on Theory of Computing (STOC), 2009. 这篇论文是来自于他的博士论文:Craig Gentry. A Fully Homomorphic Encryption Scheme (Ph.D. thesis).

2

世界哗然。各大报纸头条,密码学界的突破(Breakthrough),计算机界的突破。英文中Breakthrough可不是随便用的。

最为凑巧的是,09年左右恰好是云计算概念火热的时候。而所有介绍全同态加密的文章开头都会来一句,全同态加密用在云计算中可以保护数据隐私安全。谁催化了谁,真的不知道。

Gentry的全同态加密方案是基于理想格构造的。理想格为何物?通俗的说就是一种困难问题,就像大整数难题一样。

说到这里,不得不说两句格密码。很多人只知道RSA,ECC,但是提起格密码一脸的茫然与恐惧,觉得格密码一定是一个很难理解的问题。事实上,恰好相反,所谓的格(Lattice)就是整系数基的线性组合构成的点,通俗地说就是一个空间中的一些离散有规律的点。既然是离散的点,那么点之间一定有距离,距离产生美,从而产生了一些困难问题,例如:最短向量问题(SVP)。

3

如果是一个二维平面,那么寻找在格上寻找最短向量问题是简单的,但是当维数变大的时候,例如200多维,寻找格上的最短向量问题就变的异常困难,称之为格上标准困难问题,是一个指数级的困难问题。你可以想象一下,当你在迷宫里时(现实世界是3维的),找出口还不算很困难,但是当在一个200多维的迷宫里时,困难程度立刻指数级上升。

 

最令人感兴趣的是,格上标准困难问题至今没有量子算法可以破解或者撼动它,因此格上标准困难问题被认为是抗量子的。

格上的加密方案最大特征:是一个含有噪音的方案。加密时往里添加噪音,主要是为了进一步提高安全性。然而恰好是这个噪音,导致加密的形式与解密形式比较简单。这种特性为构造全同态加密埋下了伏笔。

这篇关于什么是全同态加密?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796172

相关文章

SpringBoot3使用Jasypt实现加密配置文件

《SpringBoot3使用Jasypt实现加密配置文件》这篇文章主要为大家详细介绍了SpringBoot3如何使用Jasypt实现加密配置文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... 目录一. 使用步骤1. 添加依赖2.配置加密密码3. 加密敏感信息4. 将加密信息存储到配置文件中5

SpringBoot整合jasypt实现重要数据加密

《SpringBoot整合jasypt实现重要数据加密》Jasypt是一个专注于简化Java加密操作的开源工具,:本文主要介绍详细介绍了如何使用jasypt实现重要数据加密,感兴趣的小伙伴可... 目录jasypt简介 jasypt的优点SpringBoot使用jasypt创建mapper接口配置文件加密

Java实现MD5加密的四种方式

《Java实现MD5加密的四种方式》MD5是一种广泛使用的哈希算法,其输出结果是一个128位的二进制数,通常以32位十六进制数的形式表示,MD5的底层实现涉及多个复杂的步骤和算法,本文给大家介绍了Ja... 目录MD5介绍Java 中实现 MD5 加密方式方法一:使用 MessageDigest方法二:使用

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

ja-netfilter的前世今生和非对称加密的欺骗原理

文章目录 ja-netfilter起源官网插件插件配置文件插件的综合应用更多用法 非对称加密欺骗原理非对称加密和数字证书激活过程和欺骗手段分析代码示例第一步:生成自签名证书脚本第二步:使用自签名证书对产品激活信息进行签名 样例数据样例激活码(注:用于代码演示,直接粘贴到JetBrains 家 IDE 中无法完成激活!不用试,肯定提示无效,无法激活!!)样例power.conf(配合ja-ne

Linux加密框架设计与实现

本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:原文作者是独孤九贱大佬 原文地址:http://bbs.chinaunix.net/thread-3627341-1-1.html

Android的登陆MD5加密

1:导入代码 public class MD5Util {private static final String TAG = "MD5Util";/**** MD5加码 生成32位md5码*/public static String string2MD5(String inStr) {Log.e(TAG, "string2MD5: -------------------------");Mess