Sunteți pe pagina 1din 11

IMPLEMENTAREA ALGORITMULUI RSA FOLOSIND STRUCTURI

HARDWARE RECONFIGURABILE
RSA ALGORITHM IMPLEMENTATION USING FPGA
NICOLCIOIU ANDREEA-TEODORA
Doctorand Institutul de Economie Mondial
Facultatea de Sisteme Electronice i Informatice Militare, Academia Tehnic Militar
E-mail: anicolcioiu@mta.ro

Rezumat: Comunicaiile n aceast societate informatizat se bazeaz din ce n ce mai mult pe


Internet. O problem major a reelelor de calculatoare i a comunicaiilor prin Internet o reprezint
securitatea informaiilor. Algoritmii criptografici cu chei publice sunt utilizai pentru a asigura
confidenialitatea, autenticitatea i non-repudierea comunicaiilor n mediul electronic. Aceast
lucrare analizeaz algoritmii matematici utilizai n implementarea unei arhitecturi a algoritmului
criptografic cu chei publice RSA, folosind structuri hardware reconfigurabile.
Cuvinte cheie - algoritm RSA, criptografie, criptografie cu chei publice, FPGA

Abstract: Communications in the modern society rely more and more on the Internet. A major
problem in computer networks and communications via the Internet is the information security.
Public-key cryptography algorithms are used to ensure confidentiality, authenticity and nonrepudiation of data through the Internet. This paper analyzes the mathematical algorithms used in
implementing an RSA algorithm architecture using FPGA devices.
Key words - cryptography, FPGA, public-key cryptography, RSA algorithm

24

1. Introducere
Progresele enorme n tehnologia reelelor au dus la schimbri majore asupra modului n care
se comunic i se fac afaceri pe Internet. Cu toate acestea, pentru transmiterea datelor confideniale,
avantajele oferite de Internet sunt diminuate de principalul dezavantaj al reelelor publice: riscurile
de securitate. Creterea semnificativ a traficului de date confideniale pe Internet a fcut ca aceast
problem de securitate s devin o problem fundamental. Prin urmare, aplicaiile precum serviciile
bancare electronice, comerul electronic, reelele virtuale private (VPN-uri) necesit un mod eficient
i rentabil de a aborda ameninrile de securitate ale reelelor publice.
Atributele securitii informaiilor sunt disponibilitatea, confidenialitatea, integritatea
informaiei, autenticitatea i non-repudierea. Disponibilitatea asigur utilizatorilor legali informaia
atunci cnd este necesar. Funcia de confidenialitate blocheaz accesul utilizatorilor nelegitimi la
informaie, pstrnd informaiile private, private. Integritatea informaiei este funcia de securitate
care protejeaz informaia mpotriva modificrilor neautorizate sau accidentale. Autenticitatea
permite asocierea ntre informaie i sursa legal de producere a ei. Non-repudierea este funcia de
securitate a unui sistem informaional care asociaz informaiei dovezi c aceasta a fost trimis de
expeditor destinatarului legal i c a fost recepionat de acesta fr posibilitatea de a contesta aceste
aspecte.
Criptografia este componenta fundamental utilizat pentru asigurarea securitii traficului pe
Internet. Algoritmii criptografici asigur atributele de securitate ale informaiei enumerate anterior.
Sistemele criptografice cu chei private (simetrice) folosesc aceeai cheie att n procesul de criptare
ct i n procesul de decriptare. Cheia utilizat n sistemele criptografice cu chei private trebuie s
rmn secret i s fie distribuit entitilor prin canale sigure. Exemple de algoritmi cu chei private
folosii la scar larg sunt: AES (Advanced Encryption Standard), DES (Data Encryption Standard),
3DES (Triple DES), Blowfish, RC4, etc. Sistemele criptografice cu chei publice (simetrice) utilizeaz
o pereche de chei: o cheie folosit pentru criptarea datelor i o cheie folosit pentru decriptarea
datelor. Sunt de asemenea utilizate n semnturile digitale. Exemple de sisteme criptografice cu chei
publice sunt: RSA, ElGamal, Diffie-Hellman.
Algoritmii de criptare impun cerine de putere de procesare foarte mare care pot genera
blocaje n reelele de mare vitez. Implementarea unui algoritm criptografic trebuie s ating putere
mare de procesare pentru a utiliza pe deplin banda de reea disponibil. Pentru a urmri schimbrile
rapide ale algoritmilor i ale standardelor, o implementare criptografic trebuie s suporte diferii
algoritmi i trebuie s aib capacitate de actualizare. Soluia final pentru aceast problem ar fi un
procesor care poate oferi flexibilitatea implementrilor software i performana implementrilor
hardware.
Soluia este reprezentat de circuitele FPGA care pot fi reconfigurate i ofer performane
ridicate la un cost rezonabil. Aceast lucrare propune o implementare a algoritmului criptografic cu
chei publice RSA folosind structuri hardware reconfigurabile.

