Puncte:2

Efectuarea OTP de două sau mai multe ori cu un TRNG părtinitor: Va avea aceeași securitate ca și cum ar fi făcut cu un TRNG nepărtinitor?

drapel pf

Să presupunem că vreau să fac Bloc de o singură dată dar am doar o părtinire generator de numere aleatoare adevărate (TRNG).

I XOR la ​​blocul de text cifrat cu altul cu date aleatorii obținute de la TRNG, e repeta procesul de două sau de mai multe ori cu blocuri aleatoare diferite.

Această schemă va face One-Time-Pad mai sigur? Va oferi aceasta aceeași securitate ca și cum ar fi fost făcută cu un TRNG nepărtinitor?

drapel ar
Având în vedere că XOR-ul blocului care urmează să fie criptat de $n$ ori cu diferite blocuri aleatorii este echivalent cu XOR-ul o dată cu XOR-ul tuturor $n$ blocuri aleatoare, o modalitate mai fructuoasă de a reformula această întrebare ar putea fi „(cât) XORing $n$ blocuri de biți aleatori părtinși împreună reduce părtinirea?" De asemenea, FWIW, acest proces (și alte tehnici similare pentru îmbunătățirea calității TRNG) este cunoscut sub numele de „albire”.
Reinstate Monica avatar
drapel gd
Abordare mai eficientă și perfect imparțială presupunând independența aruncărilor de monede: răsturnați de două ori pentru fiecare bit și setați bitul la 0 dacă răsturnările sunt aceleași.
Puncte:10
drapel dz

Mai bine decât să-l folosești o dată, dar nu la fel de bun ca un TRNG imparțial.

Pentru a vedea acest lucru, să presupunem că TRNG-ul nostru este foarte părtinitor, producând zero 10% din timp și unul 90% din timp.

Dacă folosim TRNG-ul de două ori, pentru fiecare bit avem patru posibilități:

  • De ambele ori primim un 0 de la TRNG. Acest lucru se va întâmpla 10% * 10% = 1% din timp.
  • Prima dată obținem un 0 și a doua oară obținem un 1: Acest lucru se va întâmpla 10% * 90% = 9% din timp
  • Prima dată obținem un 1 și a doua oară obținem un 0: Acest lucru se va întâmpla 90% * 10% = 9% din timp
  • De ambele ori primim un 1 de la TRNG. Acest lucru se va întâmpla 90% * 90% = 81% din timp.

Deci, după XOR, primul și ultimul caz produc un 0, iar al doilea și al treilea caz produc un 1. Deci 82% din timp obținem un 0 și 18% din timp obținem un 1. Deci rezultatul este încă un TRNG părtinitor, dar nu la fel de rău ca TRNG original. Dacă repeți acest lucru de destule ori, te-ai putea apropia suficient de 50/50 încât nu ar conta în practică. Un TRNG mai puțin părtinitor ar ajunge acolo mai repede, dar s-ar aplica aceleași principii.

Puncte:8
drapel sa

Convergența procesului sugerat de dvs. către biți imparțiali este ghidată de Lema Piling Up. Va fi lent. Este mai eficient să se utilizeze proceduri de nepărtinire, cum ar fi imparțializarea von Neumann. Vezi de exemplu această întrebare

Dar acest lucru este, desigur, mai simplu datorită XOR direct.

Pentru $n$ independent distribuit identic $\{0,1\}$ variabile aleatoare evaluate, $X_1, X_2, \ldots X_n$:

$$ Pr(X_1 \oplus \ldots \oplus X_n = 0) = \frac{1}{2} + 2^{n-1} \prod_{i=1}^n \epsilon_i $$ Unde $\epsilon_i$ este părtinirea $X_i.$ Acest lucru dă părtinirea finală ca

$$ \epsilon_{1,2, \ldots, n} = 2^{n-1} \prod_{i=1}^n \epsilon_i $$

Pentru fiecare bit din blocurile tale combinate și luând exemplul părtinirii $\epsilon_i = 0,4$ pentru $i=1,\ldots, n$ (corespunzător celor 90% din celălalt răspuns) obținem părtiniri ca mai jos

\begin{matrice}{c|c|c} \textrm{Numărul de } și \textrm{Prejudiciul rezultat} și \textrm{Probabilitatea de 1} \ \textrm{blocuri combinate ($n$)} & & \ 2 și 0,32000 și 82,0\% \ 4 și 0,20480 și 70,4\% \ 8 și 0,083886 și 58,4\% \ 16 și 0,014074 și 51,4\% \end{matrice}

FYI, această convergență lentă din cauza $2^{n-1}$ factorul este motivul pentru care funcționează criptoanaliza liniară.

phantomcraft avatar
drapel pf
Vă mulțumesc pentru răspuns, dar a trebuit să aleg celălalt răspuns ca „cel mai bun răspuns” pentru că sunt foarte începător în criptografie și nu am înțeles prea bine formulele tale.
kodlu avatar
drapel sa
Nici o problema. Formulele arată ce se întâmplă în cazul general
Puncte:3
drapel cn

Cam da.

Multe modele TRNG se bazează în întregime pe circuite digitale și nu implică componente analogice [vezi nota]. Le face mai ușor de încorporat pe siliciu. Dar, din păcate, circuitele digitale au tendința de a funcționa digital și, prin urmare, sunt destul de slabe la generarea de entropie. Deci, în loc să vă dau un exemplu teoretic, iată un TRNG real cu părtinire foarte foarte slabă:-

Aceasta este de la a hârtie construirea unui FPGA TRNG.

pll

Observați Decimatorul. Rolul lui este de a XOR succesiv $K_D$ mostre împreună pentru a crește entropia pe eșantion de ieșire. În acest caz, $K_D=7$, XORing efectiv șapte OTP împreună din perspectiva dvs. Mai târziu în acea ziare, $K_D$ ajunge la 185 pentru un alt design. Adică 185 de mostre TRNG părtinitoare XOR combinate folosind Lema acumulată. Nu găsesc referința pentru tine, dar am văzut un raport de decimare de 512 într-un oscilator inel TRNG.

Așadar, veți descoperi că XOR-urile multiple succesive sunt comune în toate TRNG-urile digitale sub formă de decimare. Evită tehnicile de extracție a entropiei mai complexe, cum ar fi hashingul, care necesită mai multă proprietate imobiliară de siliciu.


Notă.Presupun că în acest caz există circuite pur digitale, în timp ce îmi dau seama că toate circuitele sunt practic analogice la scară micro.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.