Criptare folosind codul RSA c. RSA, e chiar atât de simplu? Când a apărut criptosistemul în forma sa modernă?

Sub tăietură sunt exemple de alegere a parametrilor de criptare RSA „răi”.

„Trebuie subliniat faptul că trebuie avută grijă în selectarea modulului RSA (număr n) pentru fiecare dintre corespondenții rețelei. În acest sens, se pot spune următoarele. Cititorul poate verifica independent că cunoscând una dintre cele trei cantități p, q sau φ(n), puteți găsi cu ușurință cheia privată RSA...".

Să adăugăm la acest text. Dacă alegerea modulului de criptare RSA nu are succes, așa cum s-a făcut în exemplul manualului de mai jos, puteți decripta textul fără prezența unei chei secrete, de ex. fără a cunoaște vreuna din cele trei cantități numite.

Pentru a face acest lucru, este suficient să aveți textul cifrat specificat de modulul de cifrare n, cheie publică e cifrează și efectuează doar trei pași dintr-un atac de citire fără cheie. După al patrulea pas de atac, se stabilește că textul sursă a fost obținut la pasul anterior și poate fi citit. Să arătăm cât de ușor este de făcut.

Mai întâi, să dăm exemplul în sine de la pp. 313-315 din manualul menționat.

Exemplu

Criptare mesaj text inițial scurt: RSA.
Destinatarul stabilește cifrul cu caracteristicile n=pq=527, Unde p=17, q=31Şi φ(n)=(р –1)(q – 1)=480. Ca cheie publică e se alege un număr care este coprim cu φ(n), e=7. Numerele întregi sunt găsite pentru acest număr folosind algoritmul euclidian extins uŞi v, satisfacand relatia e∙u+φ(n)∙v=1:

480=7∙68+4,
7=4∙1+3,
4=3∙1+1,
1=4–3∙1=4–(7–4∙1)∙1=4∙2–7∙1=(480–7∙68)∙2–7∙1=480∙2–7∙137,
v=2, u=–137
.

Din moment ce –137≡343(mod480), Asta d=343.

Examinare: 7∙343=2401≡1(mod480).

Mesajul text este prezentat ca o secvență de numere conținute în interval . Scrisori pentru asta R, SŞi O sunt codificate în cinci cifre numere binare. Numerele de serie ale acestor litere din alfabetul englez sunt folosite în reprezentarea lor binară:

R=18 10 =(10010) 2, S=19 10 =(10011) 2,
A=1 10 =(00001) 2.

Apoi RSA=(100101001100001) 2. Împărțirea textului în blocuri de lungime limitată produce o prezentare în două blocuri: RSA=(100101001), (100001)=(M1 =297, M2 =33).

Blocurile sunt criptate secvenţial text sursă M1 = 297, M2 =33:
y 1 =E k (M 1)=M 1 e ≡297 7 (mod527)=474.

Aici am profitat de faptul că:

297 7 =((297 2) 3)297≡(mod527)=(200 3 (mod527)297)(mod527)=474,
y 2 =E k (M 2)=M 2 e ≡33 7 (mod527)=407.

Textul cifrat, ca și cel original, se obține sub forma a două blocuri: y 1 =474; y 2 =407.

Decodare pare a fi o succesiune de acțiuni D k (y i)=(y i) d =(y i) 343 (mod 527), i=1,2.

Calcule de exponentiare d este mai convenabil să se efectueze reprezentând mai întâi exponentul ca sumă de puteri a numărului 2 , si anume: 343=256+64+16+4+2+1 .

Folosind această reprezentare exponentă d=343, obținem:

474 2 ≡174(mod527),
474 4 ≡237(mod527),
474 8 ≡307(mod527),
474 16 ≡443(mod527),
474 32 ≡205(mod527),
474 64 ≡392(mod527),
474 128 ≡307(mod527),
474 256 ≡443(mod527),

