Главная страница Proton

Что такое шифрование AES?

В криптографии аббревиатура AES означает Advanced Encryption Standard (расширенный стандарт шифрования) — быстрый, эффективный и безопасный алгоритм шифрования, сертифицированный Национальным институтом стандартов и технологий США (NIST). Это симметричный шифр, в котором один и тот же ключ используется как для зашифрования, так и для расшифрования данных. Этот процесс происходит относительно быстро, что делает его идеальным для шифрования больших объемов хранящихся данных.

Благодаря своей надежности и стойкости AES стал одним из самых популярных и распространенных видов шифрования. Он используется для обеспечения безопасности беспроводных сетей, шифрования данных и дисков, в системах онлайн-платежей, облачных хранилищах, для управления паролями и даже в правительственных и военных приложениях. Правительство США использует шифрование AES для защиты секретной информации, что также способствовало росту его популярности.

Безопасен ли алгоритм AES?

Да. В 2000 году после крайне тщательного(новое окно) и открытого процесса отбора NIST объявил, что AES (известный до этого как алгоритм Rijndael, созданный Винсентом Рэйменом и Йоаном Даменом) заменит DES в качестве рекомендованного(новое окно) «незасекреченного, публично раскрытого алгоритма шифрования, способного надежно защищать конфиденциальную государственную информацию в следующем столетии».

По данным NIST, все длины ключей алгоритма AES считаются «достаточными» для защиты секретной информации вплоть до уровня Secret («секретно»). Для информации уровня Top Secret («совершенно секретно») требуется использование AES-192 или AES-256.

Атаки методом перебора

Самый базовый вид атаки на любой шифр — это атака методом грубой силы (перебором), которая заключается в переборе всех возможных комбинаций ключа до тех пор, пока не будет найден правильный. 

Frontier(новое окно) — самый мощный в мире из публично известных суперкомпьютеров. Даже если бы он направил всю свою вычислительную мощность на взлом AES-128 методом перебора, ему все равно потребовалось бы порядка 10–12 триллионов лет, чтобы исчерпать все возможные комбинации для AES-128. Это намного дольше, чем возраст Вселенной. Поэтому даже при меньшей разрядности AES обладает высокой устойчивостью к атакам методом перебора с использованием обычных компьютеров. 

Взлом AES-256 методом перебора в 340 миллиардов миллиардов миллиардов миллиардов (2¹²⁸) раз сложнее, чем взлом AES-128.

Хотя алгоритм Гровера(новое окно) теоретически снижает безопасность симметричных ключей вдвое перед лицом квантовых угроз, они все же относительно устойчивы к квантовым атакам, особенно при использовании 256-битного ключа.

Атаки на ключи

За прошедшие годы криптографы опубликовали ряд теоретических атак на ключи AES, но все они либо непрактичны в реальных условиях, либо эффективны только против реализаций AES, использующих сокращённое число раундов (см. ниже). 

Наиболее успешной попыткой была теоретическая бикликовая атака(новое окно), опубликованная в 2011 году, которая может сократить время, необходимое для перебора AES, в четыре раза. Однако даже в этом случае для перебора AES на любом современном или обозримом компьютерном оборудовании потребовались бы миллиарды лет. 

Ни одна известная атака на ключи не является практической против корректно реализованного AES-128 или выше. 

Атаки по побочным каналам

Атака по побочным каналам пытается сократить число комбинаций, необходимых для успешной атаки методом перебора, находя подсказки в компьютере, который выполняет вычисления шифрования. Подсказки можно получить, анализируя:

  • Время — сколько времени компьютеру требуется для выполнения операции
  • Электромагнитные утечки
  • Акустические сигналы
  • Визуальные признаки (зафиксированные с помощью камеры высокого разрешения).

Атаки на время доступа к кэшу, в частности, показали себя весьма эффективными для успешного взлома AES. В самом заметном примере исследователи в 2016 году смогли восстановить(новое окно) ключ AES-128, используя «всего около 6–7 блоков простого текста или шифртекста (теоретически хватило бы даже одного блока)».

Однако можно предпринять ряд мер, чтобы снизить угрозу атак по побочным каналам:

  • Корректно реализованный AES может предотвратить способы, которыми возможна утечка данных.
  • Оборудование со встроенным набором инструкций AES дополнительно сокращает поверхность атаки по побочным каналам для AES.
  • Можно использовать методы рандомизации, чтобы нарушить связь между данными, защищёнными AES, и любыми данными, утечка которых может быть собрана с помощью атаки по побочным каналам. 

Во многих случаях атаки по побочным каналам требуют, чтобы атакующий находился рядом с устройством или имел к нему физический доступ, пока оно расшифровывает данные, хотя удалённые атаки тоже возможны, если на устройстве установлено вредоносное программное обеспечение, особенно в случае атак по времени.

Как работает AES

AES — это блочный шифр, который зашифровывает и расшифровывает данные блоками по 128 бит с использованием 128-, 192- или 256-битных ключей. Как отмечалось ранее, для шифрования и расшифровки данных используется один и тот же ключ. AES с 128-битным ключом часто называют AES-128, и аналогично для AES-192 и AES-256.

Шифрование данных происходит в несколько раундов, каждый из которых состоит из серии математических операций. 

Процесс начинается с использования алгоритма генерации ключей Rijndael для получения серии новых раундовых ключей из исходного секретного ключа. Этот процесс известен как расширение ключа.

Затем каждый раунд состоит из одной или нескольких (или комбинации) следующих операций:

1. Add Round Key: выполняется операция XOR(новое окно) для объединения шифруемых данных (шифротекста) с каждым раундовым ключом.

