Block-Ziffer

In der Geheimschrift ist eine Block-Ziffer ein deterministischer Algorithmus, der auf Gruppen der festen Länge von Bit, genannt Blöcke mit einer unveränderlichen Transformation funktioniert, die durch einen symmetrischen Schlüssel angegeben wird. Block-Ziffern sind wichtige elementare Bestandteile im Design von vielen kryptografischen Protokollen und werden weit verwendet, um Verschlüsselung von Hauptteil-Daten durchzuführen.

Das moderne Design von Block-Ziffern basiert auf dem Konzept einer wiederholten Produktziffer. Produktziffern wurden angedeutet und von Claude Shannon in seiner Samen-1949-Veröffentlichungsnachrichtentheorie von Geheimhaltungssystemen als ein Mittel analysiert, Sicherheit durch das Kombinieren einfacher Operationen wie Ersetzungen und Versetzungen effektiv zu verbessern. Wiederholte Produktziffern führen Verschlüsselung in vielfachen Runden, jeder aus, der einen verschiedenen Subschlüssel verwendet, ist auf den ursprünglichen Schlüssel zurückzuführen gewesen. Eine weit verbreitete Durchführung solcher Ziffern wird ein Netz von Feistel genannt, hat nach Horst Feistel genannt, und hat namentlich in der DES Ziffer durchgeführt. Viele andere Verwirklichungen von Block-Ziffern, wie der AES, werden als Netze der Ersatz-Versetzung klassifiziert.

Die Veröffentlichung der DES Ziffer durch das amerikanische Nationale Büro von Standards (jetzt Nationales Institut für Standards und Technologie, NIST) 1977 war im öffentlichen Verstehen des modernen Block-Ziffer-Designs grundsätzlich. Ebenso hat es die akademische Entwicklung von Cryptanalytic-Angriffen beeinflusst. Sowohl unterschiedlicher als auch geradliniger cryptanalysis ist aus Studien auf dem DES Design entstanden. Heute gibt es eine Palette von Angriffstechniken, dass eine Block-Ziffer sicher sein muss gegen, zusätzlich dazu robust gegen Angriffe der rohen Gewalt zu sein.

Sogar eine sichere Block-Ziffer ist nur für die Verschlüsselung eines einzelnen Blocks unter einem festen Schlüssel passend. Eine Menge von Weisen von Operationen ist entworfen worden, um ihr wiederholtes zu erlauben, das auf eine sichere Weise verwendet ist, allgemein die Sicherheitsziele der Verschlüsselung und Beglaubigung zu erreichen. Jedoch können Block-Ziffern auch als Bausteine in anderen kryptografischen Protokollen, wie universale Kuddelmuddel-Funktionen und pseudozufällige Zahlengeneratoren verwendet werden.

Definition

Eine Block-Ziffer besteht aus zwei paarweise angeordneten Algorithmen, ein für die Verschlüsselung, E, und anderen für die Dekodierung, D. Beide Algorithmen akzeptieren zwei Eingänge: ein Eingangsblock der Größe n Bit und ein Schlüssel der Größe k Bit; und beider geben einen N-Bit-Produktionsblock nach. Der Dekodierungsalgorithmus D wird definiert, um die umgekehrte Funktion der Verschlüsselung, d. h., D = E zu sein. Mehr formell wird eine Block-Ziffer durch eine Verschlüsselungsfunktion angegeben

:

der als Eingang einen Schlüssel K von der Bit-Länge k, genannt die Schlüsselgröße und wenig Schnur P von der Länge n, genannt die Block-Größe nimmt, und eine Schnur C von n Bit zurückgibt. P wird den plaintext genannt, und C wird der ciphertext genannt. Für jeden K ist die Funktion E (P) erforderlich, ein invertible zu sein, der auf {0,1} kartografisch darstellt. Das Gegenteil für E wird als eine Funktion definiert

:

einen Schlüssel K und einen ciphertext C nehmend, um einen Plaintext-Wert P, solch dass zurückzugeben

:

