同态加密简介
发布网友
发布时间:2022-09-10 11:43
我来回答
共1个回答
热心网友
时间:2024-03-31 12:30
同态加密是数据加密方式的一种,特点是允许数据在加密情况下实现数学或逻辑运算。
同态加密通常为非对称性加密。因此在介绍同态加密之前,简单介绍一下非对称性加密。非对称性加密分为三个步骤:
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,但是通过 函数依然可以在加密情况下实现相加运算。