2. General Requirements (Allgemeine Anforderungen)
2. General Requirements (Allgemeine Anforderungen)
Heute ist eine häufig anzutreffende Zufallsanforderung die Auswahl eines Benutzerpassworts, normalerweise eine einfache Zeichenkette. Offensichtlich bietet ein Passwort, das erraten werden kann, keine Sicherheit. Bei wiederverwendbaren Passwörtern ist es wünschenswert, dass Benutzer sich das Passwort merken können. Dies kann es ratsam machen, aussprechbare Zeichenketten oder Phrasen zu verwenden, die aus gewöhnlichen Wörtern bestehen. Dies betrifft jedoch nur das Format der Passwortinformation, nicht die Anforderung, dass das Passwort sehr schwer zu erraten sein muss.
Viele andere Anforderungen stammen aus dem kryptographischen Bereich. Kryptographische Techniken können verwendet werden, um eine Vielzahl von Diensten bereitzustellen, einschließlich Vertraulichkeit und Authentifizierung. Solche Dienste basieren auf Größen, traditionell "Schlüssel" genannt, die einem Gegner unbekannt und nicht erratbar sind.
Es gibt sogar TCP/IP-Protokoll-Verwendungen für Zufälligkeit bei der Auswahl anfänglicher Sequenznummern [RFC1948].
Allgemein gesprochen veranschaulichen die obigen Beispiele auch zwei verschiedene Arten von Zufallsgrößen, die gewünscht werden können. Im Fall von menschlich verwendbaren Passwörtern ist die einzige wichtige Eigenschaft, dass sie nicht erratbar sind. Es ist nicht wichtig, dass sie möglicherweise aus ASCII-Zeichen bestehen, so dass das höchste Bit jedes Bytes beispielsweise null ist. Andererseits möchte man für Schlüssel mit fester Länge und dergleichen normalerweise Größen, die wirklich zufällig erscheinen, das heißt Größen, deren Bits statistische Zufälligkeitstests bestehen werden.
In einigen Fällen, wie bei der Verwendung symmetrischer Verschlüsselung mit Einmalverschlüsselung oder einem Algorithmus wie dem US Advanced Encryption Standard [AES], müssen die Parteien, die vertraulich und/oder mit Authentifizierung kommunizieren möchten, alle denselben geheimen Schlüssel kennen. In anderen Fällen, bei denen asymmetrische oder "Public-Key"-Kryptographietechniken verwendet werden, kommen Schlüssel paarweise vor. Ein Schlüssel des Paares ist privat und muss von einer Partei geheim gehalten werden; der andere ist öffentlich und kann der Welt veröffentlicht werden. Es ist rechnerisch nicht durchführbar, den privaten Schlüssel aus dem öffentlichen Schlüssel zu bestimmen, und die Kenntnis des öffentlichen Schlüssels ist einem Gegner keine Hilfe [ASYMMETRIC]. Siehe allgemeine Referenzen [SCHNEIER, FERGUSON, KAUFMAN].
Die Häufigkeit und das Volumen der Anforderung an Zufallsgrößen unterscheidet sich stark für verschiedene kryptographische Systeme. Bei reinem RSA werden Zufallsgrößen nur benötigt, wenn ein neues Schlüsselpaar generiert wird; danach kann eine beliebige Anzahl von Nachrichten signiert werden, ohne dass weitere Zufälligkeit benötigt wird. Der Public-Key Digital Signature Algorithm, der vom US National Institute of Standards and Technology (NIST) entwickelt wurde, benötigt gute Zufallszahlen für jede Signatur [DSS]. Und die Verschlüsselung mit einer Einmalverschlüsselung (im Prinzip die stärkste mögliche Verschlüsselungstechnik) erfordert Zufälligkeit von gleichem Volumen wie alle zu verarbeitenden Nachrichten. Siehe allgemeine Referenzen [SCHNEIER, FERGUSON, KAUFMAN].
In den meisten dieser Fälle kann ein Gegner versuchen, den "geheimen" Schlüssel durch Versuch und Irrtum zu bestimmen. Dies ist möglich, solange der Schlüssel klein genug im Vergleich zur Nachricht ist, dass der korrekte Schlüssel eindeutig identifiziert werden kann. Die Wahrscheinlichkeit, dass ein Gegner dabei erfolgreich ist, muss abhängig von der jeweiligen Anwendung akzeptabel niedrig gemacht werden. Die Größe des Raums, den der Gegner durchsuchen muss, steht in Beziehung zur Menge der vorhandenen Schlüssel-"Information" im informationstheoretischen Sinne [SHANNON]. Dies hängt von der Anzahl der verschiedenen möglichen geheimen Werte und der Wahrscheinlichkeit jedes Werts ab, wie folgt:
-----
\
Bits of information = \ - p * log ( p )
/ i 2 i
/
-----
wobei i von 1 bis zur Anzahl der möglichen geheimen Werte zählt und p sub i die Wahrscheinlichkeit des mit i nummerierten Werts ist. (Da p sub i kleiner als eins ist, wird der Logarithmus negativ sein, sodass jeder Term in der Summe nicht-negativ sein wird.)
Wenn es 2^n verschiedene Werte mit gleicher Wahrscheinlichkeit gibt, dann sind n Bits Information vorhanden, und ein Gegner müsste im Durchschnitt die Hälfte der Werte oder 2^(n-1) ausprobieren, bevor er die geheime Größe errät. Wenn die Wahrscheinlichkeit verschiedener Werte ungleich ist, dann ist weniger Information vorhanden, und im Durchschnitt werden von einem Gegner weniger Rateversuche benötigt. Insbesondere können alle Werte, von denen ein Gegner wissen kann, dass sie unmöglich sind oder eine niedrige Wahrscheinlichkeit haben, vom Gegner zunächst ignoriert werden, der zuerst durch die wahrscheinlicheren Werte suchen wird.
Betrachten Sie zum Beispiel ein kryptographisches System, das 128-Bit-Schlüssel verwendet. Wenn diese Schlüssel unter Verwendung eines festen Pseudo-Zufallszahlengenerators abgeleitet werden, der mit einem 8-Bit-Seed initialisiert wird, dann muss ein Gegner nur durch 256 Schlüssel suchen (indem er den Pseudo-Zufallszahlengenerator mit jedem möglichen Seed ausführt), nicht durch 2^128 Schlüssel, wie es auf den ersten Blick erscheinen mag. Nur 8 Bits "Information" sind in diesen 128-Bit-Schlüsseln enthalten.
Während die obige Analyse im Durchschnitt korrekt ist, kann sie in einigen Fällen für die kryptographische Analyse irreführend sein, bei der es wirklich auf den Arbeitsfaktor für einen Gegner ankommt. Nehmen Sie zum Beispiel an, dass es einen Pseudo-Zufallszahlengenerator gibt, der 128-Bit-Schlüssel generiert, wie im vorherigen Absatz, aber dass er die Hälfte der Zeit null generiert und den Rest der Zeit eine zufällige Auswahl aus den verbleibenden 2^128 - 1 Werten. Die Shannon-Gleichung oben besagt, dass es in einem dieser Schlüsselwerte 64 Bits Information gibt, aber ein Gegner kann, indem er einfach den Wert null ausprobiert, die Sicherheit der Hälfte der Verwendungen brechen, wenn auch einer zufälligen Hälfte. Daher ist es für kryptographische Zwecke auch nützlich, andere Maße zu betrachten, wie die Min-Entropie, definiert als
Min-entropy = - log ( maximum ( p ) )
2 i
wobei i wie oben ist. Mit dieser Gleichung erhalten wir 1 Bit Min-Entropie für unsere neue hypothetische Verteilung, im Gegensatz zu 64 Bits klassischer Shannon-Entropie.
Ein kontinuierliches Spektrum von Entropien, manchmal Renyi-Entropie genannt, wurde definiert, spezifiziert durch den Parameter r. Hier ist r = 1 Shannon-Entropie und r = unendlich ist Min-Entropie. Wenn r = null, ist es einfach log (n), wobei n die Anzahl der Nicht-Null-Wahrscheinlichkeiten ist. Renyi-Entropie ist eine nicht-zunehmende Funktion von r, sodass Min-Entropie immer das konservativste Maß für Entropie ist und normalerweise das beste für die kryptographische Bewertung [LUBY].
Statistisch getestete Zufälligkeit im traditionellen Sinne ist NICHT dasselbe wie die für den Sicherheitsgebrauch erforderliche Unvorhersagbarkeit.
Zum Beispiel ist die Verwendung einer weit verbreiteten konstanten Sequenz, wie der Zufallstabelle aus den CRC Standard Mathematical Tables, sehr schwach gegen einen Gegner. Ein Gegner, der davon erfährt oder sie errät, kann leicht alle Sicherheit, zukünftige und vergangene, die auf der Sequenz basiert, brechen [CRC]. Als weiteres Beispiel wird die Verwendung von AES mit einem konstanten Schlüssel zur Verschlüsselung aufeinanderfolgender ganzer Zahlen wie 1, 2, 3, ... eine Ausgabe erzeugen, die auch ausgezeichnete statistische Zufälligkeitseigenschaften hat, aber vorhersagbar ist. Andererseits würde das aufeinanderfolgende Würfeln eines sechsseitigen Würfels und die Kodierung der resultierenden Werte in ASCII statistisch schlechte Ausgabe mit einer wesentlichen unvorhersagbaren Komponente erzeugen. Beachten Sie also, dass das Bestehen oder Nichtbestehen statistischer Tests nicht offenbart, ob etwas unvorhersagbar oder vorhersagbar ist.