25

2. Algoritmul RSA
Algoritmul RSA este denumit dup Ron Rivest, Adi Shamir si Leonard Adleman, care l-au
inventat n anul 1977. Algoritmul RSA este cel mai utilizat algoritm cu chei publice. Poate fi folosit
pentru a cripta mesaje fr a fi necesar un schimb de chei separat n prealabil.
Acest algoritm poate fi folosit att pentru criptare cu chei publice ct i pentru semnturi digitale.
Securitatea acestuia se bazeaz pe dificultatea factorizrii numerelor prime foarte mari. Un emitor
A poate trimite un mesaj criptat unui receptor B fr a face schimb n prealabil de chei secrete.
Emitorul A utilizeaz cheia public a lui B pentru a cripta mesajul i B l decripteaz folosind cheia
sa privat, cunoscut doar de el. Algoritmul RSA poate fi folosit i pentru a semna un mesaj. Astfel,
A poate semna un mesaj folosind cheia sa privat i B poate s verifice semntura folosind cheia
public a lui A.
Algoritmul RSA cuprinde trei pai: generarea cheii, operaia de criptare i operaia de decriptare.
2.1. Algoritmul de generare a cheii
1. Se aleg aleatoriu dou numere prime mari, p i q, care au acelai ordin de mrime. Pentru
a genera numerele prime p i q, se genereaz aleatoriu un numr avnd lungimea de k/2 bii, unde k
reprezint lungimea pe bii a modulului n; se seteaz la valoarea 1 bitul cel mai puin semnificativ (se
asigur ca numrul s fie impar) i se seteaz la valoarea 1 primii doi cei mai semnificativi bii ( se
asigur c bitul cel mai semnificativ al lui n este setat); se verific dac numrul este prim ( se
utilizeaz testul Rabin-Miller); dac nu este prim, se incrementeaz numrul cu doi i se verific din
nou dac este prim.
Astfel, s-a gsit numrul p.
2. Se repet acelai procedeu pentru numrul q pornind de la un numr ntreg generat aleatoriu
cu o lungime egal cu k-k/2. Dac p<q, se vor inter-schimba cele dou valori (acest pas se efectueaz
doar dac se va folosi forma CRT, Chinese Remainder Theorem). Dac p=q (probabilitate foarte
sczut), se va verifica generatorul de numere aleatoare. Alternativ, n loc s se incrementeze cu 2,
se va genera un alt numr aleator de fiecare dat. n (NIST 2012) i (NIST 2005) sunt stipulate reguli
stricte pentru generarea unor numere prime tari i alte restricii pentru a minimiza posibilitatea ca
atacuri cunoscute s fie folosite asupra algoritmului.
3. Se calculeaz n=p*q. Produsul n calculat va reprezenta modulul n care se vor efectua
operaiile de criptare i decriptare.
4. Se calculeaz (n) = (p)(q) = (p 1)(q 1) = n - (p + q -1).
5. Se va alege, aleatoriu cheia de cifrare e, 1 < e < (n) , astfel nct e i (n) s fie relativ
prime. n practic, valorile cele mai utilizate ale parametrului de cifrare e sunt 3, 5, 17, 257 i 65537
(216+1). Aceste valori sunt alese deoarece sunt prime i mresc viteza de execuie a operaiei de
exponeniere modular, avnd doar doi bii cu valoarea 1.
6. Se calculeaz exponentul secret d, 1<d< (n), astfel nct e*d=1 mod (n). Pentru a calcula
valoarea parametrului d, se utilizeaz Algoritmul Extins al lui Euclid, calculndu-se d=e-1 mod (n),
scris i sub forma d=(1/e) mod (n). Aceast operaie este denumit inversie modular.
Perechea (e, n ) reprezint cheia public a algoritmului de criptare. Cheia privat este
reprezentat de parametrii (d,p,q). Valorile parametrilor d, p, q i (n) trebuie pstrate secrete.

