Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
терентьев шифры и тд.docx
Скачиваний:
0
Добавлен:
12.02.2026
Размер:
282.83 Кб
Скачать
  1. Тип алгоритма: Симметричный блочный шифр

  2. Размер блока: 128 бит (фиксированный, в отличие от оригинального Rijndael, который поддерживал переменный размер блока)

  3. Размеры ключа: 128, 192 или 256 бит (AES-128, AES-192, AES-256)

  4. Структура: Подстановочно-перестановочная сеть (SPN), в отличие от сети Фейстеля в DES и ГОСТ

  5. Количество раундов: Зависит от размера ключа:

    • AES-128: 10 раундов

    • AES-192: 12 раундов

    • AES-256: 14 раундов

Основные математические концепции

AES основан на операциях в конечном поле Галуа GF(2⁸). Это обеспечивает:

  • Математическую строгость

  • Эффективные реализации как в ПО, так и в железе

  • Хорошую защиту от известных видов криптоанализа

Структура алгоритма

Предварительный этап: Key Expansion

Из основного ключа генерируется набор раундовых ключей (ключей для каждого раунда) с помощью специальной процедуры, включающей:

  • RotWord (циклический сдвиг байтов)

  • SubWord (замена байтов через S-бокс)

  • Rcon (добавление константы раунда)

Структура каждого раунда

Начальный раунд:

  1. AddRoundKey — побитовый XOR с раундовым ключом

Основные раунды (кроме последнего):

  1. SubBytes — замена байтов

  2. ShiftRows — сдвиг строк

  3. MixColumns — перемешивание столбцов

  4. AddRoundKey — побитовый XOR с раундовым ключом

Финальный раунд:

  1. SubBytes

  2. ShiftRows

  3. AddRoundKey (без MixColumns)

Детальное описание преобразований

1. SubBytes (нелинейная замена)

  • Каждый байт состояния заменяется через S-бокс

  • S-бокс реализует обратное преобразование в поле Галуа с последующим аффинным преобразованием

  • Обеспечивает нелинейность — критически важно для защиты от линейного и дифференциального криптоанализа

2. ShiftRows (перестановка)

  • Строки состояния циклически сдвигаются:

    • Строка 0: не сдвигается

    • Строка 1: сдвиг на 1 байт

    • Строка 2: сдвиг на 2 байта

    • Строка 3: сдвиг на 3 байта

  • Обеспечивает диффузию между столбцами

3. MixColumns (линейное преобразование)

  • Каждый столбец умножается на фиксированную матрицу в поле GF(2⁸)

  • Обеспечивает сильную диффузию внутри столбцов

  • В последнем раунде опускается для сохранения симметрии шифрования/дешифрования

4. AddRoundKey (сложение с ключом)

  • Простой XOR состояния с раундовым ключом

  • Обеспечивает зависимость от ключа на каждом этапе

Режимы работы

AES, как блочный шифр, используется в различных режимах:

  • ECB (Electronic Codebook) — простейший, но небезопасный для больших данных

  • CBC (Cipher Block Chaining) — с цепочкой блоков, требует вектора инициализации (IV)

  • CTR (Counter) — режим счетчика, превращает блочный шифр в потоковый

  • GCM (Galois/Counter Mode) — обеспечивает одновременно шифрование и аутентификацию

Безопасность и криптоанализ

Сильные стороны:

  • Стойкость к известным атакам: За 20+ лет интенсивного анализа не найдено практических уязвимостей

  • Размер ключа: 128-битный вариант уже достаточно стоек, 256-битный считается безопасным на десятилетия вперед

  • Эффективность: Быстрые реализации на всех платформах

Известные атаки (теоретические):

  • Атака на связанных ключах — требует нереалистичных условий

  • Атака по сторонним каналам — на реализации, а не на сам алгоритм

Практическое применение

AES используется практически везде:

  • HTTPS/TLS — защита интернет-соединений

  • Wi-Fi (WPA2, WPA3) — защита беспроводных сетей

  • VPN — виртуальные частные сети

  • Файловые системы — шифрование дисков

  • Мобильные приложения — защита данных

  • Мессенджеры — сквозное шифрование

