Zum Inhalt springen

Blum-Blum-Shub-Generator

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. September 2008 um 10:52 Uhr durch Megatherium (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Der Blum-Blum-Shub-Generator (BBS-Generator) (auch „s² mod n - Generator“) ist ein Pseudozufallszahlengenerator, entwickelt 1986 von Lenore Blum, Manuel Blum und Michael Shub. Anwendung findet das System u. a. in der Kryptologie im Entwurf komplexitätstheoretisch sicherer Kryptosysteme.

Definition

Der BBS-Generator ist definiert als Folge

Der Modul ist das Produkt zweier ungleicher Primzahlen und , die von der Form sind, d. h. . Eine Zahl mit diesen Eigenschaften wird auch Blum-Zahl genannt.

Der Startwert ist zu teilerfremd ().

Der Parameter sollte außerdem folgenden Bedingungen genügen, damit möglichst schwer zu faktorisieren ist und der Generator garantiert hochwertige Zufalszahlen erzeugt (siehe Kapitel „Sicherheit“):

  • n sollte hinreichend groß sein; für kryptografische Anwendung mindestens etwa 200 Dezimalstellen.
  • und sollten etwa gleichdimensioniert sein, aber nicht zu nah beieinander liegen, etwa .
  • und sollten jeweils einen großen Primfaktor haben, der etwa im Bereich liegt. Das entsprechende sollte auch für gelten.

Periodenlänge

Es ist schwierig, die Parameter und so zu bestimmen, dass eine ausreichende Periodenlänge garantiert ist. Folgende Regeln erhöhen die Wahrscheinlichkeit für eine lange Periode:

  • und sowie und sollten prim sein.
  • sollte möglichst klein sein. (siehe Eulersche φ-Funktion)
  • Für den Startwert sollte gelten.

Anwendung

Aus jedem der so berechneten werden ein oder mehrere Zufallsbits gewonnen. Im einfachsten Fall nimmt man das niederwertigste Bit, also

,

oder man berechnet das Paritätsbit zu :

.

Die Funktion liefert die Zahl der Bits mit dem Wert 1 in der Binärdarstellung von .

Besser ist es jedoch, wenn das Paritätsbit von einigen fest gewählten Bits aus bestimmt wird. Dazu wählt man vorab eine zufällige Konstante z, die etwa so groß wie n ist, und berechnet

.

Dabei bezeichnet die bitweise UND-Verknüpfung.

Man kann zeigen, dass der BBS-Generator kryptografisch auch dann noch sicher ist, wenn nicht nur ein, sondern bis zu Bits aus jedem extrahiert werden. Meist werden einfach die niederwertigsten Bits genommen:

,

oder etwas elaborierter:

.

Symmetrisches Kryptosystem

Zunächst wird der BBS-Generator zur Umsetzung eines symmetrischen Kryptosystems verwendet. Als geheimer Schlüssel zwischen Sender und Empfänger dienen n und der Startwert s des Generators.

Z. B. generiert der Sender aus n=711=77 und s=64 nach der oben angegebenen Vorschrift die Folge der si. Die zugehörige Pseudozufallszahl bi ergibt sich beispielsweise aus dem letzten Bit des jeweiligen Wertes von si, d. h. bi=si mod 2. Um den Schlüsseltext zu bestimmen, wird der Klartext (im Beispiel: 0011) XOR mit der Pseudozufallszahlenfolge verknüpft.

 Generierte Folge         15 71 36 64 …
 Pseudozufallszahlenfolge  1  1  0  0 …
 Klartext                  0  0  1  1
 Schlüsseltext             1  1  1  1

Der Empfänger bestimmt seinerseits aus den geheimen Werten n und s die Folgen si und bi. Mit Hilfe des übersendeten Schlüsseltextes wird wiederum mittels XOR der Klartext berechnet.

 Generierte Folge         15 71 36 64 …
 Pseudozufallszahlenfolge  1  1  0  0 …
 Schlüsseltext             1  1  1  1
 Klartext                  0  0  1  1

Asymmetrisches Kryptosystem

Zur Umsetzung eines asymmetrischen Kryptosystems eignet sich der BBS-Generator ebenfalls. Dieses Verfahren wurde 1984 von Manuel Blum und Shafi Goldwasser vorgeschlagen und wird auch als Blum-Goldwasser-Kryptosystem bezeichnet. Der geheime Schlüssel auf Seiten des Empfängers sind die Primfaktoren p und q.

Senderseitig laufen die Berechnungen analog zum obigen symmetrischen Fall ab. Zusätzlich zum Schlüsseltext wird aber noch si+1 gesendet. Da der Empfänger den Startwert nicht kennt, bildet er mit Hilfe der geheimen Primzahlen p und q die Folge der Pseudozufallszahlen ausgehend vom versendeten si+1 bis zum Startwert s zurück. Für das Beispiel bedeutet das, der Empfänger erhält 1111 sowie s4=15.

si-1 = (upsi(q+1)/4 mod q + vqsi(p+1)/4 mod p) mod n

Der Ansatz bedient sich des Chinesischen Restealgorithmus, einem Spezialfall des chinesischen Restsatzes. Die beiden Unbekannten u und v sind von den Primfaktoren p und q abhängig und werden zu Beginn mittels des erweiterten Euklidischen Algorithmus bestimmt. Dabei gilt up+vq=1, also 211-37=1 im Beispiel. Damit ergibt sich die folgende Abarbeitung.

s3 = (22152 mod 7 - 21153 mod 11) mod 77
s3 = (221 - 219) mod 77 = 64
s2 = (22642 mod 7 - 21643 mod 11) mod 77
s2 = (221 - 213) mod 77 = 36
s1 = (22362 mod 7 - 21363 mod 11) mod 77
s1 = (221 - 215) mod 77 = 71
s0 = (22712 mod 7 - 21713 mod 11) mod 77
s0 = (221 - 214) mod 77 = 15
s = (22152 mod 7 - 21153 mod 11) mod 77
s = (221 - 215) mod 77 = 64

Empfängerseitig wird nun analog zum symmetrischen Fall aus der eben rückwärts berechneten BBS-Generatorfolge die Folge der Pseudozufallszahlen bestimmt und letztlich durch XOR-Verknüpfung mit dem Schlüsseltext der Klartext generiert.

Ein so konstruiertes asymmetrisches Kryptosystem ist jedoch nicht sicher gegen aktive Angreifer, z. B. durch einen gewählter Schlüsseltext-Klartext-Angriff (englisch: chosen-ciphertext attack).

Sicherheit

Die Sicherheit des BBS-Generators hängt von der Faktorisierungsannahme (FA) und der Quadratische-Reste-Annahme (QRA) ab.

Faktorisierungsannahme (FA): Die Wahrscheinlichkeit, dass ein schnelles Faktorisierungsverfahren eine ganze Zahl n=pq mit Erfolg faktorisiert, sinkt rapide mit Länge der Faktoren p und q.

Zur Zeit kann keine sichere Aussage getroffen werden, wie schwer Faktorisierung ist. Mit anderen Worten, die Frage nach einem Algorithmus, der in annehmbarer Zeit bei Eingabe beliebiger n die Primfaktorzerlegung in p und q durchführt, bleibt unbeantwortet. Somit kann die Problematik lediglich mit Hilfe einer Annahme abgeschätzt werden.

Für konkrete praktische Anwendungen fordert man dann, dass bei gegebener Länge der Primfaktoren nur ein bestimmter Teil in einer bestimmten Zeit mit maximal verfügbarer Rechnerkapazität und den besten bekannten Faktorisierungsverfahren faktorisiert werden kann, also z. B. bei einer Länge von 1024 Bit werden 2-50 % aller n in einem Jahr faktorisiert.

Quadratische-Reste-Annahme (QRA) (englisch: quadratic residuosity assumption): est ist schwierig (im Sinne von aufwändig), von einer gegebenen Zahl zu entscheiden, ob sie ein Quadratischer Rest in einem Restklassenring ist. Mit anderen Worten, es ist zu entscheiden, ob es zu der gegebenen Zahl eine Zahl gibt, so dass . Die QRA ist wie die FA nicht bewiesen.

Zwei Punkte erschweren diesen Test. Erstens gibt es in einem Restklassenring mehrere Wurzeln zu einer gegebenen Zahl. So haben z. B. im die Zahlen 1 und 3 die gleichen Quadrate: . Zweitens interessiert man sich nur für solche Quadrate, die selbst Quadrate sind. Diesen Umstand kann man sich mittels der Definition der BBS-Generatorfolge verdeutlichen.

Zusammenfassend gilt daher: Der Generator ist sicher, weil die Umkehrung des Quadrierens in einem Restklassenring mit zusammengesetztem Modul n genauso schwierig ist wie die Faktorisierung von n.