AES-256


Themenpate: @Tifftoffo

AES ist ein allgemein anerkannter Verschlüsselungsstandard, der immer noch als ungebrochen gilt…

https://de.wikipedia.org/wiki/Advanced_Encryption_Standard
https://de.wikipedia.org/wiki/National_Institute_of_Standards_and_Technology
http://www.netzwelt.de/news/128111-verschluesselung-knacken-nsa-co-wirklich-alles.html
http://www.eetimes.com/document.asp?doc_id=1279619

Bild: CC0, Pixabay (https://pixabay.com/en/computer-encrypt-encryption-1294045/)

 

#256 – AES-256

In der heutigen Folge Anerzählt Episode geht es um etwas, mit dem jeder Anerzählt Hörer schonmal zu tun gehabt hat oder besser gesagt täglich mehrmals zu tun hat. Und Dank gebührt dem Twitternutzer @Tifftoffo , der den Vorschlag zum heutigen Thema gemacht hat. Denn für die 256 schlug er vor, über AES-256 zu sprechen. Und AES-256 ist der Advanced Encryption Standard. und die 256 steht dabei für die verwendete Schlüssellänge: 256 Bytes.

Wenn Du Daten verschickst, sei es nun, Du speicherst irgendwas in Deinen Dropbox-Account, oder Du kommunizierst mit Deiner Bank, um eine Überweisung anzustoßen, dann werden diese Daten, diese Informationen, mit denen Du kommunizierst, in aller Regel nicht im Klartext durch’s Netz geschickt. Denn dort kann sie theoretisch jeder lesen, der unterwegs sich in den Datenstrom einklinken kann. Das sind unter Umständen eine ganze Menge Leute.

Oft ist man nämlich schon mit ganz vielen anderen Menschen zusammen im selben Netzwerk. Nehmen wir zum Beispiel an, Du gehst in das Café Deines Vertrauens und wählst Dich ins dortige W-LAN ein. Dann teilst Du Dir dieses Netzwerk mit allen anderen, die sich auch gerade dort befinden. Und es mag sein, dass der ein oder andere dazwischen über die technischen Möglichkeiten und das Wissen verfügt, um einfach mal mitzulauschen. Da ist es dann sehr, sehr nützlich, wenn die Kommunikation, die er dann mitlauscht, verschlüsselt stattfindet.

Verschlüsselung ist eigentlich ziemlich leicht zu erklären. Das machen wir auch schon seit tausenden von Jahren. Die grundsätzliche Idee ist einen Klartext, also die Nachricht, die man eigentlich verschicken möchte, mit einem Regelwerk so zu verändern, dass sie nicht mehr gelesen werden kann und der Empfänger, der die Regel kennt, den Klartext wieder herstellen kann. Wie genau diese Umformung von Klartext in verschlüsselten Text oder Ciphertext, wie man das in Fachkreisen nennt, stattfindet und wie genau diese Regel oder ein Schlüssel übertragen werden muss, damit der Empfänger ihn wieder entschlüsseln kann, das ist nun genau der Gegenstand von Verschlüsselungsstandards.

Im Grunde kennen wir zwei große Kategorien von Verschlüsselungsverfahren, nämlich sogenannte symmetrische Algorithmen und asymetrische Algorithmen. Bei symmetrischen Verfahren ist es so, dass der Sender und der Empfänger sich ein Geheimnis teilen und dieses Geheimnis dient zum Verschlüsseln und entschlüsseln unserer Daten. Alltagsbeispiel für diese Art der Verschlüsselung gibt es einige. Wer zum Beispiel typische Office-Produkte verwendet, um Texte und Tabellenkalkulationen zu bearbeiten und die schonmal passwortgeschützt hat, hat genau so etwas angewandt. In dem Fall werden nämlich die Daten komplett verschlüsselt und durch die Eingabe eines Passworts wieder zugänglich.

Wenn ich jetzt nun jemandem mein Spread Sheet oder mein Dokument schicke, kann ich ihm gleichzeitig noch dazu das Passwort nennen und dann kann derjenige mit Hilfe des Passworts auch darauf zugreifen. Dieses Passwort ist dann das shared secret. Der Algorithmus ist ein symmetrisches Verschlüsselungsverfahren.

Bei asymmetrischen Verfahren funktioniert das ganze etwas anders und es wäre auch etwas aufwendiger zu erklären, wenn es denn heute darum gehen würde. Nur ganz kurz: Beim asymmetrischen Verfahren ist der Schlüssel zum Verschlüsseln und der Schlüssel zum Entschlüsseln unterschiedlich. Dadurch wird beispielsweise möglich, dass ich einen Schlüssel öffentlich zum Download anbiete, mit dem jemand, der mir etwas schicken möchte, Nachrichten verschlüsseln kann und ich bin dann der Einzige, der mit dem Gegenstück zu diesem öffentlichen Schlüssel wieder entschlüsseln kann.

Aber drehen wir mal die Kurve zurück zu AES-256. Es handelt sich bei AES-256 um ein symmetrisches Verfahren. Das heißt also, beiden Seiten, Sender wie Empfänger, müssen den Schlüssel kennen mit dem sie arbeiten und es muss derselbe Schlüssel sein. Im Fall von AES-256 ist der Schlüssel 256 Bit lang. Dieser geteilte Schlüssel ist meistens auch eine der größten Probleme bei diesem Verfahren – das aber nur so am Rande erwähnt. Denn wenn ich einen gemeinsamen Schlüssel habe, dann habe ich immer auch automatisch das Problem: Wie beschütze ich denn diesen Schlüssel? Irgendwann muss ich meiner Gegenseite mal mitteilen, wie denn dieser Schlüssel aussieht. Und je nach dem wo ich das mache, in welchem Kontext, ist das unter Umständen ein Problem.

Wir reden ja hier nicht von kleinen Passworten, sondern wir reden hier von 256 Bit und die werden in aller Regel von Computer zu Computer übertragen, meist auch noch über dieselben Netzwerken, über die dann später kommuniziert wird. Das heißt natürlich auch über die Netzwerke, in denen eben eventuell jemand anders mit lauschen könnte.

AES jedenfalls ist der Algorithmus hinter einer ganzen Menge Transaktionen. Dafür gibt es einen ganz einfachen Grund: Es ist praktisch ein Standard. Ein Standard der von sogenannten National Institute of Standards and Technology (NIST), sowas wie die amerikanische DIN-Institution, herausgegeben wurde, und zwar im Oktober 2000. Und AES ist ein recht schöner Standard muss man sagen. Er ist komplett offen zugänglich. Er kann lizenzgebührfrei eingesetzt werden; er kann in Software und in Hardware umgesetzt werden und er ist derart gut, dass er in den USA für die Verschlüsselung von staatlichen Dokumenten mit der höchsten Geheimhaltungsstufe zugelassen wurde.

Interessant ist speziell bei AES auch, wie denn genau festgelegt wurde, auf welche Art und Weise denn Verschlüsselung stattzufinden hat. Denn grundsätzlich mal gibt es jetzt eine ganze Reihe von verschiedenen Algorhitmen, die miteinander konkurrieren. Warum genau dieser Algorithmus als Standard? Das ist auch recht schnell erklärt, aber wie ich finde spannend vom Ablauf her und gilt auch heute noch als praktisch Idealverlauf einer solchen Diskussion.

Das Grundproblem war, dass es schon einen Verschlüsselungsstandard gab. Den Data Encryption Standard und der war eigentlich zu nichts mehr zu gebrauchen. Denn spätestens seit den 90er konnte man den mit brachialer Gewalt aushebeln. Die Schlüssellänge war mit 56 Bit nicht gerade üppig und man konnte in den 90er schon mit damals gebräuchlicher Hardware einfach mal eben alle Schlüssel durchprobieren, bis man den Klartext vor sich hatte. Ganz grundsätzlich ist diese Art des Angriffs – das wird Force Attacke genannt – eigentlich mit jedem Verschlüsselungsverfahren möglich. Allerdings ist es so, dass mit zunehmender Schlüssellänge der Zeitaufwand, um den richtigen Schlüssel zu erraten, ansteigt.

Nimmt man zum Beispiel eine Schlüssellänge von 128 Bit und den schnellsten Computer, den die Menschheit heute zur Verfügung hat und nehmen wir an, dass wir mindestens die Hälfte aller möglichen Kombinationen durchprobieren müssen, um mal durch Zufall den richtigen Schlüssel zu erwischen, dann würde das Knacken dieses Schlüssels 500 Millionen Milliarden Jahre dauern. Da ist das gesamte Universum mit seinen 13,5 Milliarden Alter ja ein Klax gegen. Das heißt, entweder findet man einen Weg den Schlüssel irgendwie abzugreifen oder man findet einen grundsätzlichen Weg, um den Algorithmus, in dem Fall AES-128 zu knacken und wenn das beides nicht funktioniert, dann braucht man viel, viel Zeit.

Aber nochmal den Bogen zurück: Der Algorithmus, der in Verwendung war, galt eben als überholt und nicht mehr sicher und es wurde ein neuer gesucht. Um diesen neuen Algorithmus festzulegen, schrieb also dieses Standardisierungsgremium einen Wettbewerb aus. Für diesen Wettbewerb, der mit einer Kryptographiekonferenz gestartet wurde ganz am Anfang, gab es dann 15 verschiedene Einreichungen. Diese 15 verschiedenen Einreichungen mussten dann auf verschiedenen Kriterien hin abgeklopft werden. So sollte zum Beispiel die Implementation möglichst einfach sein. Das ganze sollte ohne Lizenzgebühren aus Dritthand möglich sein. Der Algorithmus musste leicht in Software und Hardware umgesetzt werden können. Verschiedene Schlüssellängen wurden vorgegeben, eben auch 128 Bit und 256 Bit als Schlüssellängen.

Gewonnen hat dann ein Algorithmus von einem belgischen Forscherteam. Joan Daemen und Vincent Rijmen. Der Algorithmus hieß dann, benannt nach Teilen der Nachnamen der beiden, Rijdae Algorithmus und kam mit gerade mal 500 Zeilen Code aus. Durch die Standardisierung wurde dann dieser Algorithmus auch industrieweit umgesetzt. Und gerade als Programmierer ist es sehr, sehr einfach mit zum Teil nur eine Zeile Code Daten per AES-256 ordentlich zu verschlüsseln. Das Verfahren, mit dem AES gefunden und festgelegt wurde, die gilt unter Kryptographie-Experten immernoch praktisch als Goldstandard. So sollte man es immer machen.

Bis bald.

Kommentar verfassen

%d Bloggern gefällt das: