EMZETT.
Увійти

Режими роботи AES: ECB, CBC і GCM

Коротко: AES шифрує лише блоки по 16 байт. Режим роботи визначає, як безпечно обробляється кілька блоків. Вибір вирішує питання безпеки.

Докладніше: Добра практика сьогодні — GCM (або ChaCha20-Poly1305), бо він одночасно шифрує й виявляє підміну. ECB непридатний.

Подробиці

  • ECB: Кожен блок шифрується незалежно. Однакові блоки відкритого тексту дають однакові блоки шифртексту, і візерунки лишаються видимими (відома картинка «пінгвін ECB»). Не використовувати.
  • CBC: Кожен блок перед шифруванням зв’язується (XOR) з попереднім блоком шифртексту. Потрібні випадковий вектор ініціалізації (IV) і доповнення (padding). Без додаткової контрольної суми вразливий до атак padding-oracle.
  • CTR: Перетворює AES на потоковий шифр: шифрується лічильник і об’єднується з відкритим текстом. Розпаралелюється, але без захисту від підміни.
  • GCM: CTR плюс мітка автентифікації. Див. AEAD.
  • Правило: Ніколи не використовувати одну й ту саму пару «ключ — nonce» двічі, для GCM це було б згубно.

Див. також: Симетричне шифрування