Fortgeschrittener Verschlüsselungsstandard

Advanced Encryption Standard (AES) ist eine Spezifizierung für die Verschlüsselung von elektronischen Daten. Es ist von der amerikanischen Regierung angenommen worden und wird jetzt weltweit verwendet. Es ersetzt DES. Der durch AES beschriebene Algorithmus ist ein Algorithmus des symmetrischen Schlüssels, bedeutend, dass derselbe Schlüssel sowohl für encrypting als auch für das Entschlüsseln der Daten verwendet wird.

In den Vereinigten Staaten wurde AES vom Nationalen Institut für Standards und Technologie (NIST) als amerikanische FIPS BAR 197 (FIPS 197) am 26. November 2001 nach einem fünfjährigen Standardisierungsprozess bekannt gegeben, in dem fünfzehn konkurrierende Designs präsentiert und bewertet wurden, bevor es als das passendste ausgewählt wurde (sieh Fortgeschrittenen Verschlüsselungsstandardprozess für mehr Details). Es ist als ein Bundesregierungsstandard am 26. Mai 2002 nach der Billigung durch den Sekretär des Handels in Kraft getreten. Es ist in vielen verschiedenen Verschlüsselungspaketen verfügbar. AES ist die erste öffentlich zugängliche und offene Ziffer, die von National Security Agency (NSA) für die heimliche Spitzeninformation genehmigt ist (sieh Sicherheit von AES, unten).

Ursprünglich genannter Rijndael, die Ziffer wurde von zwei belgischen Kryptographen, Joan Daemen und Vincent Rijmen entwickelt, und von ihnen dem AES Auswahlverfahren vorgelegt. Der Name Rijndael ist ein Spiel auf den Namen der zwei Erfinder.

Genau genommen ist AES der Name des Standards, und der beschriebene Algorithmus ist eine (eingeschränkte) Variante von Rijndael. Jedoch in der Praxis wird der Algorithmus auch "AES" genannt.

Beschreibung der Ziffer

AES basiert auf einem als ein Netz der Ersatz-Versetzung bekannten Designgrundsatz. Es ist sowohl in der Software als auch in Hardware schnell. Verschieden von seinem Vorgänger, DES, verwendet AES kein Netz von Feistel.

AES hat eine feste Block-Größe von 128 Bit und eine Schlüsselgröße 128, 192, oder 256 Bit, wohingegen Rijndael mit dem Block und den Schlüsselgrößen in jedem Vielfache von 32 Bit, sowohl mit einem Minimum 128 als auch mit einem Maximum von 256 Bit angegeben wird.

AES funktioniert auf 4×4 Säulenhauptordnungsmatrix von Bytes, hat den Staat genannt (Versionen von Rijndael mit einer größeren Block-Größe haben zusätzliche Säulen im Staat). Die meisten AES Berechnungen werden in einem speziellen begrenzten Feld getan.

Die AES Ziffer wird als mehrere Wiederholungen von Transformationsrunden angegeben, die den Eingang plaintext in die Endproduktion von ciphertext umwandeln. Die Zahl von Zyklen der Wiederholung ist als follows: -

10 Zyklen der Wiederholung für 128-Bit-Schlüssel.

12 Zyklen der Wiederholung für 192-Bit-Schlüssel.

14 Zyklen der Wiederholung für 256-Bit-Schlüssel.

Jede Runde besteht aus mehreren in einer Prozession gehenden Schritten einschließlich desjenigen, der vom Verschlüsselungsschlüssel abhängt. Eine Reihe von Rückrunden wird angewandt, um ciphertext zurück in den ursprünglichen plaintext das Verwenden desselben Verschlüsselungsschlüssels umzugestalten.

