УДК 004.056.55

ВВЕДЕНИЕ В КРИПТОГРАФИЮ

Зюзин Владислав Дмитриевич1, Кучина Милена Александровна2, Яковлева Жанна Александровна3
1Московский технический университет связи и информатики, магистрант 1-ого курса
2Московский технический университет связи и информатики, студент 2-ого курса
3Ярославский государственный педагогический университет им. К. Д. Ушинского, студент 1-ого курса

Аннотация
В данной статье рассматривается актуальный на сегодняшний день вопрос криптографии, а конкретнее затронуты такие аспекты как: выработка ключей протоколов и отправка защищённого соединения при помощи криптографических примитивов. Проанализированы возможные виды ключей, выявлены их слабые стороны и обусловлено развитие новых шифров. Научная новизна, обусловлена рассмотрением нюансов поточного шифра RC4 и развитием его последователя Salsa20.

Ключевые слова: , , , , , ,


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Зюзин В.Д., Кучина М.А., Яковлева Ж.А. Введение в криптографию // Современные научные исследования и инновации. 2020. № 1 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2020/01/91425 (дата обращения: 24.02.2020).

Существуют криптографические примитивы – простые вещи, из которых можно строить более сложные вещи, то есть более сложные протоколы. Всего существуют 3 криптографических примитива:

1) Симметричный шифр (потоковый, блочный)

2) Аунтефикация сообщений, МАС

3) Ассиметричное шифрование

Протоколы, которые из этого вырастают существуют множество

Из всех протоколов поговорим о том, как вырабатываются ключи и о том, как отправить защищённое соединение, используя те криптографические примитивы, которые у нас есть от одного пользователя к другому.

Принцип Керкхоффса, который говорит о том общее знание об устройстве протокола в криптографии очень важен. Криптографические алгоритмы, которые используются в системе в той или иной не должны быть секретом, обеспечивающим её устойчивость. В идеале необходимо строить системы так, чтобы их криптографическая сторона была полностью известна атакующему и единственным секретом, который ему неизвестен, является криптографический ключ, который в этой системе используется. Современные системы шифрования доступны коммерчески. Лучшие из них построены таким образом. Они построены из компонентов, устройствами которых точно известно и как они работают тоже известно. Единственная секретная вещь в них – это собственно ключ шифрования. Из этого есть одно значимое исключение – это набор секретных криптографических протоколов для всевозможных государственных организаций. Нельзя сказать, что это приносит им большую пользу. Это как атомная физика. По пониманию дизайна протокола можно попытаться понять направление мысли тех людей, которые создавали его дизайн и, соответственно, в этом месте в другую сторону обогнать. В коммерческих протоколах это не так, там используется открытые системы, и они придерживаются этого принципа.

Симметричный шифр очень простой. У нас есть открытый текст, у нас есть какой-то алгоритм, которому на вход поступает, соответственно, этот открытый текст и значение ключа. И на выходе получается зашифрованное сообщение. Когда мы его хотим расшифровать, важно, что мы берём тот же самый ключ шифрования, который использовали шифровании.

Важные нюансы:

1) В большинстве распространённых алгоритмов симметричного шифрования, с которыми можно столкнуться, размер шифротекста равен размеру открытого текста. Современные алгоритмы симметричного шифрования оперируют размерами ключей (современный размер ключа от 128 бит до 256 бит).

В древности существовало 2 метода дизайна шифров – шифры подстановки и шифры перестановки.

Шифр подстановки – это такой алгоритм, в котором в те времена заменяли по какому-либо принципу одну букву на другую букву в сообщении. Самый простой шифр подстановки – это подстановка по таблице. Одним из примитивных шифров подстановки

является шифр Цезаря. Но шифры подстановки устарели из-за появления частотного анализа, который легко расшифровывал такие шифры.

Чтобы обойти этот момент были разработаны полиалфавитные шифры, которые заменяли одну букву разными буквами. Один из таких шифров – шифр Виженера, в основу которого вошёл квадрат Виженера. Но они так же были взломаны. С помощью индекса совпадений букв узнавали длину ключа, а далее каждый символ ключа представляли, как шифр Цезаря, находили статистические закономерности и вычисляли его.

После этого Клод Шенон сформулировал теорему о том, что есть ключ, длина которого равна длине исходного текста, использовал операцию XOR и шифровал сообщение. По сути этот шифр не поддавался взлому, но у него были существенные недостатки:

1) Ключ был слишком большим и быть равен исходному сообщению

2) Ключ никогда не должен использоваться повторно

Затем были разработаны шифры перестановки, которые делятся на поточные и блоковые.

В поточных шифрах используется ключ с алгоритмом псевдослучайной генерации на основе небольшого начального значения. Самый исторически распространённый алгоритм такого рода называется RC4, который был разработан Роном Риверстом. Был самым распространённым алгоритмом для TLS.

Рисунок. RC4

Принцип работы. Есть 256 байтовый стейт, на каждом шаге этого стейта происходит сложение между этими числами, и они помещаются в некоторое место этого стейта. Байт, полученный отсюда – является следующим в числовой последовательности. То есть, на каждом шаге выполняя это действие, получается следующий байт, таким образом получается поток. Большое достоинство RC4 в том, что он целиком внутри байтовый, значит его программная реализация работает очень быстро, гораздо быстрее, чем шифр DES. Поэтому RC4 получил такое распространение, однако долгое время был коммерческим секретом компании RSA. Но вскоре анонимно были опубликованы его исходники.

