Cryptology Academy · Урок

Расширение ключа AES и размеры ключей

Изучите ключи размером 128, 192 и 256 бит и процесс построения расписания ключей

Урок 3 из 413 шагов

«Расширение ключа AES и размеры ключей» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Добро пожаловать

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

Зачем нужно расширение ключа?

В AES-128 есть 10 раундов и начальный AddRoundKey. Для этого требуется 11 ключей раундов × 16 байтов = всего 176 байтов. Расписание ключей расширяет мастер-ключ размером 16 байтов до полного набора ключевого материала.

Слова расписания ключей

Расписание ключей работает со словами размером 4 байта. AES-128 начинается с 4 слов (W[0..3]), полученных из исходного ключа. Затем он создаёт W[4..43], то есть 44 слова = 176 байтов = 11 ключей раундов по 128 бит.

SubWord

SubWord независимо применяет S-box AES к каждому из 4 байтов слова. Это обеспечивает нелинейность при расширении ключа и предотвращает атаки со связанными ключами.

RotWord

RotWord выполняет циклический сдвиг 4-байтового слова влево: [a, b, c, d] → [b, c, d, a] Это не позволяет одному и тому же 32-битному слову повторяться при расширении ключа.

Константы раундов (Rcon)

Rcon[i] = [2^(i-1), 0, 0, 0] в GF(2^8). Эта величина включается операцией XOR в каждое четвёртое слово при расширении ключа. Благодаря этому ключ каждого раунда отличается от остальных, что предотвращает атаки скольжения.

Формула расширения ключа

Для i ≥ 4: if i % 4 == 0: W[i] = W[i-4] XOR SubWord(RotWord(W[i-1])) XOR Rcon[i/4] else: W[i] = W[i-4] XOR W[i-1]

Расписания AES-192 и AES-256

AES-192: 6 входных слов, создаёт 52 слова (12+1 раундов). AES-256: 8 входных слов, создаёт 60 слов (14+1 раундов). В AES-256 каждые 8 слов дополнительно применяется SubWord.

Безопасность размеров ключей

AES-128 обеспечивает безопасность 128 бит (2^128 вариантов при полном переборе). AES-256 обеспечивает безопасность 256 бит. Для квантовых атакующих AES-256 сохраняет безопасность 128 бит, поскольку алгоритм Гровера уменьшает её вдвое.

Выбор размера ключа AES

Для большинства современных приложений достаточно AES-128. Для секретов, которые должны храниться длительное время, секретных данных или сценариев постквантовой криптографии используйте AES-256. AES-192 на практике применяется редко.

Вывод ключа из паролей

Никогда не используйте пароль непосредственно как ключ AES. Используйте KDF: key = PBKDF2(password, salt, 600000, 32, SHA256) или key = Argon2id(password, salt, mem=65536, t=3, p=4).

Быстрая проверка

Сколько раундовых ключей требуется AES-128, включая начальный AddRoundKey?

Итоги

Вы освоили расширение ключа AES! Далее мы соберём всё вместе и зашифруем реальные файлы с помощью AES в Python и OpenSSL.
Можно начать бесплатно

Изучай Cryptology Academy с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
67
Уроки
261

Часто задаваемые вопросы

Урок «Расширение ключа AES и размеры ключей» бесплатный?

Да — полный текст урока «Расширение ключа AES и размеры ключей» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Расширение ключа AES и размеры ключей»?

Изучите ключи размером 128, 192 и 256 бит и процесс построения расписания ключей Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Расширение ключа AES и размеры ключей»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы симметричного шифрования
  2. Структура AES: раунды и матрица состояния
  3. Расширение ключа AES и размеры ключей
  4. Практическое шифрование файлов с помощью AES
← Назад к Cryptology Academy