si in sfarsit 474 343 (mod527)=(443∙392∙443∙237∙174∙474) (mod527)=297.

Valoarea este calculată în mod similar 407 343 (mod527)=33.

Trecerea la reprezentarea literală a mesajului decriptat oferă: RSA.

După ce ați analizat exemplul, manualul discută robustețea sistemului RSA. Este subliniată nevoia de precauție în alegerea modulului de cifră RSA (numerele). n) pentru fiecare dintre corespondenții rețelei. Se indică faptul că este inadmisibil să se ignore cerințele pentru caracteristicile selectate ale sistemului de criptare. Printre aceste cerințe, din păcate, a căror încălcare este ilustrată de exemplul dat nu este indicată.

Atacul asupra cifrului RSA

Să ne uităm la un exemplu de atac asupra cifrului RSA. Să folosim exemplele de date date la paginile 313-315 in manual„Fundamentele criptografiei” de A.P. Alferov, A.Yu. Zubov, A.S. Kuzmin, A.V. Cheremushkin, Moscova. „Helios ARV”, 2001.

Eșecul (inadmisibilitatea) parametrilor de sistem selectați în acest exemplu este ușor de arătat prin calcule care implementează un atac la citirea fără cheie a textului sursă. Esența unui astfel de atac este următoarea. Este specificată cheia publică a cifrului RSA ( e=7, n=527) și text cifrat. În exemplu, textul cifrat este reprezentat în două blocuri
y=(y 1 =474, y 2 =407).

Fiecare bloc criptat este atacat individual, mai întâi atacăm y 1 =474, după ce îl decriptăm, atacăm un alt bloc y 2 =407.

În continuare, se formează o secvență de valori numerice prin criptare repetată, stocând rezultatele a doi pași succesivi ai algoritmului de atac și folosind o cheie publică. y eu, y 1 =y text cifrat disponibil.

În algoritmul de atac al textului cifrat, se determină următorul număr de pas: j, pentru care y i e j (mod n)=(y i e j–1 (mod n)) e (mod n)=y i, i>1. Din ultima relație vedem că atunci când este ridicat la o putere e valorile (y i e j–1 (mod n)) se obţine textul cifrat iniţial y i = y 1.

Dar asta înseamnă că textul simplu a fost criptat la acest pas. Prin calcule directe (sunt foarte puține) folosind un calculator pe ecran, găsim acea valoare j, la care ciclul de criptare se încheie cu valoarea y 1, de la care a început ciclul.

Atacul asupra primului bloc y 1 =474 text cifrat.
Pasul 1:  474 7 (mod527)=382;
Pasul 2:  382 7 (mod527)=423;
Pasul 3:  423 7 (mod527)=297;
Pasul 4:   la acest pas textul sursă deja găsit este criptat, dar trebuie făcut, deoarece atacatorul nu cunoaște textul sursă. Un semn de finalizare a atacului este coincidența valorii inițiale a textului cifrat ( 474 ) și rezultatul celui de-al 4-lea pas de criptare. Aceasta este exact coincidența care are loc.

297 7 (mod527)=474 a primit primul (primul) bloc de text cifrat. Atacul asupra primului bloc a fost finalizat cu succes y 1 =474. Rezultatul anterior al pasului 3 este egal cu textul simplu M1 = 297.

n=527 r=297 modulo n=527. Este scris așa y i =у 1 =297. Formarea reziduurilor de putere
(((297 7 (mod527)) 7 (mod527)) 7 (mod527)) 7 =297.

Atacul asupra celui de-al doilea bloc y 2 =407 text cifrat.
Pasul 1:  407 7 (mod527)=16;
Pasul 2:  16 7 (mod527)=101;
Pasul 3:  101 7 (mod527)=33;
Pasul 4:  33 7 (mod527)=407.

Din nou, în al treilea pas, a fost obținut un bloc de text sursă ( M2 =33), dar atacatorul nu știe acest lucru și efectuează următorul (al patrulea pas), al cărui rezultat este ( 407 ) se potrivește cu textul cifrat inițial y 2 =407.

