【问题标题】:AES/Rijndael: search on encrypted data - static salt and IVAES/Rijndael:搜索加密数据 - 静态盐和 IV
【发布时间】:2012-05-24 09:33:07
【问题描述】:

我想搜索加密数据。这意味着每次我加密相同的明文时都需要有相同的密文。 IE。想想一个加密名称列表,我想在其中找到所有“Kevin”。我现在将加密“Kevin”并在数据库中搜索加密文本。所有点击都是“Kevin”的——但仍然只有知道密码的人知道。

现在我的问题是:如果我一直使用相同的盐和 IV(以获得上述效果),安全性会怎样?加密仍然安全吗?或者有没有其他方法可以对加密数据进行搜索?

【问题讨论】:

  • 您是想在某处搜索包含“Kevin”的字符串,还是只想比较完整的消息?
  • 我要比较完整的留言!在我看来,检查“Kevin”是否会在文本中的 完全相同:必须构建文本的加密单词列表。最后,应该完成对加密词(“Kevin”)的 1:1 搜索。或者你知道更聪明的方法吗?

标签: encryption


【解决方案1】:

如果你想进行确定性加密,那么你应该使用加密模式 专为确定性加密而设计的(而不是修改为其他目的而设计的加密模式)。

一种可能性是 SIV 加密模式 RFC 5297.

(当然,确定性加密有其缺点,但讨论这不是这个问题的一部分。)

【讨论】:

  • 你知道是否有 JavaScript 的实现吗?
  • 我不知道有任何 JavaScript 实现。 JavaScript 中的加密通常意味着在错误的层中进行,因此 JavaScript 中的加密库很少见。
  • 客户端加密是您获得“主机证明托管”的唯一机会。那么为什么是“错误的图层”呢?
  • 您使用什么将 JavaScript 代码安全地发送到客户端?您需要一个安全通道来执行此操作。但是如果你已经有一个安全的通道来传递代码,那么为什么不使用这个通道来交换所有的数据呢?这通常意味着您使用 SSL,然后您不必使用 JavaScript 进行加密,或者您不使用 SSL,然后 JavaScript 加密也无助于抵御中间人攻击。
  • 使最后的评论清楚。有一些应用程序可以在 JavaScript 中进行加密,您的应用程序可能就是其中之一。但是这些应用程序很少见,JavaScript 中可靠的加密库也是如此。
猜你喜欢
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 2012-02-21
  • 2011-03-08
相关资源
最近更新 更多