УДК 512.53
DOI 10.25513/1812-3996.2018.23(4).30-32
КРИПТОГРАФИЧЕСКИЙ АНАЛИЗ ПРОТОКОЛА TWIN PEAKS Е. А. Магдин
Омский государственный университет им. Ф. М. Достоевского, г. Омск, Россия
Информация о статье Аннотация. В данной работе представлен эффективный алгоритм для расшифровки
Дата поступления зашифрованного сообщения алгоритмом Twin Peaks.
27.09.2018
Дата принятия в печать 17.10.2018
Дата онлайн-размещения 14.12.2018
Ключевые слова
Криптоанализ, перестановки
Финансирование
Работа выполнена при поддержке гранта Российского фонда фундаментальных исследований в рамках научного проекта №18-41-550001а
CRYPTOGRAPHIC ANALYSIS OF THE TWINPEAKS PROTOCOL E. A. Magdin
Dostoevsky Omsk State University, Omsk, Russia
Article info Abstract. In this paper we present an efficient algorithm for decrypting an encrypted mes-
Received sage using the Twin Peaks algorithm.
27.09.2018
Accepted 17.10.2018
Available online 14.12.2018
Keywords
Cryptanalysis, permutations
Acknowledgements
The reported study was by the Russian Foundation of Basic Research according to the research project № 18-41-550001a
1.Введение
В 2017 году прошла четвертая международная олимпиада по криптографии NSUCRYPTO. Эта олимпиада предлагает математические проблемы для студентов и профессионалов из любой страны. Цель
мероприятия заключается в том, чтобы привлечь широкий круг профессионалов к решению интересных или нерешенных проблем, находящихся на границе между математикой и криптографией.
Вестник Омского университета 2018. Т. 23, № 4. С. 30-32
ISSN 1812-3996-
Олимпиада состоит из двух раундов. Первый -индивидуальный длительностью 4 часа 30 минут. Во втором раунде участвуют команды от одного до трех человек. На решение задач из второго раунда дается неделя. Задачи могут быть как практическими, так и теоретическими. Решение задачи может быть оформлено в текстовом редакторе или написано на бумаге, и отправлена фотография решения. Также для некоторых задач решением может являться программа, написанная на любом языке.
Организаторами этой олимпиады являются Новосибирский государственный университет, Институт математики им. Соболева в Новосибирске, Томский государственный университет, Белорусский государственный университет и Левенский университет в Бельгии.
В данной работе представлено решение одной задачи из второго раунда. В этой задаче нужно было расшифровать сообщение с помощью атаки на основе открытых текстов и соответствующих шифро-текстов.
Математические проблемы предыдущих международных олимпиад NSUCRYPTO'2014, NSUCRYPTO'2015 и NSUCRYPTO'2016 можно найти в [1], [2] и [3] соответственно.
2. Описание задачи
У Боба на телефоне установлено приложение, которое шифрует сообщения с помощью протокола Twin Peaks.
1. На вход принимается сообщение P в шестна-дцатеричной системе счисления длиной 32 символа и представляется в двоичной системе счисления длиной 128 бит.
2. Битовая строка делится на 4 части по 32 бита - a, b, c, d.
3. Затем выполняется 6 преобразований:
a = a + c + S(c + d), b = a + b + d + S(c + d), c = a + c + d, d = b + d + S(c + d), операция + - это побитовое сложение по модулю 2, S - секретная перестановка битовых строк т. е. S: F 32 ^ F 32.
4. На выход отдается зашифрованное сообщение в шестнадцатеричной системе счисления, которое состоит из конкатенации частей a, b, c и d после всех преобразований.
Предположим, что агент Купер смог перехватить зашифрованное сообщение, которое Боб отправил Алисе. Также он смог выкрасть телефон, на
котором установлено приложение. Необходимо помочь агенту Куперу расшифровать сообщение. 3. Атака на протокол Twin Реакэ Обозначим а, Ь, с, Ь как ао, Ьо, со, Ьо, Б(а + Ь,) как Б,, значения а,, Ь,, а, Ь, - это значения, полученные после ,-й итерации.
Значения, полученные после каждой итерации, будут следующими: Итерация 1:
а1 = ао + со + 5о, Ь1 = ао + Ьо + Ьо + 5о, С1 = ао + со + Ьо,
= Ьо + Ьо + 5о. Итерация 2:
а2 = Ьо + 5о + 51,
Ь2 = со + 5о + 51,
с2 = Ьо,
&2 = ао + 51.
Итерация 3:
аз = Ьо + Ьо + 5о + 51 + 52, Ьз = ао + со + Ьо + 51 + 52, сз = ао + Ьо + Ьо + 5о, Ьз = ао + со + 5о + 52. Итерация 4:
а4 = ао + 51 + 52 + 5з,
Ь4 = Ьо + 52 + 5з,
с4 = со + 5о + 51,
&4 = Ьо + 5о + 51 5з.
Итерация 5:
аъ = ао + со + 5о + 52 + 5з + 54, Ь5 = ао + Ьо + Ьо + 5о + 5з + 54,
съ = ао + со + Ьо + 51 + 52, Ьъ = Ьо + Ьо + 5о + 51 + 52 + 54. Итерация 6:
аб = Ьо + 5о + 51 + 5з + 54 + 5ъ,
Ьб = с 5о + 51 + 54 + 5ъ,
сб = Ьо + 52 + 5з,
Ьб = ао + 51 + 52 + 5з + 5ъ.
Можно заметить, что если сложить первые две строки, то из равенства выражается 53, а если сложить первые три строки, то из равенства выразится 52. Получаем
5з = 5(сз + Ьз) = 5(Ьо + со + Ьо + 52) = аб + Ьб + со + Ьо, 52 = аб + Ьб + сб + Ьо + со + Ьо. Обозначив Ьо + со + Ьо + 52 как х, и, зная произвольное исходное и зашифрованное сообщения, можно получить значение перестановки от некоторого аргумента х, а если научиться генерировать исходное сообщение таким образом, чтобы получить значение перестановки от заданного аргумента х, то
Вестник Омского университета 2018. Т. 23, № 4. С. 30-32
-ISSN 1812-3996
можно будет расшифровать зашифрованное сообщение.
Расписав xчерез ao, Ьо, со, do, получим: x = Ьо + № + do + 52 = = Ьо + Со + do + 5(ао + Ьо + 5(ао + Ьо + Со + 5(со + do))).
Возьмем два произвольных разных сообщения и зашифруем их. Из этих сообщений можно будет получить:
5(х1) = у1, 5(Х2) = у 2.
Так как операция + - это побитовое сложение по модулю 2, то сумма одного и того же элемента даст 0. Подберем со и do таким образом, чтобы одна из перестановок 5 сократилась.
Со = 5(Х1) + Х1 + do = 5(Х1) + где ^ - произвольная битовая строка длиной 32 бита.
При таких значениях со и do значение х можно расписать как:
х = Ьо + Х1 + 5(ао + Ьо + 5(ао + Ьо + Х1 + Ь). Если в качестве ао, Ьо взять
ао = 5(х2) + t2, Ьо = t2, где t2 - произвольная битовая строка, то х можно будет расписать как
х = t2 + Х1 + 5(5(х2) + 5(5(х2) + Х1 + tl)). Пусть ^ = 5(х2) + Х1 + Х2, тогда:
х = t2 + Х1 + 5(0), t2 = х + Х1 + 5(0). Теперь для нахождения 5(х) необходимо зашифровать сообщение т = ао|| Ьо|| со|| do, где ао = Х1 + Б(Х2) + Б(0) + х, Ьо = Х1 + Б(Х2) + Б(0) + х, Со = Б(Х1) + Х2,
do = Б(Х1) + Х1 + Б(Х2) + Х2,
Для того чтобы найти значение перестановки в 0, нужно в качестве х взять 5(0), тогда значение 5(0) можно будет вычислить по формуле
5(0) = х = Ьо + Со + do + 52 = ав + Ьб + Сб. Теперь для расшифровки сообщения можно выполнить 6 итераций следующего вида: а, = Ь|+1 + ^+1 , Ь = а ¡+1 + о+1 + (^¡+1, С, = а,+1 + Ь,+1 + (¡+1 + Б(е,+1 + Ь,+1 + (¡+1), d¡ = а,+1 + с,+1 + Б(с,+1 + Ь,+1 + (¡+1). 4. Заключение
В данной работе показано, как расшифровать сообщение по открытым текстам и соответствующим шифротекстам за константное время. Для расшифровки произвольного сообщения потребуется зашифровать 9 сообщений. Следовательно, данный алгоритм не является криптостойким.
СПИСОК ЛИТЕРА ТУРЫ
1. Agievich S., Gorodilova A., Kolomeec N. et al. Problems, solutions and experience of the First international student's Olympiad in cryptography // Prikladnaya Diskretnaya Matematika. 2015. № 3. P. 41-62.
2. Agievich S., Gorodilova A., Idrisova V., et al. Mathematical problems of the Second international student's Olympiad in cryptography// Cryptologia, 2017. Vol. 41, no. 6. P. 534-565.
3. Tokareva N., Gorodilova A., Agievich S., et al. Mathematical methods in solutions of the problems presented at the third international student's Olympiad in cryptography // Prikladnaya Diskretnaya Matematika. 2018. № 40. P. 34-58.
ИНФОРМАЦИЯ ОБ АВТОРЕ
Магдин Евгений Андреевич - магистрант, Омский государственный университет им. Ф. М. Достоевского, 644077, Россия, г. Омск, пр. Мира, 55а; e-mail: [email protected].
INFORMATION ABOUT THE AUTHOR
Magdin Eugene Andreevich - Master's Student, Dosto-evsky Omsk State University, 55a, pr. Mira, Omsk, 644077, Russia; e-mail: [email protected].
ДЛЯ ЦИТИРОВАНИЯ
Магдин Е. А. Криптографический анализ протокола Twin Peaks // Вестн. Ом. ун-та. 2018. Т. 23, № 4. С. 3032. DOI: 10.25513/1812-3996.2018.23(4).30-32.
FOR QTATIONS
Magdin E.A. Cryptographic analysis of the Twin Peaks protocol. Vestnik Omskogo universiteta = Herald of Omsk University, 2018, vol. 23, no. 4, pp. 30-32. DOI: 10.25513/1812-3996.2018.23(4).30-32. (in Russ.).