Zum Beispiel könnte ein Block-Ziffer-Verschlüsselungsalgorithmus einen 128-Bit-Block von plaintext, wie eingegeben und Produktion ein entsprechender 128-Bit-Block von ciphertext nehmen. Die genaue Transformation wird mit einem zweiten Eingang - der heimliche Schlüssel kontrolliert. Dekodierung ist ähnlich: Der Dekodierungsalgorithmus, nimmt in diesem Beispiel, einem 128-Bit-Block von ciphertext zusammen mit dem heimlichen Schlüssel, und gibt den ursprünglichen 128-Bit-Block des Klartextes nach.

Für jeden Schlüssel K ist E eine Versetzung (bijektiv kartografisch darzustellen), über den Satz von Eingangsblöcken. Jeder Schlüssel wählt eine Versetzung vom möglichen Satz dessen aus.

Design

Wiederholte Block-Ziffern

Die meisten Block-Ziffer-Algorithmen werden als wiederholte Block-Ziffern klassifiziert, was bedeutet, dass sie Blöcke der festen Größe des Klartextes in identische Größe-Blöcke von ciphertext über die wiederholte Anwendung einer invertible Transformation umgestalten, die als die runde Funktion mit jeder als eine Runde gekennzeichneten Wiederholung bekannt ist.

Gewöhnlich nimmt die runde Funktion R verschiedene runde Schlüssel K als der zweite Eingang, die aus dem ursprünglichen Schlüssel abgeleitet werden:

:

wo der plaintext und der ciphertext mit r ist die runde Zahl zu sein.

Oft wird das Schlüsselweißen zusätzlich dazu verwendet. Am Anfang und dem Ende werden die Daten mit dem Schlüsselmaterial modifiziert (häufig mit XOR, aber einfache arithmetische Operationen wie das Hinzufügen und Abziehen werden auch verwendet):

:::

Netze der Ersatz-Versetzung

Ein wichtiger Typ der wiederholten als ein Netz der Ersatz-Versetzung (SPN) bekannten Block-Ziffer nimmt einen Block des plaintext und des Schlüssels als Eingänge, und wendet mehrere Wechselrunden an, die aus einer Ersatz-Bühne bestehen, die von einer Versetzungsbühne gefolgt ist - um jeden Block der ciphertext Produktion zu erzeugen. Die nichtlineare Ersatz-Bühne mischt die Schlüsselbit mit denjenigen des plaintext, die Verwirrung von Shannon schaffend. Die geradlinige Versetzungsbühne zerstreut dann Redundanzen, Verbreitung schaffend.

Ein Ersatz-Kasten (S-Kasten) setzt einen kleinen Block von Eingangsbit mit einem anderen Block von Produktionsbit ein. Dieser Ersatz muss isomorph sein, um invertibility (folglich Dekodierung) zu sichern. Ein sicherer S-Kasten wird das Eigentum haben, das das Ändern eines Eingangs gebissen hat, wird die ungefähr Hälfte der Produktionsbit durchschnittlich ändern, ausstellend, was als die Lawine-Wirkung bekannt ist - d. h. es das Eigentum hat, das jede Produktion gebissen hat, wird von jedem Eingangsbit abhängen.

Ein Versetzungskasten (P-Kasten) ist eine Versetzung aller Bit: Es nimmt die Produktionen aller S-Kästen einer Runde, permutiert die Bit, und füttert sie in die S-Kästen der nächsten Runde. Ein guter P-Kasten hat das Eigentum, dass die Produktionsbit jedes S-Kastens zu so vielen S-Kasten-Eingängen wie möglich verteilt werden.

An jeder Runde wird der runde Schlüssel (erhalten beim Schlüssel mit einigen einfachen Operationen, zum Beispiel, mit S-Kästen und P-Kästen) mit etwas Gruppenoperation, normalerweise XOR verbunden.

Dekodierung wird durch das einfache Umkehren des Prozesses getan (die Gegenteile der S-Kästen und P-Kästen verwendend und die runden Schlüssel in der umgekehrten Ordnung anwendend).

Ziffern von Feistel

In einer Ziffer von Feistel wird der Block des Klartextes, um encrypted zu sein, in zwei gleich-große Hälften gespalten. Die runde Funktion wird auf eine Hälfte mit einem Subschlüssel angewandt, und dann ist die Produktion XORed mit der anderen Hälfte. Die zwei Hälften werden dann getauscht.

Lassen Sie, die runde Funktion zu sein und zu lassen

seien Sie die Subschlüssel für die Runden beziehungsweise.

