Recomandat, 2024

Alegerea Editorului

Diferența dintre cifrul blocului și cifrul de flux

Block Cipher și Stream Cipher sunt metodele folosite pentru conversia directă a textului simplu în textul cifrului direct și aparțin familiei de cifre șifonate simetrice.

Diferența majoră între un cifru de bloc și un cifru de flux este că cifrul bloc criptează și decriptează un bloc al textului la un moment dat. Pe de altă parte, șirul de stream criptează și decriptează textul prin luarea unui singur octet al textului la un moment dat.

Diagramă de comparație

Bazele de comparațieBloc de cifruCiflu de flux
De bază
Transformă textul simplu prin luarea blocului său la un moment dat.
Convertește textul luând un octet al textului simplu la un moment dat.
Complexitate
Design simplu
Complex comparativ
Numărul de biți folosiți
64 biți sau mai mult
8 biți
Confuzia și difuzia
Utilizează atât confuzia, cât și difuziaSe bazează doar pe confuzie
Modurile algoritmului utilizate
BCE (Cartea electronică de coduri)
CBC (Cipher Blocking Chaining)
CFB (Feedback pentru cifru)
OFB (feedback)
Reversibilitate
Reversarea textului criptat este greu.
Utilizează XOR pentru criptare, care poate fi ușor inversată în textul simplu.
Punerea în aplicare
Feistel Cipher
Vernam Cipher

Definiția Block Cipher

Block Cipher ia un mesaj și îl sparge într-o dimensiune fixă ​​de blocuri și convertește un bloc al mesajului într-o clipă. De exemplu, avem un mesaj în text simplu "STREET_BY_STREET" necesar pentru a fi criptat. Folosind cifrul bock, "STREET" trebuie să fie criptat la început, urmat de "_BY_" și în cele din urmă, în cele din urmă "STREET".
În practica actuală, comunicarea are loc numai în biți. Prin urmare, STREET înseamnă de fapt echivalentul binar al caracterului ASCII al STREET. Ulterior, orice algoritm criptează aceste; biții rezultate sunt transformați înapoi în echivalentul lor ASCII.

O problemă evidentă în ceea ce privește utilizarea cipurilor de bloc este textul repetat, pentru care se generează același cifru. Prin urmare, ar da un indiciu criptanalizatorului care face mai ușor să se înțeleagă șirurile recurente ale textului simplu. Ca rezultat, poate dezvălui întregul mesaj.

Pentru a depăși această problemă, se utilizează modul de înlănțuire . În această tehnică, blocul precedent de text de cifru este amestecat cu blocul curent, astfel încât cifrul de cifru vag, evită astfel modelele recurente de blocuri cu același conținut.

Definiția Stream Cipher

Stream Cipher criptează de obicei un octet al mesajului în acel moment în loc să folosească blocuri. Să luăm un exemplu, să presupunem că mesajul original (text simplu) este "cerul albastru" în ASCII (adică format text). Când convertiți aceste ASCII în valori binare echivalente, acestea vor da rezultatul în forma 0 și 1. Să fie tradus în 010111001.

Pentru criptare și decriptare, se utilizează un generator de biți pseudorandom în care se încarcă o cheie și un text simplu. Un generator de biți pseudorandom creează un flux de numere pe 8 biți, care sunt aparent aleatorii cunoscut sub numele de keystream . Lăsați tasta de intrare să fie 100101011. Acum, cheia și textul deschis sunt XORed. Logica XOR este ușor de înțeles.
XOR produce o ieșire de 1 atunci când o intrare este 0 și cealaltă este 1. Ieșirea este 0 dacă ambele intrări sunt 0 sau ambele intrări sunt 1.

Confuzia este o metodă care garantează că un text de cifru nu oferă nicio idee despre textul original original.
Difuzia este o strategie utilizată pentru a spori redundanța textului simplu, răspândindu-l pe rânduri și coloane.

Diferențe cheie între blocul de cifru și cifrul de flux

  1. Tehnica de blocare a cipurilor implică criptarea unui bloc de text la un moment dat, adică singură. În mod similar, decriptați textul luând un bloc după altul. În contrast, tehnica de șablon Stream implică criptarea și decriptarea unui octet al textului la un moment dat.
  2. Blocul de blocuri utilizează atât confuzia, cât și difuzia, în timp ce cifrul fluxului se bazează numai pe confuzie.
  3. Dimensiunea obișnuită a blocului ar putea fi 64 sau 128 de biți în cifrul bloc. Spre deosebire de acestea, 1 octet (8 biți) la un moment dat este convertit în cifrul fluxului.
  4. Blocul bloc utilizează modurile de algoritm BCE (Electronic Code Book) și CBC (Cipher Block Chaining) . Dimpotrivă, șirul Stream utilizează modurile de algoritm CFB (Cipher Feedback) și OFB (Output Feedback) .
  5. Cifra de flux utilizează funcția XOR pentru a transforma textul simplu în text de cifru, acesta fiind motivul pentru care este ușor să inversați biții XORed. În timp ce cifrul bloc nu utilizează XOR pentru a face acest lucru.
  6. Blocul de blocuri utilizează aceeași cheie pentru a cripta fiecare bloc, în timp ce fluxul de cifru utilizează o cheie diferită pentru fiecare octet.

Concluzie:

Block Cipher și Stream Cipher diferă în modul în care textul simplu este criptat și decriptat. Ideea din spatele cifrului bloc este de a împărți textul în blocuri în continuare cripta aceste blocuri. În timp ce șirul de flux convertește textul simplu bit similar cu cel al fluxului.

Top