WEBVTT 00:00:00.000 --> 00:00:04.152 Acum că am înțeles securitatea unui text simplu ales, haideți să construim scheme de criptare 00:00:04.152 --> 00:00:08.515 care reprezintă text simplu securizat. O primă astfel de schemă de criptare va fi denumită 00:00:08.515 --> 00:00:12.510 înlănțuirea cifru bloc. Așadar uite cum funcționează înlănțuirea cifru bloc. 00:00:12.510 --> 00:00:16.610 Înlănțuirea cifru bloc este o metodă de a folosi cifrul bloc pentru a obține un text simplu 00:00:16.610 --> 00:00:20.868 securizat. În special, ne referim la un mod denumit înlănțuirea cifru bloc 00:00:20.868 --> 00:00:25.021 cu un IV aleator. CBC înseamna înlănțuirea cifru bloc. Așadar să presupunem că avem un cifru bloc - 00:00:25.021 --> 00:00:28.963 EB este un cifru bloc. Acum să definim CBC astfel încât să fie următoarea 00:00:28.963 --> 00:00:33.248 schemă de criptare. Când i se cere algoritmului de criptare să cripteze 00:00:33.248 --> 00:00:37.991 mesajul M, primul lucru pe care îl va face este să aleagă un iV aleator, 00:00:37.991 --> 00:00:41.958 iar acesta este exact primul bloc a unui cifru bloc. Deci IV este un cifru bloc. 00:00:41.958 --> 00:00:46.035 În cazul AES, IV ar fi de 16 biți. Iar atunci când 00:00:46.035 --> 00:00:50.649 rulăm algoritmul, IV-ul pe care l-am ales va fi XOR 00:00:50.649 --> 00:00:54.726 cu primul bloc al textului simplu. Rezultatul obținut va fi 00:00:54.726 --> 00:00:58.857 criptat utilizând cifrul bloc și ceea ce se obține din primul bloc al textului cifrat. 00:00:58.857 --> 00:01:03.041 Iar acum vine partea de înlănțuire unde vom folosi primul bloc 00:01:03.041 --> 00:01:07.436 al textului cifrat pentru a crea un al doilea bloc de text. Astfel aplicăm XOR 00:01:07.436 --> 00:01:11.588 celor două, iar criptarea lor devine al doilea cifru bloc. 00:01:11.588 --> 00:01:15.535 Și tot așa în continuare. Acesta este înlănțuirea cifru bloc. Puteți vedea că 00:01:17.559 --> 00:01:19.584 fiecare cifru bloc este înlănțuit și XOR-at în următorul text bloc 00:01:19.584 --> 00:01:24.118 iar textul cifru final va fi esențial pentru IV - IV-ul inițial 00:01:24.118 --> 00:01:30.024 pe care îl alegem împreună cu blocurile de text. Menționez că IV semnifica 00:01:30.024 --> 00:01:35.795 Vector de Inițializare. Vom utiliza acest termen destul de mult. 00:01:35.795 --> 00:01:39.717 De fiecare dată când va trebui să alegem ceva la întâmplare, la începutul 00:01:39.717 --> 00:01:43.543 schemei de criptare vom denumi acel ceva IV, pentru vectorul de inițializare. Observați 00:01:43.543 --> 00:01:47.322 ca cifrul text este mai lung decât textul simplu deoarece 00:01:47.322 --> 00:01:51.149 acesta include si IV-ul cifrului text, care cuprinde randomizarea 00:01:51.149 --> 00:01:55.450 utilizată pentru criptare. Prima întrebare este cum decriptăm 00:01:55.450 --> 00:02:00.226 rezultatul criptării CBC. Să vă reamintesc că atunci când 00:02:00.226 --> 00:02:04.470 criptăm primul bloc mesaj , XOR-ăm cu IV, criptăm 00:02:04.470 --> 00:02:09.187 rezultatul și astfel obținem blocul cifru text. Să vă mai pun o întrebare 00:02:09.187 --> 00:02:13.667 Cum decriptăm asta ? Pornind de la primul bloc cifru text cum recuperați 00:02:13.667 --> 00:02:17.915 primul bloc original de text simplu ? Decriptarea este practic foarte asemănătoare criptării. 00:02:17.915 --> 00:02:21.660 Am scris aici o schemă pentru decriptare, unde puteți vedea 00:02:21.660 --> 00:02:25.961 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 00:02:25.961 --> 00:02:29.605 am taiat IV-ul, ca parte a procesului de decriptare. Astfel a rezultat 00:02:29.605 --> 00:02:33.754 mesajul original. IV-ul a fost eliminat 00:02:33.754 --> 00:02:38.438 prin algoritmul de decriptare. Următoarea teoremă vă va arăta 00:02:38.438 --> 00:02:43.762 că de fapt modul de criptare CBC cu IV aleator este securizat semantic 00:02:43.762 --> 00:02:48.956 împotriva unui atac cu text simplu. Să vă explic mai pe larg. 00:02:48.956 --> 00:02:54.083 Dacă pornim cu PRP, cifrul bloc E, care este definit 00:02:54.083 --> 00:02:59.079 ca parte din spațiul X, vom avea algoritmul Ecbc care preia mesajul 00:02:59.079 --> 00:03:03.944 cu lungimea L și rezulta cifrul text cu lungimea L+1. Apoi 00:03:03.944 --> 00:03:09.324 presupunem că avem un adversar care testeaza q texte simple. Astfel putem face afirmația 00:03:09.324 --> 00:03:15.024 că pentru orice adversar de acest tip care atacă Ecbc 00:03:15.024 --> 00:03:20.184 există un adversar care atacă PRP, cifrul bloc cu relația 00:03:20.184 --> 00:03:24.926 între cei doi algoritmi. Cu alte cuvinte, avantajul algoritmului A 00:03:24.926 --> 00:03:29.851 contra schemei de criptare este mai mic decât avantajul algoritmului B 00:03:29.851 --> 00:03:35.080 contra PRP-ului original, la care se adaugă reziduuri.