同态加密简介
2021-01-27 本文已影响0人
茄瓜Jim
同态加密是数据加密方式的一种,特点是允许数据在加密情况下实现数学或逻辑运算。
同态加密通常为非对称性加密。因此在介绍同态加密之前,简单介绍一下非对称性加密。非对称性加密分为三个步骤:
1. 生成一对钥匙,一个公钥pub和一个密钥priv;
2. 使用公钥pub加密原始数据,得到加密数据,公式:pub(原始数据)= 加密数据 ;
3. 使用密钥priv解密加密数据,得到原始数据,公式:priv(加密数据)= 原始数据 ;
同态加密允许对加密数据进行处理,得到的解密结果等价于在原始数据下做运算。以联邦学习用到的Paillier算法举例,假设我有两个数和
,我希望把它们扔给第三方做加法运算,即
+
。同时不希望第三方知道
、
及它们之和的具体值,同态加密可以派上用场,具体步骤如下:
1. (本地)生成一对钥匙,公钥pub和密钥priv,公钥用于加密,密钥用于解密;
2. (本地)使用公钥pub分别加密和
,得到
(
)和
(
);
3. (第三方)使用函数处理
和
,即
;
4. (本地)使用密钥priv解密,即
;
4中 =
+
。第三方通过上述步骤3实现了
和
在加密状态下做加法的操作。
为了更直观认识上述步骤,假设=100,
=200,步骤就变成:
1. (本地)生成一对钥匙,公钥pub和密钥priv,公钥用于加密,密钥用于解密;
2. (本地)使用公钥pub分别加密和
,得到
=1234,
=4321 (举例);
3.(第三方) 使用函数处理
和
,即
=12345678;
4. (本地)使用解密priv解密,得到
= 300。
第三方在不知道=100和
=200,但是通过
函数依然可以在加密情况下实现相加运算。