Strom-Ziffer

In der Geheimschrift ist eine Strom-Ziffer eine symmetrische Schlüsselziffer, wo plaintext Ziffern mit einem pseudozufälligen Ziffer-Ziffer-Strom (keystream) verbunden werden. In einer Strom-Ziffer ist jede plaintext Ziffer encrypted einer nach dem anderen mit der entsprechenden Ziffer des keystream, um eine Ziffer des cyphertext Stroms zu geben. Ein alternativer Name ist eine Zustandziffer, weil die Verschlüsselung jeder Ziffer vom aktuellen Staat abhängig ist. In der Praxis ist eine Ziffer normalerweise ein bisschen und die sich verbindende Operation ein exklusiver - oder (xor).

Der pseudozufällige keystream wird normalerweise serienmäßig von einem zufälligen Samen-Wert mit Digitalverschiebungsregistern erzeugt. Der Samen-Wert dient als der kryptografische Schlüssel, für den ciphertext Strom zu entschlüsseln.

Strom-Ziffern vertreten eine verschiedene Annäherung an die symmetrische Verschlüsselung von Block-Ziffern. Block-Ziffern funktionieren auf großen Blöcken von Ziffern mit einer festen, unveränderlichen Transformation. Diese Unterscheidung ist nicht immer klar: In einigen Verfahrensweisen wird eine primitive Block-Ziffer auf solche Art und Weise verwendet, dass sie effektiv als eine Strom-Ziffer handelt. Strom-Ziffern führen normalerweise mit einer höheren Geschwindigkeit durch als Block-Ziffern und haben niedrigere Hardware-Kompliziertheit. Jedoch können Strom-Ziffern gegen ernste Sicherheitsprobleme, wenn verwendet, falsch empfindlich sein: Sieh Strom-Ziffer-Angriffe — insbesondere derselbe Startstaat (Samen) muss zweimal nie verwendet werden.

Lose Inspiration vom ehemaligen Polster

Strom-Ziffern können als das Approximieren der Handlung einer bewiesenen unzerbrechlichen Ziffer, des ehemaligen Polsters (OTP) angesehen werden, das manchmal als die Ziffer von Vernam bekannt ist. Ein ehemaliges Polster verwendet einen keystream von völlig zufälligen Ziffern. Der keystream wird mit den plaintext Ziffern einer nach dem anderen verbunden, um den ciphertext zu bilden. Wie man bewies, war dieses System durch Claude Shannon 1949 sicher. Jedoch muss der keystream (mindestens) dieselbe Länge wie der plaintext, und erzeugt völlig aufs Geratewohl sein. Das macht das System sehr beschwerlich, um in der Praxis durchzuführen, und infolgedessen ist das ehemalige Polster abgesehen von den kritischsten Anwendungen nicht weit verwendet worden.

Eine Strom-Ziffer macht von einem viel kleineren und günstigeren Schlüssel — 128 Bit zum Beispiel Gebrauch. Gestützt auf diesem Schlüssel erzeugt es einen pseudozufälligen keystream, der mit den plaintext Ziffern auf eine ähnliche Mode zum ehemaligen Polster verbunden werden kann. Jedoch kommt das an Kosten: Weil der keystream jetzt pseudozufällig, und nicht aufrichtig zufällig ist, hält der Beweis der Sicherheit, die mit dem ehemaligen Polster nicht mehr vereinigt ist: Es ist für eine Strom-Ziffer ziemlich möglich, völlig unsicher zu sein.

Typen von Strom-Ziffern

Eine Strom-Ziffer erzeugt aufeinander folgende Elemente des auf einem inneren Staat gestützten keystream. Dieser Staat wird auf im Wesentlichen zwei Weisen aktualisiert: Wenn die Zustandsänderungen unabhängig vom plaintext oder den ciphertext Nachrichten, die Ziffer als eine gleichzeitige Strom-Ziffer klassifiziert wird. Im Vergleich aktualisiert das Selbstsynchronisieren von Strom-Ziffern ihren auf vorherigen ciphertext Ziffern gestützten Staat.

Gleichzeitige Strom-Ziffern

