Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Seal Galois自同构在同态加密中的应用_Seal - Fatal编程技术网

Seal Galois自同构在同态加密中的应用

Seal Galois自同构在同态加密中的应用,seal,Seal,使用伽罗瓦自同构实现批量计算(即,在一次操作中并行地对多个密文进行加法和乘法) 批处理过程在本手册的5.6伽罗瓦自同构和7.4 CRT批处理章节中描述 特别是,上面的两个部分说明以下环是同构的 \prod{i=0}{n}\mathbb{Z}t\cong\prod{i=0}{n}\mathbb{Z}t[\zeta{2i+1}]\cong\mathbb{Z}t[x]/(x^n+1) 其中\zeta是单位模t的第2n个本原根 可以找到上述等式的图像(Stackoverflow目前不允许我显示图像) 同

使用伽罗瓦自同构实现批量计算(即,在一次操作中并行地对多个密文进行加法和乘法)

批处理过程在本手册的5.6伽罗瓦自同构和7.4 CRT批处理章节中描述

特别是,上面的两个部分说明以下环是同构的

\prod{i=0}{n}\mathbb{Z}t\cong\prod{i=0}{n}\mathbb{Z}t[\zeta{2i+1}]\cong\mathbb{Z}t[x]/(x^n+1)

其中\zeta是单位模t的第2n个本原根

可以找到上述等式的图像(Stackoverflow目前不允许我显示图像)

同样的部分还指出,可以使用伽罗瓦自同构将
\prod{i=0}{n}\mathbb{Z}{u t
中的明文元组映射到
\mathbb{Z}\u t[x]/(x^n+1)

更准确地说,n维的
\mathbb{Z}\t
-向量明文可以被认为是一个2乘(n/2)矩阵,伽罗瓦自同构将对应于该矩阵的列和行的旋转

在对明文向量(行和列的旋转)应用伽罗瓦自同构之后,可以在
\mathbb{Z}\u t[x]/(x^n+1)
中获得相应的元素,该元素将用于批计算

我的问题如下

1-为什么
\mathbb{Z}u t[\zeta^{2i+1}]
同构于
\mathbb{Z}u t

2-伽罗瓦自同构如何精确地将n维
\mathbb{Z}t
-向量明文映射到
\mathbb{Z}t[x]/(x^n+1)
中的元素? 或者换言之,组合操作是如何工作的?如何使用伽罗瓦自同构(行和列旋转)来计算它

========================================================================

  • 同构只是计算单位根上的多项式,以获得Zt元素。请注意,这是有效的,因为统一的相关根本身在Zt中。整个批处理系统只是一个古老的中国剩余定理:批处理槽是不同i的明文多项式模x-zeta2i+1的约化。返回需要标准的CRT重建

  • 实际上,CRT是通过数论变换(有限域上的FFT)及其逆运算实现的。伽罗瓦自同构作用于统一的根,通过排列它们,形成两个轨道。如果我们对明文矩阵时隙进行排序,使对应于基元根的下一个伽罗瓦共轭的批处理时隙值始终位于对应于该基元根的时隙值的左侧(或右侧),那么伽罗瓦操作将循环排列矩阵的行。这两个轨道也可以互换,这与柱旋转(swap)相对应


  • SEAL使用的NTT算法产生所谓的“位反转”输出顺序,这一事实使问题更加复杂。当在执行任何NTT或逆NTT之前确定批处理值的正确顺序时,需要考虑到这一点。

    可能更好地研究一下数学符号似乎不起作用,您最好访问math.stackexchange.com“相关的单位根本身在Z_t中”。这种情况是因为多项式模x^n+1在Z_t上分裂。对吗?