Как работи алгоритъмът за шифроване Rijndael?
Познат и с абревиатурата AES
Сигурното предаване на строго поверителна информация, без неоторизирани лица да получат достъп до нея, винаги е било предизвикателство. Ранните „тайни езици“ – например простите замени на букви – се разбиват лесно с днешната изчислителна мощ. Днес защитаваме данните с криптографски методи, които са математически прецизно дефинирани и чиято сигурност е публично оценена.
Такива методи използват ключ, който е известен само на изпращача и получателя. Шифрирането и дешифрирането следват алгоритъм за шифроване – ясно описан математически метод.
Password Depot шифрова Вашите поверителни данни с алгоритъма Rijndael, който е стандартизиран като AES (Advanced Encryption Standard).
По-долу обясняваме алгоритъма и го поставяме в технически контекст.
Advanced Encryption Standard (AES) – стандартизираният вариант на Rijndael
Американското National Bureau of Standards (днес NIST) стандартизира през 1977 г. DES; този стандарт беше оттеглен през 2005 г.от употреба, тъй като вече не беше достатъчно сигурен (съобщение на NIST). Като наследник NIST избира през 2001 г. Rijndael и го стандартизира като Advanced Encryption Standard (AES) (FIPS 197).
Важно: AES е подмножество от семейството Rijndael. AES фиксира размера на блока на 128 бита и допуска ключове с 128, 192 или 256 бита (Бележка от NIST, FIPS 197 (PDF)).
AES е разрешен за защита на информация на правителствени агенции на САЩ до ниво TOP SECRET (вижте CNSSP‑15 Fact Sheet както и актуалния CNSA‑2.0‑FAQ на NSA).
Как работи Rijndael/AES (кратък преглед)
Rijndael е шифър от тип Substitution-Permutation Network. Основните идеи са замествания на ниво байт, линейни трансформации и XOR-операции.
Последователност на ниво блок (128-битов „state“)
- Разширяване на ключа (Key Schedule): От ключа се извеждат Nr + 1 подключа за рундовете (напр. 11 при AES-128, 13 при AES-192, 15 при AES-256). Източник: FIPS 197.
- Начален рунд: AddRoundKey – блокът открит текст (като матрица 4×4 байта) се комбинира чрез XOR с първия подключ за рунда.
- Рундове 1 … Nr:
- SubBytes: Всеки байт се заменя чрез S-Box (мултипликативна обратна стойност в GF(28) плюс афинна трансформация с константа
0x63). Източник: FIPS 197. - ShiftRows: редовете на матрицата State се изместват циклично.
- MixColumns: колоните се смесват чрез умножение на матрици над GF(28).
- AddRoundKey: XOR със съответния кръгов ключ.
- SubBytes: Всеки байт се заменя чрез S-Box (мултипликативна обратна стойност в GF(28) плюс афинна трансформация с константа
Забележка: В последния кръг се пропуска MixColumns. Броят на кръговете е 10/12/14 за ключове с 128/192/256 Bit (FIPS 197).
AES може да бъде имплементиран в софтуер, фърмуер или хардуер (FIPS 197). За практическо приложение Режими на работа се използват, напр. CBC, CTR или GCM (удостоверено криптиране). Препоръки ще намерите в NIST SP 800–38A и NIST SP 800–38D (GCM/GMAC).
Важно за уточнение: AES е симетричен шифър за криптиране на данни. Обменът на ключове обикновено се извършва с асиметрични методи ((EC)DH/RSA). AES обаче може сигурно да капсулира ключове („Key Wrap“) – вж. NIST SP 800–38F.
Официална спецификация
Референтният документ ще намерите тук: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf
Brute-Force атаки
Brute-Force означава, че атакуващият изпробва всички възможни ключове. Класически методи като DES с ключове от само 56 бита днес на практика могат да бъдат разбити – затова през 2005 г. NIST официално го оттегли (NIST).
Съвременни методи като AES с ключове от 128/192/256 бита, за разлика от тях, разполагат с астрономически голямо пространство на ключовете. На практика по-важен от алгоритъма е извеждането на ключове от пароли и качеството на главната парола.
Password Depot допълнително затруднява Brute-Force атаките чрез функция за забавяне: след неправилно въвеждане на главната парола програмата остава заключена за няколко секунди.
Заключение: При коректна имплементация, подходящи режими на работа (напр. GCM) и достатъчна дължина на ключа, AES според днешните разбирания се счита за много сигурен в дългосрочен план.
Още за Brute-Force атаки.
Допълнителни източници
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (оригинална спецификация)
- NIST: AES е подмножество на Rijndael (размер на блока 128 бита)
- NIST SP 800–38A – режими на работа (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800–38D – GCM/GMAC (удостоверено шифроване)
- NIST SP 800–38F – AES Key Wrap
- CNSSP–15 Fact Sheet – използване на AES за секретна/строго секретна информация
- NSA: CNSA 2.0 FAQ – актуални изисквания
- NIST: оттегляне на DES (предистория)
Разберете Brute‑Force атаките
Научете защо дължината на паролата е решаваща и как да се защитите.
Повече за Brute‑Force атаките