Реализации AES - AES implementations

Существуют различные реализации расширенного стандарта шифрования , также известного как Rijndael.

Библиотеки

Скорость AES при размерах ключа 128, 192 и 256 бит.

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

Идти

  • Пакет crypto / aes в стандартной библиотеке

Джава

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

Приложения

Инструменты архивирования и сжатия

Шифрование файлов

  • Криптография Away RJN использует 256-битные блоки данных алгоритма Rijndael (NIST AES), ключ шифрования и CTR (режим счетчика) для любого и всего шифрования документов или изображений только в Windows.
  • Gpg4win
  • Ncrypt

Шифрование файловых систем

Шифрование диска / раздела

Безопасность связи в локальных сетях

Разное

  • 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.
  • Сигнальный протокол
  • Шифрование файлов 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 .

использованная литература