[FHE]基于LWE&RLWE的全同态加密方案设计大致思路

加密方案

LWE

方案公开参数:明文模数t、密文模数q、向量维数n

密钥空间为Zqn,即素数域Zq上的n维向量。
明文空间取Zt,为素数与上的一个数。

加密的过程:
选取随机数aZqn(和密文空间一样)。
计算b=as+m+temodq其中s为密钥,e为噪声,在Zq中满足高斯分布。
密文为c=(b,a),一共有n+1维。

解密的过程:
计算basm+temodq,将结果对t做取模运算得到m

R-LWE

方案公开参数:明文模数t、多项式XN+1,以及多项式环R=Z[X]/XN+1
Rq表示系数模q的多项式环Z[X]q/Xn+1

密钥空间为Rq,即选取密钥sRq
明文为一个多项式,明文空间为多项式环Rt

加密的过程:
选取随机数aRq
计算b=as+m+teRqb也是系数模q的多项式环上的一个元素。
其中e是一个噪声多项式,其系数在Rq上满足高斯分布。
密文为c=(b,a),为两个Rq上的多项式,即cRq2

解密的过程:

Rq上计算bas,将结果basm+te的系数对t取模得到mRt

基于R-LWE问题的方案将向量编码为多项式。向量有n维(其中可以取n=ϕ(N)ϕ()为欧拉函数,在CRT编码的情况下,在CKKS中是N/2),最多包含n个数据。
加密后得到Rq2上的一个密文,可以看作一个维度为2n的向量。

噪声问题

噪声的阈值

解密运算都是在模的意义下进行的。
q运算后得到m+temodq,如果(m+te)q来的小的话,可想而知m是一定可以被正确计算出来的(m在模t的空间中)。
另一方面,如果(m+te)q大,则解密会产生错误。
举个例子:
在一个基于LWE的方案中,取模数t=13,q=41,明文m=11Z13,噪声取自Z41
解密时计算11+13×emod41,如果噪声较小,比如e=2,则m+te37mod41,模t=13得到m=11
而如果噪声大一点,比如e=5,得到m+te7635mod41,再模上t=13得到m=9.
或者取噪声e=10,得到m+te14118mod41,得到m=5

所以噪声控制的要求就是m+te<q

posted @   Akiho  阅读(318)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示