Electronic Code Book (ECB) în criptografie
Cel mai de bază mod este modul electronic codebook, în care textul în clar este procesat bloc cu bloc și fiecare bloc este criptat folosind o singură cheie. Termenul codebook este în sine auto-explicativ. Dacă ni se dă o anumită cheie, atunci avem un text cifrat unic pentru fiecare bloc de b biți de text în clar. Astfel, se poate vizualiza un codebook mare cu intrări pentru toate modelele posibile de text în clar de b biți, arătând textul cifrat corespunzător. Acest lucru se datorează faptului că este important să înțelegem cum funcționează Modul ECB și în ce context această metodă este mai bună decât celelalte.
Cinci Moduri de Operare NIST pentru Aplicarea unui Cifru Bloc
Aceste moduri sunt concepute pentru a fi utilizate pentru orice cifru bloc simetric, inclusiv triplu DES și AES. Cele cinci moduri sunt concepute pentru a acoperi o mare varietate de aplicații de criptare pentru care ar putea fi utilizat un cifru bloc.
| Mod | Descriere | Aplicație |
|---|---|---|
| Electronic Codebook (ECB) | Într-un electronic codebook (ECB), fiecare bloc de biți de text în clar este codificat independent cu aceeași cheie. |
|
| Cipher Block Chaining (CBC) | Intrarea în algoritm este XOR-ul următorului bloc de text în clar cu blocul anterior de text cifrat pentru a produce următoarea unitate de text în clar. |
|
| Cipher Feedback (CFB) | Într-un CFB (Cipher Feedback), intrarea este procesată la o rată de s biți pe bloc de text în clar. Blocul anterior de ieșire de criptare este utilizat ca intrare pentru algoritmul de criptare pentru a genera o ieșire pseud aleatorie. |
|
| Output Feedback (OFB) | Este similar cu CFB, cu excepția faptului că ieșirea algoritmului CFB este ieșirea de criptare anterioară. Se utilizează, de asemenea, blocuri complete. |
|
| Counter (CTR) | Un contor criptat (CTR) este XOR-at pentru fiecare bloc de text în clar, contorul fiind incrementat pentru fiecare bloc succesiv. |
|
Funcționarea Electronic Code Book
În criptarea ECB, textul în clar este împărțit în blocuri de dimensiune fixă, de obicei b biți fiecare, și apoi criptat bloc cu bloc, toate folosind aceeași cheie. Dacă mesajul este mai lung decât dimensiunea blocului, se aplică umplutură (padding) ultimului bloc, după caz.
Într-o reprezentare schematică (așa cum se vede în figurile de mai sus și de mai jos), textul în clar, umplut dacă este necesar, este segmentat în blocuri de b biți etichetate P1, P2, …, PN. Fiecare bloc este supus criptării pentru a produce blocurile de text cifrat corespunzătoare etichetate C1, C2, …, CN. Operațiile de criptare și decriptare sunt simple:
Criptare:
Ci=E(K,Pi), i=1,2,…,N
Decriptare:
Pi=D(K,Ci), i=1,2,…,N
Provocări de Securitate ale Electronic Code Book (ECB)
ECB a fost inițial conceput pentru a proteja mesajele care nu depășesc niciodată un singur bloc. De exemplu, a fost folosit pentru a cripta cheile pentru alte scopuri. Cu toate acestea, dacă îl utilizați pentru a cripta un mesaj mai lung de un bloc, veți pierde puțină informație pe bloc. Acest lucru se datorează faptului că permite actorilor rău intenționați să mascheze când două blocuri de text în clar sunt identice sau diferite.
De exemplu, luați în considerare criptarea fotografiilor. Chiar dacă este criptată, natura criptării permite ca conturul fotografiei să fie clar vizibil. Nu este vorba că criptarea a eșuat, ci că este utilizată într-o operațiune care nu a fost concepută pentru a cripta mai mult de un bloc. Protocoalele de internet utilizează o operațiune care nu este concepută pentru criptarea a mai mult de un bloc, ceea ce introduce riscuri de securitate.
Exemplu Electronic Code Book (ECB)
Luați în considerare următorul exemplu:
- Text în clar:
Binar: 10100010001110101001 Împărțit în blocuri de 4 biți:
- Cheie (K):
Lungime: 4 biți Exemplu de cheie: 1011 (în hexazecimal: B)
- Proces de Criptare (folosind XOR): Criptați fiecare bloc de text în clar (Pi) cu cheia (K).
- Bloc de text în clar: 1010 0010 0011 1010 1001
- Cheie (k): 1011
- Rezultat XOR:
1010 ⊕ 1011 = 0001
0010 ⊕ 1011 = 1001
0011 ⊕ 1011 = 1000
1010 ⊕ 1011 = 0001
1001 ⊕ 1011 = 0010
- Rezultatul final criptat este:
0001 1001 1000 0001 0010 (în binar)
19812 (în hexazecimal)
Avantajele Electronic Code Book
- Criptarea ECB este remarcabil de ușor de implementat și conceptualizat. Fiecare bloc de text în clar este criptat independent cu aceeași cheie. Simplitatea modului ECB îl face atractiv acolo unde ușurința implementării și eficiența sunt de dorit. Proiectanții pot insera cu ușurință criptarea ECB într-un sistem fără a trebui să se ocupe de complexitățile intercalării sau feedback-ului.
- Un alt atribut important al modului ECB este reziliența sa la pierderea sau coruperea blocurilor individuale în timpul transmisiei. Fiecare bloc de text cifrat Ci este generat independent de alte blocuri, ceea ce înseamnă că pierderea sau coruperea unui bloc nu se propagă la blocurile vecine. Acest lucru este deosebit de important în sistemele în care datele sunt transmise prin rețele unde blocurile individuale pot fi tratate ca pachete independente. Chiar dacă unele blocuri sunt pierdute sau corupte în tranzit, blocurile rămase pot fi decriptate cu succes, asigurând integritatea mesajului.
Dezavantajele Electronic Code Book
Există unele dezavantaje la utilizarea ECB:
- ECB se bazează pe substituție simplă în loc de un vector de inițializare și înlănțuire. Aceste caracteristici fac ECB ușor de implementat. Dar acesta este și cel mai mare dezavantaj al său. Când două blocuri de text în clar sunt identice, ele duc la două blocuri corespunzătoare de text cifrat.
- ECB nu poate fi utilizat cu dimensiuni mici de bloc (adică, mai puțin de 40 de biți) și aceleași moduri de criptare. Cu dimensiuni mici de bloc, anumite cuvinte și propoziții din textul în clar pot fi repetate frecvent în textul criptat. Acest lucru înseamnă că textul criptat poate conține (și expune) modele care sunt derivate din același text în clar. Înseamnă, de asemenea, că aceleași părți de bloc recurente din textul în clar pot apărea în textul criptat. Prezența modelelor clare de text în clar creează o oportunitate pentru atacatori de a deduce aceste modele și de a executa atacuri de tip codebook.
- Stratul de criptare este slab, dar poate fi îmbunătățit prin adăugarea de biți de umplutură aleatorii la fiecare bloc. Dimensiunea blocului (64 de biți sau mai mare) este probabil să aibă suficienți parametri unici (entropie) pentru a preveni compromiterea unui codebook.
Concluzie
Cel mai simplu dintre toate cifrurile bloc AES este modul Electronic Code Book. Acesta codifică individual fiecare bloc de text în clar cu aceeași cheie. Simplitatea sa vine cu un preț. Replicarea aceluiași bloc de text în clar duce la blocuri de text cifrat identice. Acest lucru expune un model în datele criptate; prin urmare, aplicarea modului ECB este potrivită numai atunci când se tratează criptarea unei singure valori, de exemplu, transmiterea unei chei.
Este necesar să se înțeleagă cum funcționează ECB, termenii săi, cum ar fi cheile, textul în clar și textul cifrat. ECB este foarte ușor de implementat și rezistent la pierderea blocurilor, dar este vulnerabil la atacurile de tip codebook. Nu este potrivit pentru mesaje lungi. Alte moduri, cum ar fi CBC, CFB, OFB și CTR, oferă alternative mai sigure în diferite aplicații.





