Gpcch cu o sursă de entropie sau editare rch, editați textul sursă

Generatoarele criptografice ale numerelor aleatoare produc numere aleatorii care sunt folosite în aplicațiile criptografice, de exemplu - pentru a genera chei.







Convenționale generatoare de numere aleatorii disponibile în mai multe limbaje de programare și medii de software nu sunt potrivite pentru nevoile criptografiei (ele au fost create în scopul de a obține o distribuție statistică aleatorie, criptanaliștii poate prezice comportamentul unor astfel de generatoare aleatorii).

Implementarea corectă a criptoalgoritmilor asimetrici, de exemplu RSA, necesită adăugarea câtorva octeți aleatorii la fiecare porțiune a textului plaintext.

Diferența dintre generatorul de numere pseudo-aleatoare (GPRS) de la generatorul de numere aleatoare (RNG)

Surse utilizate pentru a acumula entropie entropie, urmată de obținerea acesteia la o valoare inițială (valoarea inițială, semințe), obligatorii ale generatoarelor de numere aleatorii (RNG) pentru a genera numere aleatoare. Prng folosește numai valoarea inițială, ceea ce implică ea pseudorandomness și întotdeauna RNG generează un număr aleatoriu, referindu-se la începutul unei valori aleatoare de înaltă calitate furnizate de diverse surse de entropie. Entropia este o măsură a tulburării. Entropia informației este o măsură a incertitudinii sau imprevizibilității informațiilor. Putem spune că RNG = GVHR + sursa de entropie.

Relația previzibilă între numere.

Valoarea inițială previzibilă a generatorului.

O lungime mică a perioadei secvenței generate de numere aleatorii, după care generatorul este bucle.

Linear Congruent GPRS (LCPRNG)

O metodă comună pentru generarea numerelor de pseudorandom care nu au stabilitate criptografică. Linear Generator congruential este de a calcula membrii secvenței recursive modulo un ıntreg m în cazul în care un (multiplicator), c (completare de), m (mască) liniar - niște coeficienți întregi. Secvența obținută depinde de alegerea numărului de semințe X0, iar pentru diferite valori rezultă diferite secvențe de numere aleatorii. Lăsați generatorul să producă mai multe numere aleatorii X0, X1, X2, X3. Un sistem de ecuații

Să se solicite obținerea unui senzor de variabile aleatoare distribuite exponențial. În acest caz, F (x) = 1 - exp (-lambda * x). Apoi, din soluția ecuației y = 1 - exp (-lambda * x) obținem x = -log (1-y) / lambda. Se poate observa că expresia logaritmului în această din urmă formulă este o distribuție uniformă pe intervalul [0,1), care permite obținerea unei secvențe diferite, dar distribuite în mod similar în conformitate cu formula: x = -log (y) / lambda, unde y este o variabilă aleatoare (rand ()).

Pseudo generator de numere aleatorii (prng Engl Pseudorandomnumbergenerator, prng ..) - algoritm pentru generarea unei secvențe de numere ale căror elemente sunt aproape independente una de alta și supuse unei distribuții predeterminate (în general uniformă).

Știința informatică modernă utilizează pe scară largă numere pseudo-aleatoare într-o varietate de aplicații - de la metoda Monte Carlo și simulare la criptografie. În același timp, calitatea utilizării GOSH afectează în mod direct calitatea rezultatelor obținute. Această circumstanță este subliniată de bine-cunoscutul aforism al lui Robert R. Cavan de la ORNL: "Generarea de numere aleatorii este prea importantă pentru ao lăsa la întâmplare".







Nici un algoritm determinist nu poate genera numere complet aleatoare, el poate aproxima doar unele din proprietățile lor. După cum a spus John von Neumann: "Oricine are o slăbiciune pentru metodele aritmetice de a obține numere aleatorii este vinovat dincolo de orice îndoială".

Orice GISR cu resurse limitate va intra mai devreme sau mai târziu în cicluri - începe repetarea aceleiași secvențe de numere. Lungimea ciclurilor GPRS depinde de generatorul propriu-zis și este de aproximativ 2 n / 2. unde n - mărimea stării interne a bitului, deși generatorul congruential liniare și au cicluri-LFSR maximal de ordinul 2 n. Dacă secvența generată de GPRCH converge la cicluri prea scurte, atunci un astfel de GPRCH devine previzibil și neadecvat pentru aplicații practice.

