Puncte:1

SHA-256 în MPC bazat pe circuit binar

drapel fr

Pentru un MPC bazat pe circuit binar, multiparty-ul va furniza intrările sale pentru a calcula rezultatul, care a indicat funcția $f(x_1, x_2, \dots,x_n)$ trebuie să accepte $2$ sau mai multe intrări.

    1. De ce există circuite, de exemplu, SHA-$256$, care ia doar unul intrare?
    1. Când verific fișierele SHA-256.txt, este nevoie $2$ intrări, o intrare pentru $512$ biți și cealaltă intrare pentru $256$ biți, presupun că primul este mesajul, ce zici de celălalt? Ce reprezintă?

Acesta este linkul unde verific fișierul SHA-256.txt.

Puncte:1
drapel us
  1. Nu văd niciun circuit SHA acolo cu o singură intrare.

  2. Se explică chiar acolo, pe pagină:

    Pentru SHA-256 și SHA-512 oferim un circuit care mapează un buffer de intrare și o stare de înlănțuire a intrării la următoarea stare de înlănțuire.

    Funcția rotundă SHA-256 preia un bloc de 512 biți de date de intrare și o valoare de înlănțuire de 256 de biți și emite o nouă valoare de înlănțuire de 256 de biți. Acest lucru permite creatorilor acestei pagini să ofere doar un circuit SHA (care altfel nu ar fi posibil, deoarece SHA preia șiruri de orice lungime, dar un circuit are o singură lungime de intrare fixă).Acest lucru înseamnă, de asemenea, că, pentru a utiliza aceste circuite, trebuie să vă orchestrați restul Merkle-Damgård înlănțuindu-vă și să invocați acest circuit de mai multe ori.


Editați | ×: SHA-256 este o funcție hash Merkle-DamgÃ¥rd, deci hashurile sale sunt calculate în felul următor (imaginea din Wikipedia):

introduceți descrierea imaginii aici

Întreaga imagine arată calculul SHA-256 pe o intrare lungă de $n$ blocuri (un bloc are 512 biți în SHA-256). Fișierele de circuit pe care le-ați găsit descriu un circuit numai pentru caseta galbenă etichetată „$f$„. „Valoarea de înlănțuire” este săgeata orizontală care leagă $f$-cutii.

Willi avatar
drapel fr
Pentru primul punct, nu sunt clar ce este o valoare de înlănțuire (starea de schimbare)? Din câte știu eu, intrarea este întotdeauna datele de intrare, indiferent de mult timp este textul. Ați putea, vă rog, să detaliați puțin despre schimbarea aluemore sau să oferiți câteva referințe?
drapel us
Vă rugăm să vedeți editările mele și să-mi spuneți dacă lucrurile sunt încă neclare.
Willi avatar
drapel fr
Mulțumiri! E clar pentru mine acum.
Willi avatar
drapel fr
O întrebare următoare: din întreaga imagine, funcția de compresie f ar trebui să aibă 2 intrări. Valoarea înlănțuirii are 256 de biți, iar blocul de mesaje are 512 biți. Cu toate acestea, SHA-256.txt oferă doar 1 intrare cu 512 biți. De ce?
Willi avatar
drapel fr
Dacă un circuit ia o singură intrare, se pare că nu este nevoie să fie 2 părți să participe la calcul, deoarece o parte poate termina calculul.
drapel us
Toate circuitele SHA de pe acel site au 2 intrări (vezi primul număr de pe a doua linie a acelor fișiere).
Willi avatar
drapel fr
Copiez o valoare din SHA-256 [fișiere](https://homes.esat.kuleuven.be/~nsmart/MPC/sha-256.txt) ca exemplu, care are valorile 512 0 256. Indică acea parte doi are 0 intrări, iar partea unu are doar 1 intrare cu 512 biți în loc de 2 intrări.
Willi avatar
drapel fr
Un bloc de mesaje are 512 biți, cum este posibil să treacă 256 de biți suplimentari pentru starea de intrare IV/înlănțuire?
drapel us
Habar n-am cum ajungi la acel dosar. Cele 4 fișiere SHA legate de la https://homes.esat.kuleuven.be/~nsmart/MPC/ au toate 2 intrări.
Willi avatar
drapel fr
Am luat acel fișier de pe acest [link](https://homes.esat.kuleuven.be/~nsmart/MPC/old-circuits.html). Îmi încalcă intuiția.
drapel us
Ei bine, citește comentariul de pe pagina respectivă: implementează doar 1 bloc de SHA cu IV fix și nu funcția generală de rundă SHA.Circuitul are într-adevăr o singură intrare formală, dar ar fi o chestiune trivială să se modifice acest circuit, astfel încât fiecare parte să aibă jumătate din biții de intrare sau să aibă xor părți ale biților de intrare etc.
Willi avatar
drapel fr
Mulțumiri. Am observat acest comentariu anterior. Totuși, încă nu mi-a rezolvat întrebarea. Întrucât intrarea partii unu este de 512 biți, nu există nicio modalitate ca partea a doua să-și furnizeze intrările. Cum pot ei xor partajarea biților de intrare? Înseamnă că nu pot folosi astfel de SHA-256 direct într-un 2PC? Trebuie să adăugați alte porți care au o singură ieșire înainte de acest circuit SHA-256?

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.