Puncte:2

Ce poate oferi haosul criptografiei?

drapel us

Criptografia bazată pe haos se confruntă cu multe critici, cu toate acestea, unii oameni susțin că poate furniza multe primitive criptografice, cum ar fi cifrurile de flux, cifrurile bloc, funcțiile hash, cifrurile cu cheie publică.

Lăsând deoparte toate defectele haosului aplicației în criptografie, haosul nu este cel mult un generator pseudo-aleatoriu care ar putea fi folosit pentru cifrurile de flux (dacă acest lucru este posibil)?

Notă: mă întreb de ce unii oameni cred că este potrivit pentru multe primitive criptografice.

[Editează] cu alte cuvinte: Este fezabil să construim o întreagă ramură a criptografiei pe o familie de surse pseudo-aleatoare, cum ar fi LFSR?

Sau

De exemplu, pentru cifrurile bloc, haosul nu poate fi folosit doar pentru generarea unei secvențe aleatorii care este separată pentru construcția noastră a cifrului pe care l-am construit pentru a fi flux sau cifru bloc?

Sau

Unele autori spun că haosul este potrivit pentru prng, dar nu a reușit să ofere o primitive criptografice aprobate. Nu este rolul haosului în cifrul propus doar un prng?

poncho avatar
drapel my
„Lăsând deoparte [problemele criptografice, de ce] haosul nu este cel mult [utilizat ca] un generator pseudo-aleatoriu” - vă întrebați de ce nu este folosit ca un rng noncriptografic?
user2357 avatar
drapel us
@poncho Mă întreb de ce unii oameni cred că este potrivit pentru multe primitive criptografice.
Puncte:2
drapel ng

Este fezabil să construim o întreagă ramură a criptografiei pe o familie de surse pseudo-aleatoare?

În teorie, da. Dacă a existat un generator de numere pseudoaleatoare, eficient și sigur din punct de vedere criptografic, construit dintr-un sistem haotic, care ar putea servi ca fundament pentru o criptografie simetrică rezonabil de practică și chiar pentru semnătură.

Problema este că nu știm așa ceva. PRNG-urile construite dintr-un sistem haotic și care au un argument de securitate chiar ușor convingător¹, palid în eficiență în comparație cu un CSPRNG modern² (cu excepția cazului în care extindem definiția „sistemului haotic” cu mult dincolo de funcțiile continue obișnuite iterate peste $\mathbb R$, sau aproximări discrete ale acestora).


Un generator de numere pseudoaleatoare (securizat din punct de vedere criptografic), în el definiție modernă, este un instrument suficient de puternic pentru a construi toate celelalte funcționalități de criptare simetrică: CPA și CCA(2)-cifr securizat, cifru bloc, Cod de autentificare a mesajului, criptare autentificată, hash⦠Câteva exemple:

  • Un cifr poate fi construit dintr-un (CS)PRNG folosind cheia și un IV aleatoriu cu adevărat pentru a genera PRNG și construind textul cifrat prin XOR al ieșirii PRNG cu textul simplu.Securitatea decurge direct din cea a PRNG și aceasta este o modalitate atât de bună și comună de a construi un cifr, încât are un nume: stream cipher.
  • Un cifru bloc poate fi construit dintr-un PRNG ca a Cifrul Feistel, folosind PRNG pentru a construi funcțiile rotunde. Cheia, numărul rotund și jumătatea dreaptă a blocului generează PRNG, a cărui ieșire este valoarea XOR cu jumătatea stângă.

Aceste construcții sunt în mod demonstrabil criptografic sigur dacă PRNG este. Dar, cu excepția cifrurilor de flux, acestea nu sunt utilizate în practică, în primul rând din motive de eficiență. CSPRNG obișnuite sunt construite din cifruri bloc sau/și hash-uri, mai degrabă decât invers.


Este fezabil să construiești primitive criptografice cu cheie publică din PRNG?

Da pentru semnătură. Putem construi hash securizat din PRNG securizat, apoi semnătură securizată din hash, prin diverse abordări, inclusiv SPHINCS. Pe această cale, orice PRNG eficient duce la o schemă de semnătură plauzibilă.

Pentru criptare și schimb de chei, mă îndoiesc că este cunoscută o metodă cu o dovadă de securitate sau chiar un argument convingător. Nu sunt convins de încercările de a construi criptare asimetrică din sisteme haotice continue pe căi mai directe...