In einer gleichzeitigen Strom-Ziffer wird ein Strom von pseudozufälligen Ziffern unabhängig vom plaintext und den ciphertext Nachrichten erzeugt, und dann mit dem plaintext (zu encrypt) oder der ciphertext verbunden (um zu entschlüsseln). Im grössten Teil der Standardform werden binäre Ziffern (Bit) verwendet, und der keystream wird mit dem plaintext das Verwenden des exklusiven oder der Operation (XOR) verbunden. Das wird eine binäre zusätzliche Strom-Ziffer genannt.

In einer gleichzeitigen Strom-Ziffer müssen der Absender und Empfänger genau im Schritt für die Dekodierung sein, um erfolgreich zu sein. Wenn Ziffern hinzugefügt oder von der Nachricht während der Übertragung entfernt werden, wird Synchronisation verloren. Um Synchronisation wieder herzustellen, können verschiedene Ausgleiche systematisch versucht werden, um die richtige Dekodierung zu erhalten. Eine andere Annäherung soll den ciphertext mit Anschreibern an regelmäßigen Punkten in der Produktion markieren.

Wenn, jedoch, eine Ziffer in der Übertragung verdorben, aber nicht hinzugefügt oder verloren wird, wird nur eine einzelne Ziffer im plaintext betroffen, und der Fehler pflanzt sich zu anderen Teilen der Nachricht nicht fort. Dieses Eigentum ist nützlich, wenn die Übertragungsfehlerrate hoch ist; jedoch macht es es weniger wahrscheinlich der Fehler würde ohne weitere Mechanismen entdeckt. Außerdem, wegen dieses Eigentums, sind gleichzeitige Strom-Ziffern gegen aktive Angriffe sehr empfindlich — wenn ein Angreifer eine Ziffer im ciphertext ändern kann, könnte er im Stande sein, voraussagbare Änderungen mit dem entsprechenden Plaintext-Bit vorzunehmen; zum Beispiel veranlasst das Schnipsen ein bisschen im ciphertext dasselbe Bit, im plaintext geschnipst zu werden.

Das Selbstsynchronisieren von Strom-Ziffern

Eine andere Annäherung verwendet mehrere der vorherigen N ciphertext Ziffern, um den keystream zu schätzen. Solche Schemas sind als gleichzeitig selbstseiende Strom-Ziffern, asynchrone Strom-Ziffern oder ciphertext Tastenwiederholfunktion (CTAK) bekannt. Die Idee von der Selbstsynchronisation wurde 1946 patentiert, und hat den Vorteil, den der Empfänger mit dem keystream Generator nach dem Empfang N ciphertext Ziffern automatisch synchronisieren wird, es leichter machend, zu genesen, wenn Ziffern fallen gelassen oder zum Nachrichtenstrom hinzugefügt sind. Einzeln-stellige Fehler werden in ihrer Wirkung beschränkt, nur bis zu N plaintext Ziffern betreffend.

Ein Beispiel einer gleichzeitig selbstseienden Strom-Ziffer ist eine Block-Ziffer im Ziffer-Feed-Back (CFB) Weise.

Geradlinige Feed-Back-Verschiebung Register-basierte Strom-Ziffern

Binäre Strom-Ziffern werden häufig mit geradlinigen Feed-Back-Verschiebungsregistern (LFSRs) gebaut, weil sie in der Hardware leicht durchgeführt werden können und mathematisch sogleich analysiert werden können. Der Gebrauch von LFSRs ist selbstständig jedoch ungenügend, um gute Sicherheit zur Verfügung zu stellen. Verschiedene Schemas sind vorgeschlagen worden, um die Sicherheit von LFSRs zu vergrößern.

Nichtlineare sich verbindende Funktionen

Weil LFSRs von Natur aus geradlinig sind, soll eine Technik, für die Linearität zu entfernen, die Produktionen von mehreren parallelen LFSRs in eine nichtlineare Funktion von Boolean füttern, einen Kombinationsgenerator zu bilden. Verschiedene Eigenschaften solch einer sich verbindenden Funktion sind kritisch, für die Sicherheit des resultierenden Schemas zum Beispiel zu sichern, um Korrelationsangriffe zu vermeiden.

Uhr-kontrollierte Generatoren

