Шифрування AES-256: що це означає для ваших даних

Шифрування AES-256: що це означає для ваших даних

AES-256 пояснено: як працює шифр, чому важливі 256-бітні ключі, що додає режим GCM і що перевіряти за маркетинговими заявами.


AES-256 це Розширений стандарт шифрування з 256-бітним ключем, стандартизований NIST як FIPS 197 у 2001 році. Це симетричний алгоритм шифрування, що використовується урядом США для секретної інформації, банками для фінансових транзакцій та безпековими додатками для захисту даних у стані спокою та в транзиті. AES-256 має 2^256 можливих ключів: число, більше за оцінювану кількість атомів у спостережуваному всесвіті. Жодна відома атака не скорочує цей простір ключів до обчислювально здійсненного пошуку.

Що насправді робить AES

AES це симетричний блоковий шифр. «Симетричний» означає, що той самий ключ шифрує та розшифровує. «Блоковий шифр» означає, що він обробляє дані в блоках фіксованого розміру по 128 біт (16 байт).

Алгоритм бере ваші дані (відкритий текст), комбінує їх із ключем та виробляє зашифрований вихід через серію математичних перетворень. Ці перетворення повторюються протягом фіксованої кількості раундів. AES-256 використовує 14 раундів.

Кожен раунд застосовує чотири операції:

  1. SubBytes: кожен байт замінюється за допомогою фіксованої таблиці підстановки (S-box), вносячи нелінійність.
  2. ShiftRows: байти в кожному рядку зміщуються на різні зміщення, розповсюджуючи дані між позиціями.
  3. MixColumns: стовпці змішуються через матричне множення в скінченному полі, дифундуючи зміни між байтами.
  4. AddRoundKey: ключ раунду (похідний від основного ключа) XOR-ується з даними.

Після 14 раундів відкритий текст ретельно заплутаний. Без ключа шифротекст невідрізненний від випадкового шуму.

Чому 256 бітів мають значення

«256» в AES-256 означає довжину ключа: 256 біт. Це визначає кількість можливих ключів, які зловмисник повинен спробувати для зламу шифрування методом перебору.

Розмір ключаМожливі ключіЧас перебору (1 трлн спроб/сек)
56-бітний (DES)7,2 x 10^16~20 годин
128-бітний (AES-128)3,4 x 10^3810^13 років
256-бітний (AES-256)1,16 x 10^7710^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, що надаються програмою. Замість цього можна покладатися на конструкції симетричних клавіш Keychain і захисту даних, тому в документації слід вказувати точний API і клас захисту, а не лише «з апаратною підтримкою».

Що шифрується має значення. Деякі додатки шифрують вміст файлів, але залишають імена файлів, мініатюри та метадані незашифрованими.

Часті запитання

Чи можна зламати 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?

Ключове значення має значення. Як генерується 256-бітний ключ? Якщо він отриманий із 4-значного PIN-коду за допомогою слабкого KDF, ефективний захист становить 4 цифри (10 000 комбінацій), а не 256 біт. Сильна реалізація використовує PBKDF2 з великою кількістю ітерацій або Argon2 з відповідними параметрами пам’яті та часу. Vaultaire використовує PBKDF2 з HMAC-SHA512 і 600 000 ітерацій для отримання ключа локального сховища з вибраного шаблону 5x5 і солі пристрою. PBKDF2 робить кожну здогадку дорожчою; він не підвищує ентропію шаблону до 256 біт.

Підсумок

Перевірте документацію щодо безпеки програми, а не лише її маркетингову сторінку. Шукайте певний алгоритм і режим, ієрархію ключів, параметри виведення, точні Keychain або Secure Enclave використання, обробка nonce, шлях відновлення та чи метадані також зашифровані. Відкритий вихідний код і незалежні аудити полегшують перевірку цих тверджень.

Vaultaire використовує AES-256-GCM для вмісту файлів, заголовків, метаданих, індексів і мініатюр. PBKDF2 з HMAC-SHA512 отримує локальний ключ сховища з шаблону та для всього пристрою Keychain сіль; цей ключ розгортає випадковий головний ключ, який використовується для шифрування файлів. Симетричні операції виконуються в процесі програми CryptoKit, поки iOS Keychain і Data Protection захищають стан відновлення, коли пристрій заблоковано. Повна ієрархія задокументована в модель безпеки.