有一个具有标识符和一些信息的实体。该实体的标识符是一个具有已知方案/模式的字符串(这意味着此类可能实体的总数为10-1亿)。
有关实体的信息存储在两个地理分布的系统中。第三个系统负责汇总有关这些实体的信息。
这里是安全性发挥作用的地方--第三个系统不应该知道实体的实际标识符,也不应该能够导出实际的标识符。
两个存储实体信息的站点都决定使用一种单向散列算法,比如'PBKDF-2‘,并且安全地传递他们在散列时将使用的长随机盐。这两个站点都是单向散列,并将哈希作为标识符发送给第三个实体。第三个实体仍然可以根据散列合并实体,但不知道实际标识符。
由于可以重新创建所有可能的实体标识符集(约1,000万至1,000万),因此某人可以相当容易地执行字典攻击。盐使它更难,但这只是一些额外的开销,并没有提供很大的安慰。
提议的
请告诉我上述三种方法中的任何一种是否可以接受。如果对上述场景有更多的已知/可接受的解决方案(我认为肯定有足够的解决方案),我会很高兴地感谢并接受它们。
发布于 2014-05-26 16:52:07
如果在看到实体标识符的两个系统之间共享一个密钥(256位),则可以使用HMAC- the 256将实体标识符映射到随机字符串。假设HMAC- the 256安全性良好(人们普遍认为这是合理的),这与生成真正的随机映射一样安全,但只需要通信256位而不是完整的映射。如果此聚合过程有多个回合,则可以使用不同的密钥或不同的(公共) nonce,如果聚合系统不需要知道哪个实体在各轮之间是相同的。
但是,听起来与每个实体相关的信息不会被加密(因为它需要由第三个系统以某种方式处理),因此您必须非常仔细地考虑是否有可能根据这些实体的相关信息去匿名。有很多研究人员去匿名(http://en.wikipedia.org/wiki/De-anonymization)的案例被认为是烦人的数据集。
https://crypto.stackexchange.com/questions/16346
复制相似问题