Know-how, prelegere, k

Criptografia și aleatoria au o relație strânsă. În "F. Teoria informației". Teoria informațiilor. am menționat că secretul perfect poate fi atins dacă cheia algoritmului de criptare este într-adevăr un număr aleatoriu. Există două abordări pentru obținerea unui flux lung de biți aleatorii.







  1. Utilizarea unui proces natural aleator, cum ar fi aruncarea monedei reutilizabile și interpretarea rezultatului "vultur" sau "cozi", ca valori ale biților 0 sau 1.
  2. Utilizarea unui proces determinist cu informații de feedback.

Prima abordare se numește adevăratul generator de numere aleatorii (TRNG - True Random Number Generator).

Cel de-al doilea se numește un generator de numere pseudorandom (PRNG - Generator de numere pseudo-numere). Figura K.1 prezintă aceste două abordări.


click pentru a mari imaginea
Fig. K.1. Un adevărat generator de numere aleatorii și un generator de numere pseudo-aleatoare

K.1. Generator de numere aleatorii adevărate (TRNG)

Atunci când se aruncă moneda dreaptă, se produce continuu un flux de biți perfect, dar acest lucru nu se aplică în practică. Există multe surse naturale care pot produce numere aleatorii adevărate, cum ar fi zgomotul termic în rezistența electrică sau timpul de răspuns al procesului mecanic sau electric după transmiterea comenzii. Aceste resurse naturale au fost folosite în trecut, iar unele dintre acestea au fost introduse în activități comerciale. Cu toate acestea, există o serie de dezavantaje ale acestei abordări. Procesul este de obicei lent și, dacă este necesar, același flux aleatoriu nu poate fi repetat.

K.2. Generator de numere pseudo-aleatoare (PRNG)

Generatoare congruente

Mai multe metode utilizează unele relații congruente.

Generator congruent liniar

În domeniul informaticii, cea mai comună tehnică pentru producerea numerelor pseudo-aleatoare este metoda congruențială liniară introdusă de Lehmer. Figura K.2 prezintă această metodă, care creează recursiv o secvență de numere pseudo-aleatoare folosind ecuația congruială liniară xi + 1 = (axi + b) mod n. unde x0 este numit semințe (semințe) este numărul între 0 și n - 1.


Fig. K.2. Linear generator de numere pseudorandom congruiale

Secvența este periodică, unde perioada depinde de cât de atenți sunt aleși coeficienții a și b. În mod ideal, perioada ar trebui să fie la fel de mare ca modulul n.

Să presupunem că a = b = 4. 5. n = 17 și xi0 = 7. Secvență - 16, 1, 9, 7, 16, 1, 9, 7, care este, evident, secvență pseudoaleatoare nesatisfăcătoare; perioada ei este de numai 4 ani.

Criterii. Pentru un generator acceptabil de pseudo-numere (PRNG), au fost dezvoltate mai multe criterii în ultimele câteva decenii.

  1. Perioada trebuie să fie egală cu n (modulul). Acest lucru înseamnă că înainte ca numerele întregi din secvență să înceapă să se repete, toate numerele întregi între 0 și n - 1 trebuie să fie generate.
  2. Secvența din fiecare perioadă trebuie să fie aleatorie.
  3. Procesul de generare ar trebui să fie convenabil pentru implementarea pe computer. Majoritatea computerelor de astăzi sunt eficiente atunci când folosesc aritmetică, folosind cuvinte de 32 de biți.

Recomandare. pe baza criteriilor anterioare: se recomandă alegerea coeficienților ecuației congruențiale și a valorii modulului pe baza următoarelor considerente.

  1. Selecția optimă a modulelor, n. este cel mai mare număr prime, aproape de dimensiunea cuvântului folosit în computer. Se recomandă utilizarea celui de-al treizeci și unu prim număr Mersenne ca modul: n = M 31 = 2 31 - 1.
  2. Pentru a crea o perioadă egală cu valoarea modulului, valoarea primului coeficient, a. trebuie să fie rădăcina primitivă a modulului principal. Deși întregul 7 este rădăcina primitivă a lui M31. recomanda folosirea a 7 k. unde k este un număr întreg relativ prime (M31 - 1). Unele valori recomandate pentru k sunt 5 și 13. Aceasta înseamnă că (a = 7 5) sau (a = 7 13).
  3. A doua recomandare: pentru utilizarea eficientă a calculatorului, valoarea celui de-al doilea coeficient b trebuie să fie zero.

Generator congruent liniar:







xi + 1 = axi mod n. unde n = 2 31 - 1 și a = 7 5 sau a = 7 13

Securitate. Secvența generată de ecuația congruențială liniară arată o aleatoare acceptabilă (dacă urmați recomandările anterioare). Secvența este utilă în unele aplicații în care este necesară numai o întâmplare (cum ar fi modelarea); este inutilă în criptografie, unde sunt de dorit atât șansa cât și securitatea. Deoarece numărul n este public, secvența poate fi atacată de Eve folosind una din cele două strategii:

  • Dacă Eva cunoaște valoarea semințelor (x 0) și coeficientul a. poate restabili cu ușurință întreaga secvență;
  • Dacă Eva nu cunoaște valoarea lui x 0 și a. poate intercepta primele două întregi și poate folosi următoarele două ecuații pentru a găsi x0 și a:
Generatorul reziduurilor patrate

Pentru a obține o secvență pseudo-aleatoare mai puțin previzibilă, a fost introdus un generator de reziduuri patratice (vezi "A. ASCII"), xi + 1 = xi 2 mod n. unde x0 este numit semințe, este un număr între 0 și n -1.

Blum Blum Shub Generator

