← До маршруту курсу
РОЗДІЛ 02 · МІСІЯ 2.7

AES — замінити й перемішати

Як кілька різних оборотних перетворень разом захищають дані?

Буч досліджує не стару шифрувальну машину, а сучасну матрицю з 16 байтів. Змінюйте її крок за кроком і простежуйте результат.

Буч пояснює матрицю AES, SubBytes, ShiftRows, MixColumns і AddRoundKey

Проблема: чому недостатньо однієї операції?

Перестановка лише змінює місця байтів, а підстановка змінює значення. AES поєднує різні дії та раундовий ключ, створюючи складну залежність між повідомленням і шифротекстом.

AES — симетричний блоковий шифр

Блок: 128 біт = 16 байтів. Ключі: 128, 192 або 256 біт. Раундів відповідно 10, 12 або 14.

Це не DES

AES — мережа підстановок і перестановок (SPN), а не мережа Фейстеля.

Початковий AddRoundKey→SubBytes→ShiftRows→MixColumns→AddRoundKey

Схема показує типовий раунд. В останньому раунді AES операцію MixColumns пропускають. Раундові ключі отримують з основного ключа за окремим алгоритмом.

Інтерактивна лабораторія: одна матриця, чотири перетворення

Початкові 16 байтів 00…0F розкладено за стовпцями. Кожен крок підсвічує змінені комірки. Натискайте вперед і назад.

У цьому симуляторі SubBytes та MixColumns справжні, але раундовий ключ спеціально фіксований для навчання. Це не повне AES-шифрування.

Перевірте одну зміну

Змініть перший байт і порівняйте результат одного навчального раунду. Спробуйте знайти, які вихідні байти змінилися.

Чотири практики Буча

1. Збери матрицю

Перетягніть 16 байтів у правильні позиції AES.

Почати

2. Заміни та поверни

S-box і обернена підстановка з перевіркою.

Почати

3. Рядки й стовпці

ShiftRows через перетягування та справжній MixColumns.

Почати

4. Один ключ — два напрями

Дослідіть XOR і порівняйте AES-128/192/256.

Почати

Компетентнісна ситуація

Команда А тільки переставляє байти файлу. Команда Б поєднує оборотні підстановки, перемішування та секретний ключ. Чий підхід ближчий до сучасного блокового шифру? Поясніть, спираючись на результати симуляцій.

💡 Підказка

Порівняйте: що змінює лише позиції, що — значення, що поширює вплив одного байта, а що залежить від секретного ключа.