¹ Nu putem cere o dovadă în sens matematic, deoarece nu avem o astfel de dovadă de securitate pentru niciun CPRNG. Dar nu vrem să acceptăm ca argument de securitate faptul de a trece un test de aleatorietate predefinit, cum ar fi NIST SP800-22rev1a sau mai tare. Un test experimental ar trebui să fie cel puțin: imposibilitate pentru criptografi umani pricepuți cunoscând proiectarea PRNG-ului, asistat de calculatoare clasice, pentru a distinge de aleatorietatea reală rezultatul PRNG însămânțat cu aleatorie adevărată. Și am dori să extindem asta la o astfel de imposibilitate începând cu o valoare minimă a anumitor parametri ai PRNG, cum ar fi dimensiunea stării sau/și numărul de runde, cu parametrii utilizați efectiv setați confortabil mai mari.

² Cum ar fi cel derivat din ChaCha considerând cheia și IV-ul ca fiind sămânța și textul simplu nu.

³ Decriptarea este similară cu schimbul de text simplu și ciphertext, cu excepția faptului că criptarea atrage IV-ul și îl face un preambul al textului cifrat, în timp ce decriptarea extrage IV-ul din preambul.

â´ Unul astfel atentat, încercare utilizări (paywalled). Polinoamele Cebyshev $T_r$ de mare grad $r$. O cheie privată este $r$, cheia publică corespunzătoare este $T_r(x)$ pentru unele fixe publice alese aleatoriu real $x\în[-1,1]$. Pentru orice număr întreg $s>0$ tine $T_r(T_s(x))=T_s(T_r(x))$ și (ignorând problemele legate de modul în care este calculat) care permite un analog al Schimb de chei Diffie-Hellman, și din asta Criptare ElGamal. Când l-am citit prima dată, am rămas neconvins de afirmația fără argumentare a securității, precum și de unele aspecte ale fezabilității (de exemplu, că, cu 2048 de biți de precizie pentru valori reale, numerele întregi $r$ și $s$ pot fi alese ca numere întregi aleatoare de 910 de biți, mai degrabă decât ca produs de numere prime de cel mult 133 ca în articol).
Actualizare: sa constatat că criptosistemul este nesigur, vezi asta articol (paywalled). Este încă prezentat în asta capitolul Criptografia cu cheie publică (paywalled) într-un timp mult mai târziu carte despre criptografia bazată pe haos (paywalled), cu recunoașterea nesiguranței. Mi se pare grăitor despre starea acelui domeniu academic. Și asta este cel mai bun: majoritatea pretențiilor de securitate, făcute cu argumente relativ slabe, nu sunt niciodată investigate serios și dovedite că sunt greșite.