În esență, în inelul de reziduuri modulo n=527 a fost implementat un ciclu scurt de procesare a deducerii r=33 modulo n=527. Este scris așa y i =y 2 =33.
Formarea reziduurilor de putere ((33 7 (mod527)) 7 (mod527)) 7 (mod527)=33.

Rezultatul atacului (text sursă M1 = 297, M2 =33) se obține prin criptarea textului cifrat dat de trei ori. Este greu de imaginat un succes mai mare pentru un atacator de text cifrat.

Continuând discuția despre alegerea modulului și a altor parametri de criptare, putem adăuga că modulul de criptare ( n=527) unele texte sursă nu pot fi deloc criptate. În acest caz, alegerea valorii cheii publice nu joacă un rol important. Există valori de text sursă care nu pot fi criptate deloc cu cifrul selectat cu modulul n=527.

Niciuna dintre cele date nu poate cripta textele sursă reprezentate prin numere
187 , 341 , 154 Şi 373 .

Exemplu (incapacitatea de a cripta valorile unor texte sursă)

Textele sursă să fie reprezentate de patru blocuri y=(y 1 =154, y 2 =187, y 3 =341, y 4 =373). Expozant e cheia publică a cifrului poate fi orice număr coprim cu funcția Euler φ(n)=φ(527)=480. Cu toate acestea, pentru cazul în cauză, cheia publică e poate fi setat arbitrar. Într-adevăr, să e=2, 4, 7, 9, 17, 111 Apoi:

154 2 (mod527)=1;
154 4 (mod527)=1;
154 7 (mod527)=154;
154 9 (mod527)=154;
154 17 (mod527)=154;
154 111 (mod527)=154;
187 2 (mod527)=187;
187 4 (mod527)=187;
187 7 (mod527)=187;
187 9 (mod527)=187;
187 17 (mod527)=187;
187 111 (mod527)=187;
341 2 (mod527)=341;
341 4 (mod527)=1;
341 7 (mod527)=341;
341 9 (mod527)=341;
341 17 (mod527)=341;
341 111 (mod527)=341;
373 2 (mod527)=1;
373 4 (mod527)=373;
373 7 (mod527)=373;
373 9 (mod527)=373;
373 17 (mod527)=373;
373 111 (mod527)=373.

Din exemplul luat în considerare rezultă o concluzie simplă. Într-adevăr, alegerea parametrilor pentru procesul de criptare trebuie abordată cu mare atenție și trebuie efectuată o analiză preliminară amănunțită a acestor parametri. Cum se face acest lucru este o problemă separată și nu este luată în considerare în scopul acestei lucrări.

În funcție de structura cheilor utilizate, metodele de criptare sunt împărțite în:

  • simetric: străinii pot cunoaște algoritmul de criptare, dar o mică parte este necunoscută informatii clasificate- o cheie care este aceeași pentru expeditorul și destinatarul mesajului; Exemple: DES, 3DES, AES, Blowfish, Twofish, GOST 28147-89
  • criptare asimetrică: străinii pot cunoaște algoritmul de criptare și, eventual, cheia publică, dar nu și cheia privată, cunoscută doar de destinatar. Sistemele criptografice cu cheie publică sunt în prezent utilizate pe scară largă în diverse protocoale de rețea, în special, în protocoalele TLS și predecesorul său SSL (subiacent HTTPS), precum și SSH, PGP, S/MIME etc. Standardul rus care utilizează criptarea asimetrică este .

Pe în acest moment criptarea cu cheie publică asimetrică RSA (spre Rivest, Shamir și Aldeman - creatorii algoritmului) este folosită de majoritatea produselor de pe piața de securitate a informațiilor.