Beschreibung auf höchster Ebene des Algorithmus

  1. KeyExpansion — runde Schlüssel werden aus dem Ziffer-Schlüssel mit dem Schlüssel Liste von Rijndael abgeleitet
  2. Anfängliche Runde
  3. — jedes Byte des Staates wird mit dem runden Schlüssel mit bitwise xor verbunden
  4. Runden
  5. — ein nichtlinearer Ersatz geht, wo jedes Byte durch einen anderen gemäß einer Nachschlagetabelle ersetzt wird.
  6. — ein Umstellungsschritt, wohin jede Reihe des Staates zyklisch eine bestimmte Anzahl von Schritten ausgewechselt wird.
  7. — eine sich vermischende Operation, die auf den Säulen des Staates funktioniert, die vier Bytes in jeder Säule verbindend.
  8. Endrunde (kein)

Der Schritt

Im Schritt wird jedes Byte in der Matrix mit einem 8-Bit-Ersatz-Kasten, dem Rijndael S-Kasten aktualisiert. Diese Operation stellt die Nichtlinearität in der Ziffer zur Verfügung. Der verwendete S-Kasten wird aus dem multiplicative Gegenteil über GF (2) abgeleitet, bekannt, gute Nichtlinearitätseigenschaften zu haben. Um auf einfachen algebraischen Eigenschaften gestützte Angriffe zu vermeiden, wird der S-Kasten durch das Kombinieren der umgekehrten Funktion mit einem invertible affine Transformation gebaut. Der S-Kasten wird auch gewählt, um irgendwelche festen Punkte zu vermeiden (und ist auch ein Durcheinander), und auch irgendwelche entgegengesetzten festen Punkte.

Der Schritt

Der Schritt funktioniert auf den Reihen des Staates; es wechselt zyklisch die Bytes in jeder Reihe durch einen bestimmten Ausgleich aus. Für AES wird die erste Reihe unverändert verlassen. Jedes Byte der zweiten Reihe wird diejenige nach links ausgewechselt. Ähnlich werden die dritten und vierten Reihen durch Ausgleiche zwei und drei beziehungsweise ausgewechselt. Für Blöcke von Größen 128 Bit und 192 Bit ist das veränderliche Muster dasselbe. Reihe n wird verlassen Rundschreiben durch n-1 Bytes ausgewechselt. Auf diese Weise wird jede Säule des Produktionsstaates des Schritts aus Bytes aus jeder Säule des Eingangsstaates zusammengesetzt. (Varianten von Rijndael mit einer größeren Block-Größe haben ein bisschen verschiedene Ausgleiche). Für einen 256-Bit-Block ist die erste Reihe unverändert, und die Verschiebung für die zweite, dritte und vierte Reihe ist 1 Byte, 3 Bytes und 4 Bytes beziehungsweise — diese Änderung bewirbt sich nur um die Ziffer von Rijndael, wenn verwendet, mit einem 256-Bit-Block, weil AES 256-Bit-Blöcke nicht verwendet.

Der Schritt

Im Schritt werden die vier Bytes jeder Säule des Staates mit einer invertible geradlinigen Transformation verbunden. Die Funktion nimmt vier Bytes als Eingang und Produktionen vier Bytes, wo jedes Eingangsbyte alle vier Produktionsbytes betrifft. Zusammen damit, stellt Verbreitung in der Ziffer zur Verfügung.

Während dieser Operation wird jede Säule mit der bekannten Matrix multipliziert, die für den 128-Bit-Schlüssel ist

::

\begin {bmatrix }\

2 & 3 & 1 & 1 \\

1 & 2 & 3 & 1 \\

1 & 1 & 2 & 3 \\

3 & 1 & 1 & 2

\end {bmatrix}.

</Mathematik>

Die Multiplikationsoperation wird als definiert: Multiplikation durch 1 Mittel keine Änderung, Multiplikation durch 2 Mittel, die sich nach links und Multiplikation durch 3 Mittel bewegen, die sich nach links bewegen und dann xor mit der Initiale unausgewechselter Wert leisten. Nach der Verschiebung sollte ein bedingter xor mit 0x1B durchgeführt werden, wenn der ausgewechselte Wert größer ist als 0xFF.

