УДК 004.056.55

АНАЛИЗ ШИФРОВАНИЯ DES И AES

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

Аннотация
В данной статье описано шифрование DES, которое было изобретено в компании IBM под названием «Люцифер» и использует схему Фейстеля. DES был первым шифром, который был стандартизован и стал основой коммерческой криптографии. Но со временем 56 ключа DES стало возможно перебрать на кластере машины общего назначения. Из-за этого был выбран новый шифр – AES, который имеет большую длину блока, а также больший размер ключа.
Шифрование AES строится на 4 простых операциях, которые более подробно описаны в статье. AES оперирует байтами, а не битами как DES. AES намного быстрее в софтовых реализациях, при этом производители процессоров Intel и AMD разработали эссемблерные инструкции для реализации AES внутри процессора, и это делает AES еще быстрее. Также представлено 4 режима шифрования AES.

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


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

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

Из всех всех распространённых блочных шифров являются DES и AES. DES шифр очень старый по нынешним меркам. Его дизайн создал Фейстель в компании IBM под именем «Люцифер». У него был размер блока 128 бит, а размер ключа от 64 до 192 бит, но после проверки стандартизации в компании ANB, его блок был уменьшен до 64 бит, а размер ключа до 56 бит. Но достоинства DES в том, что это был первый шифр, который был стандартизован и стал основой коммерческой криптографии. Его очень много исследовали и атаковали. Но до сих пор нет ни одной практически реализованной атаки на него.

Фейстель придумал гениальную конструкцию, которая называется сеть Фейстеля, которая устроена следующим образом.

Рисунок. Сеть Фейстеля

Каждый блок, который попадает ей на вход делится на 2 части. Левая часть становится правой без изменений, а правая часть складывается по модулю 2 с результатом вычисления некой функции, которой на вход подаётся левая часть и ключ. Затем правая часть после преобразования становится левой.

У данной схемы есть несколько интересных достоинств:

1) Эта функция может быть любой, не обязательно обладать свойствами необратимости, не обязательно должна быть линейной или нелинейной. И несмотря на это, шифр продолжает быть симметричным.

2) Расшифрование устроено точно так же как шифрование. Это удобно было потому, что создавать дизайн отдельных микросхем для шифрования и расшифрования было неудобно. А в такой конструкции – это очень удобно, так как один и тот же блок можно использовать для 2 задач. В реальной конструкции – это 1 раунд блочного шифра. Это значит, что в реальном шифре эта конструкция выполняется 16 раз с разными ключами (подключами). Каждый раунд состоит из 2-3 операций. Попавшийся полублок становится размером 32 бита, затем добавляются еще 16 бит (некоторые биты дублируются и переставляются) и получается 48 бит. Затем складывается по модулю 2 с раундовым подключом, размер которого тоже 48 бит, и получается так же 48 битное значение, которое попадает в набор функций (XBOX). XBOX преобразует каждые 6 бит входа в 4 бита выхода. Это значит, что на выходе получается из 48 бит – снова 32. На окончательной перестановке перемешивает эти 32 бита опять.

Проблема DES сейчас – 56 бит ключа можно перебрать на кластере машины общего назначения.

Вскоре был выбран новый шифр – AES, который имеет длину блока 128 бит, размер ключа 128, 192 или 256 бит. В AES не используется сеть Фейстеля, но он тоже многораундовый, это значит, что в нём несколько раз повторяются примитивные операции, так же как в DES. Для 128 битного ключа используются 10 раундов, для 192 битного – 12 раундов, для 256 битного – 14. Так же, как в DES, в каждом раунде есть свои раундовые ключи, все они генерируются из ключа шифрования для алгоритма. Каждый раунд состоит из довольно простых операций. В AES строится байтовая матрицу 4×4.

Рисунок. Первая операция AES

Первая операция раунда – это подстановка по специальной таблице.

Рисунок. Вторая операция AES

Вторая операция – побайтовый сдвиг. Берётся матрица 4 на 4, в которой 1 ряд – не изменяется, 2 ряд – на 1 байт сдвигается влево, 3 ряд – на 2 байта сдвигается влево, 4 ряд – на 3 байта сдвигается влево.

Рисунок. Третья операция AES

Третья операция перемешивание внутри колонок (фактически переставляет биты внутри колонки).

Рисунок. Четвёртая операция AES

