Puncte:1

Schimb de date și chei HMAC

drapel au

În unele contexte (HKDF (RFC-5869 sec 2.2) și BIP32 al Bitcoin (generarea cheii master)), am văzut cheia și datele schimbate pentru HMAC. De exemplu, să fie HMAC o funcție $h:\{0,1\}^c \times \{0,1\}^b \la \{0,1\}^c$ (notație obișnuită) definită pentru o cheie $k$ și date $m$ la fel de $h(k, m)$. Ei bine, unii oameni lasă $k$ să fie o valoare publică fixă ​​(de exemplu, Sămânță de Bitcoin), și codifică octeți secreti în $m$.

Înțeleg De ce ar dori să facă acest lucru, de exemplu, materialul de intrare (care poate fi o cheie secretă) poate avea orice lungime prescrisă $c$. Presupun că nu se așteaptă la integritate, vor doar aleatoriu.

M-aș aștepta ca securitatea (sau cel puțin integritatea) să depindă de secretul $k$ și proprietăți ale funcției hash de bază. Într-adevăr, folosind rezultatele „Noilor dovezi pentru NMAC și HMAC” ale lui Bellare 1, avem un PRF de îndată ce funcția de compresie a funcției hash este un PRF și, dacă implementatorii au făcut ceea ce trebuie, acest lucru de fapt nu depind de secretul $k$.

Dar mi se pare că dovada presupune a cheie secretă uniform aleatorie. Dovada PRF este valabilă dacă dezvăluim $k$ la atacator?

(Notă: acest lucru ar fi evident dacă $k$ și $m$ a jucat roluri simetrice în construcția HMAC - nici acesta nu este cazul.)


kelalaka avatar
drapel in
Dacă ți-am înțeles corect întrebarea; Dacă remediați cheia HMAC, selectați un PRF din familia HMAC. Acum aveți un PRF de folosit.
Puncte:0
drapel tr

Voi aborda doar partea HKDF.

HKDF a fost introdus în următoarea lucrare: https://eprint.iacr.org/2010/264.pdf

În acest context, HMAC este utilizat în două scopuri oarecum distincte: 1) extragerea aleatorie și 2) PRF cu lungime variabilă (intrare/ieșire).

Schimbarea cheii are loc pentru extragerea aleatorie. Situația aici este că ni se oferă un material de cheie $IKM$ care nu este aleatoriu (pseudo)uniform și doriți să creați o cheie $PRK$ adică pseudoaleatoare (adică, nu se poate distinge din punct de vedere computațional de aleatoriu).

După cum ați observat, HMAC este, de asemenea, dovedit a fi un PRF. Cu toate acestea, nu ne putem baza pe securitatea PRF pentru a argumenta securitatea $PRK$. Dar lucrarea susține că această utilizare a HMAC este potrivită pentru furnizarea unui extractor de calcul aleatoriu (a se vedea secțiunea 6).

Vorbind despre PRF, un lucru interesant de remarcat este că unele dovezi de securitate, cum ar fi TLS, se bazează de fapt pe așa-numita ipoteză PRF-ODH (https://eprint.iacr.org/2017/517.pdf). Când se aplică utilizării HKDF în TLS: reamintim că cele două părți schimbă acțiuni DH $(g^x, g^y)$; ipoteza (on varianta) spune aproximativ că: funcția $F(K, X) = HMAC (X, K) $ este un PRF în ipoteza că funcția de compresie de bază este un oracol aleatoriu; chiar dacă atacatorului i s-a dat acces la un oracol $\mathcal{O}(T,v) = F (T^x, v) $. (Omis aici: restricții privind valorile $(T,x)$ și numărul maxim de interogări).

Rețineți că funcția $F$ de mai sus are spațiu pentru taste $\langle G \rangle$, grupul folosit pentru schimbul DH. Deci avem de-a face cu o cheie aleatorie uniformă pe spațiul cheie în contextul PRF-ODH.

P.S: luați în considerare și să citiți acest răspuns https://crypto.stackexchange.com/a/30461/58690

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.