-
Acum că am înțeles securitatea unui text simplu ales, haideți să construim scheme de criptare
-
care reprezintă text simplu securizat. O primă astfel de schemă de criptare va fi denumită
-
înlănțuirea cifru bloc. Așadar uite cum funcționează înlănțuirea cifru bloc.
-
Înlănțuirea cifru bloc este o metodă de a folosi cifrul bloc pentru a obține un text simplu
-
securizat. În special, ne referim la un mod denumit înlănțuirea cifru bloc
-
cu un IV aleator. CBC înseamna înlănțuirea cifru bloc. Așadar să presupunem că avem un cifru bloc -
-
EB este un cifru bloc. Acum să definim CBC astfel încât să fie următoarea
-
schemă de criptare. Când i se cere algoritmului de criptare să cripteze
-
mesajul M, primul lucru pe care îl va face este să aleagă un iV aleator,
-
iar acesta este exact primul bloc a unui cifru bloc. Deci IV este un cifru bloc.
-
În cazul AES, IV ar fi de 16 biți. Iar atunci când
-
rulăm algoritmul, IV-ul pe care l-am ales va fi XOR
-
cu primul bloc al textului simplu. Rezultatul obținut va fi
-
criptat utilizând cifrul bloc și ceea ce se obține din primul bloc al textului cifrat.
-
Iar acum vine partea de înlănțuire unde vom folosi primul bloc
-
al textului cifrat pentru a crea un al doilea bloc de text. Astfel aplicăm XOR
-
celor două, iar criptarea lor devine al doilea cifru bloc.
-
Și tot așa în continuare. Acesta este înlănțuirea cifru bloc. Puteți vedea că
-
fiecare cifru bloc este înlănțuit și XOR-at în următorul text bloc
-
iar textul cifru final va fi esențial pentru IV - IV-ul inițial
-
pe care îl alegem împreună cu blocurile de text. Menționez că IV semnifica
-
Vector de Inițializare. Vom utiliza acest termen destul de mult.
-
De fiecare dată când va trebui să alegem ceva la întâmplare, la începutul
-
schemei de criptare vom denumi acel ceva IV, pentru vectorul de inițializare. Observați
-
ca cifrul text este mai lung decât textul simplu deoarece
-
acesta include si IV-ul cifrului text, care cuprinde randomizarea
-
utilizată pentru criptare. Prima întrebare este cum decriptăm
-
rezultatul criptării CBC. Să vă reamintesc că atunci când
-
criptăm primul bloc mesaj , XOR-ăm cu IV, criptăm
-
rezultatul și astfel obținem blocul cifru text. Să vă mai pun o întrebare
-
Cum decriptăm asta ? Pornind de la primul bloc cifru text cum recuperați
-
primul bloc original de text simplu ? Decriptarea este practic foarte asemănătoare criptării.
-
Am scris aici o schemă pentru decriptare, unde puteți vedea
-
că este același lucru, cu excepția faptului că XOR este în partea de jos, în loc să fie in partea de sus și
-
am taiat IV-ul, ca parte a procesului de decriptare. Astfel a rezultat
-
mesajul original. IV-ul a fost eliminat
-
prin algoritmul de decriptare. Următoarea teoremă vă va arăta
-
că de fapt modul de criptare CBC cu IV aleator este securizat semantic
-
împotriva unui atac cu text simplu. Să vă explic mai pe larg.
-
Dacă pornim cu PRP, cifrul bloc E, care este definit
-
ca parte din spațiul X, vom avea algoritmul Ecbc care preia mesajul
-
cu lungimea L și rezulta cifrul text cu lungimea L+1. Apoi
-
presupunem că avem un adversar care testeaza q texte simple. Astfel putem face afirmația
-
că pentru orice adversar de acest tip care atacă Ecbc
-
există un adversar care atacă PRP, cifrul bloc cu relația
-
între cei doi algoritmi. Cu alte cuvinte, avantajul algoritmului A
-
contra schemei de criptare este mai mic decât avantajul algoritmului B
-
contra PRP-ului original, la care se adaugă reziduuri.