user2357 avatar
drapel us
Mulțumesc... Ce vrei să spui prin: cu excepția cazului în care extindem definiția „sistemului haotic” cu mult dincolo de funcțiile obișnuite iterate peste R (sau aproximări discrete ale acestora)?
fgrieu avatar
drapel ng
@user2357: _" meu acum ușor revizuit (cu excepția cazului în care extindem definiția "sistemului haotic" cu mult dincolo de funcțiile continue obișnuite iterate peste $\mathbb R$, sau aproximări discrete ale acestora)"_ este pentru că am putea redefini drept "sistem haotic". " iterația unei funcții peste setul de șiruri de biți de o anumită dimensiune, cu funcția definită folosind rotația pe biți, XOR pe biți și adăugarea binară cu ultima purtare pierdută, care ar acoperi Chacha. Dar funcția repetată a lui Chacha este _nu_ pe $\mathbb R$ și nici nu este construită ca o aproximare discretă a unei funcții continue pe $\mathbb R$.
user2357 avatar
drapel us
Ați spus „PRNG-uri construite dintr-un sistem haotic cu un argument de securitate chiar ușor convingător”. Aveți exemple în acest sens pe cele definite în $\mathbb R$?
fgrieu avatar
drapel ng
@user2357 : ChaCha nu este un PRNG construit dintr-un sistem haotic pentru definiția pe care o intenționez a „sistemului haotic”. \[actualizare: [harta logistică](https://en.wikipedia.org/wiki/Logistic_map) $x\mapsto r\,x(1-x)$ este o funcție continuă pe $\mathbb R$ care, atunci când este repetat, duce la un sistem haotic pentru alegerea corespunzătoare a $r$. De cele mai multe ori, restricția sa la un set finit prin aproximare discretă este departe de a fi la fel de haotică. Nu există o construcție naturală similară a funcției iterate utilizate în Chacha.\]
user2357 avatar
drapel us
Te-am prins. Vrei să spui prin „ușor” să fii bun și acceptat?
fgrieu avatar
drapel ng
@user2357 : „chiar ușor” este acolo pentru a sublinia că ceea ce urmează nu trebuie să fie strict.Aș fi putut scrie: _PRNG-uri construite dintr-un sistem haotic, și având un argument de securitate, palid ca eficiență în comparație cu un CSPRNG modern. Asta chiar dacă nu avem nevoie de argumente de securitate foarte convingătoare_.
Puncte:2
drapel my

Mă întreb de ce unii oameni cred că este potrivit pentru multe primitive criptografice

Ei bine, nu sunt unul dintre acei „unii oameni”, totuși vă voi oferi perspectiva mea.

Una dintre proprietățile bune care ne place în criptosistemele noastre în „avalanșă”; adică o mică schimbare undeva apare în întregul sistem. Mă aștept ca „unii oameni” să ia în seamă acest lucru și să spună „hei, exact asta este haosul este".

La prima vedere, acest lucru are o oarecare plauzibilitate; in orice caz:

  • Haosul nu este singura modalitate de a realiza acest lucru. Acest efect de „avalanșă” este o proprietate proiectată în mod deliberat a (majoritatea) sistemelor cripto simetrice. De exemplu, cu AES, o modificare de un bit oriunde în stare va modifica toți cei 16 octeți două runde mai târziu.

  • De asemenea, nu este clar dacă proprietatea haosului de „modificări mici de obicei avalanșă peste tot” este de fapt suficientă. În primul rând, trebuie să ne asigurăm că toate astfel de modificări au această proprietate de avalanșă; ar trebui să arătăm că nu există colțuri unde modificările nu se propagă atât de repede pe cât se așteaptă și că modificările care ar fi considerate mari de infrastructura haosului (de exemplu, modificări ale msbit-urilor statului) sunt, de asemenea, propagate.

  • Haosul este definit de obicei în termeni de numere reale; când facem criptografie, ne ocupăm de valori cu precizie finită. Nu este clar (cel puțin pentru mine) dacă traducerea din real într-un domeniu finit păstrează în mod necesar proprietățile pe care le speram.

În cele din urmă, totul se reduce la performanță. De fapt, nu este acea dificil de proiectat un cifru simetric sigur (după cum a subliniat Ron Rivest, o mie de runde de aproape orice (netrivial [1]) este de obicei sigur); de asemenea, trebuie să ne performam destul de bine. Obiecția finală evidentă ar fi „aceste cifre bazate pe haos funcționează competitiv în comparație cu cifrurile mai tradiționale, menținând în același timp securitatea?”


[1]: Ron nu a specificat netrivial în observația sa, evident, există funcții rotunde care sunt perfect liniare sau fără propagare spre dreapta; Am văzut modele de coduri de amatori cu aceste proprietăți și, evident, 1000 de runde nu vă vor ajuta în acele cazuri...

user2357 avatar
drapel us
mulțumesc.......
user2357 avatar
drapel us
Ați spus „În primul rând, trebuie să ne asigurăm că toate astfel de modificări au această proprietate de avalanșă”. Întrebarea mea este: cum putem fi siguri despre acest lucru în cifrurile mainstream, AES de exemplu?
user2357 avatar
drapel us
„Nu este clar (cel puțin pentru mine) dacă traducerea din real într-un domeniu finit păstrează în mod necesar proprietățile pe care le speram.” Există o degradare numerică care este considerată una dintre cele mai probleme în implementarea acestor sisteme. Un cercetător serios a indicat acest lucru la începutul secolului și a lucrat la el, cu toate acestea, comunitatea criptografică a haosului ignoră acest lucru de cele mai multe ori.
poncho avatar
drapel my
@user2357: AES este un exemplu bun; avem o dovadă că (de exemplu) o modificare de un octet într-un octet al unei stări intermediare va schimba întotdeauna toți cei 16 octeți din starea două runde mai târziu. Acest lucru se întâmplă indiferent de modificarea acelui octet și pot fi făcute declarații similare pentru modificări la 2 sau 3 octeți ai unei stări intermediare. Sunt criptosistemele bazate pe haos capabile să facă declarații similare?
Puncte:1
drapel si

Comportamentul aparent haotic este necesar, dar insuficient pentru criptografie. Este un rezultat al securității criptografice, nu o cauză. Unii oameni inversează cauzalitatea și cred că orice lucru care prezintă un comportament haotic este potrivit pentru criptografie. Nu știu De ce unii oameni fac această greșeală și nu este unic pentru criptografie.

Definiția lui Lorenz a haosului: „Când prezentul determină viitorul, dar prezentul aproximativ nu determină aproximativ viitorul”.

Pentru sistemele criptografice computerizate care funcționează în întregime pe biți, nu avem problema măsurătorilor imprecise care duc la limita de a avea doar „prezentul aproximativ” pe care îl au sistemele haotice fizice.

Sisteme practice de criptare do manifestă un comportament haotic, dar ei de asemenea au alte proprietăți. Conceptele lui Shannon despre Confuzie și Difuzie creați dependența sensibilă de condițiile inițiale pentru textul cifrat atât din textul simplu, cât și din cheie. ei de asemenea asigurați-vă că transformarea nu este inversabilă, ceea ce un simplu sistem haotic ar putea să nu facă.

Singurul loc în care oscilatorii haotici se obișnuiesc mult este în generatoarele hardware de numere aleatorii. Acestea sunt adesea compuse din mai multe oscilatoare inelare eșantionate la diferite frecvențe independente de ceas, ceea ce duce la fluctuații în valorile eșantionului. Această fluctuație înseamnă că măsurătorile oscilatorilor sunt doar o aproximare a stării lor complete, deci este efectiv imposibil să se determine starea viitoare dintr-o măsurătoare prezentă. De asemenea, unii folosesc zgomotul de diodă de avalanșă, care este un efect mecanic cuantic în centrul său. Deoarece nu putem ști niciodată starea completă a unui sistem cuantic (dacă acesta chiar există), acestea prezintă și proprietatea „prezent aproximativ”.

poncho avatar
drapel my
Hmmmm, analiza formală a surselor de entropie a oscilatorului inel pe care am văzut-o bazează sursa de entropie nu pe comportamentul haotic, ci pe zgomotul termic care subtilitatea modifică timpii de tranziție (care modifică direct sincronizarea exactă a RO). Ați văzut o analiză formală bazată pe comportament haotic?
SAI Peregrinus avatar
drapel si
Zgomotul termic *este* un comportament haotic. La o scară suficient de mică, transferul de căldură este un sistem dinamic care prezintă dependență sensibilă de condițiile inițiale. De obicei, nu este util să-l modelezi ca atare, este mult mai ușor să-l tratezi ca pe un fel de sursă aleatorie „adevărată”, dar este un sistem determinist imprevizibil.
user2357 avatar
drapel us
@SAIPeregrinus multumesc.
Puncte:-3
drapel cn

Ce poate oferi haosul criptografiei?

Poate oferi o entropie bună. Și cu entropie, avem numere cu adevărat aleatorii. Util în criptografie.

Există un concept matematic numit haos determinist. Acesta este un amestec de haos care este puțin previzibil. Exemplele clasice sunt Atractori ciudati ca:-

atractor

Puteți vedea că este atât previzibil, deoarece curba orbitează doi loci, dar orbitele particulare sunt imposibil de prezis în detaliu. Entropia (de obicei KolmogorovâSinai [un pic dincolo de mine]) este generată atunci când măsurați diferențele relative în spațiul fazelor. O referință bună este Zgomot, haos și $(\epsilon, \tau)$-entropia pe unitatea de timp.

Un alt exemplu clasic este demonul de entropie a avut. Utilizează flutterul CPU pentru a-și genera entropia. Astfel, aveți sursele de entropie pentru generatoarele de numere aleatoare adevărate.

Desigur, acest lucru se aplică doar implementărilor hardware precum Circuitul lui Chua și CPU-uri reale. Orice model matematic va fi în întregime determinist.

user2357 avatar
drapel us
Mulțumesc. Internetul meu este în ecuații de haos, ceea ce este determinist. În afară de asta, dacă ceea ce oferă este entropia, deci nu face ca acest lucru să fie cel mult un generator pseudo-aleatoriu care ar putea fi folosit pentru cifrurile de flux (dacă acest lucru este posibil)? De exemplu, pentru cifrurile bloc, haosul nu poate fi folosit doar pentru generarea unei secvențe aleatorii care este separată pentru construcția noastră a cifrului pe care l-am construit pentru a fi flux sau cifru bloc? Este fezabil să construiți o întreagă ramură de cripto pe o familie de prng, de ex. LFSR?
user2357 avatar
drapel us
Mai am o întrebare: dacă obiectivul nostru este o adevărată secvență aleatorie, nu este acesta un bloc de timp, ceea ce nu este practic?
Paul Uszak avatar
drapel cn
@user2357 1) Ei bine, un PRNG are doar entropia valorii de semințe, să zicem 128 de biți. Asta este, indiferent de lungimea secvenței de ieșire. Un TRNG bazat pe haos are o ieșire de entropie infinită.
Paul Uszak avatar
drapel cn
@user2357 2) Se utilizează secvențe cu adevărat aleatorii pentru generarea de chei și pentru însămânțarea PRNG-urilor. Altfel, de unde vine entropia inițială? Și OTP-urile sunt practice, deoarece sunt folosite de un secol; consultați http://users.telenet.be/d.rijmenants/en/onetimepad.htm pentru o recenzie foarte bună. Motivul pentru care suntem atrași de OPT-uri (și la fel sunt guvernele, băncile și NATO) este că acestea sunt garantate indestructibil pentru tot timpul, ceea ce nu este adevărat pentru primitivele criptografice obișnuite.
user2357 avatar
drapel us
mulțumesc......

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.