Homomorphic Evaluation of the AES Circuit:解读
之前看过一次,根本看不懂,现在隔这么久,再次阅读,希望有所收获!
论文版本:Homomorphic Evaluation of the AES Circuit(Updated Implementation)
- 首先明白AES电路是什么?
暂且理解为AES加密算法,以电路的形式实现。
注:bootstrapping 自举;key switching 密钥交换; modulus switching 模交换
介绍#
- 使用Leveled-FHE方案(BGV)加密和同态计算(不用自举),使用同态库(HElib)
- 使用SIMD编码技术
- 使用模交换和密钥交换技术改进版
AES电路#
当对使用AES加密的数据进行计算时,AES同态解密就是将用AES加密的数据转换为用,FHE加密的数据,然后执行计算。
环表示#
符号表示#
-
:整数 模 ,范围在 -
次分圆多项式: ,阶数为 ,即多项式的最高次幂为 ,例如 ,阶是 -
模
的多项式环: ,即整系数的多项式(模 和模 )集合,阶数为
多项式表示#
一个
m次本原单位根有
个
给定一个多项式
系数表示法#
可以将
计算表示法#
将
转换#
可以看出,这两种表示法是通过
上面是基于CRT实现的转换,还有其他的方法:牛顿插值法、拉格朗日插值法、**快速傅立叶变换(FFT)更多请参考:FFT
上面两种表示法,都可以将一个多项式
所以后者也叫做双CRT表示(double CRT representation),对应于
这里的
说是一个"复合体",可以看作是一个很大的数
多项式计算#
由于是基于多项式环上的计算,所以会有很多整数多项式间的计算。例如:模乘(modular multiplications),模加(modular additions), Frobenius映射(用于快速计算次幂
大部分的计算可以在计算表示法下进行,另外标准的模交换和密钥交换需要在系数表示法下进行【密文中的噪音在系数表示法很小,在计算表示法下则不会】,所以在整个过程中,多项式需要在这两种表示下来回转换,这是最耗时的!所以在该方案中,将始终将密文保持在计算表示下,仅当某些操作需要时才转换为系数表示,然后再转换回来。该方案中描述的密钥交换和模交换的变体是可以在计算表示法下执行的,密钥交换还有一个优点:密钥交换矩阵的尺寸减少,这是影响性能的重要因素。
由于转换耗费计算量,所以本文也是一直做优化,减少转换次数。
BGV基础方案#
这里采用的是BGV变体方案[1],密文和密钥都是在
上的向量,明文空间为 ,密文空间
密钥【current secret key s】和模数【current integer modulus q】会随着同态计算而变化(密钥交换和模交换导致的)
给定一个结构:密文
其中
以下再提到范数,即欧几里德范数(
范数)
噪音需要足够小,这样密文才有效,所以噪音满足一定的界限。
这里的BGV方案提供5个同态计算:加法( addition)、乘法( multiplication)、"自同构"(automorphism)、密钥交换(key-switching)和模交换(modulus-switching):
加法#
密文+密文,具体来说:两个密文
相加后模数和密钥不变,噪音累加。
乘法#
密文*密文(张量积),具体来说,两个密文
模数不变,密钥维数翻倍(
密钥交换#
需要密文的范数远小于
转换密文的密钥,具体来说(密文,密钥,模数):
主要用作在密文*密文后,密钥的维数增长,这时需要使用密钥交换,把密钥的维数降下去。假设
进行密钥交换,需要一个交换矩阵
其中,
可以看出,由于
总的来说,密钥交换改变了密钥,模数没有改变,噪音增加了
模交换#
模交换用来减少噪音的范数,具体来说(密文,密钥,模数):
其中,新模数
- 四舍五入产生的噪音范数很小,即
的范数很小
因为模数改变,所以BGV方案需要提前准备"一串"模数,即模数链(chain of moduli),
同态计算(一般指乘法)后密文的噪音过大,需要执行模交换将模数从
自同构#
定义一种映射:
使得
也是一种对密文的运算,具体来说(密文,密钥,明文):
具体没看懂,涉及到伽罗瓦群的概念,后面补充
打包密文#
明文空间:
为什么可以表示,或许是扩域的性质吧
附录#
明文槽(plaintest slot)#
多项式环:
明文空间:
密文空间:
分圆多项式
伽罗瓦群
并且
等学完伽罗瓦群后再回看
标准嵌入范数(Canonical embedding norm)#
双CRT表示(Double CRT)#
分圆多项式
模数
所以一个密文
其中,这种表示法可以用
一次FFT,可将一个多项式"解码为"一组数(向量)编码;而逆操作,则需
一次IFFT,可以将一组数(向量)"编码为"一个多项式
参考#
1、Fully Homomorphic Encryption with Polylog Overhead
作者:Hang Shao
出处:https://www.cnblogs.com/pam-sh/p/16176394.html
版权:本作品采用「知识共享」许可协议进行许可。
声明:欢迎交流! 原文链接 ,如有问题,可邮件(mir_soh@163.com)咨询.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)