Puncte:0

Semnătură anonimă de grup

drapel il

Am făcut câteva cercetări în literatura de semnături de grup și de inel pentru semnăturile anonime. Încerc să găsesc o schemă de semnătură de grup care să ofere următoarele proprietăți:

  • Anonimat pentru semnatar
  • Semnătura poate fi verificată de un receptor generic
  • Produceți o singură semnătură (nu vreau un fel de schemă de semnătură LSAG)
  • Semnatarul din grup ar trebui să poată crea singur semnătura
  • Construcția ar trebui să se bazeze pe curba eliptică și ar trebui să fie gratuit
knaccc avatar
drapel es
Dacă nu aveți nevoie ca acesta să poată fi conectat, atunci termenul tehnic pentru ceea ce căutați este o semnătură Spontaneous Anonymous Group (SAG). Există multe moduri de a implementa un SAG, iar un SAG este întotdeauna o semnătură. Cred că ați putea spune că anumite SAG-uri pe care le-ați văzut până acum sunt prea costisitoare în ceea ce privește stocarea sau verificarea?
meshcollider avatar
drapel gb
@knaccc care este diferența dintre un SAG și o semnătură de inel normală? Din câte am înțeles, spontaneitatea înseamnă că nu există un manager de grup, deci pare o semnătură de inel (semnatarul poate crea singur un inel ad-hoc și poate genera o semnătură sub el).
meshcollider avatar
drapel gb
"Constructia ar trebui sa se bazeze pe curba eliptica" -> ce inseamna mai exact asta? Pot fi folosite și alte primitive (cum ar fi cele cu cheie simetrică)? Vrei să spui doar că cheile publice trebuie să fie puncte EC?
knaccc avatar
drapel es
@meshcollider O semnătură de inel bazată pe EC Schnorr este o modalitate de a implementa o semnătură SAG. O altă metodă recentă care poate realiza acest lucru este ZK-STARKS.
knaccc avatar
drapel es
@meshcollider „semnătura de grup anonimă spontană” este doar o listă de cerințe. O semnătură de inel este o modalitate specială de a îndeplini aceste cerințe folosind un hash semi-Cameleon care permite fiecărui membru al inelului să răspundă la o provocare de la legătura anterioară din inel, dar fiind capabil să „închidă” inelul prin cunoașterea unuia dintre cheile private.
meshcollider avatar
drapel gb
@knaccc Nu sunt de acord, semnăturile inelului sunt o clasă generală de construcție, iar cea la care vă referiți este doar o posibilă instanțiere.
knaccc avatar
drapel es
@meshcollider Poate că pot generaliza puțin mai mult și pot defini o semnătură de inel ca un inel de provocări și răspunsuri, în care doar deținătorul uneia dintre cheile private este capabil să unească inelul împreună pentru a forma o semnătură validă. Aceasta este o abordare diferită de un SAG bazat pe acumulatori sau o altă abordare substanțial diferită a dovezii zero-cunoștințe care nu implică un ciclu de provocări și răspunsuri.Nu sunt clar cum ați defini și diferenția SAG-urile de semnăturile de inel.
CipherX avatar
drapel il
@meshcollider dacă un receptor generic ar trebui să poată verifica semnătura, nu știu cum se poate face asta cu o cheie simetrică (aveți nevoie de un acord de cheie precum DH înainte sau trebuie să știți care este cheia simetrică folosit pentru a face asta). Dar, dacă aveți în minte un protocol care poate fi bun pentru cazul meu de utilizare, vă rog să-mi spuneți.
knaccc avatar
drapel es
@meshcollider Btw am găsit referința pentru terminologia mea: „Alte lucrări din literatură numesc, de asemenea, acest tip de semnătură âRing Signatureâ, deși unele dintre ele ar putea să nu aibă o structură de inel pentru construcția lor. În terminologia alternativă, noi numiți acest tip de semnătură „Spontaneous Anonymous Group (SAG) Signature”, deoarece îndeplinesc proprietățile SAG, indiferent de structura construcției” (https://eprint.iacr.org/2004/027.pdf Pagina 2). Deci, după o definiție mai strictă, semnăturile AOS nu sunt semnături de inel, sunt semnături 1 din n sau semnături de grup anonime spontane.
meshcollider avatar
drapel gb
@knaccc Mulțumesc! Btw, AOS se referă la al treilea pas al lor (de calcul $s = c - ax$) ca „formarea inelului”, așa că, chiar și după o definiție mai strictă, le-aș considera totuși a fi semnături de inel :)
knaccc avatar
drapel es
@meshcollider Când AOS vorbește despre „formarea inelului”, într-adevăr formează un inel, deoarece fiecare provocare depinde de legătura anterioară din inel. Deci ai dreptate că semnăturile AOS sunt semnături de inel. Confuzia a fost că răspunsul pe care l-ați dat nu este aceeași construcție cu cea menționată în lucrare în care se vorbește despre formarea inelului. Versiunea apendicelui A este „neseparabilă” în terminologia lor și nu se bazează pe un inel.
Puncte:2
drapel gb