Puterea sa criptografică se bazează pe dificultatea factorizării numerelor mari, și anume, pe dificultatea excepțională a sarcinii de determinare a unei chei secrete pe baza unei chei publice, deoarece aceasta va necesita rezolvarea problemei existenței divizorilor unui număr întreg. Cele mai sigure sisteme folosesc numere de 1024 de biți și mai mari.

Să ne uităm la algoritmul RSA din punct de vedere practic.

Mai întâi trebuie să generați cheile publice și private:

  • Să luăm două numere prime mari p și q.
  • Să definim n ca rezultat al înmulțirii p pe q (n= p*q).
  • Să alegem un număr aleatoriu, pe care îl vom numi d. Acest număr trebuie să fie relativ prim (nu să aibă divizor comun altul decât 1) cu rezultatul înmulțirii (p-1)*(q-1).
  • Să definim un număr e pentru care următoarea relație (e*d) mod ((p-1)*(q-1))=1 este adevărată.
  • Să numim cheii publice numerele e și n, iar cheii secrete numerele d și n.

Pentru a cripta datele folosind o cheie publică (e,n), aveți nevoie de următoarele:

  • împărțiți textul criptat în blocuri, fiecare dintre acestea putând fi reprezentat ca un număr M(i)=0,1,2..., n-1 (adică numai până la n-1).
  • criptează textul, considerat ca o succesiune de numere M(i) folosind formula C(i)=(M(I)^e)mod n.

Pentru a decripta aceste date folosind cheia secretă (d,n), trebuie efectuate următoarele calcule: M(i) = (C(i)^d) mod n. Ca urmare, se va obține un set de numere M(i), care reprezintă textul original.

Următorul exemplu demonstrează în mod clar algoritmul de criptare RSA:

Să criptăm și să decriptăm mesajul „CAB” folosind algoritmul RSA. Pentru simplitate, să luăm numere mici - acest lucru ne va scurta calculele.

  • Să alegem p=3 și q=11.
  • Să definim n= 3*11=33.
  • Să aflăm (p-1)*(q-1)=20. Prin urmare, d va fi egal cu, de exemplu, 3: (d=3).
  • Să alegem numărul e folosind următoarea formulă: (e*3) mod 20=1. Aceasta înseamnă că e va fi egal cu, de exemplu, 7: (e=7).
  • Să ne imaginăm mesajul criptat ca o secvență de numere în intervalul de la 0 la 32 (rețineți că se termină în n-1). Litera A =1, B=2, C=3.

Acum să criptăm mesajul folosind cheia publică (7.33)

C1 = (3^7) mod 33 = 2187 mod 33 = 9;
C2 = (1^7) mod 33 = 1 mod 33 = 1;
C3 = (2^7) mod 33 = 128 mod 33 = 29;

Acum să decriptăm datele folosind cheia privată (3.33).

M1=(9^3) mod 33 =729 mod 33 = 3(C);
M2=(1^3) mod 33 =1 mod 33 = 1(A);
M3=(29^3) mod 33 = 24389 mod 33 = 2(B);

Date decriptate!

Introducere 3

Partea principală 5

1Istoria creației 5

2 Descrierea algoritmului 5

2.1 Crearea cheilor 6

2.2 Criptare și decriptare 6

2.3 Folosiți exemplul 7

Concluzia 9

Lista surselor utilizate 10

Introducere

Criptografia este un sistem special pentru schimbarea scrisului obișnuit, folosit pentru a face textul ușor de înțeles doar pentru un număr limitat de oameni care cunosc acest sistem.

Criptografia este știința de a proteja informațiile folosind metode matematice.

Criptografia modernă include:

    criptosisteme simetrice;

    criptosisteme asimetrice;

    sisteme electronice de semnătură digitală (EDS);

    funcții hash;

    managementul cheilor;

    obținerea de informații ascunse;

    criptografia cuantică.

Criptare simetrică - algoritmii simetrici sunt cei în care aceeași cheie secretă (cunoscută doar de expeditor și destinatar) este utilizată pentru criptare și decriptare.

