Puncte:3

Care este funcția ideală de memorie hard?

drapel in

Acest spune $f_n$ este greu de memorie dacă, pentru orice spațiu $S$ si timpul $T$, $S\cdot T \in \Omega(n^2)$.

Intrebarile mele:

  • Ce este $S$? Spaţiu? De exemplu. octeți de memorie disponibilă?
  • Ce este $n$? Octeți de memorie solicitați de funcția hard memory?
  • Ce este $T$? Numărul de runde?
  • Cât de bună este această definiție? De exemplu. cat de strans este? De exemplu. $\Omega(n^2)$ este limita inferioară asimptotică, dar cred că nu toate funcțiile care sunt $\în \Omega(n^2)$ sunt egale. De exemplu. poate unele sunt mai bune? Deci, bănuiesc că această definiție nu este suficient de strânsă pentru a ne arăta care KDF cu memorie este neapărat mai bun?
  • O definiție mai bună a durității memoriei? De exemplu. mai strâns decât simplu $\în \Omega(n^2)$?
Puncte:5
drapel us

Multe dintre acestea sunt abordate în articol.În această setare, „adversarul” este un algoritm care poate evalua $f_n$ folosind mai puține resurse decât am sperat.

  • $S$ = complexitatea spatiului/memoriei adversarului. În această linie de lucru, $f_n$ este o funcție care face apeluri către un oracol aleatoriu $H : \{0,1\}^k \la \{0,1\}^k$, și $S$ este utilizarea spațiului (în cel mai rău caz) de către adversar, măsurată în $k$-bit „blocuri”.

  • $T$ = complexitatea temporală a adversarului. De obicei, măsurat în numărul de apeluri către $H$. În unele modele, adversarului i se permite să facă apeluri paralele către $H$ gratuit, deci $T$ este numărul de „runde succesive” de apeluri către $H$.

  • $n$ = parametrul de duritate reglabil al funcției memory-hard. Mai mare $n$ crește efortul necesar pentru evaluarea funcției $f_n$ (și, în mod ideal, efortul se scalează pătratic în $n$). Partidele sincere ar trebui să aleagă pe cea mai mare $n$ astfel încât ei sunt dispuși să depună efortul de a evalua $f_n$.

Cât de bună este această definiție? ... Deci, cred că această definiție nu este suficient de strânsă pentru a ne arăta care KDF cu memorie este neapărat mai bun?

E adevărat că $n^2/1000$ este mult diferit de 1000$ n^2$, dar această definiție ar fi mulțumită cu funcțiile dure de memorie cu oricare dintre aceste niveluri de dificultate. La momentul redactării acestei lucrări, cele mai multe funcții candidate de memorie dure erau asimptotic mult mai rău decât $\Theta(n^2)$. Deci această definiție este destul de eficientă pentru a exclude mulți candidați răi. Odată ce ai mulți candidați care satisfac asta asimptotic definiție, atunci puteți începe să vă faceți griji cu privire la factorii constanți.

O definiție mai bună a durității memoriei?

Da, această definiție ia în considerare doar cel mai rău utilizarea spațiului carcasei $S$. Presupune $f_n$ este o funcție care într-adevăr necesită $n$ unități de memorie de evaluat - nu există nicio modalitate de a evalua $f_n$ fără să țină $n$ unități de memorie la un moment dat. Acest lucru nu exclude posibilitatea ca $n$ unitățile de memorie sunt necesare doar pentru o fereastră de timp foarte scurtă. Cu alte cuvinte, ar putea exista un algoritm pentru $f_n$ a cărui diagramă de utilizare a memoriei de-a lungul timpului arată astfel:

introduceți descrierea imaginii aici

(imagini preluate de la Diapozitivele lui Leo Reyzin pe scrypt)

Dacă acest algoritm are maxim utilizarea spațiului $n$ și, de asemenea, utilizări $n$ timp, complexitatea sa ST este $\Omega(n^2)$. Complexitatea ST este ca zona dreptunghiului albastru al casetei de delimitare din această imagine.

Dar această măsură a durității memoriei ascunde o anumită problemă. Să presupunem că un adversar dorește să evalueze $f_n$ pe multe intrări diferite și programează în mod inteligent acele evaluări astfel:

introduceți descrierea imaginii aici

Această strategie poate fi folosită pentru a evalua exemplul $f_n$ pe $n$ diferite intrări folosind numai $O(n)$ timp și $O(n)$ Memorie totala! Deci, „costul ST” total pentru a evalua funcția $n$ ori este $O(n^2)$, ceea ce înseamnă că amortizat costul pe instanță este doar $O(n)$.

O modalitate mai bună de a clasifica duritatea memoriei unei funcții ar fi măsurarea zona de sub curbă mai degrabă decât zona casetei de delimitare. Acesta este într-adevăr ceea ce se propune în lucrările ulterioare, unde metrica duritate-memorie este numită „complexitate cumulativă a memoriei”.

kodlu avatar
drapel sa
frumos răspuns, am învățat destul de mult din el.
kelalaka avatar
drapel in
Da, oamenii au uitat de multe ori costul amortizat. Și, acesta este motivul pentru care funcțiile cu memorie hard au nevoie de acces aleatoriu tot timpul.

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.