Puncte:1

Cum este legată o imagine cheie la o semnătură de inel?

drapel cn

Încerc să înțeleg conceptul de semnături de inel. Deci, după cum se pare, există o modalitate prin care aveți un grup de chei publice care pot fi semnate de o singură cheie privată a acelui grup fără a dezvălui care cheie privată a fost de fapt utilizată. Pe de altă parte, aveți o cheie pentru a preveni o cheltuială dublă, astfel încât observatorul să poată fi sigur că această cheie privată specifică nu a fost încă folosită.

Ceea ce nu înțeleg este cum este produsă și verificată această cheie. Dar de unde știu că o cheie privată a fost de fapt folosită pentru keyImage? Adică, aș putea folosi o cheie aleatorie pentru a avea unicitatea sa.

Deci, trebuie să fie legat într-un fel de semnătură, astfel încât să se poată fi sigur că este într-adevăr derivat și hashing din cheia privată. Desigur, fără a dezvălui care cheie privată a grupului a fost folosită. Deci, cum este aceasta legată între ele?

baro77 avatar
drapel gd
această întrebare pare mai potrivită pentru monero.stackexchange.com, în opinia mea... și eticheta „hash-signature” pare greșită
fgrieu avatar
drapel ng
„keyImage” nu este un termen criptografic standard. Astfel, întrebarea ar trebui formulată cu referire la ce înseamnă „keyImage” din punct de vedere criptografic. Dacă întrebarea este specifică pentru Monero, o pot migra acolo (au cel puțin o [întrebare conexă](https://monero.stackexchange.com/q/2883)). Cu toate acestea, dacă întrebarea se concentrează pe semnătura inelului și orice ar fi „keyImage” (mai degrabă decât pe specificul Monero), aceasta poate fi păstrată aici, dacă este clarificată.
baro77 avatar
drapel gd
Sunt total de acord @fgrieu. Am presupus că OP se gândea la chestii legate de criptomonede din cauza citarii „cheltuieli duble” în întrebare. Oricum mai bine să-i dai ocazia să clarifice fără ambiguitate
user3776738 avatar
drapel cn
Ah, ok, nu este tocmai specific pentru Monero, deoarece cer Shadowcash sau mai exact o furcă din el. Nu știu dacă semnătura originală Monero Ring diferă de cea Shadowcash, ca să nu mai vorbim de faptul că acum folosesc RingCT, dar cred că principiul ar putea fi același. Deci da, tu (@fgrieu) o poți muta în Monero dacă crezi că comunitatea lor are un răspuns mai bun. Multumesc pana acum.
fgrieu avatar
drapel ng
[Aici](https://monerodocs.org/cryptography/asymmetric/key-image/) este o încercare de a defini criptografic imaginea cheie a lui Monero. Amân migrarea, pentru că în mod clar există o latură cripto ECC la întrebare și poate că va primi un răspuns mai bun aici. Încă cred că întrebarea ar trebui îmbunătățită prin adăugarea de link-uri către definițiile termenilor folosiți.
baro77 avatar
drapel gd
@user3776738 a înțeles! Deci, doar un comentariu pentru că nu cunosc implementarea Shadowcash: în Monero te îndoiești "Dar de unde știu că o cheie privată a fost de fapt folosită pentru keyImage?" se rezolvă cu o structură prin care verificarea inelului reușește doar dacă keyImage este construită din privkey.... Nu aș ști cum să o descriu prin cuvinte, dar poate că acest lucru ți-ar putea fi util: https://www.getmonero .org/library/RingsCheatsheet20210301.pdf (avertisment: eu sunt autorul cheatsheet-ului) PS RingCT nu contează
user3776738 avatar
drapel cn
@fgrieu: „Imaginea cheie I este o funcție unidirecțională a cheii private x ”. Gândurile mele sunt următoarele: Deci, cumva, trebuie să verific această imagine cheie, altfel ar putea fi aleatorie. Dar este o funcție hash unidirecțională. Pentru a reproduce o funcție hash unidirecțională am nevoie de toate informațiile folosite pentru crearea acesteia. Când am acces la toate acele informații, știu cheia privată. Dar nu ar trebui să știu cheia privată. Acolo sunt blocat.
user3776738 avatar
drapel cn
@baro77 Voi încerca să înțeleg asta, dar mi se pare chinezesc.
fgrieu avatar
drapel ng
@baro77 : ce zici de a scrie un răspuns pornind de la comentariul tău?
baro77 avatar
drapel gd
@fgrieu ok, o sa incerc... doar lasa-ma sa imi iau ceva timp, pentru ca astea sunt zile pline de mine si subiectul este cam incomod de rezumat
Puncte:2
drapel gd

În speranța de a satisface invitația @fgrieu în comentarii, încerc un răspuns care vine din implementarea lui Monero. Sursa acestor cuvinte este cheatsheet-ul pe care l-am scris https://getmonero.org/library/RingsCheatsheet20210301.pdf în timp ce studia https://www.getmonero.org/library/Zero-to-Monero-2-0-0.pdf

Cred că lucrul corect este să începem de la semnătura Schnorr non-interactivă (în aromă Fiat-Shamir) pentru chei peste curba eliptică. Să recapitulăm rapid.

Sa spunem $(x,X)$ este perechea chei private/publice, unde $X\triunghiq xG$ cu $G$ punctul generator al CE; $tx$ este tranzacția/textul/orice lucru trebuie să semnăm; Semnare $tx$ cu $x$ înseamnă a putea genera o pereche $(c,r)$ astfel încât:

$H(tx, rG + cX)=c$

Unde $H$ este un hash (indiferent aici care) și $c$ și $r$ sunt numite „provocare” și „răspuns”, termenii provenind din schema interactivă. $c$ este obținut dintr-un secret aleatoriu unic $\alpha$ cunoscută numai de semnatar și niciodată refolosită în două semnături, iar egalitatea de mai sus este echivalentă cu:

$rG + cX = \alpha G$

(Btw, prin înlocuire, obțineți cum $c$ este definit ;) )

Așadar, privind-o dintr-o vedere de pasăre, putem spune că verificarea $tx$ semnătură de către $x$ este o funcție a elementelor semnate, a cheii publice, a provocării și a răspunsului:

$f(tx, X, r, c)$

Semnăturile inelului sunt despre găsirea de arome ale acestei scheme cu momeli, păstrând în același timp doar un singur semnatar ACTUAL (din punct de vedere tehnic: este nevoie de mai multe $X_i$ -sa spunem $n$- în verificarea algo dar singur $x$ în semnarea algo); și totul fără coordonare între proprietarii chei implicați.

Există o provocare și un răspuns pentru fiecare $X_i$, deci avem $c_i$ și $r_i$, oricum ar fi lucrurile amenajat astfel încât din $c_i$ putem calcula $c_{i+1}$, cu „overflow” când $i=n$ (aici este „inelul”), deci:

$H(tx, r_{i}G + c_{i}X_{i})=c_{i+1}$ cu $1 \le i \le n-1$

$H(tx, r_{n}G + c_{n}X_{n})=c_1$ cu $i=n$

dat fiind că putem regresa de la $c_n$ la $c_1$ condițiile de mai sus conduc la funcția de verificare a semnăturii:

$f(tx, X_i, r_i, c_1)$

Dar de unde vine „magia”? Cum este aranjament făcut să aibă $c_i$ formând un lanț închis în care având în vedere o valoare de provocare le puteți calcula pe toate celelalte (rețineți că am ales $c_1$ ca unul special, dar asta nu este cu adevărat nimic special)? Ei bine, datorită acestor fapte:

  1. dacă indicăm ca $c_\pi$ provocarea asociată semnatarului ACTUAL, $c_{\pi+1}$ este calculat dintr-un secret aleatoriu $\alpha$ cunoscut doar semnatarului ACTUAL (își amintește ceva? ;) );
  2. toti ceilalti $c_i$ sunt calculate cu formula lanțului de mai sus;
  3. toate $r_i$ sunt doar numere aleatorii, cu excepția $r_\pi$ care este ales astfel încât să lase $c_{\pi+1}$ să respecte și formula lanțului (chiar dacă provine din $\alpha$)

Și acum, în cele din urmă, Imaginea Cheie $X^*$! Pe lângă faptul că este anunțat în tranzacție pentru a preveni dublarea cheltuielilor, este și parte din $c_i$ calcul, iar din nou $\alpha$Se folosește trucul cu formula /chain: și este valabil numai dacă Key Image $X^*$ se obține într-un mod foarte specific, în funcție de cheile private și publice ale semnatarului ACTUAL.

De aceea nu poți alege pur și simplu unul aleatoriu încă nefolosit!

Înțeleg că aceasta este doar linia principală a raționamentului, lipsesc multe detalii, dar sper că le puteți găsi în cheatsheet cu ajutorul acestor cuvinte însoțitoare (presupun că pentru nevoile dvs. vă puteți preocupa doar de „Non-interactiv (Fiat -Shamir) Schnorr”, „SAG” și „bLSAG”)

user3776738 avatar
drapel cn
Am acceptat răspunsul tău, pentru că pare foarte detaliat și s-ar putea să îl înțeleg cândva. În ciuda faptului că nu prea înțeleg, să fiu sincer. Va trebui să-l citesc de zeci de ori și să fac niște cercetări despre cunoștințele matematice de care îmi lipsesc. Poate voi pune o întrebare nouă pe baza răspunsului tău cândva, dacă nu o înțeleg. Multumesc pana acum.
baro77 avatar
drapel gd
dacă căutați o introducere mai graduală a subiectului, puteți citi capitolul 2 din https://www.getmonero.org/library/Zero-to-Monero-2-0-0.pdf (este departe de a fi complet ca criptografie cărți de referință, dar cred că este suficient ca fundal pentru problema ta); Capitolul 3 este, de asemenea, interesant, dar, în opinia mea, este ușor să te pierzi în el. Deci reteta ar putea fi: citeste capitolul 2 cat ai nevoie; apoi studiază coloana din stânga, inelele SAG și bLSAG și notele lor din coloana din dreapta a foii mele de trucuri, folosind cuvintele mele aici în SE ca ghid turistic. Iti doresc o treaba buna!

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.