Cunoștințe, cursuri, cipuri de fluxuri și generatoare de numere pseudo-aleatoare

Cunoștințe, cursuri, cipuri de fluxuri și generatoare de numere pseudo-aleatoare


Fig. 8.3. Structura generală a unui sistem secret care utilizează criptarea simetrică

Expeditorul, care este sursa mesajelor, și destinatarul (receptorul mesajelor criptate) se pun de acord asupra alegerii unui cifru și a unei chei acceptabile. Expeditorul criptează apoi mesajul său folosind algoritmul de criptare ales și tasta și transmite textul cifrat primit prin canalul de comunicare (deschis). Destinatarul îl decriptează folosind un cifru și o cheie.

Inamicul, cel mai probabil, poate intercepta mesajul criptat, deoarece se presupune că acesta este transmis printr-un canal de comunicare deschis. În acest caz, criptanalizatorul adversarului poate încerca să deschidă textul cifrat. Vom presupune că expeditorul și destinatarul mesajului utilizează un cifru suficient de fiabil. și că probabilitatea de deschidere nu este mare. În acest caz, securitatea criptării depinde în întregime de securitatea cheii. Dezvăluirea cheii va duce la divulgarea datelor transmise. Astfel, cheia trebuie păstrată în secret până când este utilizată pentru închiderea datelor. Prin urmare, este necesar un canal de comunicare fiabil pentru distribuția inițială a cheilor.

Astfel, fiabilitatea canalului de transfer cheie pentru participanții la negocierile secrete este fundamentală. Cea mai fiabilă modalitate de distribuire a cheilor inițiale este schimbul de chei în întâlnirea față-în-față a abonaților de rețele de date. De asemenea, puteți utiliza curieri speciali pentru livrarea cheilor. Dacă un număr mic de părți sunt implicate în schimbul de mesaje secrete, de exemplu, două sau trei, atunci ambele metode sunt complet acceptabile. Dacă numărul abonaților care interacționează este mare, atunci problema distribuției-cheie devine o problemă reală.

Când folosiți chei secrete, există și alte dificultăți. De exemplu, cheile ar trebui să se schimbe din când în când. Acest lucru se datorează faptului că cu cât este mai lungă cheia. cu atât este mai mare probabilitatea compromisului (dezvăluirii). Cu cât este mai lungă cheia. cu atât mai mare pierderea compromisului său, din moment ce mai mare numărul de mesaje poate dezvălui atacator la primirea cheii. Chiar dacă cheia nu este de a fi divulgate, pentru a efectua criptanaliza inamic convenabil, având la dispoziție un număr suficient de mesaje criptate cu aceeași cheie. Este optim să utilizați pentru fiecare schimb de mesaje criptate cheia dvs. unică - așa-numita tastă de sesiune. Dar unde să obțineți atât de multe chei pentru o mare rețea de telecomunicații și cum să le alocați?

În legătură cu aceste dificultăți, în practică, se utilizează sisteme automatizate speciale de gestionare a cheilor. Astfel de sisteme permit generarea cheilor, stocarea și arhivarea acestora, restaurarea cheilor pierdute, înlocuirea sau eliminarea cheilor vechi și inutile din circulație. Cea mai importantă parte a sistemului de gestionare a cheilor este Centrul de distribuție a cheilor (KDC), ale cărui funcții sunt generarea, distribuția și transferul cheilor.

Specialiștii au elaborat proceduri speciale (sau protocoale) care permit centrului de distribuție cheie să furnizeze chei utilizatorilor pentru a desfășura sesiuni de comunicare separate (chei sesiune). Din păcate, toate protocoalele care utilizează criptarea simetrică au unele dezavantaje. Luați în considerare unul dintre protocoalele cheie de schimb valutar.

De exemplu, dacă un centru de distribuție cheie se alătură unei comunități de utilizatori a unei rețele de schimb de date, tuturor noilor abonați li se dă o cheie secretă individuală. Iată cum poate proceda procedura de distribuire a cheilor secrete pentru a efectua o sesiune de comunicare între doi abonați ai rețelei folosind centrul de distribuție cheie (pentru scurt timp, îl vom numi Centrul):

  1. Abonatul A accesează Centrul și solicită o cheie de sesiune pentru conexiunea cu abonatul B.
  2. Centrul creează o cheie de sesiune aleatorie. Două copii ale acestei chei de sesiune sunt criptate - una utilizând cheia privată a abonatului A, cealaltă utilizând cheia secretă a abonatului B. Apoi, ambele copii criptate sunt trimise de la centru către abonatul A.
  3. Abonatul A decriptează copia cheii sesiunii și transmite a doua copie criptată către abonatul B.
  4. Abonatul B decriptează copia cheii sesiunii.
  5. Abonații A și B utilizează cheia sesiunii primite pentru schimbul secret de informații.

Acest protocol este destul de simplu și poate fi automatizat utilizând, de exemplu, un program de transfer de date. Cu toate acestea, procedura descrisă pentru distribuirea cheilor sesiunii are mai multe dezavantaje evidente.

Primul dezavantaj al acestui sistem este că Centrul participă la toate schimburile. Eșecurile din activitatea Centrului vor perturba funcționarea întregului sistem.

Și, în sfârșit, rămâne problema distribuției inițiale a cheilor secrete atunci când un utilizator se alătură rețelei. Cheia secretă originală trebuie furnizată pe un canal de comunicare absolut fiabil, altfel întregul protocol pierde toate semnificațiile. Este bine ca cheia originală să poată fi emisă personal unui nou utilizator, dar în unele cazuri acest lucru nu este posibil, de exemplu, cu distribuția teritorială a rețelei de date.

