1 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 2 00:00:04,152 --> 00:00:08,515 care reprezintă text simplu securizat. O primă astfel de schemă de criptare va fi denumită 3 00:00:08,515 --> 00:00:12,510 înlănțuirea cifru bloc. Așadar uite cum funcționează înlănțuirea cifru bloc. 4 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 5 00:00:16,610 --> 00:00:20,868 securizat. În special, ne referim la un mod denumit înlănțuirea cifru bloc 6 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 - 7 00:00:25,021 --> 00:00:28,963 EB este un cifru bloc. Acum să definim CBC astfel încât să fie următoarea 8 00:00:28,963 --> 00:00:33,248 schemă de criptare. Când i se cere algoritmului de criptare să cripteze 9 00:00:33,248 --> 00:00:37,991 mesajul M, primul lucru pe care îl va face este să aleagă un iV aleator, 10 00:00:37,991 --> 00:00:41,958 iar acesta este exact primul bloc a unui cifru bloc. Deci IV este un cifru bloc. 11 00:00:41,958 --> 00:00:46,035 În cazul AES, IV ar fi de 16 biți. Iar atunci când 12 00:00:46,035 --> 00:00:50,649 rulăm algoritmul, IV-ul pe care l-am ales va fi XOR 13 00:00:50,649 --> 00:00:54,726 cu primul bloc al textului simplu. Rezultatul obținut va fi 14 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. 15 00:00:58,857 --> 00:01:03,041 Iar acum vine partea de înlănțuire unde vom folosi primul bloc 16 00:01:03,041 --> 00:01:07,436 al textului cifrat pentru a crea un al doilea bloc de text. Astfel aplicăm XOR 17 00:01:07,436 --> 00:01:11,588 celor două, iar criptarea lor devine al doilea cifru bloc. 18 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ă 19 00:01:17,559 --> 00:01:19,584 fiecare cifru bloc este înlănțuit și XOR-at în următorul text bloc 20 00:01:19,584 --> 00:01:24,118 iar textul cifru final va fi esențial pentru IV - IV-ul inițial 21 00:01:24,118 --> 00:01:30,024 pe care îl alegem împreună cu blocurile de text. Menționez că IV semnifica 22 00:01:30,024 --> 00:01:35,795 Vector de Inițializare. Vom utiliza acest termen destul de mult. 23 00:01:35,795 --> 00:01:39,717 De fiecare dată când va trebui să alegem ceva la întâmplare, la începutul 24 00:01:39,717 --> 00:01:43,543 schemei de criptare vom denumi acel ceva IV, pentru vectorul de inițializare. Observați 25 00:01:43,543 --> 00:01:47,322 ca cifrul text este mai lung decât textul simplu deoarece 26 00:01:47,322 --> 00:01:51,149 acesta include si IV-ul cifrului text, care cuprinde randomizarea 27 00:01:51,149 --> 00:01:55,450 utilizată pentru criptare. Prima întrebare este cum decriptăm 28 00:01:55,450 --> 00:02:00,226 rezultatul criptării CBC. Să vă reamintesc că atunci când 29 00:02:00,226 --> 00:02:04,470 criptăm primul bloc mesaj , XOR-ăm cu IV, criptăm 30 00:02:04,470 --> 00:02:09,187 rezultatul și astfel obținem blocul cifru text. Să vă mai pun o întrebare 31 00:02:09,187 --> 00:02:13,667 Cum decriptăm asta ? Pornind de la primul bloc cifru text cum recuperați 32 00:02:13,667 --> 00:02:17,915 primul bloc original de text simplu ? Decriptarea este practic foarte asemănătoare criptării. 33 00:02:17,915 --> 00:02:21,660 Am scris aici o schemă pentru decriptare, unde puteți vedea 34 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 35 00:02:25,961 --> 00:02:29,605 am taiat IV-ul, ca parte a procesului de decriptare. Astfel a rezultat 36 00:02:29,605 --> 00:02:33,754 mesajul original. IV-ul a fost eliminat 37 00:02:33,754 --> 00:02:38,438 prin algoritmul de decriptare. Următoarea teoremă vă va arăta 38 00:02:38,438 --> 00:02:43,762 că de fapt modul de criptare CBC cu IV aleator este securizat semantic 39 00:02:43,762 --> 00:02:48,956 împotriva unui atac cu text simplu. Să vă explic mai pe larg. 40 00:02:48,956 --> 00:02:54,083 Dacă pornim cu PRP, cifrul bloc E, care este definit 41 00:02:54,083 --> 00:02:59,079 ca parte din spațiul X, vom avea algoritmul Ecbc care preia mesajul 42 00:02:59,079 --> 00:03:03,944 cu lungimea L și rezulta cifrul text cu lungimea L+1. Apoi 43 00:03:03,944 --> 00:03:09,324 presupunem că avem un adversar care testeaza q texte simple. Astfel putem face afirmația 44 00:03:09,324 --> 00:03:15,024 că pentru orice adversar de acest tip care atacă Ecbc 45 00:03:15,024 --> 00:03:20,184 există un adversar care atacă PRP, cifrul bloc cu relația 46 00:03:20,184 --> 00:03:24,926 între cei doi algoritmi. Cu alte cuvinte, avantajul algoritmului A 47 00:03:24,926 --> 00:03:29,851 contra schemei de criptare este mai mic decât avantajul algoritmului B 48 00:03:29,851 --> 00:03:35,080 contra PRP-ului original, la care se adaugă reziduuri.