Ничего личного, только комбинаторика

Apr 29, 2022 15:10

Существует расхожая шутка-мем "Слив всех PIN-кодов", где в качестве "слива" подается таблица всех 4-значных чисел от 0000 до 9999. И вроде как не придраться, действительно любой пин-код есть в этой таблице, каждый может проверить. Но само собой, эта информация не несет в себе конфиденциальной составляющей, а именно связей конкретных кодов с конкретными клиентами, так что привлечь шутника к ответственности не за что.

Между тем, никто не запрещает сделать этот список не отсортированным в порядке возрастания - раскидать 10000 чисел в случайном порядке. Прикол в таком случае даже станет чуть тоньше, читателю потребуется затратить больше времени на поиск "своего" кода, если он захочет проверить его наличие. Однако при этом следует помнить, что 10000! (факториал числа 10000) - количество возможных перестановок - это не только ценный мех, но и ни много ни мало 118458 бит потенциально полезной информации (вычисляется как двоичный логарифм). То есть путем подбора нужной перестановки из 10000! вариантов, условившись об алгоритме расшифровки (преобразования перестановки в поток битов) можно сообщить в закодированном виде:

а) 8914 упорядоченных 4-значных чисел (с повторами) - то есть слить пин-коды пусть не 10000, но 8914 клиентов, нужно лишь заранее договориться об их отсортированном списке;

б) если заранее невозможно определить, чьи именно данные будут сливаться, то на каждого придется шифровать не 4 цифры (сам PIN), но и еще 9 (идентификатор счета), итого 13 - возможно передать 2743 таких записи в произвольном порядке.

Будьте бдительны :-)

числа, занимательные бредни, шифры, шпионаж

Previous post Next post
Up