问题标签 [seal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
193 浏览

seal - Microsoft SEAL:减去两个 PolyCRT 组成的密文导致溢出

假设我有两个数组x = [1,2,3,4,5]xMean = [3,3,3,3,3]。我使用 PolyCRTBuilder(xCiphertext 和 xMeanCiphertext)组成并加密了这两个数组。如果我减去两个密文( xCiphertext MINUS xMeanCiphertext ),我应该得到 xResult = [-2, -1, 0, 1, 2]但在同态减法之后我得到xResultDecrypted = [40959, 40960, 0 ,1, 2 ] . 我可以将溢出结果与普通模数集相关联,但是否有解决此问题的方法。这是代码:

evaluator.negate() 不会帮助解决我的问题。

0 投票
1 回答
136 浏览

seal - 选择合适的plaintext_modulus

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

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

当 B=2 时,这些系数看起来只是 0 或 1。但是,在应用了加法和乘法之类的操作之后,显然情况不再如此。有没有一种好的方法来确定系数的良好界限,以便挑选plaintext_modulus

0 投票
1 回答
198 浏览

seal - 我将如何检索密文的二进制表示,因为它将存储到磁盘

这个问题参考了 Microsoft 简单加密算术库 (SEAL) 的 3.0 版,以防从标签中看不出来。

我正在尝试提取和评估将写入内存的实际位,这些位存储在 Ciphertext 类中。我不知道该怎么做;内部表示似乎包含 65 个字节的附加信息,目前尚不清楚在读回密文时重建密文需要多少这些信息。假设系统参数是固定的并且是先验已知的,那么保存函数的任何其他部分是否是重建密文所必需的?

在梳理了代码之后,我决定尝试使用我的编码器准备一个密文,检索 uint64_count,然后使用 [] 运算符重载迭代系数。如果这些值被零填充到某个公共长度,这是否是基础数据的忠实表示?

提前致谢

0 投票
1 回答
259 浏览

seal - SEAL 库中的模数切换

传统上,模数切换主要用于使噪声增长呈线性,而不是指数增长。然而,在 BFV 示例中,它被引入作为一种工具来去除素数(从而减少系数模的位长)并提高计算效率。它是否也有助于减少 BFV 方案中的噪声增长?我会在没有(手动)切换模数的情况下观察到噪声的指数增长吗?

0 投票
1 回答
44 浏览

seal - 估计没有密钥的噪声预算

在最新版本的 SEAL 中,Simulation 类已被移除。
它是否已转移到其他文件?
如果它已完全从库中删除,那么我如何估计噪声增长,并为我的应用选择合适的参数?

0 投票
1 回答
151 浏览

c++ - 使用 SEAL 库对产品执行添加

我正在尝试执行以下形式的操作:(A * B) + C。乘法工作正常,因为所有数字在该点具有相同的比例,但 A * B 的乘积具有不同的比例C. 乘法会改变比例是有道理的,但我想知道是否有办法使用 SEAL 库执行这样的操作。

环境信息:

  1. 语言:C++
  2. 加密方案:CKKS
  3. 小型编码双精度数(例如 0.4531)
  4. 用于编码的比例: pow(2.0, 60) 如示例

提前感谢您,如果需要更多信息,请告诉我。

0 投票
1 回答
149 浏览

seal - 密文-明文同态运算泄露

考虑两方,即 P_0 和 P_1。P_0 和 P_1 分别有明文 p_a 和 p_b。P_0用它的公钥
加密 p_a 得到,并将它发送给 P_1。 P_1 执行,然后执行(其中 p_R 是一个随机明文多项式,用于隐藏 a 和 b 的乘积),然后将 c 发送到 P_0。 尽管乘积被 p_R 掩盖,c 中的噪声能否向 P_0 揭示有关 p_b 的一些信息? c_a = Enc(p_a)
multiply_plain(c_a, p_b, c)sub_plain_inplace(c, p_R)

如果是,那么我该如何避免这种泄漏?有没有办法向 c 添加随机噪声以消除 p_b 对 c 中噪声的影响?
SEAL 中是否有使用更大间隔的噪声进行加密的功能?如果有,那么也许我可以用额外的噪音加密 p_R 以消除影响。

0 投票
1 回答
82 浏览

seal - 使用 SEAL 将分数转换为二进制

我是否能够将分数编码的密文转换为二进制编码的密文?

假设我用小数编码对 5 进行加密。那么,我可以创建一个由 E(1)、E(0)、E(1) 组成的数组吗?(5 = 101)

0 投票
1 回答
766 浏览

seal - Microsoft 同态加密库 SEAL 中的引导模块

在实现机器学习算法(逻辑回归)时,我需要在加密数据上使用自举。但我在密封中找不到引导模块。我需要自己实施吗?

0 投票
1 回答
128 浏览

seal - SEAL 中的解码和解密错误指示符

我知道在 SEAL 2.3.1 中,解码和解密错误会默默地失败。即在尝试解码/解密某些计算结果时,没有迹象表明噪声不足错误或发现违反plain_modulus、poly_modulus 设置。这些指标是否存在于任何更高版本中,例如在 3.0、3.1、3.2 中,还是不正确的解码或解密仍然会静默失败?