n este denumit modul;


26

e este denumit exponent public sau exponent de criptare sau doar exponent;
d este denumit exponent secret sau exponent de decriptare.

2.2. Operaia de criptare a algoritmului RSA


1. Se obine cheia public (n,e).
2. Se reprezint mesajul n clar ca un numr ntreg pozitiv m, 1<m<n
Cnd se reprezint octeii mesajului n clar ca un numr ntreg m, este important s se adauge
caractere de padding pentru ca dimensiunea numrului ntreg m s fie mare i mai puin vulnerabil
la anumite tipuri de atacuri. Dac m=0 sau 1 sau n-1 securitatea este inexistent deoarece textul cifrat
va avea aceeai valoare. PKCS#1 ofer mai multe detalii despre reprezentarea octeilor mesajului n
clar sub forma mesajului numr ntreg m. Este important ca m s fie mai mic dect n, altfel algoritmul
va eua.
3. Se calculeaz textul cifrat c = me mod n.
4. Se transmite textul cifrat.

2.3. Operaia de decriptare a algoritmului RSA


1. Se utilizeaz cheia privat (d, n) pentru a calcula m = cd mod n.
2. Se extrage mesajul n clar din mesajul reprezentativ m.

2.4. Operaia de semnare digital cu algoritmului RSA


1. Se creeaz un rezumat (message digest) al informaiei care va fi trimis.
2. Se reprezint acest rezumat ca un numr ntreg m cu valoarea ntre 1 i n-1. Operaiile de
decriptare i de semnare sunt identice din punct de vedere matematic, amndou utiliznd cheia
privat. Similar, operaiile de criptare i de verificare a semnturii utilizeaz aceleai operaii
matematice cu cheia public. Cu toate acestea, exist diferene importante n implementare:
semntura este derivat dintr-un mesaj rezumat al informaiei originale. Cel care verific semntura
va trebui s urmeze exact acelai proces pentru a deriva mesajul rezumat, utiliznd acelai set de date.
Metodele recomandate pentru derivarea numerelor ntregi reprezentative sunt diferite pentru criptare
i semnare (n cazul criptrii se folosete un padding random iar n cazul semnturii electronice se
folosete acelai padding de fiecare dat)
3. Se folosete cheia privat (n,d) pentru a calcula semntura s=md mod n.
4. Se transmite semntura destinatarului.

2.5. Operaia de verificare a semnturii digitale cu algoritmului RSA


1. Se folosete cheia public a expeditorului (n,e) pentru a calcula valoarea ntreag v= se
mod n.
2. Se extrage rezumatul mesajului din numrul ntreg calculat.
3. n mod independent se calculeaz rezumatul informaiei care a fost semnat.
4. Dac cele dou valori rezumate sunt identice, atunci semntura este valid.

27

3. Algoritmi matematici utilizai n efectuarea operaiilor aritmetice specifice RSA


Exponenierea modular este un tip de exponeniere care se calculeaz modulo un numr
ntreg n. Este o operaie care se utilizeaz n criptografia cu chei publice. n algoritmul RSA este
utilizat n operaiile de criptare, decriptare, semntur electronic i verificare a semnturii
electronice. Exemplu operaie de calcul exponenial modular: a=be mod n. O modalitate de calcul
const n efectuarea de e-1 multiplicri modulare, un proces foarte ineficient pentru un exponent e
mare, deoarece algoritmul devine de complexitate exponenial. Exist algoritmi de exponeniere
rapid precum algoritmul care face exponenierea prin prin ridicri la ptrat i nmuliri modulare.

3.1. Algoritm de exponeniere prin ridicri la ptrat i nmuliri modulare


Pentru calcularea Z

, exponentul

