Реализации AES
![]() | в этой статье Использование внешних ссылок может не соответствовать политике и рекомендациям Википедии . ( Июль 2024 г. ) |
Существуют различные реализации Advanced Encryption Standard , также известного как Rijndael.
Библиотеки
[ редактировать ]
Rijndael бесплатен для любого использования, общественного или частного, коммерческого или некоммерческого. [1] Раньше авторы Rijndael предоставляли домашнюю страницу. [2] для алгоритма. Следует проявлять осторожность при реализации 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)
- ГнуTLS
- Службы сетевой безопасности
- OpenSSL
- LibreSSL
- скучныйSSL
- mbed TLS (ранее PolarSSL)
- Ссылка на оригинальную реализацию
- axTLS
- Microsoft CryptoAPI использует поставщиков криптографических услуг для реализации шифрования. Поставщик шифрования Microsoft AES был представлен в Windows XP и может использоваться с любой версией Microsoft CryptoAPI. [3]
- tiny-AES-c Маленький портативный AES128/192/256 на языке C (подходит для встраиваемых систем)
- AES-256 Переносимая реализация AES-256 на языке C, ориентированная на байты.
- Solaris Cryptographic Framework предлагает несколько реализаций с поставщиками ядра для аппаратного ускорения на x86 (с использованием набора инструкций Intel AES ) и на SPARC (с использованием набора инструкций SPARC AES). Он доступен в Solaris и его производных, начиная с Solaris 10. [4]
- OpenAES C Портативная криптографическая библиотека
- LibTomCrypt — это модульный и портативный набор криптографических инструментов, который предоставляет разработчикам хорошо известные опубликованные блочные шифры, односторонние хеш-функции, режимы цепочки, генераторы псевдослучайных чисел, криптографию с открытым ключом и другие процедуры.
- libSodium API для NaCl
- AES Dust Compact реализация шифрования AES-128 в сборках C, x86, AMD64, ARM32 и ARM64.
- Реализация MSP430 AES для встроенного 16-битного микроконтроллера
- Код Gladman AES AES с дополнительной поддержкой Intel AES NI и VIA ACE от Dr. Брайан Глэдман.
библиотека С++
[ редактировать ]- Botan внедрил Rijndael с момента его первого выпуска в 2001 году.
- Crypto++ Комплексная общедоступная реализация алгоритмов шифрования и хеширования на языке C++. ФИПС подтвержден
библиотека C/CUDA
[ редактировать ]- gKrypt внедрил Rijndael на CUDA в своем первом выпуске в 2012 году.
С#/.NET
[ редактировать ]- Начиная с версии .NET Framework 3.5 , пространство имен System.Security.Cryptography содержит как полностью управляемую реализацию AES, так и управляемую оболочку реализации CAPI AES.
- Криптобиблиотека надувного замка
Дельфи
[ редактировать ]- Delphi Encryption Compendium [2] имеет кроссплатформенную реализацию AES среди реализаций различных других криптографических алгоритмов.
Идти
[ редактировать ]- Пакет crypto /aes в стандартной библиотеке
Ява
[ редактировать ]- Расширение криптографии Java , интегрированное в среду выполнения Java, начиная с версии 1.4.2.
- МАИК JCE
- Криптобиблиотека надувного замка
Питон
[ редактировать ]- PyCrypto — набор инструментов для криптографии Python PyCrypto, расширенный в PyCryptoDome.
- keyczar — набор инструментов для криптографии keyczar
- M2Crypto — M2Crypto — наиболее полная оболочка OpenSSL для Python.
- Криптография — библиотека Python, которая предоставляет криптографические рецепты и примитивы.
- PyNaCl — привязка Python для libSodium (NaCl)
JavaScript
[ редактировать ]- Библиотека SJCL - содержит реализации AES на JavaScript в режимах CCM, CBC, OCB и GCM.
- AES-JS — переносимая реализация JavaScript режимов AES ECB и CTR.
- Forge — реализации AES на JavaScript в режимах CBC, CTR, OFB, CFB и GCM.
- asmCrypto — реализация популярных криптографических утилит на JavaScript с упором на производительность. Поддерживает режимы CBC, CFB, CCM.
- pidCrypt — библиотека JavaScript с открытым исходным кодом. Поддерживается только режимы CBC и CTR.
Ржавчина
[ редактировать ]- aes — реализация Rust.
ЛабВЬЮ
[ редактировать ]- AES LabVIEW – реализация LabVIEW.
Зиг
[ редактировать ]- std.crypto.aes — стандартная библиотека Zig. Включает аппаратную поддержку AES-NI на x86_64 и расширений ARM AES на AArch64.
Приложения
[ редактировать ]Инструменты архивирования и сжатия
[ редактировать ]Шифрование файлов
[ редактировать ]- Выездная криптография RJN [5] использует алгоритм Rijndael (NIST AES) с 256-битными блоками данных, ключом шифрования и CTR (режим счетчика) для шифрования любых документов или изображений только в Windows.
- Gpg4win
- Нкрипт
Шифрование файловых систем
[ редактировать ]- Большинство файловых систем с шифрованием используют AES. [ нужна ссылка ] например NTFS
Шифрование диска/раздела
[ редактировать ]- BitLocker (часть некоторых выпусков Windows ) операционных систем
- CipherShed
- ДискКриптор
- FileVault (часть операционной системы Mac OS X , а также входящая в комплект Дисковая утилита создает образы дисков с шифрованием AES)
- ГБДЭ
- Гели (программное обеспечение)
- LibreCrypt (снято с производства)
- роскошь
- Частный диск
- TrueCrypt (снято с производства)
- ВераCrypt
Шифрование хранилища
[ редактировать ]- Магазин Bloombase StoreSafe
- Brocade Коммутатор шифрования
- IBM Encryption Blade
- Ворметрическое прозрачное шифрование (VTE)
Безопасность связи в локальных сетях
[ редактировать ]- IEEE 802.11i , поправка к исходному стандарту IEEE 802.11, определяющая механизмы безопасности для беспроводных сетей, использует AES-128 в режиме CCM ( CCMP ).
- Стандарт ITU-T G.hn , предоставляющий возможность создания высокоскоростной (до 1 Гигабит/с) локальной сети с использованием существующей домашней проводки ( линии электропередач , телефонные линии и коаксиальные кабели ), использует AES-128 для шифрование.
Разнообразный
[ редактировать ]- DataLocker использует 256-битное аппаратное шифрование AES CBC и XTS.
- Получить резервную копию Pro [6] использует AES-128 и AES-256
- GPG , лицензия GPL, включает в себя AES, AES-192 и AES-256 в качестве опций.
- IPsec
- IronKey использует 128-битное и 256-битное аппаратное шифрование AES в режиме CBC.
- Защита паролей KeePass
- Последний проход [7]
- Linux ядра Crypto API теперь доступен в пользовательском пространстве
- NetLib Encryptionizer поддерживает AES 128/256 в режимах CBC, ECB и CTR для шифрования файлов и папок на платформе Windows.
- Pidgin (программное обеспечение) имеет плагин, позволяющий использовать шифрование AES.
- Javascrypt [8] Бесплатный инструмент шифрования текста с открытым исходным кодом работает полностью в веб-браузере и позволяет отправлять зашифрованный текст по незащищенной электронной почте или факсу.
- PyEyeCrypt [9] Бесплатный инструмент шифрования текста с открытым исходным кодом/графический интерфейс пользователя с выбираемыми пользователем методами шифрования AES и итерациями PBKDF2.
- Протокол сигнала
- Google Алло (необязательно)
- Facebook Мессенджер (необязательно)
- Сигнал
- 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 .
Ссылки
[ редактировать ]- ↑ Письмо, представленное создателями Дэменом и Рейндалом.
- ^ Исходная домашняя страница и архивная копия.
- ^ «Поставщик криптографии Microsoft AES» . 9 июля 2021 г.
- ^ «Руководство системного администратора: Службы безопасности, Глава 13 Криптографическая платформа Solaris (обзор)» . Оракул. Сентябрь 2010 года . Проверено 27 ноября 2012 г.
- ^ «Без названия 1» .
- ^ «Get Backup Pro — надежная утилита резервного копирования для Mac» . Engadget . Проверено 26 апреля 2016 г.
- ^ 256-битное шифрование AES с регулярно увеличивающимися итерациями PBKDF2.
- ^ [1] Веб-браузер , fourmilab.ch/javascrypt .
- ^ PyEyeCrypt на github. для Windows , OSX и Linux Двоичные файлы Python включены в выпуск v1.1. , а также исходный код