Скремблирование номера социального страхования - PullRequest
3 голосов
/ 18 октября 2011

Я работаю с набором данных, который имеет дело с личными данными (то есть данными, которые имеют дело с людьми, а не [обязательно] частными данными) ... Эти данные меняются со временем, и формат навязывается клиентом.Мне нужно что-то использовать в качестве первичного ключа, и, к сожалению, единственное поле, которое однозначно идентифицирует человека и не изменяется непредсказуемо, - это SSN.Идентификационный номер (первичный ключ) будет общедоступным, поэтому я не могу его опубликовать, но я надеюсь его скрыть.

  • Результат должен быть числовым.
  • Результат может быть длиной до 25 цифр.
  • Результат должен быть уникальным.
  • Результат должен быть настолько сложным, насколько это возможно, изменить без ключа, учитывая указанные выше ограничения.

Есть ли числовой шифр, который бы подходил этому?

Я с ума схожу, пытаясь это сделать?

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

Шифрование с сохранением формата звучит как решение ваших проблем.Используйте это в SSN, и тогда у вас будет случайное 10-значное число, которое вы можете добавить к нужному 25-значному идентификатору.Если вы сделаете правильное заполнение, вы можете даже инвертировать его (если у вас есть ключ).Дело в том, что после прохождения через формат, сохраняющий шифрование, ваши данные не являются конфиденциальными.

2 голосов
/ 18 октября 2011

Номер социального страхования состоит из девяти цифр, что означает, что существует только 10^9 = 1,000,000,000 уникальные номера SSN. Большинство операций, которые вы выполняете в SSN, могут быть перебором, поэтому я предлагаю вам просто назначить уникальные случайные 25-значные числа для каждого SSN. Случайный 25-значный номер является вашим общедоступным идентификатором, и отношения между каждой парой являются полностью частными.

Случайный ключ не зависит от данных, которым он назначен, поэтому нет способа извлечь ввод из вывода (если вы думаете о нем как о функции).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...