Компанией Intel в 2008 г. были предложены новые команды для x86 архитектуры, которые добавили поддержку на аппаратном уровне симметричного алгоритма шифрование AES(Advanced Encryption Standard). На данный момент AES — один из самых популярных алгоритмов блочного шифрования. Поэтому аппаратная реализация должна привести к повышению производительности программ использующих этот алгоритм шифрования(OpenSSL, The Bat, TrueCrypt ...). Новое расширение команд получило название AES-NI. Оно содержит в себе следующие инструкции:
- AESENC — Выполнить один раунд шифрования AES,
- AESENCLAST- Выполнить последний раунд шифрования AES,
- AESDEC — Выполнить один раунд расшифрования AES,
- AESDECLAST — Выполнить последний раунд расшифрования AES,
- AESKEYGENASSIST — Поспособствовать в генерации раундового ключа AES,
- AESIMC — Обратный Mix Columns.
Так как про сам алгоритм шифрования AES было уже было сказано многое, то в этом посте рассмотрим, как можно воспользоваться этими инструкциями.