- Fiecare membru nu are dreptul de a semna mai mult de 1 mesaj;
După cum s-a subliniat în comentarii, orice mecanism pentru a împiedica un membru al grupului să genereze două semnături ar necesita fie hardware de încredere, fie o interacțiune în timpul procesului de semnare cu controlorul de grup Alice (pentru a împiedica semnatarul să-și reseteze starea după generarea primei semnături și apoi mergând înainte cu o a doua semnătură).
Deci, ceea ce voi traduce asta în „este detectabil dacă un membru încearcă să semneze două mesaje”, adică, având în vedere cele două semnături, putem verifica dacă același membru al grupului le-a semnat pe ambele.
Cu această traducere, este posibil; iată o abordare:
Alice generează un sistem de semnătură bazat pe hash (de exemplu, LMS sau XMSS), diversele chei de semnătură unică fiind independente (adică nu puteți reconstrui una din alta)
Pentru fiecare membru al grupului, Bob, Carol și Dan, Alice selectează o foaie aleatorie (o semnătură de timp) și îi oferă aceluiași membru al grupului indexul, cheia privată pentru semnătura unică și calea de autentificare.
Când Bob vrea să semneze singurul său mesaj, îl semnează cu cheia sa privată și scoate semnătura respectivă (împreună cu indexul și calea de autentificare), generând o semnătură LMS sau XMSS validă
Verificatorul efectuează verificarea standard a validității LMS/XMSS în raport cu cheia publică
Dacă semnătura se verifică, verificatorul știe că cel care a generat semnătura avea o cheie de semnătură unică validă și, prin urmare, trebuie să fi fost un membru valid al grupului (sau controlorul grupului). Și, din moment ce indicii au fost alocați aleatoriu, habar n-are care a fost).
Și, dacă Bob decide să semneze două mesaje diferite, trebuie să includă același index de frunză în ambele semnături (acel index este singurul cu care știe să semneze) - este evident că cele două semnături au același index. Acest lucru rămâne adevărat chiar dacă i-am avut pe Bob și Carol (și posibil pe alții) cooperând reciproc - ei pot genera doar semnături care au un index pe care îl are unul dintre acei membri ai grupului.
Această abordare are cavaet că, dacă Bob semnează două mesaje diferite, atunci altcineva ar putea semna un al treilea mesaj (pe baza celor două semnături ale lui Bob); semnătura falsificată ar părea și de la Bob.
Așa cum este scris, această abordare se bazează pe faptul că unui membru al grupului i se permite să semneze un singur mesaj - poate fi extins dacă unui membru al grupului i se permite să semneze N mesaje (prin atribuirea fiecărui membru al grupului a N indicii de frunză consecutive și chei private).