Puncte:2

Cât de multă aleatorie să „spălă” în mod rezonabil un TRNG compromis?

drapel id

Să presupunem că am un modul RNG fizic care generează $n$-bit numere aleatorii care trec teste de aleatorie, cum ar fi suita Dieharder.Deoarece este un dispozitiv cutie neagră cu o sursă necunoscută de aleatorie, să presupunem, de asemenea, că a fost parțial compromis: un atacator care cunoaște funcționarea modulului RNG, având în vedere o singură stare anterioară, poate ghici corect următoarea stare în $2^{n-m}$ pași pentru $1 \leq m \leq n$.

Să presupunem, de asemenea, că am acces la o altă sursă de entropie, verificabil fără compromisuri, dar altfel de proastă calitate, care oferă $x - p$ biți de entropie per $x$ biți de ieșire pentru $0 < p < x$. Să presupunem, de asemenea, că această sursă de entropie este semnificativ mai lentă decât modulul RNG menționat mai sus.

  1. Pentru a „spăla” prima sursă RNG astfel încât să producă numere cu adevărat imprevizibile, câtă muncă va trebui să fac?
    • Pentru a anula efectele $m$ pe numărul de ieșire, câți biți de entropie va trebui să distilez și să furnizez din sursa de entropie?
    • Ce operațiuni va trebui să efectuez pentru a mă asigura că nu obțin un număr compromis? Concatenarea + hashing cu o funcție hash sigură din punct de vedere criptografic va „face truc”?
    • Dimpotrivă, ce operațiuni va trebui să evit dacă vreau ca manipularea să fie „spălată”?
    • Câtă trunchiere va trebui să fac?
  2. Asumand $m$ este suficient de mare/aproape de $n$, ar fi mai bine să extragem doar biți aleatori din a doua sursă și să-i concatenați într-un singur număr, ocolind utilizarea modulului potențial compromis?

Ipotezele mele:

  1. va trebui să folosesc $m$ biți de ieșire aleatoare fără compromisuri, concatenează-l cu prima ieșire și hash-o. Cred că trunchierea ieșirii concatenate sau a numărului de intrare nu va ajuta prea mult dacă nu știu exact ce biți sunt compromisi sau dacă nu știu probabilitățile a căror bit este compromis. Ar trebui să evit XOR-ul intrărilor înainte de a aplica hash-ul.

  2. Presupun că „spălarea” este rezonabilă până la $m = n/2$, dincolo de care probabil ar trebui doar să extrag aleatoriu din a doua sursă și să concatenez biții aleatori într-un $n$-număr de biți, ocolind complet modulul potențial compromis.

Puncte:1
drapel cn

Dump TRNG1. Atât RC4, cât și Marsienne Twister trec de Dieharder.

Aceasta este cripto și ca și sarcina, nu există nici un concept de „mic” compromis. Dacă este compromis, puteți prezice următoarea ieșire poate în doar câțiva pași dacă este însămânțată din e.t.c. timpul (obișnuit), nu contează $2^{da, da ,da}.$ Indistincbilitatea computațională înseamnă că, dacă nu ați construit singur RNG-ul, nu veți afla niciodată ce face de fapt. Prin urmare, scapă de el. (Sau pretinde că îl folosești, dar asta devine puțin serios).

Nu concatenați biți din TRNG2. Măsurați entropia ca $1 - \epsilon$ biți/bit (potențial can de viermi). $\epsilon$ este metrica „sărăciei”; o părtinire departe de aleatorietatea perfectă. Și apoi extrageți din TRNG2 folosind tehnici standard precum matrice Toeplitz, hashing standard (Pearson, CRC16, SHAx), funcții hash universale sau dacă aveți noroc doar von Neumann. Viteza va depinde de $\epsilon$.

mezenkur avatar
drapel id
Ai dreptate, eram poate prea optimist și mi-am lăsat creierul zguduit să treacă prea mult înaintea preocupărilor practice. Vă mulțumesc pentru înțelegere.

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.