Asuma ca $p$ și $q$ sunt numere prime diferite (dacă $q$ desparte $p$, de exemplu, problema este banala). Conversia modulului nu este de obicei o sarcină simplă în contextul partajării secretelor.Cel mai frecvent caz de utilizare pentru acest tip de primitive este, de exemplu, luarea unui pic $b\în\{0,1\}$ care este secret împărtășit peste un prim mare $p$ la fel de $b = a+b\bmod p$, și transformându-l în părți aditive binare $b = a'+b'\bmod 2$ (ceea ce este în cele din urmă $b = a'\oplus b'$. Aceasta are multe aplicații, de exemplu, atunci când doriți să vă ocupați de operații non-aritmetice în Secure Multiparty Computation (de exemplu, comparații securizate, trunchieri, funcții matematice etc.)
Cele mai multe abordări ale sarcinii de conversie securizată urmează această tehnică. Să notăm $[x]_p$ când o valoare $x$ este secret partajat modulo $p$. Scopul nostru este să obținem $[x\bmod q]_q$. Să presupunem că părțile au deja acțiuni de o valoare aleatorie $r$, necunoscut de oricare dintre părți, folosind ambele module $p$ și $q$. Cu alte cuvinte, să presupunem că părțile au $[r]_p$ și $[r]_q$. Atunci părțile pot proceda după cum urmează:
- Calculați local cotele de $x-r$ modulo $p$ prin scăderea locală a cotelor lor din $x$ cu cotele lor de $r$.
- Trimite acțiunile lor de $x-r$ unul altuia pentru ca fiecare parte să învețe $x-r$. Aceasta păstrează $x$ ascuns pentru că este mascat de $r$, care este uniform aleatoriu și necunoscut oricărei părți.
- adaugă una dintre părți $(x-r\bmod q)$ la cota sa de $r$ modulo $q$, care duce la $[r]_q + (x-r) = [x\bmod q]_q$.
Aceasta presupune că părțile au acces la pereche $([r]_p, [r]_q)$, dar în multe cazuri acest lucru nu este ușor de obținut. De exemplu, dacă $q=2$, pot fi găsite câteva tehnici care ar putea fi utile Aici. Toate acestea devin și mai complicate atunci când securitatea activă intră în imagine.