Algoritmi obișnuiți de criptare simetrică:

    AES (Advanced Encryption Standard) - standard american de criptare;

    GOST 28147-89 - standard intern de criptare a datelor;

    DES (Data Encryption Standard) - standard de criptare a datelor în SUA până la AES;

    3DES (Triple-DES, triple DES);

    IDEA (Algoritmul internațional de criptare a datelor);

    SEED - standard coreean de criptare a datelor;

    Camellia este un cifr certificat pentru utilizare în Japonia;

    XTEA este cel mai ușor algoritm de implementat.

Criptoalgoritmii asimetrici sunt proiectați în primul rând pentru a elimina principalul dezavantaj al criptosistemelor simetrice - complexitatea gestionării și distribuirii cheilor.

Baza tuturor algoritmilor criptografici asimetrici este complexitatea de calcul ridicată a recuperării textului simplu fără cunoștințe. cheie privată.

Exemple de algoritmi cripto asimetrici:

    Diffie-Hellmann;

    RSA - Rivest, Shamir, Adelman - se bazează pe complexitatea problemei factorizării numerelor mari într-un timp scurt;

    DSA – algoritm de semnătură digitală, standard american;

    GOST R 34.10 – 94, 2001, standardele Federației Ruse.

În acest rezumat, vom lua în considerare în detaliu algoritmul de criptare criptografică asimetrică - algoritmul RSA.

Partea principală

Algoritmul RSA (un acronim pentru Rivest, Shamir și Adleman) este un algoritm criptografic cu cheie publică care profită de complexitatea computațională a problemei factorizării numerelor întregi mari. Criptosistemul RSA a fost primul sistem potrivit atât pentru criptare, cât și pentru semnarea digitală.

    Istoria creației

Publicată în noiembrie 1976, lucrarea lui Whitfield Diffie și Martin Hellman „New Directions in Cryptography” a revoluționat înțelegerea sistemelor criptografice punând bazele criptografiei cu cheie publică. Algoritmul Diffie-Hellman dezvoltat ulterior a permis două părți să obțină o cheie secretă partajată folosind un canal de comunicare nesigur. Cu toate acestea, acest algoritm nu a rezolvat problema de autentificare. Fără instrumente suplimentare, utilizatorii nu ar putea fi siguri cu cine au generat cheia secretă partajată.

După ce au studiat acest articol, trei oameni de știință Ronald Linn Rivest, Adi Shamir și Leonard Adleman de la Massachusetts Institute of Technology (MIT) au început să caute o funcție matematică care să permită implementarea unui model al unui sistem criptografic cu cheie publică, formulat de Whitfield Diffie și Martin Hellman. . După ce am lucrat la peste 40 opțiuni posibile, au reușit să găsească un algoritm bazat pe diferența de cât de ușor este să găsești mari numere primeși cât de dificil este să factorizezi produsul a două numere prime mari, care mai târziu au devenit cunoscute sub numele de RSA. Sistemul a fost numit după primele litere ale numelor de familie ale creatorilor săi.

    Descrierea algoritmului

Primul pas în orice algoritm asimetric este crearea unei perechi de chei - publice și private - și distribuirea cheii publice „în toată lumea”.

      Crearea cheilor

Pentru algoritmul RSA, etapa de creare a cheii constă din următoarele operații:

Numărul se numește exponent deschis

      Criptare și decriptare

Să presupunem că expeditorul dorește să trimită un mesaj destinatarului.

Mesajele sunt numere întregi în intervalul de la 0 la , adică. . Figura 1 prezintă o diagramă a algoritmului RSA.

Figura 1 – Diagrama algoritmului RSA

Algoritmul expeditorului:

Algoritmul destinatarului:

Ecuațiile (1) și (2), pe care se bazează schema RSA, determină transformările reciproc inverse ale mulțimii.

      Exemplu de utilizare