este convertit n format binar. Astfel

Algoritm 1
Z=X
1. pentru i=n-2 pn la 0 execut
2. Z=Z2 mod M
3. dac ei=1 atunci Z=Z*X mod M
4. sfrit instruciune repetitiv

Acest algoritm se execut n 2(n-1) operaii n cel mai ru caz i n 1.5(n-1) operaii n medie. Pentru
a calcula ridicarea la ptrat i nmulirea n paralel, se poate utiliza versiunea urmtoare a algoritmului
(Montgomery, 1985).
Algoritm 2
1.
2.
3.
4.

P0=1, Z0=X
pentru i=0 pn la n-1 execut
Zi+1=Zi2 mod M
dac ei=1 atunci Pi+1=Pi*Zi mod M
altfel Pi+1=Pi
5. sfrit instruciune repetitiv

Acest algoritm se execut n 2*n operaii n cel mai ru caz i n 1.5*n operaii n medie. Viteza
acestuia depinde de viteza execuiei operaiei de nmulire modular de la punctul 4.

3.2. Algoritmul Montgomery pentru nmulire modular


Exponenierea modular, conform algoritmilor prezentai anterior, se reduce la o serie de nmuliri
modulare i ridicri la ptrat. Algoritmul pentru nmulire modular a fost propus de P. L.
Montgomery n anul 1985 (Montgomery, 1985). Este o metod care calculeaz operaia de nmulire
a dou numere ntregi modulo M, evitnd mprirea la M.
Ideea din spatele algoritmului este transformarea celor dou numere ntregi n reziduuri ale lui m
i calcularea nmulirii cu aceste numere. n final se vor transforma n valoarea corect.
Pentru a calcula nmulirea conform algoritmului Montgomery, se alege o valoare rdcin R>M,
cu cmmdc(M,R)=1. mprirea la aceast valoare R trebuie s nu consume multe resurse, astfel,
28

alegerea optima este R=2m dac presupunem c M=


. Reziduul lui m al numrului x este xR
mod M. Se calculeaz de asemenea M=-M-1 mod R. Se definete o funcie care RED_M(T) care
calculeaz TR-1 mod M: Aceast funcie calculeaz reprezentarea corect a lui T, T fiind un reziduu.
Algoritm 3
RED_M(T) calculeaz o reducere Montgomery a lui T, T<RM, R=2m, M=
1. U=TM mod R
2. t=(T+UM)/R
3. dac tM returneaz t-M
altfel returneaz t
Rezultatul funciei RED_M (T) este t=TR-1 mod M.

, cmmdc(M,R)=1.

Pentru a nmuli dou numere ntregi a i b n domeniul transformat unde sunt reprezentate ca (aR
mod M) i (bR mod M), produsul lor este transmis ca parametru funciei RED_M(T) :
RED_M((aR mod M)*(bR mod M))=abR2R-1=abR mod M

Pentru un calcul exponenial modular se repet acest pas de mai multe ori, conform algoritmului
de calcul exponenial modular prin ridicri la ptrat i nmulire prezentat anterior.
Pasul iniial de transformare necesit reducii modulare consumatoare de resurse. Pentru a evita
operaia de mprire, se calculeaz iniial R2 mod M folosind operaia de mprire. Acest pas trebuie
efectuat o singur dat pentru un sistem de criptare. Pentru a calcula valorile numerelor ntregi a i b
n domeniul transformat se calculeaz RED_M(aR2 mod M) i RED_M(bR2 mod M)pentru a obine aR
mod M i bR mod M.
Algoritmul urmtor este o implementare hardware a algoritmului 3. Pentru a executa pasul 2 sunt
necesare un multiplicator pe m x m bii i un sumator pe 2m bii. Rezultatul intermediar poate avea
2m bii. n loc de a calcula valoarea U direct, se poate calcula la un moment cte o cifr a reprezentrii
n rdcina r. Trebuie ales un numr ntreg r ca rdcin astfel nct cmmdc(M,r)=1. mprirea la r
nu trebuie s consume multe resurse, astfel, o alegere optim ar fi r=2k. O mbuntire a algoritmului
este includerea unui multiplicator A x B n algoritm.

