AES의 실장

AES implementations

Rijndael로도 알려진 Advanced Encryption Standard에는 다양한 구현이 있습니다.

라이브러리

128, 192 및 256비트 키 크기의 [clarification needed][citation needed]AES 속도

Rijndael은 공공 또는 개인, 상업 또는 비상업적인 [1]용도로 무료로 사용할 수 있습니다.Rijndael의 저자들은 알고리즘의 홈페이지를[2] 제공하곤 했다.소프트웨어에 AES를 실장할 때는 특히 사이드 채널 공격에 주의해야 합니다.

알고리즘은 16바이트의 플레인텍스트블록으로 동작합니다.짧은 블록의 암호화는 소스 바이트(일반적으로 늘바이트)를 채우는 것만으로 가능합니다.이것은 몇 가지 방법으로 실행할 수 있습니다.가장 간단한 방법은 암호의 마지막 바이트가 추가된 패딩의 늘바이트 수를 식별하는 것입니다.

구현에 관한 고려사항

암호 작동 모드를 선택할 때는 신중하게 선택해야 합니다.가장 단순한 모드에서는 각 128비트 블록이 개별적으로 암호화 및 복호화됩니다.전자코드북(ECB)이라고 불리는 이 모드에서는 동일한 블록이 동일하게 암호화됩니다.이것은 완전히 안전하지 않습니다.암호문에 표시되는 평문 구조의 일부를 표시합니다.암호화(즉 CTR 모드) 전에 블록 위에 순차 카운터를 사용하고 복호화 후에 삭제하는 등 다른 모드를 선택하면 이 문제가 발생하지 않습니다.또 하나의 모드인 Cipher Block Chaining(CBC; 암호 블록 체인)은 TLS에서 사용되기 때문에 가장 일반적으로 사용되는 AES 모드 중 하나입니다.CBC는 Random Initialization Vector(IV; 랜덤 초기화 벡터)를 사용하여 동일한 평문이 여러 번 인코딩되어도 고유한 암호문이 생성되도록 합니다.IV는 보안을 위태롭게 하지 않고 클리어 상태로 전송될 수 있습니다.일반적인 방법은 암호문에 16바이트 IV를 추가하는 것입니다.이를 통해 복호화기는 IV에 쉽게 접근할 수 있습니다.모든 암호화 작업에 대해 새로운 IV를 사용할 경우 공격자가 일반 텍스트를 복구할 수 있으므로 주의해야 합니다.

  • FIPS 197 검증 암호화 모듈의 최신 목록(NIST 주최)
  • 검증된 AES 구현이 포함된 FIPS 140 검증 암호화 모듈의 최신 목록(NIST 주최)– 이들 대부분은 AES 알고리즘의 상용 구현과 관련되어 있습니다."Level / Description" 열에서 "FIPS-approved algorithms" 항목 뒤에 "AES" 및 특정 인증서 번호를 찾습니다.

C/ASM 라이브러리

  • libgcrypt
  • wolfSSL(구 CyaSSL)
  • GnuTLS
  • 네트워크 보안 서비스
  • OpenSSL
  • LibreSSL
  • mbed TLS(이전 PolarSSL)
  • 최초 구현 참조
  • AXTLS
  • Microsoft CryptoAPI암호화 서비스 공급자를 사용하여 암호화 구현을 제공합니다.Microsoft AES 암호화 프로바이더는 Windows XP에서 도입되어 모든 버전의 Microsoft [3]CryptoAPI에서 사용할 수 있습니다.
  • tiny-AES-c 소형 휴대용 AES128/192/256 in C(임베디드 시스템에 적합)
  • AES-256 C에서의 바이트 지향 휴대용 AES-256 실장
  • Solaris Cryptographic Frameworkx86(인텔 AES 명령 세트 사용) 및 SPARC(SPARC AES 명령 세트 사용) 상에서 하드웨어 액셀러레이션을 위한 커널 프로바이더를 사용하여 여러 가지 구현을 제공합니다.Solaris [4]10 이후의 Solaris 및 파생 모델에서 사용할 수 있습니다.
  • OpenAES 휴대용 C 암호화 라이브러리
  • LibTomCrypt는 잘 알려진 블록 암호, 단방향 해시 함수, 체인 모드, 의사 난수 생성기, 공개 키 암호화 및 기타 루틴을 개발자에게 제공하는 모듈러형 휴대용 암호화 툴킷입니다.
  • NaCl용 libSodium API
  • C, x86, AMD64, ARM32 및 ARM64 어셈블리에 AES-128 암호화의 AES 더스트 콤팩트 실장.
  • 임베디드 16비트 마이크로컨트롤러용 MSP430 AES 구현
  • Brian Gladman 박사가 인텔 AES NI 및 VIA ACE를 옵션으로 지원하는 Gladman AES 코드.

C++ 라이브러리

  • Botan은 2001년 첫 출시 이후 Rijndael을 구현했습니다.
  • Crypto++ 암호화 및 해시 알고리즘의 포괄적인 C++ 퍼블릭도메인 실장.FIPS 검증 완료

C/CUDA 라이브러리

  • GKrypt는 2012년 첫 출시와 함께 CUDA에 Rijndael을 구현했습니다.

C# / .NET

  • 의 버전 3.5 이후.NET Framework, 시스템.보안.암호화 네임스페이스에는 AES의 완전 관리형 구현과 CAPI AES 구현에 관한 관리형 래퍼가 모두 포함되어 있습니다.
  • Bouncy Castle 암호 라이브러리

