Puncte:0

Siguranța criptosistemului Pailler

drapel cn

Lucrez la un sistem care poate calcula salariul mediu pentru diferite poziții în companii mari. Vreau să folosesc schema pailler pentru a face un astfel de calcul.

Am 3 câmpuri pe care vreau să le criptez: Numele companiei, titlul postului, vechimea și salariul

Să presupunem că am 3 companii diferite care doresc să calculeze salariul mediu pe diferite poziții, dar nu doresc să partajeze date între ele. Avem un astfel de set de date

NUME DENUMIREA FUNCȚIEI Vechime in munca Salariu
COMPANYA ADMINISTRATOR 2 10000
COMPANYA ADMINISTRATOR 3 15000
COMPANYA dezvoltator 1 18000
COMPANYA dezvoltator 5 11000
NUME DENUMIREA FUNCȚIEI Vechime in munca Salariu
COMPANYC ADMINISTRATOR 2 12000
COMPANYC ADMINISTRATOR 3 15000
COMPANYC dezvoltator 1 8000
COMPANYC dezvoltator 5 15000

Compania A, B și C înainte de a trimite date către sistemul meu le criptează folosind Pailler (toți folosesc aceeași cheie), decât le trimit către sistemul meu. Sistemul meu cunoaște doar cheia publică, astfel încât să poată calcula salariul mediu pentru un anumit post, iar sistemul meu poate trimite rezultate criptate tuturor companiilor și apoi pot să-l decripteze folosind cheia privată și să verifice care este salariul mediu pe anumite poziții, ținând cont de salariile din alte companii.

Pentru a evita atacul de frecvență, vreau să criptez datele text (numele companiei și titlul postului) folosind și Pailler. Pot presupune că numele companiei și titlul postului nu depășesc 20 de octeți. Acum intrebarea mea: Crezi că acel sistem este sigur? Sistemul meu stochează toate informațiile în formă criptată, dar nu știu cheia privată, așa că nu o poate decripta. Să presupunem că în sistemul meu a existat o scurgere de date și cineva are toate informațiile în formă criptată (cheia privată nu este compromisă) credeți că poate efectua vreun atac pentru a decripta datele? Titlurile posturilor sunt în mare parte date din dicționar. Salariul și vechimea este o gamă restrânsă de numere. Tu ce crezi? Mulțumesc anticipat pentru orice contribuție!

Puncte:0
drapel my

Sistemul meu cunoaște doar cheia publică, așa că poate calcula salariul mediu pentru un anumit post

De fapt, puteți calcula suma; calculând media, adică valoarea $\text{Encrypt}_k( \lfloor sum / n \rfloor )$ este mai dificilă (și funcționarea podelei este necesară dacă $sum$ nu este neapărat o multiplicare a $n$ numărul de valori).

Acest lucru ar putea fi gestionat fie de calcul $\text{Encriptare}_k( suma )$, și trimiterea acesteia și valoarea lui $n$ către compania A, B, C (care poate decripta și apoi poate împărți). Sau, punând fiecare companie să înmulțească implicit fiecare salariu pe care îl criptează $k!$ (pentru o valoare rezonabilă de $k$); apoi (presupunând $n$ nu este prea mare), putem calcula $\text{Encrypt}_k( n^{-1} \cdot sum )$, care ar fi valoarea pe care o dorim (cu factorul de scalare implicit încă acolo).

Pentru a evita atacul de frecvență, vreau să criptez datele text (numele companiei și titlul postului) folosind și Pailler.

Companiile vor cripta titlul postului sau voi? Dacă l-au criptat, nu ai acces la el și, prin urmare, nu ai ști pe care să însumezi.

Pe de altă parte, dacă ar furniza titlurile postului în mod clar și l-ai criptat, ar fi bine (dacă, în opinia mea, este puțin inutil).

Cu toate acestea, întrebarea ta a fost într-adevăr:

Să presupunem că în sistemul meu a existat o scurgere de date și cineva are toate informațiile în formă criptată (cheia privată nu este compromisă) credeți că poate efectua vreun atac pentru a decripta datele?

Ai fi bine - cu Paillier, atacatorul nu poate prelua nicio informație din textul cifrat (presupunând că cheia privată și valorile aleatorii utilizate în timpul procesului de criptare sunt sigure); chiar dacă știa că textul simplu este una dintre cele două valori, tot nu poate determina care este.

Puncte:0
drapel cn

Referitor la medie, mă gândeam să înmulțesc fiecare intrare cu $2$ pentru a te asigura că este uniform. Numărul tuturor elementelor este cunoscut în serviciul meu, astfel încât să pot împărți numerele criptate la valori necriptate. Apoi rezultatele criptate pot fi trimise tuturor companiilor și acestea le pot împărți la $2$ pentru a obține rezultatul final, crezi că e bine?

Despre al doilea punct, corect am uitat că nu aș putea să știu dacă două titluri de post sunt egale folosind Pailler. Anterior mă gândeam la stocarea hashurilor, dar va fi ușor de atacat, deoarece numărul de nume diferite de joburi este limitat. Trebuie să găsesc un algoritm mai bun pentru asta.

poncho avatar
drapel my
„o pot împărți numărul criptat la valoarea necriptată”; Paillier nu are o operație de „împărțire” homomorfă. Puteți înmulți cu inversul „valorii necriptate”; cu toate acestea, cu excepția cazului în care numărul criptat se întâmplă să fie un multiplu, asta va avea ca rezultat o valoare foarte mare.
sorror avatar
drapel cn
Prin împărțire înțeleg înmulțirea cu inversul lui N (numărul de elemente). Fiecare intrare înainte va fi înmulțită cu 2, iar rezultatul final din partea clientului va fi împărțit la 2. Cred că ar funcționa pentru toate numerele, am dreptate?
poncho avatar
drapel my
Nu, nu ar funcționa dacă N=3 și SUM=100...
sorror avatar
drapel cn
Ah corect! acum am inteles punctul tau cu k! pentru k=3! Nu aș obține niciodată suma = 100 (pot avea 96 sau 102) asta e frumos, dar probabil că voi avea o mulțime de intrări, așa că k! nu este ceea ce vreau. Se pare că cea mai bună soluție este să trimiteți suma criptată și valoarea necriptată n. Multumesc pentru ajutor!

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.