我想搜索加密数据。这意味着每次我加密相同的明文时都需要有相同的密文。即想到一个加密名称列表,我想在其中找到所有“Kevin”。我现在将加密“Kevin”并在数据库中搜索加密文本。所有点击都将是“Kevin”的——但仍然只有知道密码的人知道。
现在我的问题是:如果我一直使用相同的盐和 IV(以获得上述效果),安全性会怎样?加密仍然安全吗?或者有没有其他方法可以搜索加密数据?
我想搜索加密数据。这意味着每次我加密相同的明文时都需要有相同的密文。即想到一个加密名称列表,我想在其中找到所有“Kevin”。我现在将加密“Kevin”并在数据库中搜索加密文本。所有点击都将是“Kevin”的——但仍然只有知道密码的人知道。
现在我的问题是:如果我一直使用相同的盐和 IV(以获得上述效果),安全性会怎样?加密仍然安全吗?或者有没有其他方法可以搜索加密数据?
如果要进行确定性加密,则应使用专为确定性加密设计的加密模式(而不是修改为其他目的设计的加密模式)。
一种可能性是 RFC 5297中描述的 SIV 加密模式。
(当然,确定性加密有其缺点,但讨论这不是这个问题的一部分。)