2. Sub Bytes: используется таблица подстановки, чтобы дополнительно перемешать данные. В качестве общего принципа представьте простые шифры замены, которыми вы пользовались в детстве, когда заменяли каждую букву в сообщении на букву, расположенную на фиксированное число позиций дальше по алфавиту.

3. Shift Rows: каждый 128-битный блок данных состоит из блока 4×4 по 16 байт. Эта операция сдвигает каждый байт в строке блока влево на определённое смещение.

4. Mix Columns: к каждому столбцу в блоке применяется дополнительное обратимое линейное преобразование.

Эта серия преобразований образует один раунд, который затем повторяется над данными определённое число раз в зависимости от размера ключа:

  • AES-128 — 10 раундов
  • AES-192 — 12 раундов
  • AES 256 — 14 раундов

Чтобы расшифровать данные, все шаги, использованные для того, чтобы их зашифровать, просто выполняются в обратном порядке. Для этого требуется исходный секретный ключ, чтобы обратить процесс с использованием каждого обратного раундового ключа.

Почему AES-256 предпочтительнее AES-192 или AES-128?

При нынешнем и обозримом уровне развития технологий для взлома AES-128 методом перебора потребовалось бы больше времени, чем существует Вселенная. Легендарный криптограф Брюс Шнайер даже утверждал(новое окно), что AES-128 может быть надежнее AES-256 благодаря более сильной процедуре расширения ключей — алгоритму, который вычисляет все раундовые ключи на основе исходного секретного ключа.

Тем не менее, именно AES-256 стал золотым стандартом де-факто для симметричного шифрования. Его часто (хотя и не без дискуссий) считают более надежным выбором, поскольку больший размер ключа обеспечивает дополнительный запас прочности. Благодаря этому зашифрованные данные останутся в безопасности, даже если будет найден способ значительно ослабить алгоритм. Этот аргумент становится еще более весомым по мере роста потребности в постквантовой стойкости. 

AES-CBC и AES-GCM

До сравнительно недавнего времени AES обычно использовался в режиме сцепления блоков шифра (CBC), где каждый блок простого текста проходит операцию XOR с предыдущим блоком шифртекста перед тем, как быть зашифрованным. При использовании в режиме CBC для проверки данных требуется алгоритм хеширования HMAC(новое окно), например HMAC-SHA256.

Однако всё чаще AES используется в режиме Galois/counter (GCM), в котором применяется режим счётчика(новое окно) шифрования. Его главное преимущество в том, что для проверки данных он использует поле Галуа(новое окно) без необходимости во внешнем алгоритме. Поэтому он эффективнее, чем использование отдельного алгоритма аутентификации, который может создавать высокую вычислительную нагрузку.

Хотя AES-CBC с аутентификацией HMAC обычно считается безопасным, CBC потенциально уязвим для атак на дополнение(новое окно), таких как POODLE(новое окно). GCM — нет.

AES с аппаратным ускорением

Большинство современных процессоров поддерживают Advanced Encryption Standard New Instructions (AES-NI(новое окно)) — набор аппаратных инструкций, выполняющих операции AES непосредственно на процессоре. Это значительно ускоряет работу AES, а также помогает предотвратить атаки по сторонним каналам, основанные на анализе времени выполнения операций. Поскольку операции происходят внутри защищенных вычислительных блоков процессора, у злоумышленника остается меньше возможностей зафиксировать колебания времени выполнения для проведения атаки.

Proton и AES

Мы широко используем AES для защиты продуктов Proton:

События и контакты защищаются с помощью AES-256 в сочетании с ECC для обмена ключами, чтобы обеспечить вашу конфиденциальность посредством сквозного шифрования.

Proton VPN в основном ориентирован на быстрый и эффективный протокол VPN WireGuard® (который использует ChaCha20), но подключения OpenVPN используют AES-256.

Proton Pass хранит пароли, заметки, личные данные и другие элементы в вашем защищённом хранилище с использованием AES-256.

Proton Drive зашифровывает все загруженные файлы сквозным методом с помощью AES-256, используя ECC для обмена ключами. Proton Docs и Proton Sheets также используют AES-256 с обменом ключами на основе ECC, хотя их реализация шифрования отличается от общей схемы шифрования файлов в Proton Drive.

Proton Mail хранит электронные письма и вложения с использованием AES-256 по стандарту OpenPGP. Даже ваш закрытый ключ, который открывает доступ к вашим электронным письмам, зашифрован с помощью AES-256 перед сохранением на сервере.

Proton Meet использует Messaging Layer Security (MLS), чтобы зашифровать аудио, видео и сообщения чата, обеспечивая прямую секретность (PFS) и безопасность после компрометации (PCS) для всех коммуникаций. Все данные встреч зашифрованы сквозным методом с использованием AES-256-GCM.

Снижение риска атак на шифрование AES

Безопасность сильна лишь настолько, насколько сильно ее самое слабое звено, и обычно этим звеном является ваш пароль. Это означает, что методы социальной инженерии, фишинговые атаки и кейлоггеры(новое окно) также представляют угрозу для данных, зашифрованных с помощью AES. Поэтому даже при использовании AES вам следует соблюдать следующие меры предосторожности:

Proton

Возьмите свои данные под контроль

Proton был создан для защиты ваших данных с самого начала. Благодаря сквозному шифрованию, приложениям с открытым исходным кодом и независимым аудитам ваша информация остается вашей.

Часто задаваемые вопросы о шифровании AES

Что лучше: AES или DES?
Что лучше: AES или RSA?
Насколько надёжна безопасность AES?

Подробнее о шифровании