Algoritm 4 nmulirea modular Montgomery pentru calculul AxB mod M, unde M=


;

B=

A=

A,B<M; M<R=2 ; M=-M mod 2 ; cmmdc(2k,M)=1


km

-1

29

1. S0= 0
2. pentru i=0 pn la m-1 execut
3. qi=(((Si+aiB) mod 2k) M) mod 2k
4. Si+1=(Si + qiM+ aiB)/2k
5. sfrit instruciune repetitiv
6. dac SmM returneaz Sm-M
altfel returneaz Sm

Rezultatul returnat de acest algoritm este Sm=ABR-1 mod M. Considernd rdcina r=2k, sunt
necesare cel puin dou nmuliri pe k x k bii i o adunare pe k bii pentru a executa pasul 3. Pentru
pasul 4 sunt necesare dou nmuliri pe k x m bii i dou operaii de adunare pe m+k bii. Lungimea
maxim pe bii a lui S este redus la m+k+2 bii, comparat cu lungimea de 2m bii a algoritmului
prezentat anterior.
Algoritmul Montgomery pentru nmulire cu rdcina 2
Acest algoritm este o simplificare a algoritmilor anteriori pentru r=2. Pentru rdcina r=2,
operaiile de la pasul 3 al algoritmului 4 sunt executate modulo 2. Modulul M trebuie s fie impar,
avnd n vedere condiia cmmdc(M, 2k)=1. Deoarece M=-M-1 mod 2, rezult c M=1. nmulirea cu
M mod 2 din pasul 3 poate fi omis.
Algoritm 5 nmulirea modular Montgomery ( cu rdcina r=2) pentru calculul AxB mod M, unde

M=

B=

A=

;
m

A,B<M; M<R=2 ; cmmdc(2,M)=1


1. S0= 0
2. pentru i=0 pn la m-1 execut
3. qi=(Si+aiB) mod 2
4. Si+1=(Si + qiM+ aiB)/2
5. sfrit instruciune rpetitiv
30

6. dac SmM returneaz Sm-M


altfel returneaz Sm

4.

Implementarea algoritmului RSA folosind structuri hardware reconfigurabile

Un circuit FPGA (Field Programmable Gate Array) este un circuit integrat care aparine unei
familii de dispozitive programabile numite PLD Programmable Logic Devices. Introduse in 1985
de Xilinx, acestea au cunoscut un succes deosebit att la nivel comercial, cat si la nivel academic,
prin existena a numeroase studii, cri si conferine dedicate in totalitate acestor arhitecturi. Cei mai
populari productori de circuite FPGA sunt Xilinx i Altera. Aceti doi productori mpart mai mult
de 70% din cota de pia a circuitelor FPGA.
Un circuit FPGA este alctuit dintr-un numr mare de celule logice de baz numite blocuri
logice configurabile (CLB- Configurable Logic Blocks). Aceste celule logice sunt distribuite pe toat
suprafaa cipului. Fiecare celul este nconjurat de interconexiuni programabile, ansamblul acestor
interconexiuni poart numele de matrice de conexiuni programabile. ntreg ansamblul de celule i
interconexiuni se afl ntr-un inel format de blocurile de intrare / ieire (IOB Input/Output Blocks).
Blocurile CLB furnizeaz elementele funcionale i realizeaz structura logic proiectat. Blocurile
IOB furnizeaz interfaa ntre semnalele interne i exteriorul circuitului (legtura realizat fizic prin
intermediul pinilor).
FPGA-urile sunt utilizate pentru calcul reconfigurabil atunci cnd obiectivul principal este
obinerea unei performane ridicate la un cost rezonabil prin implementare hardware a algoritmilor.
Principalul avantaj al FPGA este reconfigurabilitatea lor, putnd fi utilizate pentru diferite scopuri n
diferite stadii ale procesului de calcul i pot fi, cel puin parial, reprogramate la run-time.
n afar de criptografie, aplicaii ale circuitelor FPGA se regsesc n domenii precum
procesarea de semnale digitale, sisteme n timp real, realizarea de prototipuri rapide pentru circuite
ASIC, procesoare de reea, grafic pe calculator, robotic, aplicaii embedded,etc. n general, FPGAurile tind s fie o alegere excelent atunci cnd se dorete implementarea unor algoritmi care pot
beneficia de paralelismul mare oferit de arhitectura FPGA.
Utilizarea FPGA pentru aplicaii criptografice este extrem de atractiv pentru o varietate de
motive, dar, n acelai timp, exist multe aspecte deschise legate de securitatea general a circuitelor
FPGA. Alegerea platformei de implementare a unui sistem digital este determinat de mai multe
criterii i depinde n mare msur de zona de aplicare. n aplicaii criptografice exist multe criterii
care sunt unice pentru contextul de securitate n care sunt utilizate. n plus fa de aspectele legate de
algoritm, de viteza sistemului i de costuri - care sunt prezente n cele mai multe alte domenii de
aplicare se adaug cele cripto-specific: securitatea fizic (de exemplu, mpotriva recuperrii cheilor
i modificrii algoritmului), flexibilitatea (n ceea ce privete parametrii algoritmului, cheile, chiar
algoritmul n sine), consumul de energie (utilizarea absolut i prevenirea atacurilor prin analiz de
putere) i alte scurgeri side chanel.
Avantajele implementrilor software includ utilizarea relativ simpl a mediilor de dezvoltare,
posibilitatea de mbuntire rapid a implementrii, portabilitatea, costurile de dezvoltare reduse,
31

