系列文章目录
全同态加密入门
前言
博主最近在学同态加密的内容,写的笔记怕自己哪天就删没了,顺便上传一份。后面的格密码和LWE还没学懂,懂了的话可能在这里也可能在后面补上
同态加密的思想:无需解密就可以对密文进行任意计算
- 单同态加密算法举例:
- 满足一次乘法与任意加法的BGN同态算法
- "Polly Cracker"同态加密算法能够对密文执行任意电路的计算,其复杂度随着电路的深度指数增长
- 给予电路隐私安全的两方计算同态加密算法
(以上算法均不是同态加密算法)
- Gentry构造的全同态加密算法
全同态加密
电路模型:
- 全同态加密的一大特点就是能够构成一个环1,使得可以不断进行加法和乘法。
- 乘法和加法可以对应电路中的异或和与或,这也是为什么可以用电路实现同态加密的多项式运算
- 密码学安全性所在的根本在于计算复杂度
构造框架
- 目前的全同态加密都是在格密码2的基础上构造的,其安全性建立在如下困难问题上:理想格,LWE问题3和LWE环问题
- Gentry的全同态加密算法是根据理想格构建的,其密文中含有噪声,而且随着计算噪声有可能“淹没”明文。因此控制噪声增长是一个重要问题。
- Gentry的解决方案是先对密文进行解密使得噪声控制在一个可接受的范围内,通过压缩解密电路的复杂度使得它能进行更大的计算。
- 第二代全同态加密的构造方法简单。给予LWE环的假设,其安全性可以归约到一半格上的标准困难问题,用维数模约简的方法控制噪声,代表算法包括BGV , BFV(Bra12的环LWE版本)
- 通过密钥交换(key switching)控制密文长度的增长,从而实现有限次同态加密。然后使用模交换技术控制密文计算噪声增长。
- Gentry提出过一个基于近似特征向量的全同态加密。
全同态加密入门
- 全同态加密包括四点:密钥生成,加密,解密,密文计算。其中,密文计算是全同态加密独有的特点。全同态加密所得到的密文具有同态性:(可以进行运算)
- 密钥生成算法(KeyGen):
- 生成公钥和私钥。但是同态加密算法还要生成另一个公钥
Evk
用于密文计算 - 加密算法Enc。该算法生成密文的噪声称为
初始噪声
- 解密算法Dec。该算法不仅可以对加密算法得到的密文解密,还应该能够对计算后的密文解密。(如果噪声过大会导致解密失败)
- 密文计算算法Eva:密文计算是在电路里进行的,那么有$d = \lceil \log_{2}{x} \rceil $。同时我们一般用乘法次数来衡量计算次数
- LWE上的全同态加密