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.