4 операция – XOR каждого байта в каждой колонке с соответствующим байтом ключа и получается результат. 4 эти шага повторяем 10 раз из 128 битного блока и на выходе получаем такой же 128 битный блок.

AES оперирует байтами, а не битами как DES. AES намного быстрее в софтовых реализациях, при этом производители процессоров Intel и AMD разработали эссемблерные инструкции для реализации AES внутри процессора, и это делает AES еще быстрее.

Если на DES можно зашифровать 1-2 Гбит на современной машине, то 10-Гбитный AES шифратор доступен обычным коммерческим компаниям.

Если необходимо зашифровать больше, чем 16 байт, то необходимо разбить текст на блоки по 16 байт (недостающий блок дописать заведомоизвестной некой последовательностью данных). Такое шифрование называется ECB. Но проблема заключалась в том, что на выходе получаются тоже одинаковые блоки, и чтобы решить эту проблему на смену EBC пришел CBC.

Рисунок. Режим шифрования СВС

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

Существует еще система CFB.

 Рисунок. Режим шифрования CFB

Иницилизационный вектор шифрует открытый текст с помощью операции XOR. Полученный шифроблок выступает вместо иницилизационного вектора и процедура повторяется до конца. Такой вариант стандартизован для шифрования ГОСТ.

Для шифрования следующих блоков необходимо иметь предыдущий шифроблок.

Для решения этой проблемы был создан режим OFB.

Рисунок. Режим шифрования OFB

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

Существует также 1 из менее известных режим – IGE, который используется в MTProto (протокол, использующийся в месенджере Telegram).

Рисунок. Режим шифрования IGE

Существует еще малораспространённых режимов шифрования AES, про которые можно почитать здесь - https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B6%D0%B8%D0%BC_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

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

0

Библиографический список
  1. А. П. Алферов, А. Ю. Зубов, А. С. Кузьмин, А. В. Черемушкин . Основы криптографии
  2. A. Menezes, Pvan Oorschot, S. Vanstone. Handbook of Applied Cryptography
  3. Баричев С. Г.Гончаров В. В.Серов Р. Е. 2.4.2. Стандарт AES. Алгоритм Rijdael // Основы современной криптографии — 3-е изд. — М.: Диалог-МИФИ, 2011. — С. 30–35. — 176 с. — ISBN 978-5-9912-0182-7
  4. Advanced Encryption Standard // Википедия URL: https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard (дата обращения: 06.01.2020).
  5. Методы и средства защиты компьютерной информации // volpi.ru URL: http://www.volpi.ru/umkd/zki/index.php?man=1&page=13 (дата обращения: 08.01.2020).
  6. AES IGE Encryption // mgp25.com URL: https://mgp25.com/AESIGE/ (дата обращения: 09.01.2020).
  7. Режимы шифрования // citforum.ru/security URL: http://citforum.ru/security/cryptography/rejim_shifrov/ (дата обращения: 10.01.2020).
  8. Как устроен AES // habr.com URL: https://habr.com/ru/post/112733/ (дата обращения: 10.01.2020).
  9. Как выбрать режим шифрования AES (CBC ECB CTR OCB CFB)? // codengineering.ru URL: https://codengineering.ru/q/how-to-choose-an-aes-encryption-mode-cbc-ecb-ctr-ocb-cfb-25671/ (дата обращения: 12.01.2020).
  10. Вопрос по aes, encryption – Как выбрать режим шифрования AES (CBC ECB CTR OCB CFB)? // vike.io URL: https://vike.io/ru/36397/ (дата обращения: 20.01.2020).
  11. Алгоритм блочного симметричного шифрования Advanced Encryption Standard (AES) // crypto.pp.ua URL: http://crypto.pp.ua/wp-content/uploads/2010/03/aes.pdf (дата обращения: 30.01.2020).
  12. DES // Википедия URL: https://ru.wikipedia.org/wiki/DES (дата обращения: 25.01.2020).
  13. Сеть Фейстеля // intuit.ru URL: https://www.intuit.ru/studies/courses/28/28/lecture/20412?page=2 (дата обращения: 25.01.2020).
  14. AES Explained (Advanced Encryption Standard) – Computerphile
  15. AES алгоритм блочного шифрования
  16. DES Key Creation
  17. Защита информации. Блочные шифры


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

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


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

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

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

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

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