Но вскоре на RC4 было придумано множество атак и было принято решение его заменить. Самая успешная попытка заменить RC4 стал шифр Salsa20 и его последователи.

Salsa20 устроен сложнее, чем DES, но он обладает некоторыми положительными свойствами.

Рисунок. Salca20

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

Salsa20 устроена на 3 примитивах (сложение по модулю 2, сложение по модулю 32 и сдвиг на время const). Его скорость еще выше, чем у RS4. Пока что он не получил широкого распространения в общепринятой криптографии, но благодаря своим характеристикам вскоре может полностью заменить RC4.

Salsa20 снаружи выглядит как поточный шифр, но внутри он работает как блочный. В нём есть место, где можно поставить номер блока в алгоритм, чтобы выдавался этот блок.

Недостаток поточного шифрования состоит в том, если нужно выбрать, например, последние 10 байт, придётся генерировать всё сначала.

В Salsa20 эта проблема решена за счет того, что в алгоритме, который внутри в качестве примитива происходит следующее. На вход поступает номер блока, который нужно сгенерировать и к этому блоку применяется 20 раундов и на выходе получается 512 бит выходного потока. Самая успешная атака была произведена только на первые 8 раундов.

Поточных шифров исторически было много и в них использовались линейные регистры сдвига, но такие шифры непригодны для систем с непоследовательным доступом (например, жёсткий диск).

Блочный шифр устроен по-другому, он не генерирует ключевой поток, который нужно складывать по модулю 2 с шифротекстом. Принцип работы таких шифров похож на принцип работы таблиц подстановок, то есть он берёт блок текста фиксированной длины и на выходе даёт такой же блок текста. Размер блока в современных шифрах – 128 бит, но бывают разные вариации. Размер ключа ключа такой же, как в поточных шифрах – 128 или 256 бит.

Подводя итоги можно отметить, что с началом появление шифрования, постоянно создавались алгоритмы расшифровки, что обуславливало разработку новейших ключей.

История ключей шифра постоянно менялась, уступая всё более совершенным ключам. С каждым последующим развитием менялся сам принцип шифрования. От простого симметричного, до поточного и блоковых шифров перестановки. Последние тип шифровки до сих пор используется в современных IT-сетях. Само шифрование как процесс, уже стало неотъемлемой часть нашей жизни, что обуславливает постоянное развитие этой сферы.

Поделиться в соц. сетях

0

Библиографический список
  1. Криптографические примитивы // SiteKid – режим доступа: URL: https://sitekid.ru/matematika/kriptograficheskie_primitivi.html (дата обращения: 07.02.2020).
  2. Панасенко С. Алгоритмы шифрования. Санкт-Петербург: БХВ-Петербург, 2009.
  3. Простая реализация RC4 на C# // Хабр – режим доступа: URL: https://habr.com/ru/post/111510/ (дата обращения: 08.02.2020).
  4. Salsa20 // Crypto++ – режим доступа: URL: https://www.cryptopp.com/wiki/Salsa20 (дата обращения: 08.02.2020).
  5. Даниленко, А. Ю. Безопасность систем электронного документооборота. Технология защиты электронных документов / А.Ю. Даниленко. – М.: Ленанд, 2015.
  6. Ассанж, Джулиан Шифропанки. Свобода и будущее Интернета / Джулиан Ассанж и др. – М.: Азбука-Аттикус, 2014.
  7. Литвинская, О. С. Основы теории передачи информации. Учебное пособие / О.С. Литвинская, Н.И. Чернышев. – М.: КноРус, 2015.
  8. Черчхаус Роберт Коды и шифры. Юлий Цезарь, “Энигма” и Интернет / Роберт Черчхаус. – Москва: Огни, 2005.
  9. Авдошин, С. Дискретная математика. Модулярная алгебра, криптография, кодирование / С. Авдошин. – Москва: СИНТЕГ, 2016
  10. Адаменко, Михаил Основы классической криптологии. Секреты шифров и кодов / Михаил Адаменко. – Москва: Машиностроение, 2014
  11. Лекция №1: Криптография. Введение
  12. 012. Криптография, шифрование (часть 1) – Владимир Иванов
  13. Лекция #1 – Введение в криптографию
  14. Дмитрий Яхонтов: Курс по криптографии. Вводное занятие
  15. 013. Криптография, шифрование (часть 2) – Владимир Иванов
  16. Криптография // youtube.com URL: https://www.youtube.com/watch?v=DsNeVrtWBNA&list=PLd-kTafWJCJPBvG4CPNiraCuHX7vOKIEV (дата обращения: 22.01.2020).
  17. Принципы шифрования и криптографии. Расшифруйте послание!
  18. Криптография для хакеров. Основы алгоритмов шифрования
  19. Эволюция криптографии
  20. Криптография // youtube.com URL: https://www.youtube.com/watch?v=t7kNtZ94u-Y&list=PLd2BLB5k47cXdFiLfGJtafUFcDo0ezKAq (дата обращения: 22.01.2020).


Количество просмотров публикации: Please wait

Все статьи автора «Зюзин Владислав Дмитриевич»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться:
  • Регистрация