一、 同态加密是一种公钥加密算法,加密使用公钥pk,解密使用私钥sk。
二、 密文具有计算功能,无需解密就能对加密数据进行处理,处理过程不会泄露任何原始内容,拥有**的用户解密后可以得到处理后的结果。
其中,Encrypt是加密操作,Decrypt是解密操作,f()是计算功能。
三、f()满足加法运算,则称为加法同态;f()满足乘法运算,则称为乘法同态;f()同时满足加法和乘法运算,则成为全同态。
四、应用案例
1. 安全云计算与委托计算
医疗机构就可以将加密后的数据发送至第三方,第三方对加密数据进行计算处理,处理完成后便可将处理结果返回给医疗机构,医疗机构再对返回的结果进行解密,得到最终想要的处理结果。整个数据处理过程、数据内容对第三方是完全透明的。
2. 电子选举
统计方可以在不知道投票者投票内容的前提下,对投票结果进行统计,既保证了投票者的隐私安全,又能够保证投票结果的公证。
3. 区块链隐私保护
基于加法同态加密的区块链隐私保护方法的特征在于,包括如下步骤:
1)同态**生成,由一个可信任的第三方机构生成一对同态**作为全网的同态**,公开其同态公钥,私钥保存在第三方机构中。用户的账户余额有两种存在形式:一种是用全网同态公钥加密后存储在区块链公共账本上的真实余额,一种是以明文形式存储在用户本地只供用户自己可见的可见余额。
2)拆分交易发送方的账户可见余额,发送方须将自己的可见余额值拆分为需要转账的交易金额和剩余余额,需要转账的交易金额不得大于可见余额,且任何金额不得小于零;
3)用全网同态公钥加密交易金额和剩余余额,同态加密后的密文分别记为X1和X2,此操作采用加法同态加密算法;
4)用接收方的公钥加密步骤2)中的交易金额,加密后的密文记为Y1;
5)发送者发起交易,交易内容包含步骤3)中的密文X1、密文X2以及步骤4)中的密文Y1三个字段,发送者将交易信息发送至全网节点进行验证;
6)交易确认,区块链全网的验证节点进行交易信息的验证,并维护公共账本。由于公共账本上以同态加密密文形式存储全网账户的真实余额,验证节点进行交易验证时应当确认:
①密文X1和密文X2对应的真实金额不小于零;
②密文X1和密文X2的同态加法和与发送者的公共账本余额一致;
交易信息验证成功后,验证节点对公共账本上的用户真实余额进行修改。
7)更新接收者的可见余额:接收者上线接收交易信息,利用自己的私钥解密交易信息中的密文Y1得到交易金额明文,直接更新自己的可见余额。或者,接收者向可信的第三方机构申请查询真实余额,然后更新自己的可见余额。
https://mp.weixin.qq.com/s/yvk324LLahVZjqnloeSnXQ
https://mp.weixin.qq.com/s/Rp_c_O1oR_B7H2EB6HqLKg
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/privacy.html