it-swarm-eu.dev

Was bedeuten Schlüsselgröße und Blockgröße in der Kryptographie?

Kann jemand einfach die Bedeutung und den Unterschied zwischen symmetrischem Schlüssel und Blockgröße erklären.

Warum 64 Blockgröße nicht mehr sicher und sie erhöhen es auf 128 (AES, ..., Serpent)? Und was ist mit der Schlüsselgröße?

18
rezx

Ein symmetrischer Schlüsselalgorithmus verwendet denselben Schlüssel sowohl für die Verschlüsselung als auch für die Entschlüsselung. Beispiele für Algorithmen mit symmetrischen Schlüsseln sind AES, 3DES und Blowfish.

Ein asymmetrischer Schlüsselalgorithmus verwendet dagegen zwei Schlüssel, einen zur Verschlüsselung und einen zur Entschlüsselung. Ein asymmetrischer Schlüsselalgorithmus ist so konzipiert, dass es nicht möglich ist, den privaten Schlüssel vom öffentlichen Schlüssel abzuleiten. Ein üblicher asymmetrischer Schlüsselalgorithmus ist RSA.

Der Begriff Blockgröße bezieht sich auf die Blockverschlüsselung. Grundsätzlich gibt es 2 Arten von Chiffren.

Stream-Verschlüsselung - Der Algorithmus verschlüsselt/entschlüsselt die Nachricht jeweils 1 Bit.

Blockverschlüsselung - Der Algorithmus verschlüsselt/entschlüsselt die Nachricht Block für Block, ein Block, der sich auf eine Gruppe von Bits bezieht. Zu den gängigen Blockchiffren gehören AES (funktioniert mit 128-Bit-Blöcken) und Blowfish - funktioniert mit 64-Bit-Blöcken.

Alle diese Informationen finden Sie in den jeweiligen Wikipedia-Einträgen:

http://en.wikipedia.org/wiki/Symmetric-key_algorithm

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/Block_cipher

http://en.wikipedia.org/wiki/Stream_cipher

15
user10211

Sie stellen 2 verschiedene, aber verwandte Fragen.

Warum ist eine 64-Bit-Blockgröße nicht mehr sicher und warum wurde sie auf 128 Bit erhöht?

In einem Blockchiffre werden Klartextdaten einer festen Größe (der Blockgröße) in Chiffretext genau derselben Größe verschlüsselt. Die Gesamtzahl der möglichen Chiffretextblöcke beträgt jedoch nur 2block GrößeWenn Sie nur die Quadratwurzel dieser Anzahl von Blöcken verwenden, haben Sie eine 50% ige Chance, einen doppelten Block zu haben, der Informationen verliert. Die Quadratwurzel von 264 ist 232 und 232 Blöcke von 23 Bytes = 235 Bytes = 32 GiB. Auf einem 1-TiB-Laufwerk mit vollständiger Festplattenverschlüsselung würden Sie also ungefähr 1.000 doppelte Chiffretextblöcke erwarten. (Aus der Formel hier : (240/ 23)2/ 264) Um fair zu sein, ist ein duplizierter Chiffretextblock keine Katastrophe, da Techniken verwendet werden, um sicherzustellen, dass nicht jedes Mal derselbe Klartext mit demselben Chiffretext verschlüsselt wird. Daher ist auch das Gegenteil der Fall: Doppelte Chiffretexte stellen nicht unbedingt doppelte Klartexte dar. Der größere Punkt ist, dass Rechenleistung und Speicherplatz aus 64-Bit-Chiffretextblöcken herausgewachsen sind.

Daher verwenden aktuelle Blockchiffren 128-Bit-Blöcke, sodass es unwahrscheinlich ist, dass in Exbibytes (Millionen von Tebibytes) Daten ein Duplikat angezeigt wird, was für eine Weile ausreichen sollte. Die meisten anderen Angriffsformen werden durch diese Zunahme der Blockgröße auf ähnliche Weise erheblich erschwert.

Was bedeutet Schlüsselgröße und warum ist die Größe wichtig?

Die Schlüsselgröße ist die Größe des "Geheimnisses", das zum Verschlüsseln der Daten verwendet wird. Bei einer perfekten Verschlüsselung müssten Sie jeden möglichen Schlüssel testen, um sicherzustellen, dass Sie einige verschlüsselte Daten entschlüsseln können, und im Durchschnitt müssten Sie die Hälfte der möglichen Schlüssel ausprobieren, um erfolgreich zu sein. Als DES] veröffentlicht wurde, waren 56 Bit groß genug, um "hart genug" zu sein, dass Brute Force im zivilen Computing unvernünftig war. 1998 baute die Electronic Frontier Foundation eine Maschine zum Brute-Force-Entschlüsseln von DES für 250.000 US-Dollar. Mit der Explosion der zivilen Rechenleistung, insbesondere der Nutzung von enorm leistungsfähigem Parallel-Computing in GPUs, werden sogar 128 Bit nur für die niedrigste Ebene klassifizierter Informationen als sicher genug angesehen. GEHEIMNIS.