Tabelul 1 prezintă un exemplu de utilizare a algoritmului RSA. Expeditorul a trimis un mesaj criptat „111111” iar destinatarul, folosind cheia sa privată, l-a decriptat.

Tabelul 1 – Execuția pas cu pas a algoritmului RSA

Descrierea operațiunii

Rezultatul operației

Generarea cheilor

Alege două numere prime

Calculați modulul

Calculați funcția Euler

Selectați exponent deschis

Calculați exponent secret

Criptare

Selectați textul de criptat

Calculați textul cifrat

Decodare

Calculați mesajul original

Concluzie

În acest rezumat, a fost discutat în detaliu algoritmul de criptare asimetrică RSA. A fost descrisă istoria creării sale, au fost descriși algoritmi pentru crearea cheilor, criptarea și decriptarea. De asemenea, este prezentat un exemplu de utilizare practică a algoritmului RSA.

Lista surselor utilizate

    Semenov Yu.A. protocoale de internet// M.: Prospekt, 2011. – 114 p.

    Belyaev A.V. Metode și mijloace de securitate a informațiilor // Filiala Neagră a Universității Tehnice de Stat din Sankt Petersburg, 2010. – 142 p.

    Venbo M. Criptografia modernă. Teorie și practică // M.: Williams, 2005. - 768 p.

    Schneier B. Criptografia aplicată. Protocoale, algoritmi, texte sursă // M.: Triumph, 2002. - 816 p.

    Algoritm RSA // Resursa de internet: http://ru.wikipedia.org/wiki/Rsa

La fiecare ciclu de criptare, criptosistemul RSA transformă un bloc binar de text simplu m cu dimensiunea lungimii (n), considerat ca un număr întreg, în conformitate cu formula: c = m e (mod n).

În acest caz n = pq , unde p și q sunt numere prime aleatoare de lățime mare care sunt distruse după formarea modulului și a cheilor. Cheia publică constă dintr-o pereche de numere e și n . Subcheia e este selectată ca suficientă număr mare din intervalul 1< e < φ(n), с условием: НОД(e, j(n)) = 1, где j(n) - наименьшее общее кратное чисел p–1 и q–1. În plus, rezolvând ecuația xe + yφ(n) = 1 în numere întregi x, y, presupunem d = x, adică. ed = 1(j(n)). În acest caz, pentru toți m este valabilă următoarea relație: m ed = m(n) , prin urmare, cunoașterea lui d permite descifrarea criptogramelor.

Pentru a garanta protecţie fiabilă informații, următoarele două cerințe sunt impuse sistemelor cu cheie publică.

1. Transformarea textului sursă trebuie să excludă restaurarea acestuia pe baza cheii publice.

2. Determinarea unei chei private pe baza unei chei publice trebuie să fie, de asemenea, imposibilă din punct de vedere computațional. În acest caz, este de dorit o limită inferioară exactă pentru complexitatea (numărul de operații) de rupere a cifrului.

Algoritmii de criptare cu chei publice sunt utilizați pe scară largă în sistemele informaționale moderne.

Să ne uităm la construcția criptosistemului RSA folosind un exemplu simplu.

1. Alegeți p = 3 și q = 11.

2. Definiți n = 3 ∙ 11 = 33.

3. Aflați j(n) = (p – 1)(q – 1) = 20.

5. Alegeți un număr d care satisface 7d = 1(mod 20).

Este ușor de observat că d = 3(mod 20).

Să ne imaginăm mesajul criptat ca o secvență de numere întregi folosind corespondența: A = 1, B = 2, C = 3, ..., Z = 26. Deoarece dimensiunea(n) = 6 , atunci criptosistemul nostru este capabil să cripteze literele alfabetului latin, considerate blocuri Să publicăm cheia publică (e, n) = (7, 33) și să invităm alți participanți la sistemul de comunicare secretă să cripteze mesajele trimise către noi. Să fie un astfel de mesaj CAB , care în codificarea aleasă de noi ia forma (3, 1, 2) Expeditorul trebuie să cripteze fiecare bloc și să trimită mesajul criptat la adresa noastră:

