Статья опубликована в рамках: Научного журнала «Студенческий» № 16(312)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9, скачать журнал часть 10
МЕТОД ШИФРОВАНИЯ ADVANCED ENCRYPTION STANDARD
COMPETENCE APPROACH IN TRAINING PERSONNEL OF ENTERPRISES
Edgar Gyunter
student, Department of Information Systems, State University of Water Transport,
Russia, Novosibirsk
Nikita Rykovsky
scientific supervisor, Senior lecturer, Siberian State University of Water Transport,
Russia, Novosibirsk
АННОТАЦИЯ
Метод шифрования Advanced Encryption Standard и принципы его работы.
ABSTRACT
The Advanced Encryption Standard encryption method and the principles of its operation.
Ключевые слова: криптография; шифрование; данные.
Keywords: cryptography; encryption; data.
В 1980-х годах основным симметричным криптоалгоритмом, используемым для внутреннего применения в США, являлся стандарт шифрования данных — DES (Data Encryption Standard). Однако к 1990-м годам начали проявляться его существенные недостатки, главным из которых стала недостаточная длина ключа — всего 56 бит. В условиях стремительного роста вычислительных мощностей такая длина становилась уязвимой, поскольку ключ мог быть взломан с помощью полного перебора всех возможных вариантов.
В связи с этим, в 1997 году Национальный институт стандартов и технологий США (NIST) объявил конкурс на разработку нового симметричного криптоалгоритма. Новый стандарт должен был соответствовать ряду обязательных требований:
- размер блока данных — 128 бит;
- поддержка как минимум трёх вариантов длины ключа: 128, 192 и 256 бит;
- использование операций, легко реализуемых как в аппаратных, так и в программных решениях;
- простота структуры алгоритма, чтобы заинтересованные стороны могли проводить его криптоанализ.
Победителем конкурса стал алгоритм Rijndael, который впоследствии был утверждён как стандарт AES (Advanced Encryption Standard). Этот алгоритм продемонстрировал высокую стойкость к различным видам атак, низкое энергопотребление и быстрое время выполнения. Кроме того, его архитектура включает внутренний параллелизм, что позволяет эффективно задействовать ресурсы процессора и дополнительно сокращать время работы алгоритма.
Для лучшего понимания принципов работы AES необходимо рассмотреть несколько ключевых понятий. Алгоритм оперирует байтами, которые интерпретируются как элементы конечного поля F(2^8). В этом поле определены операции сложения и умножения, при которых результат всегда остаётся элементом того же поля.
Сложение выполняется с помощью операции XOR, которая выполняется побитно: для двух байтов P и Q результатом будет новый байт R, где каждый бит ri равен pi XOR qi.
Умножение в поле F(2^8) производится с использованием представления байта в виде полинома и операции по модулю неприводимого многочлена. Результат умножения двух байтов представляется также как полином, и для его вычисления используется операция деления по модулю m(x) = x^8 + x^4 + x^3 + x + 1.
Стандарт AES поддерживает различные длины ключей: AES-128, AES-192 и AES-256. В то время как размер блока данных фиксирован на 128 бит, количество раундов варьируется в зависимости от длины ключа: для AES-192 и AES-256 выполняются соответственно 12 и 14 раундов шифрования.
Алгоритм шифрования AES с размером ключа 128 бит состоит из следующих шагов:
Расширение ключа (Key Expansion): начальный ключ подвергается расширению для генерации раундовых ключей.
Начальный раунд: выполнится сложение исходного блока данных (state) с основным ключом.
Основные раунды (9 раундов), каждый из которых включает четыре операции:
SubBytes — замена байтов по таблице S-box.
Преобразование представляет собой замену каждого байта из State на соответствующий ему из константной таблицы Sbox.
Рисунок 1. Таблица Sbox
Значения элементов Sbox представлены в шестнадцатеричной системе исчисления. Каждый байт из State (State — промежуточный результат шифрования, который может быть представлен как прямоугольный массив байтов, имеющий 4 строки и 4 колонок. Каждая ячейка State содержит значение размером в 1 байт) можно представить как {xy} в шестнадцатеричной системе счисления. Тогда следует заменять его на элемент, стоящий на пересечении строки x и столбца y.
ShiftRows — циклический сдвиг строк блока данных.
Она выполняет циклический сдвиг влево на 1 элемент для первой строки, на 2 для второй и на 3 для третьей. Нулевая строка не сдвигается.
Рисунок 2. Схема ShiftRows
MixColumns — линейное преобразование каждого столбца блока данных.
Перемешивание столбцов матрицы данных (не используется на последнем раунде).
Рисунок 3. Схема MixColumns
AddRoundKey — добавление раундового ключа с помощью операции XOR.
Начальное наложение ключа шифрования на данные. Трансформация производит побитовый XOR каждого элемента из State с соответствующим элементом из RoundKey. RoundKey — массив такого же размера, как и State, который строится для каждого раунда на основе секретного ключа функцией KeyExpansion.
KeyExpansion — процедура расширения основного ключа для генерации раундовых ключей, которые затем применяются на каждом этапе шифрования. Расширённый ключ включает в себя 44 четырёхбайтовых слова: первые 4 слова соответствуют основному ключу, а оставшиеся образуют 10 раундовых ключей по 4 слова каждый. В результате общая длина расширенного ключа составляет 1408 бит.
Финальный раунд, включающий:
SubBytes — замена байтов.
ShiftRows — циклический сдвиг строк.
AddRoundKey — добавление последнего раундового ключа.
Рисунок 4. Схема работы метода шифрования AES-128
Алгоритм расшифровки базируется на выполнении инверсных операций, которые обратны трансформациям, применяемым при шифровании. Он включает следующие шаги: InvSubBytes, InvShiftRows, InvMixColumns и AddRoundKey.
InvSubBytes - Функция InvSubBytes работает аналогично SubBytes, но замены выполняются на основе предопределенной таблицы InvSbox.
Рисунок 5. Таблица InvSbox
InvShiftRows - Трансформация производит циклический сдвиг вправо на 1 элемент для первой строки State, на 2 для второй и на 3 для третьей. Нулевая строка не поворачивается.
Рисунок 6. Таблица InvShiftRows
InvMixColumns - является обратным преобразованием к MixColumns().
Рисунок 7. Схема работы метода расшифрования AES-128
Существует несколько типов атак на AES, включая атаки по сторонним каналам. Одним из таких типов является атака по времени, основанная на предположении, что время выполнения операций зависит от входных данных. Операции атаки невозможны на алгоритмы, которые исполняются за равное значение тактов на всех платформах (битовые операции над фиксированным числом бит), но поскольку в алгоритме AES задействованы операции сложения и умножения, которые этому требованию не удовлетворяют, он подвержен атаке по времени. Для защиты от подобных угроз применяются методы, такие как выравнивание времени выполнения всех операций или добавление за счёт введения задержек случайной длительности время выполнения операции становится непредсказуемым, что значительно осложняет проведение атаки таким методом.
Интересной задачей является вопрос восстановления расширенного ключа, если известен какой-либо из раундовых ключей. В алгоритме AES расширение ключа происходит через операцию XOR и использование функции RotByte. Если злоумышленник знает последний раундовый ключ, он может вычислить остальную часть расширенного ключа. Однако для AES-192 и AES-256 восстановить полный ключ из одного раундового ключа становится практически невозможным. Даже, если атакующему удается получить один раундовый ключ из 256-битного ключа AES, это уменьшает количество возможных вариантов AES ключей с 2^256 до 2^128, в таком случае восстановить полный ключ все еще невозможно с вычислительной точки зрения.
Список литературы:
- Detect Security Vulnerabilities with Snyk [Электронный ресурс]. – Режим доступа: https://www.baeldung.com/java-snyk-security-risks, свободный.
- Prometheus vs. ELK Stack (Elasticsearch, Logstash, Kibana) [Электронный ресурс]. – Режим доступа: https://twelve.hashnode.dev/prometheus-vs-elk-stack-elasticsearch-logstash-kibana-an-architectural-comparison, свободный.
- Информационная безопасность. Стандарты и алгоритмы шифрования [Электронный ресурс]. – Режим доступа: https://away.vk.com/away.php, свободный.
- Современные системы шифрования [Электронный ресурс]. – Режим доступа: https://vunivere.ru/work93811/page10, свободный.
- Advanced Encryption Standard (FIPS 197) [Электронный ресурс]. – Режим доступа: https://christopherdare.com/code/aes, свободный.
- Алгоритм шифрования AES [Электронный ресурс]. – Режим доступа: http://book.itep.ru/6/aes.htm, свободный.
Оставить комментарий