Im allgemeineren Sinn wird jede Säule als ein Polynom über GF (2) behandelt und wird dann modulo x+1 mit einem festen Polynom c (x) = 0x03 multipliziert · x + x + x + 0x02. Die Koeffizienten werden in ihrer hexadecimal Entsprechung von der binären Darstellung von Bit-Polynomen von GF (2) [x] gezeigt. Der Schritt kann auch als eine Multiplikation durch eine besondere MDS Matrix in einem begrenzten Feld angesehen werden. Dieser Prozess wird weiter in den Mischungssäulen des Artikels Rijndael beschrieben.

Der Schritt

Im Schritt wird der Subschlüssel mit dem Staat verbunden. Für jede Runde wird ein Subschlüssel aus dem Hauptschlüssel mit der Schlüsselliste von Rijndael abgeleitet; jeder Subschlüssel ist dieselbe Größe wie der Staat. Der Subschlüssel wird durch das Kombinieren jedes Bytes des Staates mit dem entsprechenden Byte des Subschlüssels mit bitwise XOR hinzugefügt.

Optimierung der Ziffer

Auf Systemen mit 32 Bit oder größeren Wörtern ist es möglich, Ausführung dieser Ziffer durch das Kombinieren und mit und das Umwandeln von ihnen in eine Folge des Tisches lookups zu beschleunigen. Das verlangt vier 256-Zugänge-32-Bit-Tische, der insgesamt vier Kilobytes (4096 Bytes) des Gedächtnisses — ein Kilobyte für jeden Tisch verwertet. Eine Runde kann jetzt mit 16 Tisch lookups und 12 32 Bit exklusiv - oder Operationen getan werden, die von vier 32 Bit gefolgt sind, exklusiv - oder Operationen im Schritt.

Wenn die resultierende Vier-Kilobyte-Tabellengröße für eine gegebene Zielplattform zu groß ist, kann der Tisch lookup Operation mit einzelnen 32 256-Zugänge-Bit durchgeführt werden (d. h. 1 Kilobyte) der Tisch durch den Gebrauch des Rundschreibens rotiert.

Mit einer byteorientierten Annäherung ist es möglich, sich, und Schritte in eine einzelne Runde operation.http://code.google.com/p/byte-oriented-aes zu verbinden

Sicherheit

Bis Mai 2009 waren die einzigen erfolgreichen veröffentlichten Angriffe gegen den vollen AES Seitenkanal-Angriffe auf einige spezifische Durchführungen. National Security Agency (NSA) hat alle AES Finalisten einschließlich Rijndael nachgeprüft und hat festgestellt, dass sie alle für nichtklassifizierte Daten der amerikanischen Regierung sicher genug waren. Im Juni 2003 hat die amerikanische Regierung bekannt gegeben, dass AES verwendet werden kann, um Verschlusssache zu schützen:

AES hat 10 Runden für 128-Bit-Schlüssel, 12 Runden für 192-Bit-Schlüssel und 14 Runden für 256-Bit-Schlüssel. Vor 2006 waren die am besten bekannten Angriffe auf 7 Runden für 128-Bit-Schlüssel, 8 Runden für 192-Bit-Schlüssel und 9 Runden für 256-Bit-Schlüssel.

Bekannte Angriffe

Für Kryptographen ist eine kryptografische "Brechung" irgendetwas schneller als eine rohe Gewalt — das Durchführen einer Probe-Dekodierung für jeden Schlüssel (sieh Cryptanalysis). So, ein Angriff gegen einen 256-Bit-Schlüssel-AES das Verlangen von 2 Operationen (im Vergleich zu 2 möglichen Schlüsseln) würde als eine Brechung betrachtet, wenn auch 2 Operationen noch viel länger nehmen würden als das Alter des Weltalls, um zu vollenden. Der größte erfolgreiche öffentlich bekannte Angriff der rohen Gewalt gegen jede Verschlüsselung der Block-Ziffer ist gegen einen RC5 64-Bit-Schlüssel durch distributed.net gewesen.

