Puncte:2

Verificare hash prin cheie

drapel cn

Vreau să implementez următorul algoritm, dar nu știu ce instrumente să folosesc.

D - date

  1. Generez o valoare universală pentru D - Y
  2. Generez o cheie aleatorie - K, obțineți un hash de D cu această cheie - H
  3. Vreau să pot avea o funcție - F: F(Y, K, H) = adevărat dacă H este corect și fals în caz contrar.

Scopul principal: de a demonstra validitatea hash-ului de date cu o cheie folosind doar o parte din date originale.

Utilizare: Să presupunem că avem computere: A, B, C. A trimite unele date către B, apoi datele sunt șterse din A. Acum, vreau să pot verifica (de la nodurile A, C) că B conține datele la fiecare 10 minute, dar nu pot avea încredere, așa că am nevoie de un instrument pentru a fi sigur că B nu mă păcălește.

Răspuns: PDP (Dovada deținerii datelor)

kelalaka avatar
drapel in
Ceri HMAC sau mai multe?
ischenko avatar
drapel cn
@kelalaka Vreau să pot dovedi că datele există pe un alt dispozitiv, așa că vreau să le trimit solicitări cu chei diferite și să primesc hashuri, apoi verific hashurile după o bucată de date (de dimensiune fixă) extrasă din datele originale
ischenko avatar
drapel cn
@kelalaka a adăugat o secțiune de utilizare
ischenko avatar
drapel cn
@kelakala Trimit cereri cu chei aleatorii, așa că B trebuie să păstreze datele pentru a calcula hash-ul pentru cheia dată (mă înșel?)
ischenko avatar
drapel cn
da, asta este cea mai mare problemă, trebuie să pot verifica perechea (cheie, hash) cu o mică bucată de date originale (dar trebuie să fie imposibil să obțin hash-ul (cu o anumită cheie) din acest fragment)
kelalaka avatar
drapel in
Utilizați HMAC, trimiteți cheia obțineți valoarea HMAC pentru a verifica asta, deși veți avea interogări limitate cu numărul de perechi pe care le-ați stocat. Poate exista o soluție inteligentă pe care nu o văd acum.
ischenko avatar
drapel cn
@kelakala, în plus, nu pot precalcula hashurile, deoarece nodul A nu este nici de încredere, așa că trebuie să vin cu o reprezentare de date mică, care ar putea funcționa ca un verificator de hash.
kelalaka avatar
drapel in
Ai putea să-ți rescrii complet întrebarea, inclusiv toate detaliile...
ischenko avatar
drapel cn
o, scuze pentru confuzie
kelalaka avatar
drapel in
Vă rugăm să [nu postați încrucișat](https://stackoverflow.com/q/70852888/1820553), păstrați doar o copie. [Vezi această meta](https://meta.stackexchange.com/q/64068/403350)
knaccc avatar
drapel es
Ce vrei să spui mai exact prin „nodul A nu este de încredere”? Vrei să spui că A poate minți despre datele pe care pretinde că le-a stocat cu B?
ischenko avatar
drapel cn
@knaccc da. Răspunsul corect pentru a fost folosirea unui algoritm PDP (dovada deținerii datelor)
knaccc avatar
drapel es
Ar fi interesant dacă ați putea explica exact ce metodă PDP satisface criteriile din întrebarea dvs. Din câte văd, cea mai simplă metodă de provocare aleatorie $c$ și un răspuns calculat ca $H(c\mathbin\|data)$ nu v-ar satisface criteriile.
ischenko avatar
drapel cn
@knaccc Îmi pare rău că nu mă interesează cu adevărat criptografie, așa că pot face greșeli. Am aflat că există un lucru foarte puternic - hashuri homomorfe și se pare că mă pot ajuta să construiesc (sau să găsesc un algoritm existent), care ar rezolva problema mea.

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.