加扰社会安全号码

时间:2011-10-18 04:02:49

标签: security encryption hash

我正在处理一个处理个人数据的数据集(即处理人的数据,而不是[必然]私人数据)......这些数据会随着时间的推移而变化,而且格式是由客户强加的。我需要一些东西作为主键使用,不幸的是,唯一识别一个人并且不会无法预测地改变的唯一字段是SSN。 ID号(主键)将面向公众,因此我无法发布,但我希望能够掩盖它。

  • 结果必须为数字。
  • 结果最长可达25位。
  • 结果必须是唯一的。
  • 考虑到上述限制,结果应该尽可能难以在没有键的情况下进行反转。

是否有适合此的数字密码?

我是否因为尝试这个而疯狂?

2 个答案:

答案 0 :(得分:2)

社会安全号码长度为九位数,这意味着只有10^9 = 1,000,000,000个唯一的SSN。您在SSN上执行的大多数操作都可以强制执行,因此我建议您只为每个SSN分配唯一的随机25位数字。随机的25位数字是您的公共ID,每对之间的关​​系是完全私密的。

随机密钥不依赖于它所分配的数据,因此无法从输出中检索输入(如果您将其视为函数)。

答案 1 :(得分:2)

Format perserving encryption听起来像是解决问题的方法。在SSN上使用它,然后您只需要一些随机的10位数字,您可以填写所需的25位数字。如果你正确填充,你甚至可以反转它(如果你有密钥)。关键是在运行格式持久加密后,您的数据不敏感。