RSA(C) = RSA(3) = 3 7 = 2187 = 9(mod 33);
RSA(A) = RSA(1) = 1 7 = 1(mod 33);
RSA(B) = RSA(1) = 2 7 = 128 = 29(mod 33).

După ce a primit mesajul criptat (9, 1, 29), îl putem decripta pe baza cheii secrete (d, n) = (3, 33), ridicând fiecare bloc la puterea d = 3:

9 3 = 729 = 3(mod 33);
1 3 = 1(mod 33);
29 3 = 24389 = 2(mod 33).

Pentru exemplul nostru, este ușor să găsiți cheia secretă prin forță brută. În practică acest lucru este imposibil, pentru că Pentru utilizare practică, sunt recomandate în prezent următoarele valori ale mărimii (n): :


· 512–768 biți - pentru persoane fizice;

· 1024 biți - pentru informații comerciale;

· 2048 biți - pentru informații clasificate.

Un exemplu de implementare a algoritmului RSA este prezentat în Listările 18.1 și 18.2 (compilatoare - Delphi, FreePascal).

Lista 18.1. Un exemplu de implementare a algoritmului RSA în limbajul Pascal

program Rsa;
($APPTYPE CONSOLA)
($IFDEF FPC)
($MODE DELPHI)
($ENDIF)

folosește SysUtils, uBigNumber;

//Generator numere aleatorii

var t: matrice de octeți;
var pos: Integer;
var cbox: matrice de Byte =
(237, 240, 161, 1, 130, 141, 205, 98, 27, 169, 181, 202, 173, 47, 114, 224, 35, 183, 79, 82, 153, 220, 172, 22, 17, 11, 200, 131, 14, 154, 167, 91, 250, 31, 213, 112, 126, 241, 236, 155, 198, 96, 87, 143, 244, 151, 134, 38, 129, 233, 186, 101, 41, 94, 231, 115, 113, 199, 51, 145, 229, 37, 69, 180, 85, 33, 207, 163, 102, 187, 4, 89, 7, 44, 75, 88, 81, 120, 10, 232, 221, 168, 230, 158, 247, 211, 216, 156, 95, 64, 242, 215, 77, 165, 122, 5, 15, 119, 100, 43, 34, 48, 30, 39, 195, 222, 184, 92, 78, 135, 103, 166, 147, 32, 60, 185, 26, 251, 214, 90, 139, 45, 73, 150, 97, 116, 136, 68, 219, 248, 191, 192, 16, 8, 243, 50, 132, 105, 62, 201, 204, 65, 0, 99, 182, 121, 194, 108, 160, 170, 56, 226, 206, 254, 117, 178, 9, 197, 234, 127, 58, 171, 40, 29, 177, 142, 3, 228, 188, 162, 212, 157, 49, 175, 174, 140, 70, 106, 123, 66, 196, 246, 179, 42, 218, 71, 217, 227, 18, 164, 24, 67, 159, 25, 111, 255, 193, 245, 2, 238, 133, 21, 137, 152, 109, 148, 63, 124, 203, 104, 54, 55, 223, 80, 107, 210, 225, 149, 252, 76, 12, 189, 93, 46, 23, 13, 36, 209, 61, 249, 110, 144, 86, 52, 253, 72, 28, 53, 57, 125, 59, 235, 84, 128, 208, 146, 20, 74, 6, 239, 190, 83, 19, 138, 118, 176);

procedura InicMyRandom;
var i: întreg;
var s: șir;
ÎNCEPE
WriteLn("Introduceți un text pentru a inițializa generatorul
numere aleatorii (până la 256 de caractere):");
ReadLn(s);
i:= 1;
în timp ce (i<=255) and (i<=Length(s)) do