Numărul aleatoriu necesar este un număr întreg între 0 și $\ell$. Fiecare persoană alege un număr aleatoriu $x_i$ intre 0 si $\ell$, și fiecare persoană alege un $n$-bit factor de orbire aleatoriu $b_i$ Unde $n\geq 128$ și $n$ trebuie convenit în prealabil. Fiecare anunță apoi un angajament hash calculat ca $H(b \mathbin\|x)$. Apoi fiecare își deschide angajamentele anunțându-și valorile $b$ și $x$, și calculați numărul lor aleatoriu ca $$x_1 + x_2\ \pmod \ell.$$ Acest lucru este cuantic-secure dacă hash și alegere de $n$ sunt împreună cuantic-sigure.
După cum subliniază @poncho, persoana care își deschide ultima angajament poate simula un eșec de a finaliza protocolul dacă nu este mulțumită de valoarea particulară aleatorie partajată care ar fi generată în timpul acelei invocări a protocolului.Aceasta ar putea fi o problemă mai ales dacă $\ell$ este mic.
O modalitate de a evita această problemă este să vă asigurați că există o pierdere pentru nefinalizarea protocolului. De exemplu, fiecare persoană ar putea depune fonduri la un arbitru de încredere care ar confisca acele fonduri de la persoana care nu a finalizat protocolul. Pierderea trebuie să fie egală sau să depășească câștigul maxim posibil din simularea unei defecțiuni.