笔记主要来自于杨强老师的《联邦学习》一书
同态加密
同态加密逐渐被认为是在 PPML 中实现安全多方计算的一种可行方法。
- 定义:同态加密方法 是一种通过对相关密文进行有效操作(不需获知解密密钥),从 而允许在加密内容上进行特定代数运算的加密方法。一个同态加密方法 由一个四元组组成:
KeyGen, Enc, Dec, Eval
所谓同态就是满足密态下运算和非密态下计算结果相同
KeyGen 表示密钥生成函数。对于非对称同态加密,一个密钥生成元 g 被输 入 KeyGen,并输出一个密钥对 {pk, sk} = KeyGen(g),其中 pk 表示用于明文加密的公钥(public key),sk 表示用于解密的密钥(secret key)。
对于对称同态加密,只生成一个密钥 sk = KeyGen(g)。
Enc 表示加密函数。对于非对称同态加密,一个加密函数以公钥 pk 和明文m 作为输入,并产生一个密文 c = Encpk(m) 作为输出。
对于对称同态加密,加密过程会使用公共密钥 sk 和明文 m 作为输入,并生成密文 c = Encsk(m)。
Dec 表示解密函数。对于非对称同态加密和对称同态加密,隐私密钥 sk 和密文 c 被用来作为生成相关明文 m = Decsk(c) 的输入。
Eval 表示评估函数。评估函数 Eval 将密文 c 和公共密钥 pk (对于非对称同态加密)作为输入,并输出与明文对应的密文。
设 表示使用 作为加密密钥的加密函数。设 表示明文空间, 且 表示密文空间。一个安全密码系统若满足以下条件,则可被称为同态的(homomorphic):
对于 中的运算符 和 中的运算符 ,符号表示左边项等于或可以直接由右边项计算出来,而不需要任何中间解密。在本书中,我们将同态加密运算符设为,并且对密文的加法操作和乘法操作按如下方式重载:
加法:
标量乘法:
这里不知道是不是书写错了,乘法和加法符号怎么是一样的。
同态加密的分类
同态加密方法分为三类:部分同态加密 (Partially Homomorphic Encryption, PHE),些许同态加密 (Somewhat Homomorphic Encryption, SHE) 和全同态加密 (Fully Homomorphic Encryption, FHE)。
//待补充