Шифрування AES-256: що це означає для ваших даних
AES-256 пояснено: як працює шифр, чому важливі 256-бітні ключі, що додає режим GCM і що перевіряти за маркетинговими заявами.
AES-256 це Розширений стандарт шифрування з 256-бітним ключем, стандартизований NIST як FIPS 197 у 2001 році. Це симетричний алгоритм шифрування, що використовується урядом США для секретної інформації, банками для фінансових транзакцій та безпековими додатками для захисту даних у стані спокою та в транзиті. AES-256 має 2^256 можливих ключів: число, більше за оцінювану кількість атомів у спостережуваному всесвіті. Жодна відома атака не скорочує цей простір ключів до обчислювально здійсненного пошуку.
Що насправді робить AES
AES це симетричний блоковий шифр. «Симетричний» означає, що той самий ключ шифрує та розшифровує. «Блоковий шифр» означає, що він обробляє дані в блоках фіксованого розміру по 128 біт (16 байт).
Алгоритм бере ваші дані (відкритий текст), комбінує їх із ключем та виробляє зашифрований вихід через серію математичних перетворень. Ці перетворення повторюються протягом фіксованої кількості раундів. AES-256 використовує 14 раундів.
Кожен раунд застосовує чотири операції:
- SubBytes: кожен байт замінюється за допомогою фіксованої таблиці підстановки (S-box), вносячи нелінійність.
- ShiftRows: байти в кожному рядку зміщуються на різні зміщення, розповсюджуючи дані між позиціями.
- MixColumns: стовпці змішуються через матричне множення в скінченному полі, дифундуючи зміни між байтами.
- AddRoundKey: ключ раунду (похідний від основного ключа) XOR-ується з даними.
Після 14 раундів відкритий текст ретельно заплутаний. Без ключа шифротекст невідрізненний від випадкового шуму.
Чому 256 бітів мають значення
«256» в AES-256 означає довжину ключа: 256 біт. Це визначає кількість можливих ключів, які зловмисник повинен спробувати для зламу шифрування методом перебору.
| Розмір ключа | Можливі ключі | Час перебору (1 трлн спроб/сек) |
|---|---|---|
| 56-бітний (DES) | 7,2 x 10^16 | ~20 годин |
| 128-бітний (AES-128) | 3,4 x 10^38 | 10^13 років |
| 256-бітний (AES-256) | 1,16 x 10^77 | 10^51 років |
Режими AES: чому вони важливі
Сам по собі AES шифрує лише один блок 128 біт за раз. Для реальних даних (фото, документи, відео) потрібен «режим роботи», що обробляє дані більші за 16 байт.
ECB (Electronic Codebook): не використовувати
Кожен блок шифрується незалежно з тим самим ключем. Однакові блоки відкритого тексту виробляють однакові блоки шифротексту. Це витікає шаблони в даних. ECB ніколи не слід використовувати для даних зі структурою або повторюваними шаблонами.
CBC (Cipher Block Chaining): застарілий
Кожен блок XOR-ується з попереднім блоком шифротексту перед шифруванням. Це усуває витік шаблонів ECB. CBC не забезпечує вбудованої автентифікації.
GCM (Galois/Counter Mode): поточний стандарт
GCM поєднує шифрування в режимі лічильника з автентифікацією Galois. Він шифрує дані І виробляє тег автентифікації, що виявляє будь-яку модифікацію шифротексту. NIST стандартизував GCM у SP 800-38D (2007).
AES-256-GCM це AES з 256-бітним ключем у режимі Galois/Counter Mode. Саме це використовує Vaultaire для шифрування фото та файлів.
Що «AES-256» на маркетинговій сторінці не говорить вам
Виведення ключа має значення. Якщо ключ похідний від 4-значного PIN через слабкий KDF, ефективна безпека складає лише 4 цифри (10 000 комбінацій), а не 256 біт. Правильна реалізація використовує PBKDF2 з великою кількістю ітерацій або Argon2. Vaultaire використовує PBKDF2 з HMAC-SHA512, виводячи ключ з візерунка на сітці 5x5 з мільярдами можливих входів.
Зберігання ключа має значення. Де живе ключ? Якщо ключ зберігається у відкритому тексті в пісочниці додатку, будь-яке шкідливе програмне забезпечення з доступом до файлів може його прочитати. Правильне зберігання ключа використовує апаратні механізми, як Apple Secure Enclave.
Що шифрується має значення. Деякі додатки шифрують вміст файлів, але залишають імена файлів, мініатюри та метадані незашифрованими.
Часті запитання
Чи можна зламати AES-256?
Жодна відома атака не зламує AES-256, скорочуючи повний простір ключів. Найкраща відома атака (атака з двоключовою зустріччю) скорочує AES-256 з 2^256 операцій до 2^254.4: теоретичне покращення, що практично нічого не означає. AES-256 залишається незламаним.
Чи є AES-256 стійким до квантових комп'ютерів?
Практично так. Алгоритм Гровера вдвічі скорочує ефективну довжину ключа: AES-256 стає еквівалентом 128-бітної безпеки проти квантових атак. AES-128 скоротився б до 64-бітної ефективної безпеки, що потенційно вразливо. NIST рекомендує AES-256 для довгострокової безпеки.
Яка різниця між AES-128 і AES-256?
AES-128 використовує 128-бітний ключ (10 раундів). AES-256 використовує 256-бітний ключ (14 раундів). Обидва вважаються безпечними проти поточних атак. AES-256 забезпечує більший запас проти майбутніх досягнень, зокрема квантових обчислень.
Підсумок
AES-256 є золотим стандартом симетричного шифрування, стандартизованим NIST, що використовується урядами та фінансовими установами, і стійким до всіх відомих атак. При оцінці додатків, що стверджують про шифрування AES-256, дивіться не лише на шифр: перевіряйте режим (GCM), виведення ключа (PBKDF2/Argon2 з великою кількістю ітерацій), зберігання ключа (апаратне забезпечення) та що шифрується (вміст і метадані).
Vaultaire використовує AES-256-GCM для шифрування файлів, PBKDF2 з HMAC-SHA512 для виведення ключів, ChaCha20 для шифрування метаданих та Apple Secure Enclave для управління ключами. Шифрування це не маркетингова мова. Це математика.