preurile unitare mici i flexibilitatea. Pe de alt parte, o implementare software ofer o vitez
moderat, consum mare de putere comparativ cu hardware-ul personalizat, securitatea fizic limitat,
n special n ceea ce privete depozitarea cheilor. Implementrile hardware asigur un pre mai redus
pe unitate, ating viteze mari i pot avea disipri reduse de energie. n plus, implementrile hardware
ale algoritmilor criptografici sunt mai sigure deoarece acestea nu pot fi la fel de uor de citit sau
modificat de un atacator extern ca implementrile software.
Fig. 1 Capsula modulului criptografic
Mesaj [1023 downto 0]

Output [1023 downto 0]

Exponent [1023 downto 0]

Finish

Modul [1023 downto 0]


Reset
Start
CLK

Sursa: Prelucrarea autorului

Folosind noiunile teoretice i algoritmii descrii n capitolele anterioare, s-a realizat


implementarea folosind limbajul VHDL (Verilog Hardware Description Language) a unui modul de
criptare i decriptare a unui mesaj folosind algoritmul RSA. S-au studiat implementri anterioare
(Perovic, 2012, Wang1997, Zutter, 2009) care prezint arhitecturi ale algoritmului RSA care doresc
utilizarea eficient a structurilor reconfigurabile (Iana, 2011), utilizarea unui algoritm eficientizat
pentru exponeniere modular (Khalil Hani, 2000) sau implementarea unei arhitecturi seriale a
algoritmului RSA(Mazzeo, 2003).
Acest modul are ca intrri exponentul cu lungimea de 1024 de bii, modulul cu lungimea de
1024 de bii i mesajul cu lungimea de 1024 de bii. Modulul returneaz la ieire mesajul criptat sau
decriptat (Fig. 1).
Operaia exponenial modular: a=be mod n necesar att n procesul de criptare ct i n
procesul de decriptare al algoritmului RSA este calculat folosind algoritmul de exponeniere prin
ridicri la ptrat i nmuliri modulare (Algoritmul 1 prezentat n capitolul anterior).

32

Fig. 2 Schema bloc a implementrii algoritmului RSA


X

Z=XE mod M

Algoritm ridicare la ptrat i


nmulire pentru calcul
exponenial modular
A

R1=A1+B1
Sumator

A1
B1
R1

R=AxB mod M
Algoritmul Montgomery
pentru nmulire
modular

A2
B2
R2

R2=A2*B2
Multiplicator

Sursa: Prelucrarea autorului

Pentru calculul operaiilor de nmulire modular s-a implementat algoritmul Montgomery


prezentat n capitolul anterior (Algoritmul 4). Au fost implementate de asemenea circuite
multiplicatoare i sumatoare.

5. Concluzii

