Puncte:2

Calculați în secret înmulțirea a două numere deținute de două persoane

drapel br
Leo

De exemplu, Alice și Bob au două numere $a$ și $b$, respectiv. Vor să calculeze înmulțirea $a\cdot b$ fără ca Alice să știe $b$ sau Bob știind $a$ și trimite această înmulțire $a\cdot b$ a colinda. Carol va folosi asta $a\cdot b$ pentru a face aplicații ulterioare. Carol nu se va înțelege cu Alice sau Bob. Există modalități și biblioteci/instrumente în Golang pentru a realiza acest lucru? Mulțumesc!

Puncte:1
drapel cn

O soluție fără a presupune asta $a$ și $b$ sunt diferite de zero și fără a fi nevoie să calculeze inverse multiplicative, care, de asemenea, nu implică nicio comunicare între Alice și Bob, în ​​afară de a avea un acord prealabil asupra unui șir aleatoriu comun (acesta este cunoscut sub numele de modelul „mesaj privat simultan”):

Alice și Bob sunt de acord $r,s,t$ (trei numere aleatorii). Alice trimite $c = a+r, c' = c\cdot s + t$ lui Carol, iar Bob trimite $d = b+s, d' = b\cdot r - t$ a colinda. Carol calculează $c\cdot d - (c' + d')$.

Aici, suma se poate face modulo $n$, Unde $n$ este o limită superioară publică $a$ și $b$, iar „aleatoriu” înseamnă un element uniform aleatoriu al $\mathbb{Z}/n\mathbb{Z}$.

Notă: punctul cheie al întrebării dvs. este presupunerea că Carol nu se va înțelege cu Alice și Bob. Este un rezultat clasic că calculul securizat nu necesită nicio criptografie sau ipoteze de calcul, de îndată ce numărul de părți care pot colabora este strict sub jumătate din numărul total, ceea ce este cazul aici. Prin urmare, nu veți avea nevoie de biblioteci/instrumente speciale în Golang, dincolo de aritmetica de bază.

Geoffroy Couteau avatar
drapel cn
Ai dreptate, ar fi trebuit să verific ce am scris înainte de a trimite. Am scos prima soluție și am înlocuit-o cu a doua. Mulțumiri!
knaccc avatar
drapel es
Btw spui că același trio $(r,s,t)$ poate fi reutilizat fără a compromite securitatea schemei? Aceasta pare o tehnică cu adevărat utilă - sunt variante ale ei folosite în aplicații practice de care știți?
Geoffroy Couteau avatar
drapel cn
Nu, $r,s,t$ nu poate fi reutilizat: de exemplu, dacă $r$ este reutilizat cu un nou $a'$, Carol ar învăța $a-a'$.Cu toate acestea, abordarea obișnuită este de a folosi pseudoaleatoria: Alice și Bob sunt de acord doar cu o sămânță scurtă și o extind într-o cantitate arbitrară de triple $(r_i,s_i,t_i)$ la nevoie, din mers, fără a mai folosi interacțiune (de exemplu, folosind o funcție pseudoaleatoare)
Geoffroy Couteau avatar
drapel cn
Schema pe care am descris-o este în esență o codificare randomizată pentru funcția produsului. Codificările randomizate au multe aplicații puternice în criptografie (a se vedea [acest lucrare](https://ieeexplore.ieee.org/document/892118) și numeroasele sale urmăriri). Tehnica este destul de practică și ar putea fi folosită cu ușurință în aplicații din lumea reală, deși nu cunosc vreo aplicație practică concretă care să le folosească (dacă ar fi să pariez, aș paria totuși că unele aplicații practice folosesc această tehnică).
Puncte:1
drapel es

Presupun că numerele tale sunt numere întregi mai mari decât zero și mai mici decât $n$.

Alice alege un factor de orbire uniform aleatoriu $k$ Unde $0<k<n$, și trimite $k\cdot a$ lui Bob şi $k$ a colinda. Bob trimite $k\cdot a\cdot b$ a colinda. Carol calculează $a\cdot b=k^{-1}\cdot k\cdot a\cdot b$.

Toate operațiunile trebuie făcute $mod\ n$. Produsul $a\cdot b$ trebuie să fie mai mică decât $n$, cu excepția cazului în care aveți de-a face cu scalari/chei private, unde nu contează dacă Carol derivă produsul $mod\ n$.

$k^{-1}$ înseamnă inversă multiplicativă modulară de $k$. Prin urmare, ar trebui să vă asigurați că alegeți $n$ este prim.

În funcție de aplicația dvs., este posibil să utilizați aceste numere ca chei private, caz în care ar trebui să alegeți $n$ astfel încât acesta este ordinul grupului principal al generatorului dvs. De exemplu. pentru Curve25519 sau Ed25519 utilizați ordinea specificată în rfc 7748, sau utilizați $q$ valoarea declarată pentru un grup MODP în rfc 5114.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.