Semnături de apel sunt similare cu semnăturile de grup, dar nu au manageri de grup. O altă diferență esențială este că se poate forma un „ring” la momentul semnării cu cheile oricui vă plac – nu aveți un „grup” fix ca într-o semnătură de grup.

Semnăturile nu pot fi „legate” decât dacă utilizați în mod specific un conectabil schema de semnătură de inel. Mai mult, identitatea semnatarului este ascunsă în ring și nu poate fi identificată, prin design, la fel ca într-o semnătură de grup.Majoritatea schemelor au că verificarea poate fi făcută de oricine (verificabilă public). Și semnatarii pot crea inelul și pot semna singuri, fără participarea nimănui altcuiva. Deci, aceasta îndeplinește toate cerințele dumneavoastră, ignorând ultimele (că se bazează pe curbe eliptice).

Prima construcție a semnăturii inelului a fost cea de Rivest, Shamir și Tauman. Schema lor folosește chei RSA. Abe, Ohkubo și Suzuki a dat o schemă în care este capabil să utilizeze un amestec de chei de tip RSA și DL. Anexa A a lucrării lor arată cum puteți construi o semnătură inelă doar cu chei publice de semnătură schnorr, care pot fi adaptate la setarea curbei eliptice (și utilizați EC-schnorr).

Mai exact, să presupunem că fiecare parte din ring are o cheie publică $Y_i = [x_i]G$, și participant $k$ vrea să genereze o semnătură în numele tuturor. Lasă ordinea de $G$ fi $p$, si lasa $H$ fie o funcție hash al cărei codomeniu este $\mathbb{Z}/p\mathbb{Z}$. Semnatarul va alege o valoare aleatorie $\alpha$, și valori aleatorii $c_i$ pentru toți ceilalți membri ai inelului. Semnatarul va crea apoi o „cheie agregată” $$ K = [\alpha]G + \sum_{i \neq k} [c_i]Y_i \, . $$

Apoi, semnatarul va calcula hash-ul $c = H(Y_0, Y_1, \ldots, Y_n, M, K)$ pentru mesaj $M$. Calcula $$ c_k = c - \sum_{i \neq k} c_i \pmod{p}, $$ astfel încât toate $c_i$ inclusiv $c_k$ suma la $c$ (hașul).

În cele din urmă, lasă $s = \alpha - c_k \cdot x_k \bmod{p}$. Semnătura este $(s, c_0, \ldots, c_n)$. Pentru a verifica, pur și simplu recalculați cheia agregată și hash-ul după cum urmează: $$ K' = [s]G + \sum_i [c_i]Y_i\ c' = H(Y_0, Y_1, \ldots, Y_n, M, K') $$ si verifica asta $c' = \sum_i c_i \pmod{p}$.

Puteți vedea că efectuarea sinceră a protocolului va permite $K' = K$ deoarece $$ K' = [s]G + \sum_i [c_i]Y_i \ = [\alpha]G - [c_k \cdot x_k]G + \sum_i [c_i]Y_i\ = [\alpha]G - [c_k]Y_k + \sum_i [c_i]Y_i\ = [\alpha]G + \sum_{i \neq k} [c_i]Y_i = K. $$

Apoi verificarea funcționează indiferent de care $k$ a fost semnatarul, după cum este necesar, și oricine poate verifica semnătura având în vedere setul de chei publice $Y_i$, mesajul $M$, semnatura $(s, c_i)$, și parametrii publici $(G, p, E, \ldots)$.

CipherX avatar
drapel il
Cu această schemă, dimensiunea semnăturii va depinde de numărul de entități implicate în inel. Mă gândeam la supraîncărcarea transmisiei (chiar adoptând o tehnică de compresie) în cazul N=10, 100, 1.000, 10.000. Ce crezi despre asta?
meshcollider avatar
drapel gb
@CipherX semnătura crește liniar în numărul de participanți - includeți o cheie publică și o valoare $c_i$ pentru fiecare.
CipherX avatar
drapel il
exact... acest aspect ar putea fi o problemă pentru scenariul meu, dar mulțumesc mult pentru sugestie
meshcollider avatar
drapel gb
Nicio problemă, nu ai menționat că ai nevoie de unul mai scurt. Ați putea căuta semnături de inel de dimensiune logaritmică, există unele. Oricum te rog sa accept raspunsul meu daca te-a ajutat :)
CipherX avatar
drapel il
Sigur @meshcollider. Dacă aveți câteva sugestii despre protocoalele de semnătură de inel de dimensiune logaritmică care sunt conforme cu cerințele mele, ar fi grozav!

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.