AES hat eine ziemlich einfache algebraische Beschreibung. 2002, ein theoretischer Angriff, hat den XSL "Angriff" genannt, wurde von Nicolas Courtois und Josef Pieprzyk bekannt gegeben, vorgebend, eine Schwäche im AES Algorithmus wegen seiner einfachen Beschreibung zu zeigen. Seitdem haben andere Papiere gezeigt, dass der Angriff, wie ursprünglich präsentiert, unausführbar ist; sieh XSL-Angriff auf Block-Ziffern.

Während des AES-Prozesses haben Entwickler von konkurrierenden Algorithmen über Rijndael geschrieben, "... wir sind [um seinen] Gebrauch... in gegenüber der Sicherheit kritischen Anwendungen besorgt." Jedoch, am Ende des AES-Prozesses, hat Bruce Schneier, ein Entwickler des konkurrierenden Algorithmus Twofish, geschrieben, dass, während er gedacht hat, erfolgreiche akademische Angriffe auf Rijndael eines Tages entwickelt würden, "Glaube ich nicht, dass jeder jemals einen Angriff entdecken wird, der jemandem erlauben wird, Verkehr von Rijndael zu lesen."

Am 1. Juli 2009, Bruce Schneier blogged

über einen zusammenhängenden Schlüssel greifen auf den 192-bit- und 256-Bit-Versionen von AES an, der von Alex Biryukov und Dmitry Khovratovich, entdeckt ist

der die etwas einfache Schlüsselliste von AES ausnutzt und eine Kompliziertheit 2 hat. Im Dezember 2009 wurde es zu 2 verbessert. Das ist ein Anschluß-zu einem Angriff entdeckt früher 2009 von Alex Biryukov, Dmitry Khovratovich und Ivica Nikolić, mit einer Kompliziertheit 2 für eine aus allen 2 Schlüsseln.

Ein anderer Angriff war blogged durch Bruce Schneier

am 30. Juli 2009 und veröffentlicht als ein Vorabdruck

am 3. August 2009. Dieser neue Angriff, durch Alex Biryukov, Orr Dunkelman, Nathan Keller, Dmitry Khovratovich, und Adi Shamir, ist gegen AES-256, der nur zwei zusammenhängende Schlüssel verwendet und um 2mal den ganzen 256-Bit-Schlüssel einer 9-Runden-Version, oder 2mal für eine 10-Runden-Version mit einem stärkeren Typ des zusammenhängenden Subschlüsselangriffs, oder 2mal für eine 11-Runden-Version wieder zu erlangen. 256-Bit-AES verwendet 14 Runden, so sind diese Angriffe gegen vollen AES nicht wirksam.

Im November 2009 wurde der erste Unterscheiden-Angriff des bekannten Schlüssels gegen eine reduzierte 8-Runden-Version von AES-128 als ein Vorabdruck veröffentlicht.

Dieser Unterscheiden-Angriff des bekannten Schlüssels ist eine Verbesserung des Rückpralls oder des Anfangs von den mittleren Angriffen für AES ähnliche Versetzungen, die zwei Konsekutivrunden der Versetzung als die Anwendung eines so genannten Super-Sbox ansehen. Es arbeitet an der 8-Runden-Version von AES-128, mit einer Zeitkompliziertheit 2 und einer Speicherkompliziertheit 2.

Im Juli 2010 hat Vincent Rijmen eine ironische Zeitung auf "gewählten Schlüsselbeziehungen in den mittleren" Angriffen auf AES-128 veröffentlicht.

Die ersten Schlüsselwiederherstellungsangriffe auf vollen AES waren wegen Andrey Bogdanovs, Dmitry Khovratovichs und Christian Rechbergers, und wurden 2011 veröffentlicht. Der Angriff basiert auf bicliques und ist schneller als rohe Gewalt durch einen Faktor von ungefähr vier. Es verlangt, dass 2 Operationen einen AES-128 Schlüssel wieder erlangen. Für AES-192 und AES-256 sind 2 und 2 Operationen beziehungsweise erforderlich.

Seitenkanal-Angriffe