Acestea și alte dezavantaje ale algoritmi de criptare simetrică descoperite de către dezvoltatorii de rețele de telecomunicații, în primele încercări de a construi sisteme de transmisie de date sigure în '70 ai secolului XX. Decizia problemei de distribuție a cheilor (precum și alte probleme grave) este utilizarea de algoritmi de criptare asimetrică, cu care vom începe să se întâlnească în capitolul următor.

Termeni-cheie

CTR - modul de operare al cifrului de bloc, care permite generarea de chei atunci când se strepează criptarea informațiilor.

LFSR (registru de schimbare liniară a feedback-ului) - Registru de deplasare liniară cu feedback.

OFB - modul de operare al cifrului de bloc, care permite generarea de chei la streaming criptarea informațiilor.

Algoritmul RC4 - algoritmul de generare a numerelor pseudo-aleatoare. Poate fi folosit pentru a genera chei pentru criptarea streaming.

Regimul de deplasare a deplasării liniare (LFSR) este o variantă a unui registru de deplasare cu feedback. Feedbackul într-un astfel de registru este realizat pur și simplu ca suma modulului 2 al tuturor (sau al unora) biți ai registrului.

Un registru de schimbare cu feedback constă dintr-un registru de deplasare n-bit și un dispozitiv de feedback. Când să extrag un pic. toți biții din registru sunt mutați în poziția din dreapta. Noul bont din stânga este determinat de funcția de feedback a biților rămași. Regiștrii feedback feedback-ul poate fi folosit pentru a obține un flux de biți pseudo-aleatoare.

Rezultatele rezumate

Pentru a genera un flux cheie, criptarea bazată pe flux poate utiliza registrele de schimbare cu feedback. Un registru de schimbare cu feedback constă dintr-un registru de deplasare n-bit și un dispozitiv de feedback. Când să extrag un pic. toți biții din registru sunt mutați în poziția din dreapta. Noul bont din stânga este determinat de funcția de feedback a biților rămași. Regiștrii feedback feedback-ul poate fi folosit pentru a obține un flux de biți pseudo-aleatoare.

Se poate folosi orice algoritm de blocare. de exemplu AES sau GOST 28147-89, pentru streaming criptarea informațiilor, utilizând modurile OFB și CTR ale cipurilor de bloc. Aceste moduri permit generarea unui flux informațional cheie bazat pe un algoritm de criptare bloc utilizând o cheie secretă, care poate fi apoi utilizată ca o gamă în criptare.

Există, de asemenea, algoritmi pentru generarea de numere pseudo-aleatoare, create special pentru criptografie. Unul dintre cei mai cunoscuți algoritmi de acest fel este algoritmul RC4. Acesta este un algoritm cu o cheie cu lungime variabilă. Pe baza cheii, algoritmul generează numere pseudo-aleatoare utilizând operațiuni de adunare (cu un anumit modul), permutări și înlocuiri ale elementelor matricei interne. Generatoare de numere pseudo-aleatoare. construit folosind algoritmi precum RC4. ca regulă, generatoare mult mai rapide bazate pe cipuri bloc.

În toate sistemele care utilizează criptarea simetrică. cheia este fiabilitatea canalului cheie de transmitere către participanții la negocierile secrete. Principalele probleme care apar în sistemele cheie de management sunt următoarele: cantitate mare și de abonați de distribuție interacționează teritoriale, necesitatea de a schimba cheile de la o sesiune la alta. Soluția la problema distribuției cheie a fost utilizarea algoritmilor de criptare asimetrici.

Setați pentru practică

Întrebări pentru auto-examinare

  1. Listați principalele caracteristici, avantaje și dezavantaje ale fiecăreia dintre generatoarele de numere pseudo-aleatoare luate în considerare în curs.
  2. Cum pot fi utilizate registrele cu feedback pentru a obține numere pseudo-aleatoare? Explicați principiul lor de funcționare.
  3. Cum poate fi utilizat un cifru de bloc în modul OFB pentru streaming de criptare a datelor?
  4. Cum este organizat CTR modul Cipher bloc?
  5. Care este diferența dintre generatoarele de numere aleatoare și pseudo-aleatoare?
  6. Este posibil să utilizați generatorul de numere aleatorii reale pentru a obține o gamă în criptarea streaming. De ce?
  7. În ce scopuri criptografice pot fi utilizați generatori de numere aleatorii reale?
  8. Ce probleme apar în gestionarea cheilor private în sistemele criptate de schimb de mesaje?

Exerciții pentru auto-examinare

  1. Definiți prima secvență pseudo-aleatoare de 16 biți, obținută prin utilizarea generatoarelor PN pe baza registrului de deplasare liniară prezentată în figură, dacă valoarea inițială a registrului urmează:
    • b4 = 0, b3 = 0, b2 = 0, b1 = 1.
    • b4 = 1, b3 = 1, b2 = 0, b1 = 1.

Cunoștințe, cursuri, cipuri de fluxuri și generatoare de numere pseudo-aleatoare

  • Determinați perioada secvențelor pseudo-aleatoare obținute utilizând generatorul PSC pe baza registrului de deplasare cu feedback din Exercițiul 1.
  • Continuați să calculați secvența pseudo-aleatoare folosind algoritmul RC4, pornit în "Cipheri de flux și generatoare de numere pseudo-aleatoare: Partea 2" și găsiți z6. Z7. Z8. z9 și z10.
  • Calculați secvența de pseudorandom folosind algoritmul RC4 (n = 4) și găsiți z1. z2. Z3. z4 și z5. Utilizați secvența: 4, 3, 2, 1 ca cheie secretă.