1

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

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

4

1 回答 1

2

让我们尝试用明文解决它。然后我们可以尝试用密文来解决。

  1. 如果“二进制编码的”是指 5 的二进制编码,那么是的。小数编码的 5 和二进制编码的 5 都是明文 x^2+1。

  2. 如果“由 E(1)、E(0)、E(1) 组成的数组”是指分别解密为 1、0 和 1 的 3 个密文,那么不是。

从数字 m 的小数/整数/二进制编码中提取第 k 位(用 m_k 表示) M(x)=m_{n-1} x^{n-1}+...+m_k x^k+ ...+m_0, 等价于找到一个函数 F,使得对于给定的 k 和任何 m,F(M(x))=m_k in \ZZ_2[x]/(x^n+1)。这样的函数很难找到。即使它存在,它也可能是 2^n 次多项式的形状,这太深而无法进行同态评估。

  1. 如果“由 E(1)、E(0)、E(1) 组成的数组”是指解密为向量 [1,0,1] 的 1 个密文,则不是。

首先必须解决上述情况 2 并成功提取这些单独的位。其余的只是对密文进行批处理,这可以rotate_rows在 SEAL 的帮助下轻松完成。

于 2019-01-19T00:33:17.457 回答