Außerdem ist keine Verschlüsselung perfekt, und viele Angriffe können einen Teil des Schlüssels wiederherstellen. Längere Schlüssel bieten zusätzliche Sicherheit, da selbst wenn ein Teil des Schlüssels wiederhergestellt wird, noch ein riesiger Schlüsselraum vorhanden ist, der mit brutaler Gewalt angegriffen werden kann.

12
Major Major

AES, 3DES, Blowfish ... sind Blockchiffren . Eine Blockverschlüsselung ist eine Funktion, die als Eingabe Daten Block einer bestimmten Größe (eine feste Anzahl von Bits) und eine Taste (die auch a ist) verwendet Folge von Bits, die nicht unbedingt die gleiche Größe wie der Block haben müssen); und der Ausgang ist ein anderer Block der gleichen Größe wie der Eingabeblock. Außerdem muss für einen festen Schlüssel Die Funktion eine Permutation sein: Zwei unterschiedliche Eingabeblöcke ergeben zwei unterschiedliche Ausgabeblöcke.

Z.B. Triple-DES (auch 3DES genannt) verwendet 64-Bit-Blöcke und 192-Bit-Schlüssel (es kommt vor, dass der Triple-DES-Algorithmus 24 der 192 Schlüsselbits vollständig ignoriert, daher sagen wir das oft Triple-DES verwendet einen 168-Bit-Schlüssel. Bei einer standardkonformen Implementierung wird jedoch ein 192-Bit-Schlüssel (auch bekannt als 24 Byte) erwartet.

Das Verschlüsseln und Entschlüsseln von Blöcken ist in Ordnung, aber normalerweise möchten wir "Nachrichten" verschlüsseln, dh lange Datenbyte-Ströme, deren Länge nicht unbedingt ein Vielfaches der Blockgröße beträgt und die sehr hoch sein kann (z. B. können Sie mehrere verschlüsseln) Gigabyte Datenwert). Um eine Blockverschlüsselung in eine Engine zu verwandeln, die Nachrichten verschlüsseln und entschlüsseln kann, müssen Sie ein Betriebsmodus verwenden. Gute Modi zu machen ist eine Kunst; Es gibt viele subtile Mängel, die die Sicherheit beeinträchtigen können, wenn der Modus nicht gut gestaltet wurde. Die Blockgröße scheint ein wichtiger Faktor zu sein: In den meisten Modi nimmt die Sicherheit manchmal sehr stark ab, wenn die Länge der Eingabenachricht einen Schwellenwert überschreitet, der von der Blockgröße abhängt. Wenn Ihre Blockverschlüsselung n - Bitblöcke verwendet und Sie mehr als 2 verschlüsselnn/2 Datenblöcke, dann sind Sie in Schwierigkeiten. Für eine Blockverschlüsselung, die 64-Bit-Blöcke verwendet, beträgt der Schwellenwert etwa 32 Gigabyte ( 2)32 Blöcke von 8 Bytes). Als DES entworfen wurde, waren 32 Gigabyte Science-Fiction; heutzutage sind 32 Gigabyte ein 20 $ USB-Flash-Laufwerk.

Daher bevorzugen wir jetzt Blockchiffren mit 128-Bit-Blöcken. Es war ein Entwurfskriterium für die AES .

Die Schlüsselgröße ist ein orthogonales Problem. Schlüssel für Blockchiffren sind Folgen von Bits einer bestimmten Länge, die von der internen Struktur der Blockchiffre abhängen. Es ist nicht erforderlich, dass die Schlüssellänge in irgendeiner Weise mit der Blockgröße übereinstimmt. Kryptographen sind jedoch in Binärdateien verliebt, sodass die Schlüssellänge normalerweise eine Potenz von 2 wie 128 oder 256 und die Blockgröße beträgt. AES wurde für die Verwendung von Schlüsseln mit 128, 192 oder 256 Bit definiert.

Was für die Sicherheit benötigt wird, ist, dass es zwei viele mögliche Schlüssel gibt, mit denen ein Angreifer alle ausprobieren kann (das Ausprobieren aller möglichen Schlüssel, bis eine Übereinstimmung gefunden wird, heißt umfassende Suche). Jedes zusätzliche Schlüsselbit verdoppelt die Anzahl der möglichen Schlüsselgrößen. 128-Bit-Schlüssel sind groß genug mit einem komfortablen Rand; Größere Schlüsselgrößen sind für bürokratische Compliance, paranoische Manager und Entwickler gedacht, die sich in ihrer Männlichkeit bedroht fühlen.

3
Thomas Pornin

In Bezug auf Ihre Frage, ob 64 Bit jetzt weniger sicher sind als 128 Bit: Mit jeder Erhöhung der Verarbeitungsleistung dauert es weniger Zeit, sie mit Brute Force zu knacken. Dieser Artikel gibt einen guten Überblick über die Zeit, die benötigt wird, um einen Schlüssel brutal zu erzwingen:

http://tjscott.net/crypto/64bitcrack.htm

Der Artikel geht von 2 Pentium 3,2-GHz-Prozessoren aus. Die Prozessorkapazität steigt ständig und wir sind wahrscheinlich nicht zu weit von handelsüblichen 64-Kern- und sogar 256-Kern-Prozessoren entfernt.

2
Todd Dill