Puncte:4

Cunoașteți protocoale, unde este necesar să obțineți mai multe puncte „independente” pe aceeași curbă eliptică?

drapel id

Luați în considerare o curbă eliptică $E$ definite pe un câmp finit $\mathbb{F}_{\!q}$ cu un fix non-zero $\mathbb{F}_{\!q}$-punct $P$. Pentru simplitate, lăsați ordinea $\mathbb{F}_{\!q}$-grup de puncte $E(\mathbb{F}_{\!q})$ fi prim și, prin urmare, grupul este generat de $P$. Din motive de securitate, în numeroase protocoale de criptografie eliptică (de exemplu, într-o versiune sigură a Dual_EC_DRBG) trebuie să generăm încă un alt „independent” $\mathbb{F}_{\!q}$-punct $Q$ pe $E$.

Vă rugăm să răspundeți la întrebare. Cunoașteți protocoale, unde este necesar să obțineți mai „independenți” $\mathbb{F}_{\!q}$-puncte pe aceeași curbă? Cu alte cuvinte, un partid se ocupă cu „independenți” $\mathbb{F}_{\!q}$-puncte $Q_1$, $Q_2$, $\ldots$, $Q_n$ în plus față de $P$. Prin „independent” mă refer la astfel de puncte încât nimeni nu cunoaște logaritmii discreti unul față de celălalt.

Vă întreb, pentru că pentru unii $E$ și $n$ Știu să produc simultan mai multe $Q_i$ mai rapid decât generarea separată a acestora. Aș dori să înțeleg dacă abordarea mea merită publicată într-o jurnal științific bun. Sau poate chiar are ceva de-a face cu criptografia din lumea reală.

eckes avatar
drapel us
Poate niște acorduri cheie multipartite bazate pe ECDH?
Dimitri Koshelev avatar
drapel id
@eckes, ai putea să-ți precizezi comentariul?
Puncte:8
drapel my

Cunoașteți protocoale în care este necesar să obțineți mai multe puncte „independente” pe aceeași curbă eliptică?

Un loc evident în care acest lucru se întâmplă dacă implementați un angajament Pedersen al unui vector de valori; te angajezi la un vector $(x_1, x_2, ..., x_n)$ prin publicarea valorii $rH + x_1G_1 + x_2G_2 + ... + x_nG_n$; pentru ca acest lucru să funcționeze, evident aveți nevoie $n+1$ puncte independente $H, G_1, G_2, ..., G_n$

Deși acest lucru este puțin obscur, acest lucru apare; o găsește rapid Google această hârtie, și deci există o anumită aplicabilitate; cu siguranță mai mult decât unele lucrări pe care le-am văzut...