Dann ist die grundlegende Operation wie folgt:

Spalten Sie den Plaintext-Block in zwei gleiche Stücke,

Für jede Runde, schätzen Sie

:

:.

Dann ist der ciphertext.

Die Dekodierung eines ciphertext wird durch die Computerwissenschaft für vollbracht

::.

Dann ist der plaintext wieder.

Ein Vorteil des Modells von Feistel im Vergleich zu einem Netz der Ersatz-Versetzung besteht darin, dass die runde Funktion invertible nicht sein muss.

Verfahrensweisen

Eine Block-Ziffer erlaubt allein Verschlüsselung nur eines einzelnen Datenblocks der Block-Länge der Ziffer. Für eine Nachricht der variablen Länge müssen die Daten zuerst in getrennte Ziffer-Blöcke verteilt werden. Im einfachsten Fall, der als der elektronische codebook (EZB) Weise bekannt ist, wird eine Nachricht zuerst in getrennte Blöcke der Block-Größe der Ziffer gespalten (vielleicht den letzten Block mit dem Polstern von Bit erweiternd), und dann ist jeder Block encrypted und entschlüsselt unabhängig. Jedoch ist solch eine naive Methode allgemein unsicher, weil gleiche Plaintext-Blöcke immer gleiche Ciphertext-Blöcke (für denselben Schlüssel) erzeugen werden, so werden Muster in der plaintext Nachricht offensichtlich in der ciphertext Produktion.

Um diese Beschränkung zu überwinden, sind mehrere so genannte Block-Ziffer-Verfahrensweisen entworfen und in nationalen Empfehlungen wie NIST 800-38A und BSI TR-02102 und internationale Standards wie ISO/IEC 10116 angegeben worden. Das Gesamtkonzept soll randomization der plaintext Daten verwenden, die auf einem zusätzlichen Eingangswert oft gestützt sind, genannt einen Initialisierungsvektoren, um zu schaffen, was probabilistic Verschlüsselung genannt wird. In der populären Weise des Ziffer-Block-Ankettens (CBC) für die Verschlüsselung, um sicher zu sein, muss der zusammen mit der plaintext Nachricht passierte Initialisierungsvektor ein zufälliger oder pseudozufälliger Wert sein, der in einem exklusiven - oder Weise zum ersten Plaintext-Block hinzugefügt wird, bevor es encrypted ist. Das Endergebnis ciphertext Block wird dann als der neue Initialisierungsvektor für den folgenden Plaintext-Block verwendet. Im Ziffer-Feed-Back (CFB) ist Weise, die mit einer gleichzeitig selbstseienden Strom-Ziffer, der Initialisierungsvektor wetteifert, der erste encrypted und hat dann zum Plaintext-Block beigetragen. Das Produktionsfeed-Back (OFB) Weise wiederholt encrypts der Initialisierungsvektor, um einen Schlüsselstrom für den Wetteifer einer gleichzeitigen Strom-Ziffer zu schaffen. Der neuere Schalter (CTR) schafft Weise ähnlich einen Schlüsselstrom, aber ist im Vorteil, nur einzigartig und nicht (pseudo-) zufällige Werte als Initialisierungsvektoren zu brauchen; die erforderliche Zufälligkeit wird innerlich durch das Verwenden des Initialisierungsvektoren als ein Block-Schalter und encrypting dieser Schalter für jeden Block abgeleitet.

Aus einem mit der Sicherheit theoretischen Gesichtspunkt müssen Verfahrensweisen zur Verfügung stellen, was als semantische Sicherheit bekannt ist. Informell bedeutet es, dass gegeben ein ciphertext unter einem unbekannten Schlüssel man keine Information vom ciphertext (anders praktisch ableiten kann als die Länge der Nachricht) darüber, was man gewusst hätte, ohne den ciphertext zu sehen. Es ist gezeigt worden, dass alle Weisen, die oben mit Ausnahme von der Weise von EZB besprochen sind, dieses Eigentum unter so genannten gewählten Plaintext-Angriffen zur Verfügung stellen.

Polstern

