Puncte:0

Este o funcție hash perfectă același concept ca o funcție hash rezistentă la coliziune?

drapel in
Tim

Despre funcțiile hash rezistente la coliziuni, în Introducerea lui Katz în criptografia modernă,

6.1 Definiții

Funcțiile hash sunt pur și simplu funcții care preiau intrări de o anumită lungime și comprimați-le în ieșiri scurte, cu lungime fixă.Utilizarea clasică a (non- criptografice) funcțiile hash se află în structurile de date, unde pot fi folosite construiți tabele hash care să permită timpul de căutare O(1) atunci când stocați un set de elemente. Mai exact, dacă domeniul funcției hash H este de dimensiunea N, atunci elementul x este stocat în rândul H(x) al unui tabel de dimensiune N. Pentru a prelua x, este suficient să calculați H(x) și să sondați acel rând al tabelului pentru elementele stocate acolo. O funcție hash bună în acest scop este una care produce puține coliziuni, unde o coliziune este o pereche de elemente distincte x și x0 pentru care H(x) = H(x0); în acest caz mai spunem că x și x0 se ciocnesc. (Când are loc o coliziune, doi elementele ajung să fie stocate în aceeași celulă, mărind timpul de căutare.)

Funcțiile hash rezistente la coliziuni sunt similare în spirit; din nou, scopul este pentru a evita coliziunile. Cu toate acestea, există diferențe fundamentale. Pentru un, dorința de a minimiza coliziunile în stabilirea structurilor de date devine a cerința de a evita coliziunile în cadrul criptografiei. În plus, în contextul structurilor de date presupunem că setul de elemente este hashing este ales independent de H și fără nicio intenție de a provoca coliziuni. În contextul criptografiei, în schimb, ne confruntăm cu un adversar care poate selecta elemente cu scopul explicit de a provoca coliziuni. Acest lucru înseamnă că funcțiile hash rezistente la coliziuni sunt mult mai greu de proiectat.

Despre conceptul de hashing perfect, în Introducerea în algoritmi a CLRS:

11.5 Hashing perfect

Numim o tehnică de hashing hashing perfect dacă sunt necesare accesări la memorie O(1) pentru a efectua o căutare în cel mai rău caz.

Pentru a crea o schemă de hashing perfectă, folosim două niveluri de hashing, cu hashing universal la fiecare nivel. Primul nivel este în esență același ca și pentru hashing cu înlănțuire: hashăm cele n chei în m sloturi folosind o funcție hash h selectată cu grijă dintr-o familie de funcții hash universale. Cu toate acestea, în loc să facem o listă legată de chei de hash la slotul j , folosim un mic tabel hash secundar S j cu o funcție hash asociată h j . Prin alegere funcțiile hash h j cu atenție, putem garanta că nu există ciocniri la nivel secundar.

si in https://en.wikipedia.org/wiki/Perfect_hash_function

În informatică, o funcție hash perfectă h pentru o mulțime S este o funcție hash care mapează elemente distincte din S la o mulțime de m numere întregi, fără ciocniri. În termeni matematici, este o funcție injectivă.

Este corect că în cartea lui Katz, o funcție hash rezistentă la coliziuni înseamnă exact o funcție hash fără coliziuni? (Așa cred.)

O funcție hash perfectă în Wikipedia este aceeași cu o funcție hash rezistentă la coliziuni din cartea lui Katz? (Așa cred.)

Este o funcție hash perfectă din cartea lui CLRS la fel cu o funcție hash rezistentă la coliziune din cartea lui Katz? (CLRS definește o funcție hash perfectă în ceea ce privește complexitatea accesului la memorie fiind O(1) și implementează o funcție hash perfectă ca o funcție hash rezistentă la coliziuni, deci cred că o funcție hash rezistentă la coliziuni este, de asemenea, un hash perfect funcție, dar nu sunt sigur dacă o funcție hash perfectă este neapărat rezistentă la coliziuni.)

Este o funcție hash perfectă din cartea lui CLRS la fel cu o funcție hash perfectă din Wikipedia?

Mulțumiri.

kelalaka avatar
drapel in
[Un răspuns canonic mai multe despre asta pe infosec de către Squeamish ossifrage](https://security.stackexchange.com/a/219656/86735) și rețineți că este vorba despre tabelele hash CS.
Puncte:3
drapel gb

Este corect că în cartea lui Katz, o funcție hash rezistentă la coliziuni înseamnă exact o funcție hash fără coliziuni?

Nu. Există două concepte diferite în joc aici. A criptografic Funcția hash oferă garanții precum rezistența la coliziune, dar funcțiile hash utilizate în structurile de date nu sunt funcții hash criptografice. Pentru algoritmi, vrem doar o modalitate eficientă de a mapa unele intrări într-o locație de memorie/întreg/etc.

Funcțiile hash criptografice mapează intrările de dimensiuni arbitrare la un spațiu de ieșire finit fix, deci, de fapt, vor exista coliziuni infinite. Este pur și simplu imposibil din punct de vedere computațional să găsești unul.

În termeni matematici, este o funcție injectivă.

Funcțiile hash din criptografie nu sunt injective deoarece, așa cum sa menționat mai sus, spațiul de ieșire este mult mai mic decât spațiul de intrare. Deci, cu siguranță nu sunt la fel cu funcțiile hash perfecte.

Este o funcție hash perfectă din cartea lui CLRS la fel cu o funcție hash perfectă din Wikipedia?

Da, în ambele cazuri, funcțiile hash sunt fără coliziuni (nu există coliziuni).

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.