使用HElib进行比较

Getting comparisons using HElib?

本文关键字:比较 HElib 使用      更新时间:2023-10-16

我正在尝试对密文进行比较。给定两个值为p1=p2 = 1的密文c1c2,指令c1 == c2c1.equalsTo(c2)总是给出false。我怎么解决这个问题?

是否有可能在两个密文上以(c1 < c2)的形式进行大于比较?

假设我有两个密文c1c2分别用于纯文本p1, p2,我如何使用HElib比较它们,任何一个为我提供源代码或工作逻辑?

不可以,在HElib中不能直接比较两个密文。

这是由于在HElib中使用的加密系统。然而,即使没有详细说明这一点,也可以说没有公钥密码系统(HElib是公钥)可以支持像c1 < c2这样返回未加密布尔值的操作,因为这将使攻击者能够轻松地通过加密新值和比较来找到任何密文的明文。

如果你想在HElib中进行比较,你需要将整个程序表示为具有单独加密位的二进制电路。然后你可以实现条件分支作为多路复用。这不仅是繁琐的,而且通常太慢(HElib不是一个快速的加密系统)对于任何'真正的'程序。