Einige Weisen wie die CBC Weise funktionieren nur auf ganzen Plaintext-Blöcken. Einfach das Verlängern des letzten Blocks einer Nachricht mit Nullbit ist ungenügend, da es keinem Empfänger erlaubt, Nachrichten leicht zu unterscheiden, die sich nur im Betrag unterscheiden, Bit auszupolstern. Noch wichtiger solch eine einfache Lösung verursacht sehr effiziente Polstern-Orakel-Angriffe. Ein passendes Polstern-Schema ist deshalb erforderlich, um den letzten Plaintext-Block zur Block-Größe der Ziffer zu erweitern. Während, wie man gezeigt hat, viele populäre Schemas, die in Standards und in der Literatur beschrieben sind, für das Polstern von Orakel-Angriffen verwundbar gewesen sind, ist eine Lösung, die ein ein Bit hinzufügt und dann den letzten Block mit Nullbit, standardisiert als "Polstern der Methode 2" in ISO/IEC 9797-1 erweitert, sicher gegen diese Angriffe bewiesen worden.

Cryptanalysis

Angriffe der rohen Gewalt

Wegen einer Block-Ziffer-Eigenschaft als eine Invertible-Funktion wird seine Produktion unterscheidbar von einer aufrichtig zufälligen Produktionsschnur mit der Zeit wegen des Geburtstag-Problems. Dieses Eigentum läuft auf die Sicherheit der Ziffer hinaus, um sich quadratisch abzubauen und muss in Betracht gezogen werden, wenn es eine Block-Größe auswählt. Es gibt einen Umtausch, obwohl weil große Block-Größen auf den Algorithmus hinauslaufen können, um ineffizient zu werden, um zu funktionieren. Früher haben Block-Ziffern wie der DES normalerweise eine 64-Bit-Block-Größe ausgewählt, während neuere Designs wie der AES Block-Größen von 128 Bit oder mehr mit einigen Ziffern unterstützen, die eine Reihe verschiedener Block-Größen unterstützen.

Differenzial cryptanalysis

Geradliniger cryptanalysis

Geradliniger cryptanalysis ist eine Form von cryptanalysis, der auf der Entdeckung affine Annäherungen an die Handlung einer Ziffer gestützt ist. Geradliniger cryptanalysis ist einer der zwei am weitesten verwendeten Angriffe auf Block-Ziffern; der andere, unterschiedlicher cryptanalysis seiend.

Die Entdeckung wird Mitsuru Matsui zugeschrieben, der zuerst die Technik auf die FEAL Ziffer (Matsui und Yamagishi, 1992) angewandt hat.

Integrierter cryptanalysis

Integrierter cryptanalysis ist ein Cryptanalytic-Angriff, der besonders anwendbar ist, um auf Netzen der Ersatz-Versetzung gestützte Ziffern zu blockieren. Verschieden vom Differenzial cryptanalysis, der Paare von gewähltem plaintexts mit einem festen XOR Unterschied, integrierten Cryptanalysis-Gebrauch-Sätzen oder sogar Mehrsätzen von gewähltem plaintexts verwendet, dessen Teil festgehalten wird und ändert sich ein anderer Teil durch alle Möglichkeiten. Zum Beispiel könnte ein Angriff 256 gewählte plaintexts verwenden, die alle außer 8 ihrer Bit dasselbe haben, aber alle unterscheiden sich in jenen 8 Bit. Solch ein Satz hat notwendigerweise eine XOR Summe 0, und die XOR Summen der entsprechenden Sätze von ciphertexts geben Auskunft über die Operation der Ziffer. Diese Unähnlichkeit zwischen den Unterschieden von Paaren von Texten und den Summen von größeren Sätzen von Texten hat den Namen "integrierter cryptanalysis" begeistert, die Fachsprache der Rechnung leihend.

Andere Techniken

Zusätzlich zu geradlinigem und unterschiedlichem cryptanalysis gibt es einen wachsenden Katalog von Angriffen: Gestutztes Differenzial cryptanalysis, teilweises Differenzial cryptanalysis, integrierter cryptanalysis, der quadratische und integrierte Angriffe, Gleiten-Angriffe, Bumerang-Angriffe, den XSL-Angriff, unmögliches Differenzial cryptanalysis und algebraische Angriffe umfasst. Für ein neues Block-Ziffer-Design, um jede Vertrauenswürdigkeit zu haben, muss es Beweise der Sicherheit gegen bekannte Angriffe demonstrieren.

Nachweisbare Sicherheit

Standardmodell

