Puncte:1

Cum să extrageți cel mai ieftin 1 octet de entropie distribuită uniform dintr-un punct EC Curve25519 de 32 de octeți

drapel es

Caut cel mai simplu și mai ieftin hash cu următoarele proprietăți:

Intrare: un punct EC Curve25519 de 32 de octeți care conține aproximativ 125 de biți de entropie distribuită neuniform (creată ca urmare a unui schimb ECDH).

Ieșire: 1 octet care conține 8 biți de entropie, distribuiti uniform.

Paul Uszak avatar
drapel cn
XOR punctul de 31 de ori.
knaccc avatar
drapel es
@PaulUszak Care este cel mai bun mod de a demonstra validitatea metodei tale? Există lucrări care pot fi citate? Ar trebui să-i conving pe oamenii care sunt îngroziți să facă altceva decât trunchierea ieșirii unui hash sigur din punct de vedere criptografic la 1 octet
knaccc avatar
drapel es
@kelalaka care este cel mai rapid hash care ar îmblânzi neuniformitatea, având în vedere că ieșirea de un octet înseamnă că nu suntem restricționați la hash-uri care oferă rezistență la coliziune? Sper că această lipsă de restricție înseamnă că metode de hashing mult mai simple și mai rapide sunt disponibile pentru acest caz de utilizare
Puncte:2
drapel in

Codificarea obișnuită a punctelor este structurată și neuniformă, deoarece trebuie să satisfacă ecuația curbei. În Curve25519 cu $x \in \mathbb Z(2^{255} - 19)\mathbb Z$ și folosind ecuația curbei $x^3 + 486662 x^2 + x$ este întotdeauna un pătrat pentru puncte. Există un sfat obișnuit să utilizați un KDF pe ieșirea ECDH pentru a utiliza cheile AES, deoarece poate ataca puncte pentru atacurile cheie asociate.

O soluție pentru cerință este utilizarea unui PRF rapid precum ChaCha8, unde cheia este cheia DHKE cu zero IV.

func extact_one_byte( Punctul P):
  
   un octet = 0  
   out512 = ChaCha8(cheie,00..00, x(P)||y(P))
   
   întoarceți afară512[0:8] 
knaccc avatar
drapel es
Vrei să spui că caracteristicile lui BLAKE3 sunt de așa natură încât, dacă ar fi trunchiat la un singur octet, acel octet nu ar îndeplini cerința de a fi uniform aleatoriu? Te rog, ai putea să-ți dai raționamentul?
kelalaka avatar
drapel in
Ieșirea unei funcții hash criptografice este de așteptat să nu se distingă de aleatoriu uniform. Cu excepția cazului în care se poate demonstra inversul, toți octeții, toți biții nu se pot distinge. Prin urmare, x-sau, de asemenea.
knaccc avatar
drapel es
Atunci de ce face XOR, dacă primul octet al ieșirii BLAKE3 ar fi deja uniform aleatoriu?
kelalaka avatar
drapel in
S-ar putea să nu aveți nevoie, totuși, condensarea lor la un octet nu are niciun pericol și aproape că nu are niciun cost.
knaccc avatar
drapel es
Dacă consider că punctul EC este un secret cu o putere de biți de 125 de biți și dacă sunt îngrijorat de scurgerea de informații despre acest secret, care ar fi puterea de biți a acestui secret după publicarea hash-ului de 1 octet? Și dacă răspunsul este că ar trebui să mă aștept să fie de 125-8=117 biți după publicarea hash-ului de 1 octet, de ce ar conta dacă se folosește un hash sigur criptografic în loc de o sumă de control mai simplă? Cred că acesta este motivul pentru care @PaulUszak a spus doar XOR octeții punctului EC și nu hash deloc
kelalaka avatar
drapel in
Această metodă grupează punctele în 256 de găleți uniform aleatoriu. Da, acest lucru oferă unui atacator cunoștințe de 8 biți despre punctul (punctele). Suma de control poate oferi o relație simplă despre punctul care poate fi exploatat sau legat de ecuația curbei pe care nu o pot vedea sau dovedi. M-aș rămâne la hashing.
kelalaka avatar
drapel in
De asemenea, uniforma trebuie dovedită aleatoriu pentru suma de control, aceasta este partea grea.
knaccc avatar
drapel es
Vă mulțumesc, voi lăsa întrebarea deschisă câteva zile și voi accepta răspunsul dvs. dacă cineva nu sugerează ceva mai puțin intensiv în calcul
kelalaka avatar
drapel in
@knaccc despre utilizarea chacha8 cu cheia extrasă de DHKE și utilizarea zero IV? Va fi foarte rapid. Unde vrei să folosești asta?
knaccc avatar
drapel es
Monero dezbate în prezent cum să implementeze ceva numit „etichetă de vizualizare”: https://github.com/monero-project/monero/pull/8061 Apoi a ieșit la iveală că este important ca hash a două apariții diferite ale Același secret ecdh cu diferite interiuri concatenate trebuie să fie deconectat atunci când se examinează hash-urile fiecăruia, astfel încât să excludă omiterea completă a hash-ului. Mulțumesc pentru sfatul chacha8. Am evaluat Blake3 și asta pare promițător dacă există un apetit în rândul dezvoltatorilor de a introduce un nou tip de hash (în plus față de keccak pe care îl folosim în prezent peste tot)
kelalaka avatar
drapel in
@knaccc [vulturul] nostru (https://chat.stackexchange.com/transcript/message/60312478#60312478) m-a avertizat despre asta. Știi, de cele mai multe ori am făcut link la răspunsul lor pentru întrebările tale.
knaccc avatar
drapel es
Să [continuăm această discuție în chat](https://chat.stackexchange.com/rooms/133712/discussion-between-knaccc-and-kelalaka).

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.