Сравнение с другими алгоритмами

Вывод

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

Ключевые преимущества:

  • Доказанная стойкость за decades анализа

  • Высокая производительность на любых платформах

  • Стандартизация и поддержка на уровне hardware

  • Гибкость использования в различных режимах

AES останется основой защиты информации на обозримое будущее, и его значение в современной цифровой экономике трудно переоценить.

Что такое RSA?

RSA — это алгоритм асимметричного шифрования, названный по первым буквам фамилий его создателей: Ривеста (Rivest), Шамира (Shamir) и Адлемана (Adleman). Алгоритм был представлен в 1977 году и стал первым практическим алгоритмом с открытым ключом, пригодным как для шифрования, так и для цифровой подписи.

Основная идея асимметричного шифрования

В отличие от симметричных алгоритмов (AES, DES, ГОСТ), где один ключ используется и для шифрования, и для дешифрования, в RSA используется пара ключей:

  • Открытый ключ (public key) — используется для шифрования и проверки подписи. Может свободно распространяться.

  • Закрытый ключ (private key) — используется для дешифрования и создания подписи. Должен храниться в секрете.

Ключевая особенность: Вычислительно невозможно определить закрытый ключ из открытого.

Математическая основа RSA

Безопасность RSA основана на сложности задачи факторизации больших чисел — разложения произведения двух больших простых чисел на исходные множители.

Необходимая математика:

  1. Взаимно простые числа — числа, у которых НОД (наибольший общий делитель) равен 1.

  2. Функция Эйлера φ(n) — количество чисел, меньших n и взаимно простых с n.

  3. Теорема Эйлера: Если a и n взаимно просты, то a^φ(n) ≡ 1 (mod n)

  4. Расширенный алгоритм Евклида — для нахождения обратного элемента по модулю.

Генерация ключей RSA

Процесс создания пары ключей:

  1. Выбор двух больших простых чисел:

    • Выбираются два случайных больших простых числа p и q

    • Типичная длина каждого: 1024-4096 бит

  2. Вычисление модуля:

    • Вычисляется n = p × q

    • Это modulus (модуль), который будет входить в оба ключа

  3. Вычисление функции Эйлера:

    • φ(n) = (p-1) × (q-1)

  4. Выбор открытой экспоненты:

    • Выбирается целое число e такое, что:

      • 1 < e < φ(n)

      • e и φ(n) — взаимно просты (НОД(e, φ(n)) = 1)

    • Обычно берут e = 65537 (0x10001) — это обеспечивает хороший баланс между безопасностью и производительностью

  1. Вычисление закрытой экспоненты:

    • Вычисляется d — мультипликативно обратное к e по модулю φ(n)

    • d × e ≡ 1 (mod φ(n))

    • Вычисляется с помощью расширенного алгоритма Евклида

Результат:

  • Открытый ключ: (e, n)

  • Закрытый ключ: (d, n)

Процесс шифрования и дешифрования

Шифрование (с помощью открытого ключа):

  • Исходное сообщение представляется как число m < n

  • Шифртекст: c = m^e mod n

Дешифрование (с помощью закрытого ключа):

  • Исходное сообщение: m = c^d mod n

Почему это работает?

Доказательство корректности:

Мы знаем, что:

  1. c = m^e mod n

  2. m = c^d mod n = (m^e)^d mod n = m^(e×d) mod n

Из выбора ключей: e×d ≡ 1 (mod φ(n)) Значит: e×d = 1 + k×φ(n) для некоторого k

Тогда: m^(e×d) = m^(1 + k×φ(n)) = m × (m^φ(n))^k

По теореме Эйлера: m^φ(n) ≡ 1 (mod n) Следовательно: m × (1)^k ≡ m (mod n)

Цифровая подпись на RSA

RSA также используется для цифровых подписей:

Создание подписи:

  • Вычисляется хеш сообщения: h = hash(m)

  • Подпись: s = h^d mod n (подписывается закрытым ключом)

Проверка подписи:

  • Вычисляется хеш сообщения: h = hash(m)

  • Проверяется: h ≡ s^e mod n (проверяется открытым ключом)

Безопасность RSA

Основные угрозы: