Care este diferența dintre Stream Ciphers și Block Ciphers?

...

Cifrurile de flux sunt potrivite pentru aplicațiile hardware în timp real.

Un cifru este un set de reguli matematice, sau algoritm, folosit pentru a converti textul care poate fi citit sau textul simplu în text ilizibil sau cifr. Principala diferență dintre cifrurile de flux și cifrurile bloc este că cifrurile de flux funcționează pe fluxuri de text, câte un bit sau un octet, în timp ce cifrurile bloc funcționează pe blocuri de text.

Stream Cipher

Ideea de bază a unui stream cipher este de a împărți textul în blocuri mici, de un bit sau un octet, și de a codifica fiecare bloc în funcție de multe blocuri anterioare. Cifrurile de flux utilizează o cheie de criptare diferită -- o valoare care trebuie introdusă în algoritm -- pentru fiecare bit sau octet, astfel încât același bit sau octet produce un text cifrat diferit de fiecare dată când este criptat. Unele coduri de flux folosesc un generator de flux de chei, care produce un flux de biți aleatoriu sau aproape aleatoriu. Cifrul efectuează o operație booleană, cunoscută ca un SAU exclusiv, între biții din fluxul de chei și biții din textul simplu pentru a produce text cifrat.

Videoclipul zilei

Block Cipher

Ideea de bază a unui cifru bloc este de a împărți textul în blocuri relativ mari, de obicei de 64 sau 128 de biți, și de a codifica fiecare bloc separat. Aceeași cheie de criptare este utilizată pentru fiecare bloc și cheia de criptare este cea care determină ordinea în care înlocuirea, transportul și alte funcții matematice sunt efectuate pentru fiecare bloc. Algoritmii puternici înseamnă că ingineria inversă a cifrului sau determinarea ce funcții au fost efectuate pe fiecare bloc, în ce ordine, este practic imposibil.

Difuzie și confuzie

Cifrurile bloc folosesc tehnici cunoscute sub numele de confuzie și difuzie pentru a cripta textul simplu în text cifrat. Ideea din spatele confuziei este de a face relația dintre cheia de criptare și textul cifrat cât mai complexă posibil. În mod ideal, fiecare caracter din cheia de criptare ar trebui să influențeze fiecare caracter din textul cifrat. În schimb, difuzarea răspândește influența fiecărui caracter din textul simplu asupra mai multor caractere din textul cifrat, făcând cifrul mai puțin susceptibil la atacuri statistice.

Argumente pro şi contra

Faptul că criptările de flux criptează și decriptează datele pe rând înseamnă că acestea sunt deosebit de potrivite pentru aplicațiile hardware în timp real, cum ar fi aplicațiile audio și video. Cifrurile în flux sunt mai slabe și mai puțin eficiente decât cifrurile bloc atunci când vine vorba de aplicații software și sunt utilizate mai puțin frecvent în acest domeniu. Cifrurile bloc sunt mai ușor de implementat în software deoarece criptează datele în blocuri de o lungime pe care software-ul o folosește deja. Cheia de criptare are adesea aceeași lungime cu dimensiunea blocului.