Dimensiunea elementului
Atunci când alegeți parametrii curbei eliptice, există multă libertate. Pentru dimensiunea elementelor, cei doi parametri demn de remarcat sunt primii, $p$, și gradul de încorporare, $k$.
Dacă $\mathbb{G}_1$ este o curbă eliptică peste $F_p$,1 atunci $\mathbb{G}_2$ este o curbă eliptică peste $F_{p^k}$, și $\mathbb{G}_T$ este un subgrup de $F_{p^k}$.
Deci elemente de $\mathbb{G}_2$ și $\mathbb{G}_T$ cere $k$ ori cantitatea de stocare ca element al $\mathbb{G}_1$.
Cu toate acestea, toate curbele permit reprezentări compacte ale $\mathbb{G}_2$, folosind răsucirea curbei, astfel încât un element de $\mathbb{G}_2$ poate fi reprezentat printr-un punct pe $E'\stânga(F_{p^\frac{k}{d}}\dreapta)$, Unde $d$ este 2, 3, 4 sau 6. Toate curbele sunt compatibile $d=2$. Curbele utilizate pentru operațiuni criptografice vor suporta mai mari $d$ deoarece costul conversiei între reprezentări este ieftin.
Mărimea cheii și dimensiunea semnăturii
Semnăturile BLS se bazează pe funcția de împerechere $e: \mathbb{G}_1 \times \mathbb{G}_2 \rightarrow \mathbb{G}_T$.
Lăsa $G_1$ fii un generator pentru $\mathbb{G}_1$ și $G_2$ un generator pentru $\mathbb{G}_2$.
Cheia privată, $x$, este doar un număr întreg între $0$ și $|\mathbb{G}_1|$, care este egal cu $|\mathbb{G}_2|$. Cheia publică, $X$, este fie un element al $\mathbb{G}_1$ sau $\mathbb{G}_2$. Pentru a semna un mesaj, mesajul este indexat într-un element al celuilalt grup, înmulțit cu cheia privată și asociat cu generatorul, de exemplu. $\sigma = e(G_1, xH(m))$. Semnatura, $\sigma$, este un element în $\mathbb{G}_T$. Un verificator calculează împerecherea hash-ului mesajului cu cheia publică ca $e(X, H(m))$. Dacă aceasta este egală $\sigma$, atunci semnătura este valabilă.
Alternativ, cantitatea de date transmise poate fi redusă și cantitatea de muncă pe care o face semnatarul poate fi redusă în detrimentul verificatorului care face mai multă muncă. În loc să trimită $\sigma$, semnatarul doar trimite $xH(m)$, iar verificatorul calculează ambele perechi.
Alegerea cheii publice
Cheia publică poate fi fie în $\mathbb{G}_1$ sau $\mathbb{G}_2$. Elemente în $\mathbb{G}_1$ sunt mai mici. Operațiuni în $\mathbb{G}_2$ sunt mai scumpe.
Exemple
Luați BLS12-3812, despre care se spune frecvent că are securitate pe 128 de biți. $p$ este de 381 de biți. Gradul de încorporare, $k$, are 12, făcând $p^k$ au 4569 de biți. Un element în $\mathbb{G}_1$ necesită 382 de biți pentru a reprezenta (381 de biți pentru 1 coordonată plus 1 bit pentru semn). Un element în $\mathbb{G}_2$ este nevoie de 762 de biți pentru a reprezenta, deoarece există o reprezentare compactă a acestuia. Un element în $\mathbb{G}_T$ este nevoie de 4596 de biți pentru a-l reprezenta.
De pe aceeași pagină2, MNT4-298 are aproximativ 77 de biți de securitate. Pentru acea curbă, un element în $\mathbb{G}_1$ ar necesita 299 de biți; în $\mathbb{G}_T$, 1192 biți.
1 Tehnic, $\mathbb{G}_1$ este de asemenea definit peste $F_{p^k}$, dar de atunci $E(F_p)$ este un subgrup de $E(F_{p^k})$, nu prea contează.
2 Aceste numere provin de la https://members.loria.fr/AGuillevic/pairing-friendly-curves/. Există o explicație a unora dintre numele coloanelor de mai jos.
Numele coloanelor
$k$ este gradul de încorporare.
$D$ este discriminant de multiplicare complexă (cred).
$u$ este mai complicat. Nu sunt complet sigur dacă acest lucru este corect. Fiecare dintre aceste familii de curbe (de exemplu, BLS sau BN) se referă $p$, $r$, și altele la un parametru „sămânță”, $u$.
$p$ este dimensiunea caracteristicii câmpului și dimensiunea unui element în $\mathbb{G}_1$.
$r$ este dimensiunea ordinului curbei.
$p^\frac{k}{d}$ este dimensiunea reprezentării compacte a unui element în $\mathbb{G}_2$
$p^k$ este dimensiunea unui element în $\mathbb{G}_T$.