Disclaimer: nu am o dovadă de securitate pentru această schemă. Criticile sunt binevenite.
Pentru a simplifica notația, numesc cele două perechi de chei (private, publice). $(a, A = a\cdot G)$ și $(b, B = b\cdot G)$ pe punctul de bază $G$. Literele mici sunt scalare, literele mari sunt puncte EC. $H_s()$ înseamnă hash și reduce (mod the order of $G$) la un scalar. Toate operațiile între scalari (cum ar fi scăderea și înmulțirea) sunt modificate în ordinea lui $G$.
În primul rând, declara $D = a\cdot b\cdot G$.
lăsa $m = H_s(\text{"mesaj în curs de semnare"})$ ca un mesaj unic care va împiedica reutilizarea acestei semnături în diferite contexte.
A dovedi $D$ într-adevăr este construit corect, utilizați o semnătură Schnorr extinsă:
Semnătura este $(D, c, r)$ Unde $k$ este un scalar aleatoriu, $c = H_s(m \mathbin\| k\cdot G \mathbin\| k\cdot B)$ și $r = k - c\cdot a$.
Semnătura se verifică prin verificare $c \overset{?}{=} H_s(m \mathbin\| r\cdot G + c\cdot A \mathbin\| r\cdot B + c\cdot D)$ iar prin verificare $D$ este un punct valid și nu punctul de la infinit.
Asta dovedește atât că $a$ este cunoscut, și asta $a$ este atât cheia privată a punctului $A$ pe punctul generator $G$, precum și cheia privată a punctului $D$ pe punctul generator $B$. Prin urmare $D$ este dovedit a fi $a\cdot b\cdot G$.
În cele din urmă, trebuie să producem o a doua semnătură care să demonstreze că cineva le cunoaște pe amândouă $a$ și $b$. Putem face asta dovedind cunoașterea cheii private a punctului $D$ pe punctul de bază $G$ (demonstrând astfel cunoștințele despre $a\cdot b$).
Semnătura este $(c', r')$ Unde $k'$ este un scalar aleatoriu, $c' = H_s(m \mathbin\| k'\cdot G)$ și $r' = k' - c'\cdot a\cdot b$.
Semnătura se verifică prin verificare $c' \overset{?}{=} H_s(m \mathbin\| r'\cdot G + c'\cdot D)$.
Dacă Alice ar fi de acord cu Eve fără ca Eve să dezvăluie $b$, Alice ar trebui să-și dezvăluie cheia privată $a$ către Eve. Cunoștințe de $k'$ de către oricare coluder ar permite acel coluder să calculeze cheia privată a celuilalt coluder. Securitatea acestei scheme depinde de faptul că nu este posibil din punct de vedere matematic ca Alice să se înțeleagă cumva cu Eve pentru a construi $r'$ astfel încât fie Alice, fie Eve ar putea apoi determina matematic cheia privată a celuilalt.
Prin urmare, semnătura generală este $(D, c, r, c', r')$ si este $5\cdot 32 = 160$ octeți.