Normalerweise werden LFSRs regelmäßig gegangen. Eine Annäherung an das Einführen der Nichtlinearität soll den LFSR unregelmäßig, kontrolliert von der Produktion eines zweiten LFSR abstoppen lassen. Solche Generatoren schließen den anhalten-und-gehen Generator, den Wechselschritt-Generator und den Schrumpfen-Generator ein.

Ein Wechselschritt-Generator umfasst drei geradlinige Feed-Back-Verschiebungsregister, die wir LFSR0, LFSR1 und LFSR2 für die Bequemlichkeit nennen werden. Die Produktion von einem der Register entscheidet, welcher von den anderen zwei verwendet werden soll; zum Beispiel, wenn LFSR2 Produktionen 0, LFSR0 abgestoppt wird, und wenn er Produktionen 1, LFSR1 stattdessen abgestoppt wird. Die Produktion ist das exklusive ODER des letzten Bit, das durch LFSR0 und LFSR1 erzeugt ist. Der anfängliche Staat der drei LFSRs ist der Schlüssel.

Der anhalten-und-gehen Generator (Beth und Piper, 1984) besteht aus zwei LFSRs. Ein LFSR wird abgestoppt, wenn die Produktion einer Sekunde "1" ist, sonst wiederholt es seine vorherige Produktion. Diese Produktion ist dann (in einigen Versionen) verbunden mit der Produktion eines dritten an einer regelmäßigen Rate abgestoppten LFSR.

Der Schrumpfen-Generator nimmt eine verschiedene Annäherung. Zwei LFSRs, werden beide abgestoppt regelmäßig verwendet. Wenn die Produktion des ersten LFSR "1" ist, wird die Produktion des zweiten LFSR die Produktion des Generators. Wenn die ersten LFSR Produktionen "0", jedoch, die Produktion des zweiten verworfen wird, und kein Bit Produktion durch den Generator ist. Dieser Mechanismus leidet darunter, Angriffe auf den zweiten Generator zeitlich festzulegen, da die Geschwindigkeit der Produktion gewissermaßen variabel ist, der vom Staat des zweiten Generators abhängt. Das kann durch die Pufferung der Produktion erleichtert werden.

Filtergenerator

Eine andere Annäherung an die Besserung der Sicherheit eines LFSR soll den kompletten Staat eines einzelnen LFSR in eine nichtlineare durchscheinende Funktion passieren.

Andere Designs

Statt eines geradlinigen Fahrgeräts kann man eine nichtlineare Aktualisierungsfunktion verwenden. Zum Beispiel haben Klimov und Shamir vorgeschlagen, dass Dreiecksfunktionen (T-Funktionen) mit einem einzelnen Zyklus auf n Wörter gebissen haben.

Sicherheit

:Main-Artikel: Strom-Ziffer greift an

Für eine Strom-Ziffer, um sicher zu sein, muss sein keystream eine große Periode haben, und es muss unmöglich sein, den Schlüssel der Ziffer oder inneren Staat vom keystream wieder zu erlangen. Kryptographen fordern auch, dass die keystream frei von sogar feinen Neigungen sind, die Angreifer einen Strom vom zufälligen Geräusch, und frei von feststellbaren Beziehungen zwischen keystreams würden unterscheiden lassen, die zusammenhängenden Schlüsseln entsprechen oder kryptografischen nonces verbunden haben. Das sollte für alle Schlüssel wahr sein (es sollte keine schwachen Schlüssel geben), und wahr, selbst wenn der Angreifer wissen oder einen plaintext oder ciphertext wählen kann.

Als mit anderen Angriffen in der Geheimschrift können Strom-Ziffer-Angriffe certificational sein, bedeutend, dass sie nicht notwendigerweise praktische Weisen sind, die Ziffer zu brechen, aber anzuzeigen, dass die Ziffer andere Schwächen haben könnte.

Sicher verlangt das Verwenden einer sicheren gleichzeitigen Strom-Ziffer, dass ein nie denselben keystream zweimal wiederverwenden; das bedeutet allgemein einen verschiedenen nonce, oder Schlüssel muss jeder Beschwörung der Ziffer geliefert werden. Anwendungsentwerfer müssen auch anerkennen, dass die meisten Strom-Ziffern Echtheit, nur Gemütlichkeit nicht zur Verfügung stellen: Encrypted-Nachrichten können noch unterwegs modifiziert worden sein.

Kurze Perioden für Strom-Ziffern sind eine praktische Sorge gewesen. Zum Beispiel können 64-Bit-Block-Ziffern wie DES verwendet werden, um einen keystream im Produktionsfeed-Back (OFB) Weise zu erzeugen. Jedoch, wenn nicht mit dem vollen Feed-Back, hat der resultierende Strom eine Periode von ungefähr 2 Blöcken durchschnittlich; für viele Anwendungen ist diese Periode zu niedrig. Zum Beispiel, wenn Verschlüsselung an einer Rate von 8 Megabytes pro Sekunde, einem Strom der Periode durchgeführt wird, werden sich 2 Blöcke danach ungefähr eine halbe Stunde wiederholen.

Einige Anwendungen mit der Strom-Ziffer RC4 sind attackable wegen Schwächen in der RC4's Schlüsseleinstellungsroutine; neue Anwendungen sollten entweder RC4 vermeiden oder sicherstellen, dass alle Schlüssel einzigartig und (z.B, erzeugt durch eine kryptografische Kuddelmuddel-Funktion) ideal ohne Beziehung sind, und dass die ersten Bytes des keystream verworfen werden.

Gebrauch

Strom-Ziffern werden häufig für ihre Geschwindigkeit und Einfachheit der Durchführung in der Hardware, und in Anwendungen verwendet, wohin plaintext in Mengen der unerkennbaren Länge — zum Beispiel, eine sichere Radioverbindung kommt. Wenn eine Block-Ziffer (in einer Strom-Ziffer-Weise nicht funktionierend), in diesem Typ der Anwendung verwendet werden sollte, würde der Entwerfer entweder Übertragungsleistungsfähigkeit oder Durchführungskompliziertheit wählen müssen, da Block-Ziffern an Blöcken kürzer nicht direkt arbeiten können als ihre Block-Größe. Zum Beispiel, wenn eine 128-Bit-Block-Ziffer getrennte 32-Bit-Ausbrüche plaintext erhielte, würden drei Viertel der übersandten Daten auspolstern. Block-Ziffern müssen im Ciphertext-Diebstahl oder der restlichen Block-Beendigungsweise verwendet werden, um zu vermeiden, auszupolstern, während Strom-Ziffern dieses Problem durch das natürliche Funktionieren auf der kleinsten Einheit beseitigen, die (gewöhnlich Bytes) übersandt werden kann.

Ein anderer Vorteil von Strom-Ziffern in der militärischen Geheimschrift besteht darin, dass der Ziffer-Strom in einem getrennten Kasten erzeugt werden kann, der strengen Sicherheitsmaßnahmen unterworfen und zu anderen Geräten, z.B eine Radioanlage gefüttert ist, die die xor Operation als ein Teil ihrer Funktion durchführen wird. Das letzte Gerät kann dann entworfen und in weniger strengen Umgebungen verwendet werden.

RC4 ist die am weitesten verwendete Strom-Ziffer in der Software; andere schließen ein:

A5/1,

A5/2,

Chamäleon,

FISCH,

Spirale,

ISAAC,

MUGI,

Panama,

Phelix,

Hecht,

SIEGEL,

NÜCHTERN,

ERNÜCHTERN SIE 128 und

KIELWASSER.

Vergleich von Strom-Ziffern

Bagatellen

Siehe auch

  • eSTREAM
  • NLFSR, nichtlineares Feed-Back-Verschiebungsregister

Referenzen

  • Matt J. B. Robshaw, Strom-Ziffern Technischer Bericht TR-701, Version 2.0, RSA Laboratorien, 1995 [ftp://ftp.rsasecurity.com/pub/pdfs/tr701.pdf (PDF)].
  • Thomas Beth und Fred Piper, Der Anhalten-und-gehen Generator. EUROCRYPT 1984, pp88-92.
  • Christof Paar, Jan Pelzl, "Strom-Ziffern", Kapitel 2 des "Verstehens der Geheimschrift, Eines Lehrbuches für Studenten und Praktiker". (dazugehörige Website enthält Online-Geheimschrift-Kurs, der Strom-Ziffern und LFSR bedeckt), Springer, 2009.

Links


Diosdado Cabello / Robert Andrews Millikan
Impressum & Datenschutz