Симметричное шифрование
Работа с общим ключом (AES, российский стандарт «Кузнечик»). Один ключ для шифрования и дешифрования.
Симметричное шифрование
AES (Advanced Encryption Standard)
Симметричный блочный шифр, стандарт США с 2001 года. Блок 128 бит, ключи 128/192/256 бит. 10/12/14 раундов SubBytes, ShiftRows, MixColumns, AddRoundKey. Заменил DES. Основан на Rijndael (Дамен, Рэймен, 2000).
DES (Data Encryption Standard)
Симметричный блочный шифр, стандарт США 1977-2001. Блок 64 бита, ключ 56 бит (+ 8 бит контроля). 16 раундов сети Фейстеля. Уязвим к brute-force (1998). Заменён на AES.
3DES (Triple DES)
Трёхкратное применение DES с разными ключами (ключ 168 бит). Шифрование-расшифрование-шифрование (EDE). Усиливает DES против brute-force. Устаревает, заменяется на AES. NIST рекомендует отказ к 2023.
Blowfish и Twofish
Blowfish (Шнайер, 1993): блок 64 бита, ключ до 448 бит, 16 раундов. Быстрый, свободный. Twofish (1998): кандидат на AES, блок 128 бит, ключи 128/192/256 бит. Сеть Фейстеля, 16 раундов.
ChaCha20 — поточный шифр
Поточный шифр на основе функции ChaCha (Бернштейн, 2008). 20 раундов перемешивания, ключ 256 бит, nonce 96 бит. Быстрее AES на процессорах без AES-NI. Используется в TLS, WireGuard.
Шифрование AES
Advanced Encryption Standard (2001, NIST). Блочный шифр 128 бит, ключи 128/192/256 бит. Rijndael-алгоритм (Бельгия). Стандарт де-факто: HTTPS, диски, мессенджеры.
Шифрование DES
Data Encryption Standard (1977, IBM/NSA). 56-бит ключ, 64-бит блок. Взломан брутфорсом (1999). 3DES — временная замена (3 прохода). Заменён на AES.
Режимы блочного шифрования
ECB — каждый блок отдельно (небезопасен). CBC — цепочка с вектором инициализации. CTR — счётчик, параллелизуется. GCM — аутентифицированное шифрование.