Puncte:7

Există o formă de criptografie în care cheia este derivată din textul simplu

drapel dz

Imaginați-vă că construiți un sistem de stocare la distanță partajat în care trimiteți fișierele tuturor către o stocare centrală, dar doriți să eliminați fișierele între mai mulți utilizatori, astfel încât să nu stocăm același fișier de mai multe ori. În același timp, doriți să criptați datele, astfel încât furnizorul de servicii sau oricine care nu deține fișierul să nu poată decripta fișierul.

În acest caz, vă puteți imagina derivarea unei chei de criptare simetrică din conținutul fișierului (să zicem prin luarea unui hash criptografic al fișierului), astfel încât toți cei care dețin fișierul să poată calcula cheia cu ușurință, dar oamenii fără acces la fișier pot" nu o descoperi.

Apoi utilizatorii criptează fișierul cu această cheie și ne trimit blob-ul criptat. Putem verifica în interior un dicționar de hash-uri de blob-uri criptate pentru a determina dacă avem deja blob-ul sau nu și fie îl stocăm, fie îl aruncăm.

Îmi imaginez că derivarea unei chei din textul simplu este o idee groaznică pentru majoritatea schemelor de criptare, dar mă întreb dacă există o schemă sau dacă există o tehnică cunoscută pentru a face acest lucru.

caveman avatar
drapel in
Dacă scopul este pur și simplu să dedublezi, de ce să nu faci protocolul astfel încât identificatorul unui fișier să fie hash-ul său și să fie complet separat despre modul în care utilizatorii îl criptează? De exemplu. să permită utilizatorilor să aleagă orice parole le plac, dar se așteaptă ca ei să furnizeze hash-ul textului simplu împreună cu textul cifrat?
drapel dz
Sigur, dar trebuie să criptez fișierul tuturor cu aceeași cheie, fără să știu efectiv cheia, aceasta este partea care mă interesează. Cum pot utilizatorii mei să partajeze o cheie de criptare pentru acest blob? Ideea mea este că lucrul pe care îl știu cu toții este conținutul fișierului, dacă știu deja conținutul, atunci este sigur pentru ei să decripteze fișierul. Dacă toți aleg parole diferite, ar trebui să stochez o copie pentru fiecare dintre ele, deoarece textul cifrat va fi diferit?
SAI Peregrinus avatar
drapel si
„Trebuie să criptez fișierul tuturor cu aceeași cheie”, de ce? Este o cerință foarte ciudată.
drapel dz
Dacă folosesc două chei, nu ar trebui să stochez blob-ul criptat de două ori? Nu vreau să fac asta. Pentru a fi clar, mă refer la același fișier, așa că dacă Alice are foo.mp3 și bob are foo.mp3, vreau ca amândoi să încarce același blob criptat, astfel încât să pot realiza că sunt la fel și să stocheze o singură copie, dar fără serviciul central putând ști ce este în dosar.
caveman avatar
drapel in
Doriți ca utilizatorii să vă ofere posibilitatea de a-și decripta fișierele pe care le găzduiți?
drapel id
Dacă alegeți un hash astfel încât două fișiere să nu aibă același hash și nici două hashuri să nu aibă același hash, se poate cripta fiecare fișier folosind un singur hash al conținutului și apoi identifica fișierul pe mediul de stocare folosind un hash al hashului. Fiecare utilizator ar trebui să aibă o copie a singurului hash care este criptat folosind cheia privată individuală. Cineva fără o copie a hash-ului nu ar putea decripta fișierul fără a putea inversa al doilea hash, care dacă hash-ul este bun ar trebui să fie complet insolubil, cu excepția ghicirii întregului conținut al fișierului.
drapel id
După cum au observat alții, acest lucru implică renunțarea la anumite tipuri de garanții de confidențialitate, deoarece ar fi posibil să spunem dacă un utilizator a avut un fișier cu un anumit conținut; pot exista modalități de a ascunde oarecum astfel de informații, dar dacă actul unui utilizator care încarcă un fișier de 20 de megaocteți nu reduce spațiul disponibil pe disc cu 20 de megaocteți, asta ar tinde să sugereze că fișierul a existat deja.
drapel cn
@Matt, nu văd de ce metoda pe care ai sugerat-o nu ar funcționa. Poate că cheia ar fi un SHA256(fișier), împreună cu o sare care poate SHA256(SHA256(fișier)). Și apoi, ar putea stoca fișierul cu tine și ar putea trimite adresa URL la fișier împreună cu SHA(256) al fișierului. Rețineți că puteți genera adrese URL diferite pentru diferiți expeditori, astfel încât aceștia să poată „șterge” fișierul de pe server. Pur și simplu le-ați șterge adresa URL, dar puteți păstra fișierul de bază atâta timp cât încă nu există adrese URL care să indice către el. Dacă un hash 256 nu este suficient de lung, ați putea concat alte hașuri și săruri. Probabil nu este nevoie.
drapel cn
Partea dificilă, desigur, este să-l convingi pe „proprietarul” fișierului că furnizorul de stocare (dvs.) chiar nu puteți decripta fișierul, deși furnizați algoritmul și, probabil, biblioteca și Ux pentru a cripta! Este nevoie de încredere sau de vreo autoritate tehnică pentru a vă binecuvânta metoda!
Puncte:16
drapel us

Criptare $M$ folosind $H(M)$ întrucât cheia este o abordare naturală și bine studiată a deduplicarii. Este cunoscut în literatură ca criptare convergentă sau criptare blocată prin mesaje.

Problema firească a acestei abordări este că nu poate atinge noțiunile standard de securitate pentru criptare (IND-CPA, IND-CCA, etc). Într-adevăr, oricine știe $M$ va putea verifica dacă un text cifrat candidat decriptează la $M$. Întrebarea devine atunci: care este cel mai „cel mai bun” nivel de securitate la care s-ar putea spera și îl putem atinge?

Cea mai amănunțită analiză a criptării blocate prin mesaje pe care o cunosc este:

Mihir Bellare, Sriram Keelveedhi, Thomas Ristenpart: Criptare blocată cu mesaje și deduplicare sigură, Eurocrypt 2013.

Ei definesc noțiuni relevante de securitate și oferă construcții și dovezi corespunzătoare. Ei iau în considerare și alte obiective de securitate strâns legate de aplicația de deduplicare, separate de secretul și integritatea standard.

Poti caută ePrint și găsiți multe alte lucrări cu „message-locked” sau „deduplicare” (pentru alte abordări) în titlu. Rețineți că criptarea blocată cu mesaje nu este interactivă, dar problema deduplicării devine puțin mai ușoară atunci când permiteți interacțiunea. Prin urmare, multe dintre tehnicile pe care le găsiți pot fi interactive.

caveman avatar
drapel in
După eliminarea dublărilor diferitelor criptări ale aceluiași text clar, utilizatorii diferiți vor putea decripta copia unică deduplicată folosind propria parolă? Din câte am înțeles, cu scenariul OP, utilizatori diferiți încarcă copii ale aceluiași fișier, cu excepția faptului că fiecare este criptat de propria parolă a utilizatorului.
drapel us
Dacă $M$ este criptat cu $H(M)$, atunci nu este criptat cu parola utilizatorului. Dacă doriți ca un utilizator să poată decripta, atunci trebuie să stocați $H(M)$ criptat sub parola utilizatorului respectiv. Rețineți că acesta este un text cifrat foarte scurt.

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.