가세요

자바

파이썬

  • PyCryptoPyCryptoDome에서 확장된 PyCrypto 암호화 툴킷 PyCrypto
  • keyczar – Cryptography Toolkit keyczar
  • M2Crypto – M2Crypto는 가장 완벽한 Python용 OpenSSL 래퍼입니다.
  • 암호화 – 암호화 레시피와 원본을 공개하는 Python 라이브러리.
  • PyNaCl – libSodium(NaCl)용 Python 바인딩

자바스크립트

  • SJCL 라이브러리– CCM, CBC, OCB 및 GCM 모드에서 AES의 JavaScript 구현 포함
  • AES-JS – AES ECB 및 CTR 모드의 휴대용 JavaScript 구현
  • Forge – CBC, CTR, OFB, CFB 및 GCM 모드에서 AES의 JavaScript 구현
  • asmCrypto – 퍼포먼스에 중점을 둔 일반적인 암호화 유틸리티의 JavaScript 구현.CBC, CFB, CCM 모드를 지원합니다.
  • pidCrypt : 오픈소스 JavaScript 라이브러리.CBC 및 CTR 모드만 지원합니다.

  • aes – Rust 실장.

랩뷰

  • AES LabVIEW – LabVIEW 구현.

적용들

아카이브 및 압축 도구

파일 암호화

  • Away RJN Cryptography away 、 Rijndael Algorithm ( NIST AES )256비트 데이터 블록, 암호 키 및 CTR (카운터 모드)를 사용하는 것은 Windows에서만 가능합니다.
  • Gpg4win
  • 크립토

파일 시스템 암호화

디스크/파티션 암호화

로컬 에리어 네트워크에서의 보안

  • IEEE 802.11i 는, 무선 네트워크의 시큐러티 메카니즘을 지정하는 최초의 IEEE 802.11 규격의 변경으로서 CCM 모드(CCMP)에서 AES-128 을 사용합니다.
  • ITU-T G.hn 규격에서는 기존 홈 배선(전원선, 전화선 및 동축 케이블)을 사용하여 고속(최대 1기가비트/초) 로컬에리어 네트워크를 구축하는 방법을 제공하고 있으며 암호화에는 AES-128을 사용합니다.

여러가지 종류의

  • DataLocker는 AES 256비트 CBC 및 XTS 모드 하드웨어 암호화 사용
  • Get Backup[6] Pro는 AES-128 및 AES-256을 사용합니다.
  • GPG(GPL 라이선스)에는 옵션으로 AES, AES-192 및 AES-256이 포함되어 있습니다.
  • IPsec
  • IronKey는 AES 128비트 및 256비트 CBC 모드 하드웨어 암호화를 사용합니다.
  • KeePass 비밀번호 안전
  • 라스트 패스[7]
  • Linux 커널의 Crypto API가 사용자 공간에 공개되었습니다.
  • NetLib Encryptionizer는 CBC, ECB 및 CTR 모드에서 AES 128/256을 지원하며 Windows 플랫폼에서 파일과 폴더를 암호화합니다.
  • Pidgin(소프트웨어), AES 암호화를 허용하는 플러그인이 있습니다.
  • Javascrypt[8] 무료 오픈 소스 텍스트 암호화 도구는 웹 브라우저에서 모두 실행되며 암호화된 텍스트를 보안 보호된 전자 메일 또는 팩스기로 전송합니다.
  • 사용자[9] 선택할 수 있는 AES 암호화 방식과 PBKDF2 반복 기능을 갖춘 무료 오픈 소스 텍스트 암호화 도구/GUI.
  • 신호 프로토콜
  • SocialDocs 파일 암호화는 AES256을 사용하여 무료 온라인 파일 암호화 도구를 제공합니다.
  • XFire는 AES-128, AES-192 및 AES 256을 사용하여 사용자 이름과 비밀번호를 암호화합니다.
  • Grand Theft Auto IV에 사용Rockstar Advanced Game Engine과 같은 특정 게임과 엔진은 멀티플레이어 해킹을 방지하기 위해 AES를 사용하여 게임 자산을 암호화합니다.

하드웨어

  • x86-64 ARM 프로세서에는 AES 명령 세트가 포함되어 있습니다.
  • IBM zSeries 메인프레임에서 AES는 다양한 Message Security Assist 설비가 설치되면 KM 시리즈의 어셈블러 opcode로 구현됩니다.
  • SPARC S3 코어 프로세서에는 SPARC T4SPARC T5 시스템에서 사용되는 AES 명령 세트가 포함되어 있습니다.

레퍼런스

  1. ^ 대멘과 리즈다엘이 제출한 편지
  2. ^ 원본 홈페이지 및 아카이브된 복사본
  3. ^ "Microsoft AES Cryptographic Provider".
  4. ^ "System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview)". Oracle. September 2010. Retrieved 2012-11-27.
  5. ^ "Untitled 1".
  6. ^ "Get Backup Pro is a solid backup utility for Macs". Engadget. Retrieved 2016-04-26.
  7. ^ 정기적으로 증가하는 PBKDF2 반복으로 AES 256비트 암호화
  8. ^ [1]브라우저, fourmilab.ch/javascrypt
  9. ^ 릴리스 v1.1에 포함된 Github Windows, OSXLinux 바이너리의 PyEyeCrypt Python 소스 코드