Puncte:2

Criptarea multor fișiere scurtează lista de parole posibile?

drapel br

Sperăm că această întrebare nu este duplicativă și nici răspunsul ei nu este prea elementar.

Să presupunem că am un dosar. O criptez, folosind o parolă. Parola prevede probabil un model sau o relație între fișier în formele sale de pre-criptare (A1) și post-criptare (B1). Dar acel tipar sau relație este nedeterminată. În funcție de complexitatea parolei, ar putea exista un număr mare de explicații posibile pentru modul în care parola a ajutat la conversia A1 în B1.

Să presupunem că criptez un alt fișier, folosind aceeași parolă. Am examinat relația A1-B1; acum examinez relația A2-B2. Unele explicații posibile ale conversiei A1-B1 nu vor explica conversia A2-B2.

Criptarea mai multor fișiere, folosind aceeași parolă, reduce semnificativ numărul de parole care ar putea explica diferențele dintre formele de pre și post-criptare ale acelor fișiere?

Puncte:2
drapel ph

Răspunsul scurt este: nu, cel de-al doilea fișier probabil nu face diferența. Acest lucru se datorează faptului că 1) ceea ce este semnificativ pentru întrebarea dvs. este cantitatea de date criptate și nu numărul de fișiere și 2) nu necesită multe date (aproximativ 64 de octeți, vezi mai jos) pentru a repara cheia în mod unic, deci este probabil că un singur fișier este suficient de mare. Numai în cazul în care primul fișier este atât de mic încât nu umple 2 blocuri, există mai multe informații pentru un al doilea fișier.

Modul în care un program ar oferi de obicei criptarea fișierelor bazată pe parole este de a converti mai întâi parola într-o cheie, folosind un PBKDF. Apoi ar folosi acea cheie pentru a cripta fișierul, bloc cu bloc. De dragul simplității, să spunem că cheia și blocul sunt ambele de 256 de biți. Dacă luăm în considerare doar primul bloc criptat al fișierului, este posibil (aproximativ 1 șansă din 3) să existe o altă cheie care criptează acel bloc în același mod. Când luăm în considerare cel de-al doilea bloc, practic nu există nicio șansă să existe o altă cheie care criptează ambele blocuri la fel.Deci, odată ce 2 blocuri (64 de octeți) au fost criptate, există doar o singură cheie care poate fi efectuată acea transformare specială. Prin urmare, atâta timp cât primul fișier nu este foarte mic, nu există constrângeri de adăugat.

Acum, asta este cheia, iar întrebarea ta este despre parolă. În mod normal, un program de criptare va folosi în mod constant același PBKDF, ceea ce înseamnă că aceeași parolă va produce întotdeauna aceeași cheie. Și ca mai sus, nu există nicio constrângere suplimentară dezvăluită.

Merită să subliniem că toate aceste constrângeri sunt foarte teoretice. Chiar dacă există o singură cheie posibilă, problema determinării acesteia este insolubilă - acesta este scopul unui algoritm sigur. Și PBKDF este de obicei proiectat astfel încât, chiar dacă ai cunoaște cheia, nu ai putea modifica parola.

fgrieu avatar
drapel ng
Acest lucru nu este valabil pentru fișierele foarte scurte în multe moduri de criptare comune, inclusiv CTR, CFB și OFB. În special, dacă criptați un fișier de un singur octet, una din aproximativ 256 de parole îl va decripta corect. Pentru modurile CBC și padding în care ultimul octet codifică câți octeți de suprimat, fracția este diferită, dar efectul rămâne ușor de observat.
drapel ph
Am spus că este nevoie de două blocuri, dar ai dreptate că este o idee bună să ridici asta mai explicit la început.
Puncte:2
drapel ng

Aceasta depinde de lungimea A1 și de algoritmul de criptare. Pentru A1 foarte scurt, da perechea suplimentară text clar/cifrat A2-B2 restricționează setul de parole posibile.