O metodă simplă, dar eficientă pentru crearea unui generator de numere pseudo-aleatoare este numită Blum Blum Shub (BBS), denumită de cei trei inventatori.

BBS utilizează ecuația reziduurilor patrate, dar este un generator de biți pseudo-aleator în locul unui generator de numere pseudo-aleatoare; generează o secvență de biți (0 sau 1).

Figura K.3 prezintă ideea acestui generator.

Mai jos sunt pașii generației:

  1. Găsiți cele două mari numere prime p și q în forma 4k + 3. unde k este un număr întreg (p și q sunt congruente 3 mod 4).
  2. Alegeți modulul n = p x q.
  3. Alegeți un întreg întreg aleatoriu r. care este relativ prime la n.
  4. Calculați semințele ca x0 = r2 mod n.
  5. Generați secvența xi + 1 = xi 2 mod n.
  6. Luați cel mai puțin semnificativ bit al întregului număr aleator generat (LSB - cel puțin puțin semnificativ) ca un bit aleatoriu.


click pentru a mari imaginea
Fig. K.3. Blum Blum Shub (BBS) Generator de numere pseudorandom

Securitate. Se poate dovedi că dacă p și q sunt cunoscute, bitul i din secvență poate fi găsit ca bit cel mai puțin semnificativ:

Aceasta înseamnă că dacă Eva cunoaște valoarea p și q. poate găsi valoarea i-a biților încercând toate valorile posibile ale lui n (valoarea lui n este, în general, publică). Astfel, complexitatea acestui generator este aceeași cu factorizarea lui n. Dacă n este suficient de mare, secvența este sigură (imprevizibilă). S-a dovedit că, pentru un număr foarte mare de n, Eva nu poate prezice următorul bit din secvență, chiar dacă cunoaște valorile tuturor biților precedenți. Probabilitatea de a lua fiecare valoare pentru fiecare bit, 0 sau 1, este foarte aproape de 50%.

Siguranța BBS depinde de dificultatea factoringului n

Generatoare bazate pe sistemul criptografic

Sistemele criptografice, cum ar fi un cifru pentru un proces de criptare sau o funcție hash, pot fi de asemenea folosite pentru a genera un flux de biți aleatoriu. Prezentăm pe scurt două sisteme care utilizează algoritmi de criptare.

ANSI X9.17 Generator de numere pseudonoramice (PRNG)

ANSI X9.17 definește un generator de numere pseudo-aleatoare puternic criptografic. folosind triple 3DES cu două chei (criptare - decriptare - criptare), Fig. K.4 ilustrează acest proiect. Rețineți că primul număr pseudo-aleator este o sămânță pe 64 de biți, care este utilizată ca vector de inițiere (IV); restul numerelor pseudo-aleatoare folosesc semințele prezentate ca următorul IV. Aceeași cheie de criptare pe 112 biți (K1 și K2 în 3DES) este aplicată tuturor celor trei cipuri 3DES.

În Fig. Configurația K.4 este modul de conectare a blocurilor de text criptat (CBC), pe care le-am descris în Fig. 8.3 din secțiunea "Securitate la nivelul rețelei: IP SEC". Modul X9.17 utilizează două cascade pentru a forma un lanț al blocului. Textul sursă pentru fiecare cascadă provine de la ieșirea primului 3DES, care folosește data și ora drept cod sursă pe 64 de biți. Textul criptat creat de al doilea 3DES este un număr aleatoriu; textul criptat creat de al treilea 3DES este următorul vector de inițiere IV pentru următorul număr aleatoriu.

Strictețea lui X9.17 este determinată de următoarele fapte.

  1. Tasta este de 112 (2 56) biți.
  2. Introducerea datei și a orei pe 64 de biți oferă o marcă de timp bună care împiedică un atac de redare.
  3. Sistemul oferă un excelent efect de dispersie și amestecare cu șase criptare și trei decripții.

PGP Generator de numere pseudorandomice (PRNG)

PGP (destul de bine de confidențialitate) are aceeași idee ca și X9.17 cu câteva modificări. Mai întâi, PGP PRNG folosește șapte cascade în loc de două. În al doilea rând este cifru sau IDEA, CAST sau 128 (nu sunt discutate în această carte). În al treilea rând, cheia este, de obicei, 128 biți. PGP prng genereaza trei numere aleatoare de 4 biți: prima este folosit ca IV secretul vectorului de inițiere (pentru comunicare, care funcționează cu PGP, dar nu pentru prng), al doilea și al treilea sunt concatenate pentru a crea o cheie secretă este de 128 de biți (pentru PGP de operare de comunicare). Figura K.5 prezintă o schiță a PGP PRNG. Exigența unei cantități date PGP prng a cheii sale și că IV inițial (valoarea inițială) și cheia de clasificare pe 128 de biți poate fi generat din 24-byte variabila aleatoare cu adevărat.

Bine ai venit! Aș dori să clarifică următoarea întrebare: Aprobarea de stat suspendată de către MIP și când va fi restabilită, nu se cunoaște, iar diploma de pregătire profesională este eliberată pe baza MIT (așa cum am înțeles-o). Cum va funcționa cu obținerea unei diplome?

Întrebarea este un important și relevant, deoarece aceasta este o nevoie urgentă de un curs de formare și de a obține un grad și nu doresc să-și petreacă timp și bani pentru a plăti pentru nimic (în cazul în care certificatul nu este valabil, etc.). Vă rugăm să explicați mai mult situația.

Bună ziua, aș dori să vă clarific în viitorul plan de coordonare a acestui program cu autoritățile de reglementare și va face diploma însăși acum, când vor fi introduse standardele profesionale?







Articole similare

Trimiteți-le prietenilor: