同态加密详解

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

什么是同态加密

同态加密Homomorphic Encryption是指将原始数据经过同态加密后对得到的密文进行特定的运算然后将计算结果再进行同态解密后得到的明文等价于原始明文数据直接进行相同计算所得到的数据结果。
同态加密与一般加密方案的关注点不同一般的加密方案关注的是数据存储安全即我要给其他人发送信息或者存储信息我需要对数据进行加密之后再发送和存储这里我们只需要保证在数据传送和存储的过程中不被其他人窃听到即可在这个过程中用户时不能对加密的结果做任何操作的否则可能会导致解密失败
通态加密的关注点则是数据处理安全同态加密提供了一种对加密数据进行处理的功能。也就是说其他人可以对加密后的数据进行处理在这个过程中不会泄露任何原始的内容在数据处理完成之后再进行解密得到的正是对原始数据进行相同处理后的结果


举个例子内容来自知乎
有个叫Alice的用户买到了一大块金子她想让工人把这块金子打造成一个项链。但是工人在打造的过程中有可能会偷金子啊毕竟就是一克金子也值很多钱的说… 因此能不能有一种方法让工人可以对金块进行加工delegate processing of your data但是不能得到任何金子without giving away access to it当然有办法啦。Alice可以这么做

Alice将金子锁在一个密闭的盒子里面这个盒子安装了一个手套。工人可以带着这个手套对盒子内部的金子进行处理。但是盒子是锁着的所以工人不仅拿不到金块连处理过程中掉下的任何金子都拿不到。加工完成后。Alice拿回这个盒子把锁打开就得到了金子。这个盒子的样子大概是这样的
在这里插入图片描述
这里面的对应关系是

  • 盒子加密算法
  • 盒子上的锁用户密钥
  • 将金块放在盒子里面并且用锁锁上将数据用同态加密方案进行加密
  • 加工应用同态特性在无法取得数据的条件下直接对加密结果进行处理
  • 开锁对结果进行解密直接得到处理后的结果

加密步骤

本部分内容参考链接

  1. 本地生成一对公私钥公钥pub和密钥priv公钥用于加密密钥用于解密

  2. 本地使用公钥pub分别加密m1和m2得到Epub(m1)和Epub(m2)

  3. 第三方使用Addpub函数处理Epub(m1)和Epub(m2)即Addpub(Epub(m1),Epub(m2))

  4. 本地使用密钥priv解密Addpub(Epub(m1),Epub(m2))即Dpriv(Addpub(Epub(m1),Epub(m2)))

Dpriv(Addpub(Epub(m1),Epub(m2)))就等于m1+m2。第三方通过上述步骤3实现了m1和m2在加密状态下做加法的操作。

同态加密的类型

部分同态加密partially homomorphic

部分同态加密算法允许某一操作被执行无限次。例如一个特定的算法可能是加法同态的这意味着将两个密文相加会产生与加密两个明文之和相同的结果。

  • 加法同态该加密方案支持的同态函数族为所有可以仅由加法实现的函数。目前使用比较广泛的是paillier加法同态。
  • 乘法同态该加密方案支持的同态函数族为所有可以仅由乘法实现的函数。比如经典的RSA加密方案。

稍微同态加密somewhat homomorphic

有点同态加密算法可以对密文进行有限次数的任意操作例如某种程度的同态加密算法可以支持最多五种加法或乘法的任意组合。但是任何一种类型的第六次操作都将产生无效的结果。

某种同态加密算法是实现完全同态加密的重要垫脚石。设计一个同时支持加法和乘法的算法即使是支持一组数量的操作的算法比创建一个允许无限加法或乘法密文的算法要困难的多。

全同态加密fully homomorphic

可以对密文进行无限次数的任意同态操作也就是说它可以同态计算任意的函数

应用场景

参考链接一参考链接二

云计算

在云计算或外包计算中用户为了节约自身的软硬件成本可将计算和存储需求外包给云服务提供商利用云服务提供商强大的算力资源实现数据的托管存储和处理。但是将明文数据直接交给云服务器具有一定的安全风险而传统的加密存储方式则无法实现对密文数据的直接计算因此如何同时实现数据的机密性和可计算性成为了一个难题同态加密的出现为这一场景的实现提供了可能性。
在传统的云存储与计算解决方案中用户需要信任云服务器提供商不会窃取甚至用户数据而基于同态加密的云计算模型可在根本上解决这一矛盾。首先用户使用同态加密算法和加密密钥对数据进行加密并将密文发送给云服务器云服务器在无法获知明文数据的情况下按照用户给定的程序对密文进行计算并将密文计算结果返回给用户用户使用同态加密算法和解密密钥对密文计算结果进行解密所得结果与直接对明文进行相同计算的结果等价。

具体过程图解
在这里插入图片描述

  1. Alice对数据进行加密。并把加密后的数据发送给Cloud
  2. Alice向Cloud提交数据的处理方法这里用函数f来表示
  3. Cloud在函数f下对数据进行处理并且将处理后的结果发送给Alice
  4. Alice对数据进行解密得到结果。

不足

目前全同态加密算法的现有方案均存在计算和存储开销大等问题距离高效的工程应用还有着不小的差距同时还面临国际与国内相关标准的缺失因此在半同态加密算法满足需求的情况下要优先使用半同态加密算法

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6