Implementace AES - AES implementations
Existuje mnoho implementací Advanced Encryption Standard, také známý jako Rijndael.
Knihovny

Rijndael je zdarma pro jakékoli použití veřejné nebo soukromé, komerční nebo nekomerční.[1] Autoři Rijndael poskytovali domovskou stránku[2] pro algoritmus. Při implementaci AES do softwaru je třeba postupovat opatrně, zejména pokud jde o útoky postranními kanály.
Algoritmus pracuje na blocích holého textu 16 bajtů. Šifrování kratších bloků je možné pouze pomocí polstrování zdrojové bajty, obvykle s nulové bajty. Toho lze dosáhnout pomocí několika metod, z nichž nejjednodušší předpokládá, že konečný bajt šifry identifikuje počet přidaných nulových bajtů odsazení.
Aspekty implementace
Při výběru je třeba pečlivě vybrat provozní režim šifry. Nejjednodušší režim šifruje a dešifruje každý 128bitový blok samostatně. V tomto režimu tzv elektronický číselník (ECB), bloky, které jsou identické, budou šifrovány shodně; to je zcela nejisté. Zviditelňuje část struktury prostého textu v ciphertextu. Tomuto problému se vyhnete výběrem dalších režimů, jako je použití sekvenčního čítače přes blok před šifrováním (tj. Režim CTR) a jeho odstranění po dešifrování. Jiný režim, Šifrovací blokování řetězců (CBC) je jedním z nejčastěji používaných režimů AES díky jeho použití v TLS. CBC používá náhodný inicializační vektor (IV), aby zajistila produkci odlišných šifrových textů, i když je stejný holý text kódován vícekrát. IV může být vysílán na volném prostranství bez ohrožení bezpečnosti. Běžnou praxí je přepsat 16 bajtů IV do šifrovacího textu, což umožňuje dešifrovacímu zařízení snadný přístup k IV. Je nutné dbát na to, aby bylo pro každou operaci šifrování použito nové IV, protože jinak může útočník obnovit prostý text.
- Aktuální seznam kryptografických modulů ověřených FIPS 197 (hostovaných NIST)
- Aktuální seznam kryptografických modulů ověřených FIPS 140 s ověřenými implementacemi AES (hostované NIST) - Většina z nich zahrnuje komerční implementaci algoritmů AES. Vyhledejte položku „Algoritmy schválené FIPS“ ve sloupci „Úroveň / Popis“, poté „AES“ a poté konkrétní číslo certifikátu.
C / ASM knihovna
- Libgcrypt
- wolfSSL (dříve CyaSSL)
- GnuTLS
- Služby zabezpečení sítě
- OpenSSL
- LibreSSL
- mbed TLS (dříve PolarSSL)
- Odkaz na původní implementaci
- axTLS
- Microsoft CryptoAPI používá Poskytovatelé kryptografických služeb nabídnout implementace šifrování. Microsoft AES Cryptographic Provider byl představen ve Windows XP a lze jej použít s jakoukoli verzí Microsoft CryptoAPI.[3]
- malý-AES-c Malý přenosný AES128 / 192/256 v C (vhodný pro vestavěné systémy)
- AES-256 Bajtově orientovaná přenosná implementace AES-256 v C
- Kryptografický rámec Solaris nabízí více implementací, přičemž jsou k dispozici poskytovatelé jádra pro hardwarovou akceleraci x86 (pomocí Intel Sada instrukcí AES ) a dále SPARC (pomocí instrukční sady SPARC AES). Je k dispozici v Solaris a deriváty od verze Solaris 10.[4]
- Otevřít AES přenosná kryptografická knihovna C.
- LibTomCrypt je modulární a přenosná kryptografická sada nástrojů, která poskytuje vývojářům dobře známé publikované blokové šifry, jednosměrné hashovací funkce, režimy řetězení, generátory pseudonáhodných čísel, kryptografii veřejného klíče a další rutiny.
- libSodium API pro NaCl
- AES Dust Kompaktní implementace šifrování AES-128 v sestavách C, x86, AMD64, ARM32 a ARM64.
C ++ knihovna
- Botan implementuje Rijndael od jeho prvního vydání v roce 2001
- Crypto ++ Komplexní implementace C ++ public-domain šifrování a hash algoritmů. FIPS ověřen
C # / .NET
- Od verze 3.5 .NET Framework, obor názvů System.Security.Cryptography obsahuje jak plně spravovanou implementaci AES, tak spravovaný wrapper kolem CAPI Implementace AES.
- Šifrovací knihovna skákacího hradu
Jít
- The krypto / aes balíček ve standardní knihovně
Jáva
- Rozšíření kryptografie Java, integrovaný do Runtime prostředí Java od verze 1.4.2
- IAIK JCE
- Šifrovací knihovna skákacího hradu
Krajta
- PyCrypto - Python Cryptography Toolkit PyCrypto, rozšířený v PyCryptoDome
- keyczar - Cryptography Toolkit keyczar
- M2Crypto - M2Crypto je nejkompletnější obal OpenSSL pro Python.
- Kryptografie - Knihovna Pythonu, která odhaluje kryptografické recepty a primitiva.
- PyNaCl - Vazba Pythonu pro libSodium (NaCl)
JavaScript
- Knihovna SJCL - obsahuje implementace JavaScript AES v režimech CCM, CBC, OCB a GCM
- AES-JS - přenosná implementace JavaScriptu režimů AES ECB a CTR
- Forge - implementace AES v JavaScriptu v režimech CBC, CTR, OFB, CFB a GCM
- asmCrypto - Implementace JavaScriptu populárních kryptografických nástrojů se zaměřením na výkon. Podporuje režimy CBC, CFB, CCM.
- pidCrypt Otevřená knihovna JavaScript. Podporuje pouze režimy CBC a CTR.
Rez
- aes_soft - Realizace rezu.
LabVIEW
- AES LabVIEW - Implementace LabVIEW.
Aplikace
Archivní a kompresní nástroje
Šifrování souborů
- Pryč RJN kryptografie [5] používá 256bitové datové bloky, algoritmus Rijndael (NIST AES), šifrovací klíč a CTR (režim čítače) pro jakékoli šifrování dokumentů nebo obrázků pouze v systému Windows.
- Gpg4win
- Ncrypt
Šifrování souborových systémů
- Většina šifrování souborových systémů použít AES,[Citace je zapotřebí ] např. NTFS
Šifrování disku / oddílu
- BitLocker (součást některých vydání z Okna operační systémy)
- CipherShed
- DiskCryptor
- FileVault (část Mac OS X operační systém a také zahrnutý Disk Utility vytváří obrázky disků šifrované AES)
- GBDE
- Geli (software)
- LibreCrypt
- ŠTĚSTÍ
- Soukromý disk
- TrueCrypt (ukončeno)
- VeraCrypt
Zabezpečení komunikace v lokálních sítích
- IEEE 802.11i, změna originálu IEEE 802.11 standard specifikující bezpečnostní mechanismy pro bezdrátové sítě, používá AES-128 v režimu CCM (CCMP ).
- The ITU-T G.hn standard, který poskytuje způsob, jak vytvořit vysokorychlostní (až 1 Gigabit / s) místní síť pomocí stávajícího domácího vedení (elektrické vedení, telefonní linky a koaxiální kabely ), používá pro šifrování AES-128.
Smíšený
- DataLocker používá AES 256bitové hardwarové šifrování CBC a XTS
- Získejte Backup Pro[6] používá AES-128 a AES-256
- GPG, S licencí GPL, zahrnuje jako volitelné doplňky AES, AES-192 a AES-256.
- IPsec
- IronKey Používá AES 128bitové a 256bitové hardwarové šifrování v CBC režimu
- KeePass heslo bezpečné
- LastPass[7]
- Linuxové jádro je Krypto API, nyní vystaven uživatelskému prostoru
- NetLib Encryptionizer podporuje AES 128/256 v režimech CBC, ECB a CTR pro šifrování souborů a složek na platformě Windows.
- Pidgin (software), má plugin, který umožňuje šifrování AES
- PyEyeCrypt[8] Bezplatný nástroj / GUI pro šifrování textu s otevřeným zdrojovým kódem s uživatelsky volitelnými šifrovacími metodami AES a iteracemi PBKDF2.
- Signální protokol
- Google Allo (volitelný)
- Facebook Messenger (volitelný)
- Signál
- TextSecure
- Šifrování souborů SocialDocs používá AES256 k poskytnutí bezplatného online nástroje pro šifrování souborů
- XFire používá AES-128, AES-192 a AES 256 k šifrování uživatelských jmen a hesel
- Některé hry a enginy, například Pokročilý herní engine Rockstar použito v Grand Theft Auto IV, použijte AES k šifrování herních aktiv, abyste zabránili hackování v multiplayeru.
Hardware
- x86-64 a PAŽE procesory zahrnují Sada instrukcí AES.
- Na IBM zSeries mainframes, AES je implementován jako řada KM assemblerových kódů, když jsou nainstalována různá zařízení Message Security Assist.
- SPARC Základní procesory S3 zahrnují instrukční sadu AES, která se používá s SPARC T4 a SPARC T5 systémy.
Reference
- ^ Dopis vložili tvůrci Daemen a Rijndael
- ^ Původní domovská stránka a archivovaná kopie
- ^ „Microsoft AES Cryptographic Provider“.
- ^ „Průvodce správou systému: Bezpečnostní služby, Kapitola 13 Kryptografický rámec Solaris (přehled)“. Věštec. Září 2010. Citováno 2012-11-27.
- ^ https://www.away32.com/spec2AG.html
- ^ „Get Backup Pro je solidní zálohovací nástroj pro počítače Mac“. Engadget. Citováno 2016-04-26.
- ^ 256bitové šifrování AES s rutinně zvýšenými iteracemi PBKDF2
- ^ PyEyeCrypt na github Okna, OSX a Linux binární soubory a Krajta zdrojový kód obsažený ve verzi v1.1