rile dezvoltate dar i rile n curs de dezvoltare profit de avantajele i oportunitile oferite
n economie de tehnologia informaiilor. Lund n considerare impactul tehnologiei informaiilor
asupra economiei exist cerine permanente de a asigura n mod eficient protecia informaiilor i a
proceselor de comunicaie mpotriva riscurilor ameninrilor de securitate. Nevoia de servicii
criptografice este din ce n ce mai ridicat, criptografia fiind componenta fundamental care asigur
securitatea informaiilor n mediul virtual.
Aceast lucrare este un studiu al implementrii algoritmului criptografic RSA folosind
structuri hardware reconfigurabile. S-a implementat o arhitectur eficient a acestui algoritm
utiliznd n modelul propus algoritmi care eficientizeaz operaiile matematice costisitoare din
procesele de criptare i decriptare precum exponenierea modular i nmulirea modular. S-a utilizat
de asemenea o platform FPGA care ofer flexibilitatea implementrilor software i performana
implementrilor hardware.
n prima parte s-a prezentat algoritmul RSA i paii care trebuie urmai pentru generarea celor
dou perechi de chei, operaia de criptare, operaia de decriptare, operaia de semnare digital i
operaia de verificare a semnturii digitale.
Sunt descrii algoritmi care eficientizeaz calculul operaiilor executate n criptarea i
decriptarea algoritmului RSA. Astfel, pentru exponenierea modular este prezentat algoritmul de
ridicare la ptrat i nmulire. Pentru calculul operaiilor de nmulire modular, sunt prezentate
variante ale algoritmului Montgomery.
33

Aceti algoritmi au fost implementai n limbajul VHDL ntr-un modul criptografic care
cripteaz i decripteaz mesaje folosind algoritmul RSA.
Un obiectiv al cercetrilor viitoare l reprezint implementarea operaiilor de semnare digital
i verificare a semnturii digitale. Pentru generarea celor dou perechi de chei ale algoritmului RSA
se vor studia i implementa algoritmi pentru generarea unor numere aleatoare i pentru verificarea
numerelor prime.
Dezvoltarea unor aplicaii optimizate ale algoritmului RSA presupune studierea i
aprofundarea algoritmilor care eficientizeaz operaiile matematice utilizate n criptare sau decriptare.
Bibliografie
1. Iana, G.V. (2011) - RSA encryption algorithm implemented on FPGA, International Conference on
Applied Electronics (AE), pp. 1 - 4
2. Khalil Hani, M. (2000) - FPGA implementation of RSA public-key cryptographic coprocessor,
TENCON 2000. Proceedings, vol. 3, pp. 6 11
3. Mazzeo, A. (2003) - FPGA-based implementation of a serial RSA processor, Design, Automation and
Test in Europe Conference and Exhibition, pp. 582 587
4. Montgomery, P.L. (1985) - Modular multiplication without trial division. Mathematics of
Computation, vol. 44, No 170, pp. 519521
5. NIST (2005) - Recommended Random Number Generator Based on ANSI X9.31 Appendix A.2.4
6. NIST (2012) - Special Publication 800-90A Recommendation for Random Number Generation Using
Deterministic Random Bit Generators
7. Perovic, N.S. (2012) - FPGA implementation of RSA cryptoalgorithm using shift and carry algorithm,
20thTelecommunications Forum (TELFOR), pp. 1040 - 1043
8. Wang, P.A. (1997) - New VLSI architectures of RSA public key cryptosystems, Proceedings of 1997
IEEE International Symposium on Circuits and Systems, vol. 3, pp 20402043
9. Zutter, J. (2009) - Acceleration of RSA Cryptographic Operations Using FPGA Technology, 20th
International Workshop on Database and Expert Systems Application, pp. 20 - 25

Acknowledgements
Aceast lucrare a fost realizat cu sprijinul finanrii obinute n cadrul proiectului de studii
doctorale i postdoctorale: Studii doctorale i postdoctorale Orizont 2020: promovarea
interesului naional prin excelen, competitivitate i responsabilitate n cercetarea tiinific
fundamental i aplicat romneasc Contract POSDRU/159/1.5/S/140106. Proiectul este
cofinanat din Fondul Social European prin Programul Operaional Sectorial Dezvoltarea
Resurselor Umane 2007-2013. Investete n Oameni!

34