Seitenkanal-Angriffe greifen die zu Grunde liegende Ziffer nicht an und haben so nichts, um mit seiner Sicherheit, wie beschrieben, hier, aber Angriffsdurchführungen der Ziffer auf Systemen zu tun, die unachtsam Daten durchlassen. Es gibt solche mehreren bekannten Angriffe auf bestimmte Durchführungen von AES.

Im April 2005 hat D.J. Bernstein einen geheimes Lager zeitlich festlegenden Angriff bekannt gegeben, dass er gepflegt hat, einen kundenspezifischen Server zu brechen, der die AES Verschlüsselung von OpenSSL verwendet hat. Der Angriff hat mehr als 200 Millionen gewählte plaintexts verlangt. Der kundenspezifische Server wurde entworfen, um so viel Timing-Information wie möglich (die Server-Berichte zurück die Zahl von Maschinenzyklen auszugeben, die von der Verschlüsselungsoperation genommen sind); jedoch, wie Bernstein darauf hingewiesen hat, "die Präzision der Zeitstempel des Servers reduzierend, oder sie von den Antworten des Servers beseitigend, hört den Angriff nicht auf: Der Kunde verwendet einfach Hin- und Rückfahrt timings gestützt auf seiner lokalen Uhr, und ersetzt das vergrößerte Geräusch, indem er über eine größere Zahl von Proben aufzählt."

Im Oktober 2005 haben Dag Arne Osvik, Adi Shamir und Eran Tromer einen Vortrag gehalten, der mehrere geheimes Lager zeitlich festlegende Angriffe gegen AES demonstriert. Ein Angriff ist im Stande gewesen, einen kompletten AES Schlüssel nach nur 800 Operationen zu erhalten, die Verschlüsselungen in insgesamt 65 Millisekunden auslösen. Dieser Angriff verlangt, dass der Angreifer im Stande ist, Programme auf demselben System oder Plattform zu führen, die AES durchführt.

Im Dezember 2009 wurde ein Angriff auf einige Hardware-Durchführungen veröffentlicht, dass verwendete Differenzialschuld-Analyse und Wiederherstellung eines Schlüssels mit einer Kompliziertheit dessen erlaubt.

Im November 2010 haben Endre Bangerter, David Gullasch und Stephan Krenn eine Zeitung veröffentlicht, die eine praktische Annäherung an "in der Nähe von der" Echtzeitwiederherstellung von heimlichen Schlüsseln von AES-128 ohne das Bedürfnis entweder nach dem verschlüsselten Text oder nach plaintext beschrieben hat. Die Annäherung arbeitet auch an AES-128 Durchführungen, die Kompressionstische wie OpenSSL verwenden. Wie einige frühere Angriffe verlangt dieser die Fähigkeit, willkürlichen Code auf dem System zu führen, das die AES Verschlüsselung durchführt.

http://news.ycombinator.com/item?id=1937902

NIST/CSEC Gültigkeitserklärung

Cryptographic Module Validation Program (CMVP) wird gemeinsam vom Nationalen Institut der USA-Regierung für Standards und Technologie (NIST) Computersicherheit Abteilung und Communications Security Establishment (CSE) der Regierung Kanadas bedient. Der Gebrauch von gültig gemachten kryptografischen Modulen ist von der USA-Regierung für den nicht klassifizierten Gebrauch der Geheimschrift nicht erforderlich. Die Regierung Kanadas empfiehlt auch den Gebrauch von FIPS 140 gültig gemachte kryptografische Module in nicht klassifizierten Anwendungen seiner Abteilungen.

Obwohl NIST Veröffentlichung 197 ("FIPS 197") das einzigartige Dokument ist, das den AES Algorithmus bedeckt, nähern sich Verkäufer normalerweise dem CMVP unter FIPS 140 und bitten, mehrere Algorithmen (wie Dreifacher DES oder SHA1) gültig gemacht zur gleichen Zeit zu haben. Deshalb ist es selten, kryptografische Module zu finden, die einzigartig FIPS sind, nehmen 197 gültig gemachte und NIST selbst nicht allgemein Zeit in Anspruch, um FIPS 197 gültig gemachte Module getrennt auf seiner öffentlichen Website zu verzeichnen. Statt dessen wird FIPS 197 Gültigkeitserklärung normalerweise gerade als ein "genehmigter FIPS verzeichnet: AES" Notation (mit einem spezifischen FIPS 197 Zertifikat-Zahl) in der aktuellen Liste von FIPS 140 gültig gemachte kryptografische Module.

