Even-Mansour este un model teoretic pentru a demonstra rezultatele securității. Ar trebui să eșantioneze permutări ale $n$ biți, să zicem pentru $n=128,$ întrucât spaţiul rezultat al $N=2^n$ obiectele ar fi prea mari pentru a fi stocate sau manipulate. Acest lucru este similar cu faptul că nimeni nu folosește un echidistribuit pur aleatoriu și i.i.d. secvență de biți ca flux de cheie în modul OTP în criptografia modernă. Este prea lent.
Cu toate acestea, următorul algoritm oferă o permutare aleatorie activată $\{1,2,\ldots, N\}.$ Aici nu se pretinde o eficiență optimă.
COD PENTRU PERMUTAREA ALEATORII A LISTEI MICI
Intrare: Lista $A=[1,2,\ldots, N]$ de $N=2^n$ articole.
Sarcină: permută valorile în $A$ la intamplare.
Lăsa $S:=\{u: u \in A\}.$ Lăsa $B:=A$
pentru fiecare $i=1,\ldots,N$ do
$\quad$ Alegeți un număr întreg aleatoriu $j \în S$
$\quad$ Schimbați matricea $B$ prin intermediul $B[j]:=A[i]$
$\quad$ Elimina $j$ din set $S$
sfârşitul pentru
Acest algoritm alege $N,$ atunci $N-1$, atunci $N-2$ etc. obiecte uniform și poate genera fiecare permutare cu probabilitate egală, deoarece face $N\!$ alegeri.
Ieșire: Lista $A$ acum este aleatoriu.
Există modalități mai eficiente de a eșantiona permutările aleatoare, vezi, de exemplu, Jens Gustedt, „Eșantionarea eficientă a permutărilor aleatoare”, Jurnalul de algoritmi discreti, Vol. 6, numărul 1, 2006. Aruncă o privire, de asemenea, la Fisher-Yates shuffle și Knuth Shuffle, Google este prietenul tău.
Algoritmul de mai jos nu ajunge acolo, mulțumesc lui @kelalaka pentru corecție
Intrare: Lista $A=\{1,2,\ldots, N\}$ de $N=2^n$ articole.
Sarcină: permută valorile în $A$ la intamplare.
pentru fiecare $i=0,\ldots,N-1$ do
$\quad$ Alegeți un număr întreg aleatoriu $j$ cu $i<j<N.$
$\quad$ Schimbați intrările $A[i]$ și $A[j].$
sfârşitul pentru
Ieșire: Lista $A$ acum este aleatoriu.