PIN-код (Personal Identification Number - личный идентификационный номер) обычно используется как пароль доступа к терминалу, с помощью него производится авторизация держателя кредитной карты. Алгоритм построения PIN- кодов реализует биективное (т.е. взаимно однозначное) отображение
8тк: Ап^Ап множества Ап п-разрядных слов в алфавите А на себя. Секретность отображения обеспечивается тем, что алгоритм выполняется под управлением секретного ключа тк. Непосредственно ключ тк в алгоритме не используется (т.е. остается в тени), но на его основе на этапе предвычислений формируются ключевые материалы (такие, как псевдослучайные подстановки и матрицы), которые используются в алгоритме. Задача вычисления PIN-кодов аналогична задаче построения криптографических симметричных блочных шифров, в которых конструируется отображение
8к: ЕП^ ЕП,(2)
где Е2= {0,1}, ЕП = Е2X ... X Е2(п раз) - множество двоичных блоков (слов) длины п, п= 64,128, 96, 192,256. В частности, если требуется построение 16-разрядных PIN-кодов в алфавите шестнадцатеричных цифр
А = {0,1, 2, 3,4, 5, 6,7,8,9, A, B, C, D, E, F},
то можно использовать любой 64-битовый шифр (ГОСТ 28147, DES и т.п.). В этом случае любой зашифрованный блок В состоит из 8 байтов, или из 16 полубайтов, каждый из которых имеет значение цифры из множества А. Таким образом, блок В будет искомым PIN-кодом.
В данной работе приводится алгоритм построения п-разрядных десятичных PIN- кодов, т.е. в алфавите А = Z10= {0,1, 2,3,4,5,6,7,8,9}. Для определенности, вначале рассматривается случай п = 16, затем алгоритм обобщается на случай произвольного п. Отличие от алгоритмов блочных шифров состоит в том, что для блочных шифров характерно использование вычислений в конечных полях характеристики 2 (что, конечно, не исключает использование и суррогатных вычислений над другими алгебраическими системами). В нашем случае Z10не может быть наделено структурой поля, а при использовании операций сложения и умножения по модулю 10 множество Z10становится коммутативным кольцом с делителями нуля, в котором только элементы 1, 3, 7, и 9 имеют мультипликативные обратные. Тем не менее, при конструировании отображения (1) для А = Z10уместно использовать идеи, которые применяются в блочных шифрах
В ходе выполнения данной работы решена следующая задача:
Разработан алгоритм генерации псевдослучайных десятичных PIN-кодов произвольной длины, начиная с п = 4. Этот алгоритм реализует биективное (т.е. взаимно однозначное) отображение 8к-.zj0^ у в множества п-разрядных десятичных слов на себя. Отображение осуществляется под управлением секретного ключа, длина которого может составлять от 5 до 255 байтов. Дополнительным ключом может служить некий параметр Lс числовым значением от 0 до 2048. Он определяет конкретную версию алгоритма, пропуская часть ключевого потока используемого датчика псевдослучайных байтов, чтобы избежать возможной слабости начальной части ключевого потока соответствующего генератора. Алгоритм по своей сути является блочным шифром, который может быть использован для блочного или поточного зашифрования последовательностей десятичных цифр. По своему типу алгоритм является SP-сетью, в которой таблица замены реализуется по обобщенной схеме Фейстеля с заменой побитового сложения на сложение и вычитания по модулю 100.
Перемешивание блока данных в алгоритме осуществляется путем сдвигов и умножения на инволютивную матрицу, которая формируется из псевдослучайных чисел. Нелинейность результирующего преобразования обеспечивается использованием в схеме Фейстеля нелинейных подстановок, две из которых создаются псевдослучайно, а две другие построены на основе дискретных логарифмов в конечном поле GF(101). Алгоритм обладает инволютивным свойством: он реализует также и обратное преобразование при условии, что раундовые ключи используются в обратном порядке.
Предложенный алгоритм является реализацией и развитием идей, заложенных в работе [4], где рассматривается аналогичная задача построения 16 -разрядных PIN- кодов.
1. Панасенко С. П. Алгоритмы шифрования. Специальный справочник. - СПб.: БХВ-Петербург, 2009.
2. Асосков А.В., Иванов М. А., Мирский А. А., Рузин А. В., Сланин А. В., Тютвин А. Н. Поточные шифры. - М.: КУДИЦ-ОБРАЗ, 2003.
3. Сущевский Д.Г., Панченко О.В., Кугураков В.С. Современные
криптосистемы и их особенности. — Вестник Казанского технологического
университетата, 2015, т. 18, № 11, с. 194-198.
4. Кугураков В.С., Кирпичников А.П., Сущевский Д.Г. О генерации псевдослучайных PIN-кодов криптографическим методом. — Вестник Казанского технологического университетата, 2015, т. 18, № 17, с. 190-193.
5. Souradyuti Paul &Bart Preneel, "A New Weakness in the RC4 Keystream Genera¬tor and an Approach to Improve the Security of the Cipher", «Fast Software Encryption,FSE 2004»,vol. 3017, Lecture Notes in Computer Science, Springer-Verlag, pp. 245-259.
6. Subhamoy Maitra & Goutam Paul (2008-09-19),"Analysis of RC4 and Proposal ofAdditional Layers for Better Security Margin ", «Progress in Cryptology - INDOCRYPT2008», vol. 5365, Lecture Notes in Computer science, Springer-Verlag, pp. 27-39.