UnfÀlle sind nicht zufÀllig: Wer sind die Familien der Pseudozufallsfunktionen (PRFs)?

1984 formalisierten Goldreich, Goldwasser und Micali das Konzept der Pseudozufallsfunktionen und schlugen eine PRF-Implementierung vor, die auf einem LĂ€ngenverdopplungs-Pseudozufallsgenerator (PRG) basiert. Seitdem haben sich Pseudozufallsfunktionen als Ă€ußerst wichtige Abstraktion erwiesen, die in verschiedenen Bereichen Anwendung gefunden hat, beispielsweise bei der Nachrichtenauthentifizierung und beim Nachweis von Theoremen. In diesem Artikel werde ich behandeln:





  • Was sind Zufallsfunktionen (RF)





  • Was sind Pseudozufallsfunktionen (PRF)?





  • Wer sind deine Familien?





  • PRF vs. PRG





  • Was haben Blockchiffren damit zu tun?





ZufÀlligkeit

Bereits aus dem Namen wird deutlich, dass eine Pseudozufallsfunktion wie eine Zufallsfunktion "aussieht". Was ist in unserem Fall eine Zufallsfunktion? ZunÀchst beschrÀnken wir unseren Betrachtungsbereich auf Funktionen, die eine Folge von Nullen und Einsen der LÀnge nin einer Folge von Nullen und Einsen derselben LÀnge anzeigen n, d. H.





\ underbrace {1110 ... 0010} _ {n} \ rightarrow \ underbrace {0100 ... 0011} _ {n} \ Leftrightarrow \ {0,1 \} ^ n \ rightarrow \ {0,1 \} ^ n

Dies kann im Allgemeinen weggelassen werden, und wir können Zuordnungen von Zeichenfolgen einer LĂ€nge zu Zeichenfolgen einer anderen LĂ€nge betrachten, aber in diesem Fall muss man auf Unterschiede in den Dimensionen achten. Als nĂ€chstes stellen wir die Menge aller Funktionen vor, die das Mapping durchfĂŒhren, \ {0,1 \} ^ n \ rightarrow \ {0,1 \} ^ nund bezeichnen sie \ text {Func} _n.





. , | {\ text {Func} _n} |  = 2 ^ {n2 ^ n}.





-
\ text {Insgesamt unterschiedliche Zeichenfolgen der LĂ€nge} n \ space - \ space 2 ^ n. \ text {Zum Speichern} 2 ^ n \ text {Zeilen, die Sie benötigen} n2 ^ n \ text {bits.}\ text {Diese} n2 ^ {n} \ text {Bits und setzt die gewĂŒnschte Zuordnung} 2 ^ n \ text {Zeilen.}\ text {Und es wird insgesamt solche Zuordnungen geben} 2 ^ {n2 ^ n}.





. – \ text {Func} _n. , 2 ^ n - 2 ^ n. ,





P (f (x) = y_0) = 2 ^ {- n}

f – \ text {Func} _n, y_0 – .





, – - , . , .





, :





P (f (x) \ in \ {\ fĂŒr alle y: erstes \ Leerzeichenbit = 1 \}) = \ frac {1} {2}

, :





P (f (x) \ in \ {\ fĂŒr alle y: letztes \ Leerzeichenbit = 1 \}) = \ frac {1} {2}

n :





P (f (x) \ in \ {\ forall y: Zahl \ Leerzeichen Null = Anzahl \ Leerzeichen \}) = \ frac {1} {2 ^ n} \ begin {pmatrix} n \\ n / 2 \ end {pmatrix}

\ begin {pmatrix} n \\ n / 2 \ end {pmatrix} – n n / 2 ( n / 2 n ).





. , , 20 . :





P (A_i (f (x)) = 1)

, , \ varepsilon:





| P (A_i (f (x)) = 1) -P (A_i (F (x)) = 1) |  <\ varepsilon

f (x) – , F (x) – , .





. -, , , ? , . .





F.(t, \ varepsilon)-, EIN , t





| P (A (f (x)) = 1) -P (A (F (x)) = 1) |  <\ varepsilon

, , , , . , , , F_k :





– F_k (x) = F (k, x), , \ {0,1 \} ^ m \ times \ {0,1 \} ^ n \ rightarrow \ {0,1 \} ^ l, F_k . k .





m = l = n.





, k .





\ {0,1 \} ^ n \ rightarrow \ {0,1 \} ^ n \ text {Func} _n. , F_k \ text {Func} _n.





, , , :





F_k , k D. F_k f \ in \ text {Func} _n.





, , . , - . , . , . , - x_0 y_0, , , x_0, y_1 \ neq y_0. , , - , . , . . , , F_k, , k ( ).





PRF vs. PRG

PRG – . , . , PRG – PRF, PRF – PRG. , PRG, . , PRG (), n (seed) m> n. , PRG , PRF , . .





G (k) = F_k (0 ... 0) | F_k (0 ... 1)

| – , PRG PRF. , . , PRF , PRG.





PRF F_k , . , , F_k k. F ^ {- 1} (y) .





, . , : , n, F_k, k , , () .





, , AES.





. , .





P.S. . , . , c:





P.P.S. – .





So konstruieren Sie zufÀllige Funktionen - tyk





Pseudozufallsfunktionen : Drei Jahrzehnte spÀter - tyk





EinfĂŒhrung in die moderne Kryptographie - tyk





Pseudozufallsfunktionen und Blockchiffren - tyk












All Articles