Dimitri Koshelev avatar
drapel id
mulțumesc! Nu știu prea multe despre schemele de angajament. De ce nu este suficient să luăm $n = 1$? $n > 1$ apare în lumea reală cripto?
poncho avatar
drapel my
@DimitriKoshelev: $n=1$ ar putea să nu fie suficient dacă încercați să profitați de proprietățile homomorfe ale angajamentelor Pedersen; de exemplu. dat un angajament de $(x_1, x_2)$ și $(y_1, y_2)$ generează un ZKP care $2(x_1, x_2) - 5(y_1, y_2) = (3, 7)$
Dimitri Koshelev avatar
drapel id
Am uitat să spun că metoda mea de generare dă $\aprox q$ tuple $(Q_i)_{i=1}^n$ printre $E^n(\mathbb{F}_{\!q}) \aprox q^ n$. Nu este acest lucru important pentru securitate?
poncho avatar
drapel my
@DimitriKoshelev: ceea ce este critic (cel puțin, pentru angajamentele vector Pedersen) este că nimeni nu cunoaște o soluție netrivială pentru $x_1G_1 + x_2G_2 + ... + x_nG_n = 0$ (unde soluția trivială este $x_1 \equiv x_2 \equiv . .. \equiv x_n \equiv 0$). Ideea ta oferă asta?
Dimitri Koshelev avatar
drapel id
Acesta prevede asta, dar distribuția este departe de a fi uniformă pe $E^n(\mathbb{F}_{\!q})$ (acoperă doar $\aproximativ q$ tupluri). Am impresia că acest lucru nu este important, pentru că $q$ este mare în criptografie și putem schimba adesea puncte independente. Tu ce crezi ?
poncho avatar
drapel my
@DimitriKoshelev: ipoteza durității la care am făcut referire este atât necesară, cât și suficientă pentru proprietatea de legare a vectorului Pedersen; chiar nu îi pasă câte tupluri ar fi posibile. Desigur, alte cazuri de utilizare pot face alte ipoteze de duritate asupra punctelor generate...
Dimitri Koshelev avatar
drapel id
cât de mare este $n$ în practică?
Geoffroy Couteau avatar
drapel cn
„Angajamentele generalizate Pedersen” (așa este numele lor) sunt acum utilizate pe scară largă, mai ales în contextul [Bulletproof](https://eprint.iacr.org/2017/1066.pdf). Bulletproof este implementat și utilizat în Monero, așa că asta contează drept „viață reală” cred :) Aici, $n$ va fi de obicei $32$ sau $64$.
Puncte:2
drapel es

Există o funcție „hash-to-point” folosită în mai multe scheme, unde este necesar să se genereze un punct EC în care logul discret w.r.t. orice alt punct CE este necunoscut. În special:

  1. O semnătură de inel care poate fi conectată. Trebuie generată o „imagine a cheii”, în care corectitudinea „imaginei cheii” declarată cu o semnătură este verificabilă și în cazul în care același semnatar (folosind aceeași cheie privată) ar crea din nou o semnătură de inel (chiar și cu o semnătură diferită). alți participanți la cheia publică a membrilor ringului), ar fi clar că au folosit aceeași cheie privată pentru a semna din nou. Vedea Aici pentru detalii.

  2. O funcție pseudo-aleatorie uitară utilizează hash-to-point pentru a codifica valorile de intrare PRF ca puncte EC. Aici.

  3. Transferul neglijent utilizează hash-to-point, iar EC El Gamal poate folosi hash-to-point dacă aveți nevoie doar de codificarea mesajelor în puncte pentru a merge într-o singură direcție. Vezi un exemplu pentru ambele Aici.

  4. Acest dovada de non-membri folosește hash-to-point pentru o variație a angajamentelor Pedersen în care angajamentul trebuie să fie orbit, dar nu trebuie să fie homomorf aditiv.

Dimitri Koshelev avatar
drapel id
mulțumesc, dar nu pot calcula o funcție „hash-to-point” în mai multe argumente mai repede decât separat. Problema mea este alta. Pot genera mai multe puncte independente (în funcție de un singur argument) mai rapid decât separat.
knaccc avatar
drapel es
@DimitriKoshelev poți să clarifici ce vrei să spui prin „în funcție de un singur argument”? Și tehnica dumneavoastră funcționează atunci când există un co-factor și trebuie să vă asigurați că punctul se află în același subgrup mare ca și subgrupul mare generat de un anumit punct de bază bine-cunoscut? S-ar putea să fiți interesat de faptul că s-au făcut unele lucrări de optimizare pentru criptomoneda Monero pentru a se asigura că o secvență de octeți arbitrară poate fi mapată rapid la un punct Ed25519: https://github.com/monero-project/research-lab/blob/master /whitepaper/ge_fromfe_writeup/ge_fromfe.pdf
knaccc avatar
drapel es
Acesta este codul C și Python pentru maparea rapidă a punctelor EC valide, pe baza lucrării pe care am legat-o în comentariul de mai sus: https://github.com/monero-project/monero/blob/b4e1dc83d275f8ee9a8c12615cf952f05161c7a3/src-crypto/crypto/crypto ops.c#L2210 https://github.com/monero-project/mininero/blob/c5fcee9d8ec8c302bca7fda8ce79b68e20d31c34/mininero.py#L238
Dimitri Koshelev avatar
drapel id
Tehnica Me returnează un tuplu $(Q_i)_{i=1}^n$ în funcție de un element dat al câmpului de bază $\mathbb{F}_{\!q}$. Funcționează când există un cofactor, pentru că îl putem șterge oricând.
knaccc avatar
drapel es
@DimitriKoshelev În exemplele pe care le-am dat mai sus, să presupunem că faceți un fel de intersecție de set privat și numerele trimise către OPRF sunt numere întregi mici mai mici decât, să zicem, 100. În funcție de cât de mult mai rapid ar putea fi să creați un tuplu de 100 de elemente folosind tehnica dvs., poate că ar fi de preferat să utilizați tehnica dvs. decât să faceți individual o operație hash-to-point pe fiecare intrare întreg.
Dimitri Koshelev avatar
drapel id
tehnica mea nu funcționează în timp constant. Prin urmare, aplicațiile sale sunt limitate la protocoale, unde argumentele funcției hash nu sunt secrete.
Puncte:1
drapel sa