Cryptographic Algorithm Validation Program (CAVP) berücksichtigt http://csrc.nist.gov/groups/STM/cavp/index.html unabhängige Gültigkeitserklärung der richtigen Durchführung des AES Algorithmus an angemessenen Kosten. Erfolgreiche Gültigkeitserklärung läuft auf verzeichnet auf der NIST Gültigkeitserklärungsseite hinaus. Diese Prüfung ist eine Vorbedingung für den FIPS 140-2 Modul-Gültigkeitserklärung, die unten beschrieben ist.

FIPS 140-2 Gültigkeitserklärung ist schwierig, um sowohl technisch als auch fiskalisch zu erreichen. Es gibt eine standardisierte Batterie von Tests sowie ein Element der Quellcoderezension, die über eine Zeitdauer von ein paar Wochen passiert werden muss. Die Kosten, um diese Tests durch ein genehmigtes Laboratorium durchzuführen, können (z.B, die gut Vereinigten Staaten von mehr als 30,000 $) bedeutend sein und schließen die Zeit nicht ein, die man braucht, um ein Modul auf die Gültigkeitserklärung zu schreiben, zu prüfen, zu dokumentieren und vorzubereiten. Nach der Gültigkeitserklärung müssen Module wiedervorgelegt und wiederbewertet werden, wenn sie in jedem Fall geändert werden. Das kann sich von einfachen Schreibarbeiten-Aktualisierungen ändern, wenn sich die Sicherheitsfunktionalität zu einem wesentlicheren Satz davon nicht geändert hat, wieder zu testen, wenn die Sicherheitsfunktionalität durch die Änderung zusammengepresst wurde.

Testvektoren

Testvektoren sind eine Reihe bekannter Ziffern für einen gegebenen Eingang und Schlüssel. NIST verteilt die Verweisung von AES-Testvektoren als AES Vektoren von Known Answer Test (KAT) (im SCHWIRREN-Format).

Leistung

Hohe Geschwindigkeit und niedrige RAM-Voraussetzungen waren Kriterien des AES Auswahlverfahrens. So bringt AES auf einem großen Angebot an der Hardware von klugen 8-Bit-Karten bis Hochleistungscomputer eine gute Leistung.

Auf einem Pentium Pro verlangt AES Verschlüsselung 18 Uhr-Zyklen / Byte, das zu einem Durchfluss von ungefähr 11 MiB/s für einen 200-MHz-Verarbeiter gleichwertig ist. Auf einem Pentium ist M 1.7 GHz Durchfluss ungefähr 60 MiB/s.

Auf Intel i5/i7 Zentraleinheiten, die AES-NI Befehlssatz-Erweiterungsdurchfluss unterstützen, ist über 400MiB/s pro Faden.

Durchführungen

Siehe auch

Zeichen

  • Nicolas Courtois, Josef Pieprzyk, "Cryptanalysis von Block-Ziffern mit Überdefinierten Gleichungssystemen". Pp267-287, ASIACRYPT 2002.
  • Joan Daemen, Vincent Rijmen, "Das Design von Rijndael: AES - Der Fortgeschrittene Verschlüsselungsstandard." Springer, 2002. Internationale Standardbuchnummer 3-540-42580-2.
  • Christof Paar, Jan Pelzl, "Der Fortgeschrittene Verschlüsselungsstandard", Kapitel 4 des "Verstehens der Geheimschrift, Eines Lehrbuches für Studenten und Praktiker". (dazugehörige Website enthält Online-Vorträge auf AES), Springer, 2009.

Außenverbindungen


Am 3. August / Am 26. April
Impressum & Datenschutz