Реализации AES - AES implementations
Существуют различные реализации расширенного стандарта шифрования , также известного как Rijndael.
Библиотеки
Rijndael бесплатен для любого использования, государственного или частного, коммерческого или некоммерческого. Авторы Rijndael использовали для создания домашней страницы алгоритма. Следует проявлять осторожность при внедрении AES в программное обеспечение, особенно в отношении атак по побочным каналам.
Алгоритм работает с блоками открытого текста по 16 байт. Шифрование более коротких блоков возможно только путем заполнения исходных байтов, обычно нулевыми байтами . Это может быть выполнено с помощью нескольких методов, самый простой из которых предполагает, что последний байт шифра определяет количество добавленных нулевых байтов заполнения.
Соображения по реализации
При выборе режима работы шифра необходимо сделать тщательный выбор . В простейшем режиме шифруется и дешифруется каждый 128-битный блок отдельно. В этом режиме, называемом электронной кодовой книгой (ECB), идентичные блоки будут зашифрованы одинаково; это совершенно небезопасно. Это делает часть структуры открытого текста видимой в зашифрованном тексте. Выбор других режимов, таких как использование последовательного счетчика по блоку до шифрования (т. Е. Режим CTR) и его удаление после дешифрования, позволяет избежать этой проблемы. Другой режим, Cipher Block Chaining (CBC), является одним из наиболее часто используемых режимов AES из-за его использования в TLS. CBC использует случайный вектор инициализации (IV), чтобы гарантировать создание различных зашифрованных текстов, даже если один и тот же открытый текст кодируется несколько раз. IV может передаваться в открытом виде без ущерба для безопасности. Обычной практикой является добавление 16-байтового IV к зашифрованному тексту, что дает дешифратору легкий доступ к IV. Необходимо соблюдать осторожность, чтобы использовать новый IV для каждой операции шифрования, поскольку в противном случае злоумышленник может восстановить открытый текст.
- Текущий список проверенных FIPS 197 криптографических модулей (размещенных в NIST)
- Текущий список проверенных FIPS 140 криптографических модулей с проверенными реализациями AES (размещенными в NIST). Большинство из них включают коммерческую реализацию алгоритмов AES. Найдите запись «Алгоритмы, одобренные FIPS» в столбце «Уровень / Описание», за которым следует «AES» и затем конкретный номер сертификата.
Библиотека C / ASM
- Libgcrypt
- wolfSSL (ранее CyaSSL)
- GnuTLS
- Услуги сетевой безопасности
- OpenSSL
- LibreSSL
- mbed TLS (ранее PolarSSL)
- Ссылка на оригинальную реализацию
- axTLS
- Microsoft CryptoAPI использует поставщиков служб шифрования, чтобы предложить реализации шифрования. Поставщик криптографии Microsoft AES был представлен в Windows XP и может использоваться с любой версией Microsoft CryptoAPI.
- tiny-AES-c Маленький портативный AES128 / 192/256 на языке C (подходит для встраиваемых систем)
- AES-256 Байт-ориентированная переносимая реализация AES-256 на C
- Solaris Cryptographic Framework предлагает несколько реализаций с поставщиками ядра для аппаратного ускорения на x86 (с использованием набора инструкций Intel AES ) и на SPARC (с использованием набора инструкций SPARC AES). Он доступен в Solaris и производных от Solaris 10.
- Портативная криптографическая библиотека OpenAES на языке C
- LibTomCrypt - это модульный и переносимый набор криптографических инструментов, который предоставляет разработчикам хорошо известные опубликованные блочные шифры, односторонние хэш-функции, режимы цепочки, генераторы псевдослучайных чисел, криптографию с открытым ключом и другие процедуры.
- libSodium API для NaCl
- AES Dust Компактная реализация шифрования AES-128 в сборках C, x86, AMD64, ARM32 и ARM64.
- Реализация MSP430 AES для встроенного 16-разрядного микроконтроллера
Библиотека C ++
- Botan внедрил Rijndael с самого первого выпуска в 2001 году.
- Crypto ++ Комплексная реализация алгоритмов шифрования и хеширования на C ++, являющаяся общественным достоянием. Проверено FIPS
Библиотека C / CUDA
- gKrypt реализовал Rijndael на CUDA с его первым выпуском в 2012 году.
C # / .NET
- Начиная с версии 3.5 .NET Framework , пространство имен System.Security.Cryptography содержит как полностью управляемую реализацию AES, так и управляемую оболочку для реализации CAPI AES.
- Крипто-библиотека надувного замка
Идти
- Пакет crypto / aes в стандартной библиотеке
Джава
- Расширение криптографии Java , интегрированное в среду выполнения Java с версии 1.4.2
- IAIK JCE
- Крипто-библиотека надувного замка
Python
- PyCrypto - Набор средств криптографии Python PyCrypto, расширенный в PyCryptoDome
- keyczar - Набор средств криптографии keyczar
- M2Crypto - M2Crypto - наиболее полная оболочка OpenSSL для Python.
- Криптография - библиотека Python, которая предоставляет криптографические рецепты и примитивы.
- PyNaCl - привязка Python для libSodium (NaCl)
JavaScript
- Библиотека SJCL - содержит реализации JavaScript AES в режимах CCM, CBC, OCB и GCM.
- AES-JS - переносимая реализация JavaScript режимов AES ECB и CTR
- Forge - JavaScript-реализации AES в режимах CBC, CTR, OFB, CFB и GCM
- asmCrypto - реализация популярных криптографических утилит на JavaScript с упором на производительность. Поддерживает режимы CBC, CFB, CCM.
- pidCrypt - библиотека JavaScript с открытым исходным кодом. Поддерживает только режимы CBC и CTR.
Ржавчина
- aes_soft - Реализация на Rust.
LabVIEW
- AES LabVIEW - реализация LabVIEW.
Приложения
Инструменты архивирования и сжатия
Шифрование файлов
- Криптография Away RJN использует 256-битные блоки данных алгоритма Rijndael (NIST AES), ключ шифрования и CTR (режим счетчика) для любого и всего шифрования документов или изображений только в Windows.
- Gpg4win
- Ncrypt
Шифрование файловых систем
- Большинство файловых систем с шифрованием используют AES, например NTFS.
Шифрование диска / раздела
- BitLocker (часть некоторых выпусков операционных систем Windows )
- CipherShed
- DiskCryptor
- FileVault (часть операционной системы Mac OS X , а также включенная Дисковая утилита создает образы дисков с шифрованием AES)
- GBDE
- Гели (программное обеспечение)
- LibreCrypt (снято с производства)
- LUKS
- Частный диск
- TrueCrypt (снято с производства)
- VeraCrypt
Безопасность связи в локальных сетях
- IEEE 802.11i , поправка к исходному стандарту IEEE 802.11, определяющая механизмы безопасности для беспроводных сетей, использует AES-128 в режиме CCM ( CCMP ).
- Стандарт ITU-T G.hn , который обеспечивает способ создания высокоскоростной (до 1 Гбит / с) локальной сети с использованием существующей домашней проводки ( линии электропередач , телефонные линии и коаксиальные кабели ), использует AES-128 для шифрование.
Разное
- DataLocker использует аппаратное шифрование в режиме AES 256 бит CBC и XTS.
- Get Backup Pro использует AES-128 и AES-256
- GPG под лицензией GPL включает AES, AES-192 и AES-256 в качестве опций.
- IPsec
- IronKey использует 128-битное и 256-битное аппаратное шифрование AES в режиме CBC.
- KeePass Password Safe
- LastPass
- Linux ядро «s Crypto API , теперь выставлен в пользовательское пространство
- NetLib Encryptionizer поддерживает AES 128/256 в режимах CBC, ECB и CTR для шифрования файлов и папок на платформе Windows.
- Pidgin (программное обеспечение) , имеет плагин, который позволяет использовать шифрование AES.
- PyEyeCrypt Бесплатный инструмент / графический интерфейс для шифрования текста с открытым исходным кодом с выбираемыми пользователем методами шифрования AES и итерациями PBKDF2.
-
Сигнальный протокол
- Google Allo (необязательно)
- Facebook Messenger (необязательно)
- Сигнал
- TextSecure
- Шифрование файлов SocialDocs использует AES256 для предоставления бесплатного онлайн-инструмента шифрования файлов.
- XFire использует AES-128, AES-192 и AES 256 для шифрования имен пользователей и паролей.
- Некоторые игры и движки, такие как Rockstar Advanced Game Engine, используемый в Grand Theft Auto IV , используют AES для шифрования игровых ресурсов, чтобы предотвратить взлом в многопользовательской игре.
Аппаратное обеспечение
- Процессоры x86-64 и ARM включают набор инструкций AES .
- На мэйнфреймах IBM zSeries AES реализован как серия кодов операций ассемблера KM, когда установлены различные средства Message Security Assist.
- Основные процессоры SPARC S3 включают набор инструкций AES, который используется с системами SPARC T4 и SPARC T5 .