De exemplu, dacă algoritmul de criptare este AES-256-CTR cu competent întinderea cheii cu de ex. Argon2 pentru a produce cheia de 256 de biți, iar A1 este $n_1$-byte cu $0\le n_1\le30$, apoi aproximativ o parolă din $2^{(8\,n_1)}$ va descifra B1 în A1. Când A2 este $n_2$-byte cu $0\le n_1+n_2\le30$, apoi aproximativ o parolă din $2^{(8\,n_1+8\,n_2)}$ va descifra B1 în A1 și B2 în A2, care este o fracțiune mult mai mică de parole atunci când $n_2\ne0$. Pentru $n_1\le3$ acest lucru este ușor de verificat experimental.

Cu același sistem de criptare, când $n_1\ge35$, devine destul de probabil să existe o singură cheie AES de 256 de biți care descifrează B1 în A1, există aproximativ o parolă în $2^{256}$ care produc această cheie după extinderea tastei, iar adăugarea B2 nu va schimba asta.

Cei mai obișnuiți algoritmi de criptare care acceptă parola ca introducere a cheii au o anumită limită internă a lungimii cheii chiar și atunci când parola nu o face; ca 256 de biți în exemplul de mai sus. Dar pentru algoritmi buni, acea limită este peste pragul în care aceasta are vreun impact practic asupra securității.

Nu am acoperit criptarea cu umplutură ca CBC, ceea ce complică analiza; nici criptare autentificată, unde, prin design, fiecare criptare exclude majoritatea covârșitoare a parolelor.

Puncte:1
drapel in

Nu, nu reduce numărul de parole care ar putea fi folosite.

În general, o parolă este folosită pentru a obține o cheie simetrică. Este o practică bună să utilizați o metodă de derivare a cheii bazată pe parolă (PBKDF) pentru asta. De obicei, acel PBKDF folosește o sare și un factor de lucru (și, eventual, alți parametri). Sarea - care este inclusă cu textul cifrat - se asigură că cheia diferă întotdeauna, chiar dacă se folosește aceeași parolă. În plus, PBKDF este un hash de parolă unidirecțional, deci este imposibil să obțineți de la cheie, în afară de a încerca fiecare parolă. În plus, cheia în sine este protejată de cifrul utilizat; de aceea ar trebui să rămână protejată chiar dacă sunt cunoscute mai multe perechi text simplu/cifrat.

Întrucât un PBKDF este un hash de parole cu o anumită capacitate, precum și o dimensiune de ieșire, este posibil ca mai multe parole să atingă aceeași valoare. Cu toate acestea, acest lucru este întâmplător, iar găsirea lor este aproape imposibilă. În general, dacă se folosește un atac de dicționar, atunci puteți presupune că parola este ghicită corect dacă este găsită cheia corectă. A avea mai multe texte cifrate cu care să se compare nu face diferența.


Rețineți că este vorba despre cele mai bune practici de criptare simetrică. Dacă ați folosi de ex. cifrul Vigenere atunci da, criptarea cu aceeași parolă ar rupe întreaga schemă.

Mai mult, ai putea de ex. criptați în schimb o cheie privată și utilizați cheia publică corespunzătoare pentru a cripta fișierele. În acest caz, veți avea nevoie doar de parolă atunci când decriptați fișierele.


În cele din urmă, dacă aceeași cheie este folosită pentru a cripta un fișier, atunci a avea multe, multe blocuri de date în text simplu poate face diferența; unele informații se pot scurge de ex. if to CBC block encrypts va genera același text cifrat (adică și blocul de intrare este identic). Sau când contorul folosit în criptarea CTR depășește, etc. etc. Cu toate acestea, așa cum s-a menționat, de obicei veți folosi chei diferite, chiar dacă este folosită aceeași parolă. În acest caz, singurul factor limitativ este dimensiunea mesajului / fișierului.

fgrieu avatar
drapel ng
Se presupune în tăcere că fișierele sunt mari, ceea ce nu este precizat în întrebare.

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.