Majoritatea generatoarelor aritmetice simple, deși au o viteză mare, dar suferă de multe deficiențe grave:

Perioada / perioadele sunt prea scurte.

Valorile secvențiale nu sunt independente.

Unele biți sunt "mai puțin aleatorii" decât altele.

Distribuție unidimensională inegală.

În special, algoritmul RANDU, folosit de decenii pe mainframe, sa dovedit a fi foarte rău [2] [3]. care au ridicat îndoieli cu privire la fiabilitatea rezultatelor multor studii care au folosit acest algoritm.

Metoda congruențială liniară cea mai comună, metoda retardată Fibonacci, registrul de deplasare liniară, registrul de deplasare cu feedback generalizat.

Împreună cu necesitatea existentă de a genera secvențe de numere aleatorii ușor de reproductibil, există, de asemenea, necesitatea de a genera numere complet imprevizibile sau pur absolut aleatorii. Astfel de generatoare sunt numite generatoare de numere aleatoare (RNG - English randomnumbergenerator, RNG). Deoarece aceste generatoare sunt cel mai adesea folosite pentru a genera un unic chei simetrice și asimetrice pentru criptare, acestea sunt adesea construite dintr-o combinație de criptografic puternic prng și sursa externă a entropiei (și doar o astfel de combinație acum în mod obișnuit înțeleasă de RNG).

Aproape toți producătorii de microcipi mari furnizează RNG-uri hardware cu diferite surse de entropie, folosind diverse metode pentru a le curăța de predictibilitate inevitabilă. Cu toate acestea, în prezent, viteza de colectare a numerelor aleatoare de către toate microcipurile existente (câteva mii de biți pe secundă) nu corespunde vitezei procesoarelor moderne.

În studiile moderne se încearcă folosirea măsurării proprietăților fizice ale obiectelor (de exemplu temperatura) sau chiar a fluctuațiilor cuantice ale vidului ca sursă de entropie pentru RNG. [4]

Un exemplu de cel mai simplu rh cu o sursă de entropie [edit] editați sursa]

Când sursa de entropie pentru a utiliza ora curentă, pentru a obține un număr natural de la 0 la N este suficientă pentru a calcula restul de divizare a timpului curent vmillisekundah numărul N +1. Dezavantajul acestui RNG este acela că pentru o milisecundă produce același număr.

Cryptographically stable generator de numere de pseudorandom

Criptografic securizat generator de numere pseudoaleatoare (Engl criptografic securizat generator de numere pseudoaleatoare CSPRNG ..) - un generator de pseudoaleatoare dalte anumite proprietăți care permit utilizarea sa în criptografie. Multe dintre sarcinile de criptografie aplicate necesită numere aleatorii, de exemplu:

Numere aleatorii de unică folosință (în engleză)

Sare în scheme de semnătură digitală, de exemplu ECDSA

"Calitatea" dorită de aleatorie variază de la sarcină la sarcină. De exemplu, generarea unui număr aleator în unele protocoale necesită doar unicitatea, întrucât generarea cheii master sau shifrobloknota de unică folosință necesită entropie ridicată. In mod ideal, generarea de numere aleatoare în KSGPSCH utilizează sursa foarte fiabilă de entropie, care poate fi un generator de numere aleatorii hardware sau un curs imprevizibil al proceselor din sistem - deși în ambele cazuri sunt posibile vulnerabilitate neașteptate [1] [2]. Din punctul de vedere al teoriei informației, cantitatea de aleatorie - entropia care poate fi obținută este egală cu entropia oferită de sistem. Dar, de multe ori, situațiile reale necesită mai multe numere aleatorii decât pot fi obținute cu entropia existentă. În plus, procedura de obținere a alegerii din sistem însuși necesită o mulțime de resurse (memorie și timp). În astfel de cazuri, este justificată utilizarea KSGPSCH - aceasta vă permite să "întindeți" entropia existentă cu un număr mai mare de biți. Când toată entropia este disponibilă înainte ca algoritmul criptografic să fie executat, se obține un cifru de flux [3]. Cu toate acestea, unele Criptosistem permite să adăugați entropie în măsura muncii, într-un astfel de caz, algoritmul nu este echivalent cu cifrul flux și nu pot fi utilizate în această calitate. Astfel, dezvoltarea de cipuri de flux și KGPSR este strâns legată.







Articole similare

Trimiteți-le prietenilor: