6.2.1. OFB and CTR Sequences (OFB- und CTR-Sequenzen)
6.2.1. OFB and CTR Sequences (OFB- und CTR-Sequenzen)
Eine Möglichkeit, eine starke Sequenz zu erzeugen, besteht darin, einen Seed-Wert zu nehmen und die Größen zu hashen, die durch Verkettung des Seeds mit aufeinanderfolgenden ganzen Zahlen oder dergleichen erzeugt werden, und dann die erhaltenen Werte zu maskieren, um die Menge des für den Gegner verfügbaren Generator-Zustands zu begrenzen.
Es kann auch möglich sein, einen "Verschlüsselungs"-Algorithmus mit einem zufälligen Schlüssel und Seed-Wert zu verwenden, um aufeinanderfolgende ganze Zahlen zu verschlüsseln, wie bei der Counter (CTR) Modus-Verschlüsselung. Alternativ kann man den gesamten Ausgabewert aus der Verschlüsselung in den zu verschlüsselnden Wert für die nächste Iteration zurückkoppeln. Dies ist ein besonderes Beispiel für den Output Feedback Mode (OFB) [MODES].
Ein Beispiel wird unten gezeigt, bei dem Verschiebung und Maskierung verwendet werden, um einen Teil der Ausgabe-Rückkopplung mit einem Teil der alten Eingabe zu kombinieren. Diese Art von partieller Rückkopplung sollte aus unten beschriebenen Gründen vermieden werden.
+---------------+
| V |
| | n |--+
+--+------------+ |
| | +---------+
shift| +---> | | +-----+
+--+ | Encrypt | <--- | Key |
| +-------- | | +-----+
| | +---------+
V V
+------------+--+
| V | |
| n+1 |
+---------------+
Beachten Sie, dass wenn eine Verschiebung von eins verwendet wird, dies dasselbe ist wie die in Abschnitt 6.1.3 beschriebene Schieberegister-Technik, aber mit dem entscheidenden Unterschied, dass die Rückkopplung durch eine komplexe nicht-lineare Funktion aller Bits bestimmt wird, anstatt durch eine einfache lineare oder polynomiale Kombination der Ausgabe von einigen wenigen Bitpositions-Abgriffen.
Donald W. Davies zeigte, dass diese Art von verschobener partieller Ausgabe-Rückkopplung einen Algorithmus im Vergleich zur Rückkopplung aller Ausgabebits als Eingabe erheblich schwächt. Insbesondere bei DES wird das wiederholte Verschlüsseln einer vollständigen 64-Bit-Größe eine erwartete Wiederholung in etwa 2^63 Iterationen ergeben. Das Zurückkoppeln von weniger als 64 (und mehr als 0) Bits wird eine erwartete Wiederholung zwischen 2^31 und 2^32 Iterationen ergeben!
Um Werte einer Sequenz aus anderen vorherzusagen, wenn die Sequenz durch diese Techniken generiert wurde, ist gleichbedeutend damit, das Kryptosystem zu brechen oder das "nicht-invertierbare" Hashing mit nur teilweise verfügbaren Informationen zu invertieren. Je weniger Informationen in jeder Iteration offenbart werden, desto schwieriger wird es für einen Gegner sein, die Sequenz vorherzusagen. Daher ist es am besten, nur ein Bit von jedem Wert zu verwenden. Es wurde gezeigt, dass dies in einigen Fällen es unmöglich macht, ein System zu brechen, selbst wenn das kryptographische System invertierbar ist und gebrochen werden könnte, wenn alle von jedem generierten Wert offenbart würden.