我试图对密文进行比较。
给定两个值c1
的两个密文c2
和p1=p2 = 1
,指令c1 == c2
或c1.equalsTo(c2)
始终给出false
。
我该如何解决这个问题?
是否可以在两个密文上以(c1 < c2)
的形式进行大于比较?
假设我有两个密文c1
和c2
分别用于纯文本p1
,p2
我如何使用HElib比较它们任何一个提供给我的源代码还是工作逻辑?
答案 0 :(得分:1)
不,在HElib中,不可能直接比较两个密文。
这是由于HElib中使用的加密系统。然而,即使没有详细说明,也可以说没有公钥密码系统(HElib是公钥)可以支持像c1 < c2
那样返回未加密的布尔值的操作,因为这样可以使攻击者轻松只需加密新值并进行比较即可找到任何密文的明文。
如果要在HElib中进行比较,则需要将整个程序表示为具有单独加密位的二进制电路。然后,您可以将条件分支实现为多路复用。对于任何“真正的”程序来说,这不仅乏味而且通常太慢(HElib不是快速加密系统)。