Ideales Ziffer-Modell

Praktische Einschätzung

Block-Ziffern können gemäß vielfachen Kriterien in der Praxis bewertet werden. Gemeinsame Faktoren schließen ein:

  • Schlüsselrahmen, wie seine Schlüsselgröße und Block-Größe, haben beide, die einen oberen zur Verfügung stellen, zur Sicherheit der Ziffer gebunden.
  • Das geschätzte Sicherheitsniveau, das auf dem im Block-Ziffer-Design gewonnenen Vertrauen basiert, nachdem es Hauptanstrengungen in cryptanalysis mit der Zeit, der mathematischen Stichhaltigkeit des Designs, und der Existenz von praktischen oder den Certificational-Angriffen größtenteils widerstanden hat.
  • Die Kompliziertheit der Ziffer und seine Eignung für die Durchführung in der Hardware oder Software. Hardware-Durchführungen können die Kompliziertheit in Bezug auf die Tor-Zählung oder den Energieverbrauch messen, die wichtige Rahmen für quellengezwungene Geräte sind.
  • Die Leistung der Ziffer, in Bezug auf Durchfluss auf verschiedenen Plattformen einschließlich seiner Speichervoraussetzungen zu bearbeiten.
  • Die Kosten der Ziffer, die sich auf das Genehmigen von Voraussetzungen bezieht, die wegen Rechte des geistigen Eigentums gelten können.
  • Die Flexibilität der Ziffer, die seine Fähigkeit einschließt, vielfache Schlüsselgrößen und Block-Längen zu unterstützen.

Bemerkenswerte Block-Ziffern

Luzifer / DES

Wie man

allgemein betrachtet, ist Luzifer die erste Zivilblock-Ziffer, die an IBM in den 1970er Jahren entwickelt ist, der auf der geleisteten Arbeit durch Horst Feistel gestützt ist. Eine revidierte Version des Algorithmus wurde als ein amerikanischer Regierungsbundesinformationsverarbeitungsstandard angenommen: FIPS BAR 46 Data Encryption Standard (DES). Es wurde vom amerikanischen Nationalen Büro von Standards (NBS) nach einer öffentlichen Einladung für Vorlagen und einige innere Änderungen durch NBS (und, potenziell, der NSA) gewählt. DES wurde 1976 öffentlich veröffentlicht und ist weit verwendet worden.

DES wurde zu unter anderem entworfen, widerstehen Sie einem bestimmten Cryptanalytic-Angriff, der dem NSA bekannt ist und von IBM, obwohl unbekannt, öffentlich bis wieder entdeckt, wieder wieder entdeckt ist und von Eli Biham und Adi Shamir gegen Ende der 1980er Jahre veröffentlicht ist. Die Technik wird unterschiedlichen cryptanalysis genannt und bleibt einer von den wenigen allgemeinen Angriffen gegen Block-Ziffern; geradliniger cryptanalysis ist ein anderer, aber kann sogar dem NSA vor seiner Veröffentlichung von Mitsuru Matsui unbekannt gewesen sein. DES hat einen großen Betrag anderer Arbeit und Veröffentlichungen in der Geheimschrift und cryptanalysis in der offenen Gemeinschaft veranlasst, und es hat viele neue Ziffer-Designs begeistert.

DES hat eine Block-Größe von 64 Bit und eine Schlüsselgröße von 56 Bit. 64-Bit-Blöcke sind in Block-Ziffer-Designs nach DES üblich geworden. Schlüssellänge hat von mehreren Faktoren einschließlich der Regierungsregulierung abgehangen. Viele Beobachter haben in den 1970er Jahren kommentiert, dass die für DES verwendete 56-Bit-Schlüssellänge zu kurz war. Als Zeit weitergegangen ist, ist seine Unangemessenheit offenbar besonders geworden, nachdem eine spezielle Zweck-Maschine vorgehabt hat zu brechen, wurde DES 1998 durch das Elektronische Grenzfundament demonstriert. Eine Variante von DES, Verdreifachen Sie DES, verdreifachen Sie jeden Block mit beiden zwei unabhängige Schlüssel (112-Bit-Schlüssel und 80-Bit-Sicherheit) oder drei unabhängige Schlüssel (168-Bit-Schlüssel und 112-Bit-Sicherheit)-encrypts. Es wurde als ein Ersatz weit angenommen. Bezüglich 2011 wird die Drei-Schlüssel-Version noch sicher betrachtet, obwohl das Nationale Institut für Standards und Technologie (NIST) Standards nicht mehr den Gebrauch der Zwei-Schlüssel-Version in neuen Anwendungen wegen seines 80-Bit-Sicherheitsniveaus erlaubt.

