首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择合适的plaintext_modulus

选择合适的plaintext_modulus
EN

Stack Overflow用户
提问于 2018-10-26 05:26:41
回答 1查看 158关注 0票数 1

在选择像plaintext_modulus这样的参数时,有什么好的策略吗?(除了猜测和检查,直到输出看起来正确)

特别是,我正在用IntegerEncoder进行BFV的实验。我的理解(可能是错误的)是,plaintext_modulus不是,不是被编码整数的模,而是多项式表示中每个系数的模。

对于B=2,这些系数看起来只是0或1。但是,在应用了相加和乘法之类的运算后,显然不再是这样了。是否有一种很好的方法来确定系数的好界,以便选择plaintext_modulus

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-26 19:01:02

我(潜在错误)的理解是,plaintext_modulus不是被编码整数的模数,而是多项式表示中每个系数的模数。

这是使用IntegerEncoder时正确的思维方式。但是,请注意,在使用BatchEncoder ( SEAL 2.*中的PolyCRTBuilder)时,情况正好相反:明文向量中的每个插槽都是整数模poly_modulus

对于B=2,这些系数看起来只是0或1。但是,在应用了相加和乘法之类的运算后,显然不再是这样了。是否有一个很好的方法来确定系数的一个好的界,以便选择plaintext_modulus?

IntegerEncoder的全部要点是,新编码具有尽可能小的系数,延迟了plain_modulus溢出,并允许您使用较小的plain_modulus (意味着较小的噪声增长)。*有一个自动参数选择工具,它对噪声增长和明文系数增长执行启发式的上限估计,并且基本上完全符合您的要求。不幸的是,这些估计是在每次操作的基础上执行的,导致早期操作中的高估在计算的后期阶段出现爆炸。因此,估计数并不比最简单的计算更紧,而且在许多情况下,这个工具提供的参数过大。

为了估计乘法中明文系数的增长,让我们考虑两个多项式p(x)和q(x)。很明显,乘积的度完全等于deg(P)+deg(Q),这部分很容易。如果the _x表示多项式P(最大系数的绝对值)的无穷范数,那么:

X*q <= min{deg(p)+1,deg(q)+1} *\x,p,x,x,p,p,x,x,p,x,p,x,x,

实际上,海豹突击队2.*在这里有点精确。它不使用度,而是在这些多项式中使用非零系数的数目。当多项式稀疏时,这会产生很大的不同,在这种情况下,交叉项的贡献要小得多,一个更好的界限是:

{#(non_zero_coeffs(P)),}*(non_zero_coeffs(Q))}*~(?)

IntegerEncoder-like编码器中系数增长的更深层次的分析是由科斯塔歇等人在https://eprint.iacr.org/2016/250中完成的,您可能想看看。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53002005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档