Blum-Micali-Generator

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Der Blum-Micali-Generator ist ein von Manuel Blum und Silvio Micali entwickelter kryptographisch sicherer Zufallszahlengenerator.[1]

Der Generator basiert auf einer generischen Konstruktion von Blum und Micali, die eine Einwegpermutation f : M M {\displaystyle f\colon M\to M} {\displaystyle f\colon M\to M} und ein Hardcoreprädikat B {\displaystyle B} {\displaystyle B} für f {\displaystyle f} {\displaystyle f} benötigt. Ein Hardcoreprädikat ist eine Funktion B : M { 0 , 1 } {\displaystyle B\colon M\to \{0,1\}} {\displaystyle B\colon M\to \{0,1\}} mit der Eigenschaft, dass es praktisch unmöglich ist, aus f ( x ) {\displaystyle f(x)} {\displaystyle f(x)} das Bit B ( x ) {\displaystyle B(x)} {\displaystyle B(x)} zu berechnen. Aus einem zufälligen Startwert x 0 M {\displaystyle x_{0}\in M} {\displaystyle x_{0}\in M} wird zuerst durch die Vorschrift x i + 1 = f ( x i ) {\displaystyle x_{i+1}=f(x_{i})} {\displaystyle x_{i+1}=f(x_{i})} eine Folge abgeleitet. Die Folge der zufälligen Bits ist dann die Folge B ( x i ) {\displaystyle B(x_{i})} {\displaystyle B(x_{i})}.

Bei der konkreten Konstruktion wird als Einwegpermutation die diskrete Exponentiation genutzt. Als Parameter wird zuerst eine Primzahl p {\displaystyle p} {\displaystyle p} gewählt, die eine zyklische Gruppe Z p {\displaystyle \mathbb {Z} _{p}^{*}} {\displaystyle \mathbb {Z} _{p}^{*}} festlegt. Aus dieser multiplikativen Gruppe wird ein zufälliges Element g {\displaystyle g} {\displaystyle g} gewählt, das auch gleichzeitig ein Generator ist (da die Wahrscheinlichkeit, dass die 1 gewählt wird, vernachlässigbar klein ist). Die Funktion f {\displaystyle f} {\displaystyle f} ist nun die diskrete Exponentiation f ( x ) = g x   mod   p {\displaystyle f(x)=g^{x}\ {\bmod {\ p}}} {\displaystyle f(x)=g^{x}\ {\bmod {\ p}}}. Sie ist eine Permutation, da sowohl x {\displaystyle x} {\displaystyle x} als auch g x {\displaystyle g^{x}} {\displaystyle g^{x}} in Z p {\displaystyle \mathbb {Z} _{p}^{*}} {\displaystyle \mathbb {Z} _{p}^{*}} liegen und g {\displaystyle g} {\displaystyle g} ein Generator ist.

Ausgehend von einem zufälligen x 0 {\displaystyle x_{0}} {\displaystyle x_{0}} wird nun wie oben beschrieben mittels f {\displaystyle f} {\displaystyle f} eine Folge x i + 1 = f ( x i ) = g x i   mod   p {\displaystyle x_{i+1}=f(x_{i})=g^{x_{i}}\ {\bmod {\ p}}} {\displaystyle x_{i+1}=f(x_{i})=g^{x_{i}}\ {\bmod {\ p}}} definiert. Das benötigte Hardcoreprädikat für f {\displaystyle f} {\displaystyle f} ist die Funktion B ( x ) {\displaystyle B(x)} {\displaystyle B(x)}, die 1 ausgibt, falls x < p 1 2 {\displaystyle x<{\frac {p-1}{2}}} {\displaystyle x<{\frac {p-1}{2}}}, und 0 sonst. Die vom Generator erzeugte pseudozufällige Bitfolge ist also B ( x i ) {\displaystyle B(x_{i})} {\displaystyle B(x_{i})}.

Das Verfahren ist beweisbar sicher unter der Annahme, dass es schwierig ist, diskrete Logarithmen zu berechnen. Wenn ein Algorithmus ein Bit B ( x i ) {\displaystyle B(x_{i})} {\displaystyle B(x_{i})} dieser Folge mit Wahrscheinlichkeit besser als 1 / 2 {\displaystyle 1/2} {\displaystyle 1/2} vorhersagen kann, so kann daraus ein Algorithmus konstruiert werden, der in der Gruppe Z p {\displaystyle \mathbb {Z} _{p}^{*}} {\displaystyle \mathbb {Z} _{p}^{*}} in probabilistischer Polynomialzeit diskrete Logarithmen berechnen kann.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten ]
  1. Manuel Blum and Silvio Micali: How to Generate Cryptographically Strong Sequences of Pseudorandom Bits. In: SIAM Journal on Computing. Band 13, Nr. 4, 1984, S. 850–864 (mit.edu [PDF]). 
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Blum-Micali-Generator&oldid=179333250"