同态加密

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

同态加密

1.背景

加密的目的是保护数据的机密性。加密分为对称加密和非对称加密。对称加密是指加密和解密用的同一个密钥;而非对称加密在加密时用的是公钥,解密时用的是私钥。非对称加密体制是基于数学难问题(比如大整数分解、离散对数),加密解密操作比对称加密要慢很多。

如果对加密数据(即密文)的操作是在不可信设备(untrusted device)上进行的,我们希望这些设备并不知道数据的真实值(即明文),只发回给我们对密文操作后的结果,并且我们可以解密这些操作后的结果。举一个简单的例子,n个学生和1个老师通信,每个学生都有1个数据要发给老师,老师需要知道这n个数据之和,而学生们不想让老师知道每个数据的真实值。为了解决这个问题,Rivest等在1978年提出了同态加密的思想。

2.定义

同态加密[1]的定义如下:

其中,M表示明文的集合,C表示密文的集合,←表示可以从右式计算得出左式。

特别地,有

分别为加法同态、乘法同态。

所谓同态加密,是指在密文空间对密文的操作等同于在明文空间对明文操作后加密(据我自己的理解)。同态加密在数据聚合(data aggregation)、隐私保护等方面有着重要的应用。

现在可以用同态加密解决前面提出的问题:每个学生可以用加法同态加密函数将各自数据加密,再将这密文发给老师;老师只需要把n个密文相加,再将相加后的结果(即密文之和)解密,即可得到n个数据之和(即明文之和)。这样就保护了n个数据不被老师所知道,而且老师也得到了n个数据之和。

3.几个概念

在[1]中,介绍了Semantics Security、polynomial security、nonmalleability几个概念。

(1)Semantics Security指对具有一定计算能力的敌手而言,密文没提供任何有关明文的有用信息。比如,对加密操作c=E(m),c表示密文、E表示加密操作、m表示明文,敌手有可能猜到c而并不知道m。(2)polynomial security定义:敌手选择两个明文,我们随机地选取其中的一个明文,并提供该明文相应的密文给敌手;敌手在多项式时间内,并不能得出我们所选取的明文是两个中的哪一个。

(3)Nonmalleability定义:敌手知道密文c’对应的明文m’与明文m的关系是困难的。

Goldwasser和Micali证明了Semantics Security与

polynomial security等价,Bellare和Sahai 证明了

polynomial security与nonmalleability等价。

同态加密不具有nonmalleability,加操作的deterministic同态加密方案是不安全的。满足同态加密的已有方案:RSA,ElGmal,

Paillier cryptosystem。

相关文档
最新文档