Întrebarea dvs. este în esență: Este util să puteți eșantiona un tuplu $(Q_1, Q_2, \dots, Q_n) \in E(F)^n$ astfel încât nicio relație nu este cunoscută între puncte, dar tuplul nu este eșantionat din distribuția uniformă.

Din punct de vedere practic, există două probleme:

  • Adesea, aceste puncte sunt eșantionate în timpul generării parametrilor sistemului, ceea ce nu se întâmplă foarte des și nu este critic în timp.
  • Multe scheme par sigure chiar dacă punctele nu au fost eșantionate din distribuția uniformă.

Adică, practic, de multe ori nu este foarte util, dar și adesea nu este nesigur, cel puțin aparent.

Principala obiecție ar fi că dovezile de securitate ale acestor scheme se bazează uneori pe posibilitatea de a eșantiona tuplul $(Q_1, \dots, Q_n)$ cu o trapă încorporată, iar acest lucru este adesea greu de făcut dacă aveți nevoie de o distribuție neuniformă pe tuplu. Acest lucru ar strica apoi dovada de securitate. (Exemplu: Să presupunem că vreau să pot echivoc deschiderile de angajamente multiple Pedersen.)

Unora poate să nu le pese de asta, dar cred că majoritatea criptografilor ar fi foarte reticenți în a accepta acest lucru fără niciun beneficiu clar de a avea.

Cu alte cuvinte, m-aș aștepta ca algoritmul pe care îl aveți să nu fie în mare parte util și uneori inutilizabil.

Acestea fiind spuse, algoritmul cu care ați venit poate fi interesant pentru unii oameni din anumite motive, indiferent de aceste obstacole. Sau poate avea alte proprietăți interesante. Deci, oricum ar putea merita publicarea.

Dimitri Koshelev avatar
drapel id
mulțumesc. Scrieți „Adesea, aceste puncte sunt eșantionate în timpul generării parametrilor sistemului, ceea ce nu se întâmplă foarte des și nu este critic în timp”. Totuși, dacă nu schimbăm des punctele, atunci există riscul ca un atacator să găsească o dependență între ele, mai ales dacă $n$ este mare. Am dreptate ?
Dimitri Koshelev avatar
drapel id
Nu am înțeles paragraful tău care începe cu „Obiecția principală...”. Ai putea sa clarifica?
drapel sa
Aceste puncte pot apărea în parametrii sistemului, cheile publice și standardele. Obiecte pe termen lung, cu alte cuvinte. Ce anume nu înțelegi?
Dimitri Koshelev avatar
drapel id
de fapt, pot rafina metoda pentru a o uniformiza. Chiar și atunci, funcționează mult mai eficient în medie decât apelurile succesive ale unei hărți în timp constant la o curbă.

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.