Puncte:3

De ce RSA nu este o funcție hash?

drapel lk

RSA-Assumption spune asta $(GenSP,F,SampleX)$ este cu sens unic. Deci, dacă inițializam o instanță de RSA $(n,e), (n,d)$ și uitați destul de cheia secretă și SampleX distribuite uniform $X, F = x^e \bmod N$ ar trebui să fie într-un singur sens.

Acum se știe, de asemenea, că funcțiile injective implică rezistență la coliziune, dar nu unidirecțională, desigur.

Până acum, avem rezistență înainte de imagine și rezistență la coliziune. Și a doua rezistență pre-imagine ar trebui să fie dată dacă luăm $x$ numai din $\{0,\ldots,n-1\}$.

Vorbim despre RSA deterministă, așa că niciun proces randomizat nu este implicat în random-padding. Prin urmare, F-ul nostru este și determinist.

Am pierdut ceva?

Morrolan avatar
drapel ng
O problemă simplă este că, în general, dorim ca funcțiile noastre hash să aibă un domeniu infinit de mare - sau cel puțin unul suficient de mare pentru a fi infinit în scopuri practice. RSA nu oferă acest lucru, limitând în schimb mesajele la dimensiunea modulului.
Morrolan avatar
drapel ng
O altă problemă - mai puțin tehnică - este că ar trebui cumva să convingi utilizatorii perechii tale „(e, N)” (care ar trebui să fie standardizate, dacă ar fi să folosim RSA ca funcție hash), că ai făcut-o cu adevărat aruncați cheia privată corespunzătoare, respectiv factorizarea modulului.
Mark avatar
drapel ng
RSA este, de asemenea, omomorf în mod implicit, deci ar fi cel puțin un model prost al unui oracol aleatoriu, ca $H(a)H(b) = H(ab)$. Puteți „remedia” acest lucru prin umplutură sau pur și simplu ca funcția hash construită să aibă o proprietate de rezistență la coliziune, dar să nu fie un oracol aleatoriu bun (de exemplu, să nu aibă proprietăți de pseudoaleatorie).
Puncte:3
drapel in

RSA este o trapă-permutare, cu modul în care designul dvs. oferiți pur și simplu RSA-HASH cu aceste probleme;

  • Domeniu limitat cu o permutare: funcțiile hash criptografice, deși pot hash de dimensiuni arbitrare, au un domeniu mult mai mare decât intervalul lor; considera

    • SHA-256, deși poate avea o dimensiune de ieșire de 256 de biți, este domeniul domeniului $2^{64}$ biți.
    • SHA-3, deși poate avea o dimensiune de ieșire de 256 de biți sau mai mult, este domeniul de domeniu $2^{128}$ biți.

    Deși Keccak (SHA-3) folosește permutări, nu este o permutare la sfârșit, deoarece folosește o dimensiune de intrare mai mare $2^{128}$. O singură permutare poate declanșa unele probleme.

    Premutarea ca hash, pe de altă parte, are puțină utilizare, atâta timp cât nu vă gândiți la dimensiuni foarte mari ale modulelor. Hashing-ul fișierelor sau semnăturile nu sunt posibile cu RSA-HASH.

  • Standardul: Să presupunem că NIST a publicat funcția RSA-HASH-3 ca $H(m) = m^3 \bmod n$. Acum, toată lumea din comunitatea cripto va argumenta că în timp ce construiau RSA-HASH-3, ei nu au distrus $p$ și $q$ și ei păstrează $d$ ca privat. Nu există nicio garanție că vor face acest lucru sau nu. Deci, a crede naiv că au șters nu este modul în care funcționează criptografia ( Comentariul lui Morralan).

  • Ne așteptăm ca funcțiile hash să poată simula Oracole aleatorii iar unii nu au reușit acest lucru din cauza atacului lor de extindere a lungimii. RSA-HASH, pe de altă parte, departe de un oracol aleatoriu. Proprietatea multiplicativă a RSA împiedică acest lucru. Într-un Oracle aleatoriu, nu ne așteptăm ca o relație generală între intrări să fie purtată în relația dintre ieșiri, cu toate acestea, RSA-HASH o are $$RSA(m_1)RSA(m_2) = RSA(m_1 m_2)$$

  • Spațiu scurt de introducere: Pentru a reduce timpul de hashing, poate doriți să utilizați $e=3$, apoi cu rădăcina cubului atacă toate mesajele < $\sqrt[3]{N}$ poate fi ușor. Creșterea $e$ va crește costul hashingului. Amintiți-vă că trebuie să utilizați RSA pe 2048 de biți.

  • Post-Cuantic: în prezent, cifrurile bloc și funcția hash sunt din nou în siguranță, algoritmul lui Grover. Utilizați doar cheia de 256 de biți pentru cifrurile bloc și utilizați cel puțin o funcție hash de ieșire pe 256 de biți. Există o lucrare îmbunătățită (Brassard și colab.) pentru funcțiile hash care reduc dimensiunea în rădăcină cubă (în loc de rădăcină pătrată a lui Grover - optim asimptotic!), cu toate acestea, costul zonei este același cost, deci există nici un pericol acolo.

    RSA, pe de altă parte, va fi distrusă odată ce algoritmul lui Shor va fi construit. Asa de, RSA-HASH nu este securizat post-cuantic.

Orice utilizare?: RSA-HASH poate servi ca o bună permutare aleatorie dacă dimensiunea modulului este bună pentru aplicația dvs.

In concluzie: permutarea, securitatea cu obscuritate, viteza și fără post-cuantică nu este o alegere bună pentru funcția hash criptografică.

Utilizare SHA-2, seria SHAKE de SHA-3, BLAKE2 (foarte rapid), BLAKE3 (ridicol de rapid), etc. pentru aplicațiile dvs.

drapel cn
„au o gamă mult mai mare decât domeniul lor” nu, întregul punct al funcției hash este că codomeniul său (și, prin urmare, neapărat domeniul său) este mult mai mic decât domeniul său. Mai târziu veți folosi termenul „gama de domenii”, despre care nu am auzit vreodată. Despre ce vorbesti este domeniul.
kelalaka avatar
drapel in
@Maeher da, a fost o greșeală acolo. Mulțumiri.

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.