Pseudozufällige Funktion

Eine pseudozufällige Funktion ist eine Familie von effizient berechenbaren Funktionen, die von einem Zufallsorakel praktisch ununterscheidbar sind. Jede Blockchiffre kann formal als pseudozufällige Funktion aufgefasst werden, die durch kryptografische Schlüssel parametrisiert ist.[1]

Eine Familie von Funktionen ist eine Abbildung F : K × X Y {\displaystyle F\colon K\times X\to Y} zwischen nichtleeren, endlichen Mengen K {\displaystyle K} , X {\displaystyle X} , Y {\displaystyle Y} . Für jeden Schlüssel k K {\displaystyle k\in K} ist also durch F k ( x ) = F ( k , x ) {\displaystyle F_{k}(x)=F(k,x)} eine Abbildung F k : X Y {\displaystyle F_{k}\colon X\to Y} gegeben. Die maximale Anzahl aller möglichen Abbildungen von X {\displaystyle X} nach Y {\displaystyle Y} ist gleichzeitig die obere Schranke für die maximale Schlüsselanzahl (d. h. | K | {\displaystyle |K|} ).

Ein Zufallsorakel ist ein Algorithmus, der für jede Eingabe aus X {\displaystyle X} eine (gleichverteilt) zufällig gezogene Ausgabe aus Y {\displaystyle Y} zurückgibt, mit der Einschränkung, dass ein einmal bestimmter Funktionswert festliegt, also bei gleicher Anfrage auch die gleiche Antwort gegeben wird. Eine solche Funktionsfamilie F heißt pseudozufällig, wenn jeder effiziente Algorithmus, für ein (gleichverteilt) zufällig gezogenes und ihm nicht bekanntes k {\displaystyle k} , zwischen F k {\displaystyle F_{k}} und einem Zufallsorakel nur vernachlässigbar (in k {\displaystyle k} ) besser unterscheiden kann als durch Raten.[1]

Aus einem kryptographisch sicheren Zufallszahlengenerator kann mit dem Verfahren von Goldreich, Goldwasser und Micali eine pseudozufällige Funktion konstruiert werden.[2]

Einzelnachweise

  1. a b Mihir Bellare and Phillip Rogaway: Introduction to Modern Cryptography. Chapter 3: Pseudorandom functions (ucsd.edu). 
  2. Oded Goldreich, Shafi Goldwasser, Silvio Micali: How to Construct Random Functions. In: Journal of the ACM. Band 33, Nr. 4, 1986, S. 792–807, doi:10.1145/6490.6503 (weizmann.ac.il).