IDEE

International Data Encryption Algorithm (IDEA) ist eine Block-Ziffer, die von James Massey aus ETH Zürich und Xuejia Lai entworfen ist; es wurde zuerst 1991 als ein beabsichtigter Ersatz für DES beschrieben.

IDEE funktioniert auf 64-Bit-Blöcken mit einem 128-Bit-Schlüssel, und besteht aus einer Reihe von acht identischen Transformationen (eine Runde, sieh die Illustration), und eine Produktionstransformation (das halbrunde). Die Prozesse für die Verschlüsselung und Dekodierung sind ähnlich. IDEE leitet viel von seiner Sicherheit durch das Durchschießen von Operationen von verschiedenen Gruppen - Modulhinzufügung und Multiplikation, und bitwise exklusiv oder (XOR) ab - die in einem Sinn algebraisch "unvereinbar" sind.

Die Entwerfer haben IDEE analysiert, seine Kraft gegen das Differenzial cryptanalysis zu messen, und haben beschlossen, dass es unter bestimmten Annahmen geschützt ist. Keine erfolgreichen geradlinigen oder algebraischen Schwächen sind berichtet worden., der beste Angriff, der für alle Schlüssel gilt, kann IDEE brechen, die auf 6 Runden reduziert ist (die volle IDEE-Ziffer verwendet 8.5 Runden).

RC5

RC5 ist eine Block-Ziffer, die von Ronald Rivest 1994 entworfen ist, der, verschieden von vielen anderen Ziffern, eine variable Block-Größe (32, 64 oder 128 Bit), Schlüsselgröße (0 bis 2040 Bit) und Zahl von Runden (0 bis 255) hat. Die ursprüngliche angedeutete Wahl von Rahmen war eine Block-Größe von 64 Bit, ein 128-Bit-Schlüssel und 12 Runden.

Ein Hauptmerkmal von RC5 ist der Gebrauch von datenabhängigen Folgen; eine der Absichten von RC5 sollte die Studie und Einschätzung solcher Operationen wie ein kryptografischer Primitiver veranlassen. RC5 besteht auch aus mehreren Modulhinzufügungen und XORs. Die allgemeine Struktur des Algorithmus ist ein Feistel ähnliches Netz. Die Verschlüsselung und Dekodierungsroutinen können in einigen Linien des Codes angegeben werden. Die Schlüsselliste ist jedoch komplizierter, den Schlüssel mit einer im Wesentlichen Einwegfunktion mit den Binärentwicklungen sowohl von e als auch vom goldenen Verhältnis als Quellen von "nichts meine Ärmel-Zahlen" ausbreitend. Die peinigende Einfachheit des Algorithmus zusammen mit der Neuheit der datenabhängigen Folgen hat RC5 einen attraktiven Gegenstand der Studie für cryptanalysts gemacht.

12-Runden-RC5 (mit 64-Bit-Blöcken) ist gegen einen Differenzialangriff mit 2 gewählten plaintexts empfindlich. 18-20 Runden werden als genügend Schutz angedeutet.

Rijndael / AES

DES ist als ein USA-Bundesstandard durch den AES ersetzt worden, der durch NIST 2001 nach einer 5-jährigen öffentlichen Konkurrenz angenommen ist. Die Ziffer wurde von zwei belgischen Kryptographen, Joan Daemen und Vincent Rijmen entwickelt, und hat unter dem Namen Rijndael vorgelegt.

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 mit einem Minimum von 128 Bit angegeben werden kann. Der blocksize hat ein Maximum von 256 Bit, aber der keysize hat kein theoretisches Maximum. 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).

Blowfish

Blowfish ist eine Block-Ziffer, entworfen 1993 von Bruce Schneier und eingeschlossen in eine Vielzahl von Ziffer-Gefolgen und Verschlüsselungsprodukten. Blowfish hat eine 64-Bit-Block-Größe und eine variable Schlüssellänge von 1 Bit bis zu 448 Bit. Es ist eine 16-Runden-Ziffer von Feistel und verwendet große schlüsselabhängige S-Kästen. Bemerkenswerte Eigenschaften des Designs schließen die schlüsselabhängigen S-Kästen und eine hoch komplizierte Schlüsselliste ein.

Schneier hat Blowfish als ein Mehrzweckalgorithmus entworfen, der als eine Alternative zum alternden DES und frei von den Problemen und mit anderen Algorithmen vereinigten Einschränkungen beabsichtigt ist. Zurzeit wurde Blowfish veröffentlicht, viele andere Designs waren Eigentums-, durch Patente belastet oder waren kommerzielle/Regierung Geheimnisse. Schneier hat festgestellt, dass, "ist Blowfish nicht patentiert, und wird so in allen Ländern bleiben. Der Algorithmus wird hiermit ins öffentliche Gebiet gelegt, und kann von jedem frei verwendet werden." Blowfish stellt eine gute Verschlüsselungsrate in der Software zur Verfügung, und kein wirksamer cryptanalysis der voll-runden Version ist bis heute gefunden worden.

Generalisationen

Tweakable blockieren Ziffern

M. Liskov, R. Rivest und D. Wagner haben eine verallgemeinerte Version von genannten "Tweakable"-Block-Ziffern von Ziffern des Blocks beschrieben. Eine Tweakable-Block-Ziffer akzeptiert, dass ein zweiter Eingang den Kniff zusammen mit seinem üblichen plaintext oder Ciphertext-Eingang genannt hat. Der Kniff, zusammen mit dem Schlüssel, wählt die durch die Ziffer geschätzte Versetzung aus. Wenn das Ändern von Kniffen genug leicht ist (im Vergleich zu einer gewöhnlich ziemlich teuren Schlüsseleinstellungsoperation), dann werden einige interessante neue Operationsweisen möglich. Der Plattenverschlüsselungstheorie-Artikel beschreibt einige dieser Weisen.

Format bewahrende Verschlüsselung

Beziehung zu anderen kryptografischen Primitiven

Block-Ziffern können verwendet werden, um andere kryptografische Primitive, wie diejenigen unten zu bauen. Für diese anderen Primitiven, um kryptografisch sicher zu sein, muss Sorge genommen werden, um sie der richtige Weg zu bauen.

  • Strom-Ziffern können mit Block-Ziffern gebaut werden. OFB-Weise und CTR Weise sind Block-Weisen, die eine Block-Ziffer in eine Strom-Ziffer verwandeln.
  • Kryptografische Kuddelmuddel-Funktionen können mit Block-Ziffern gebaut werden. Sieh Einwegkompression für Beschreibungen solcher mehreren Methoden fungieren. Die Methoden ähneln den für die Verschlüsselung gewöhnlich verwendeten Block-Ziffer-Verfahrensweisen.
  • Kryptografisch sichere Pseudozufallszahlengeneratoren (CSPRNGs) können mit Block-Ziffern gebaut werden.
  • Sichere pseudozufällige Versetzungen willkürlich großer begrenzter Sätze können mit Block-Ziffern gebaut werden; sieh Format bewahrende Verschlüsselung.
  • Nachrichtenbeglaubigungscodes (MACs) werden häufig von Block-Ziffern gebaut. CBC-MAC, OMAC und PMAC sind solcher MACs.
  • Beglaubigte Verschlüsselung wird auch von Block-Ziffern gebaut. Es bedeutet sowohl zu encrypt als auch zu MAC zur gleichen Zeit. Das soll beide Vertraulichkeit und Beglaubigung zur Verfügung stellen. CCM, EAX, GCM und OCB sind solche beglaubigten Verschlüsselungsweisen.

Da Block-Ziffern verwendet werden können, um Kuddelmuddel-Funktionen zu bauen, können Kuddelmuddel-Funktionen verwendet werden, um Block-Ziffern zu bauen. Beispiele solcher Block-Ziffern sind SHACAL, BÄR und LÖWE.

Siehe auch

  • Block-Ziffer-Sicherheitszusammenfassung
  • Themen in der Geheimschrift

Weiterführende Literatur

Links


Grundlegendes Rolle-Spielen / Radiobreitband
Impressum & Datenschutz