Capitolul 5 – Criptografia modernă
5. Criptografia modernă 5.1 Algoritmi simetrici de tip bloc
Algoritmi Algoritmiii de tip bloc criptează mesajul în blocuri de 64 sau 128 de bii! "e aplică o funcie matematică între un bloc de bii ai mesajului în clar #i c$eie %care poate &aria ca mărime'( rezult)nd acela#i număr de bii pentru mesajul criptat! *uncia de criptare este realizată astfel înc)t să îndeplinească următoarele cerine+ , #tiind un bloc de bii ai te-tului în clar #i c$eia de criptare( sistemul să poată genera rapid un bloc al te-tului criptat. , #tiind un bloc de bii ai te-tului criptat #i c$eia de criptare/decriptare( sistemul să poată genera rapid un bloc al te-tului în clar. , #tiind blocurile te-tului în clar #i ale te-tului criptat( sistemului să,i fie dificil să genereze c$eia! Acest tip de algoritmi este foarte folosit în criptografia modernă. de aceea în acest capitol &om prezenta cîi&a algoritmi care 0au făcut carieră( după prezentarea modurilor criptografice care stau la baza funcionării algoritmilor de tip bloc!
5.1.6 Algoritmul DES
Algoritmul 3" %ata 3ncrption "tandard' a fost dez&oltat pentru gu&ernul "tatelor nite #i pentru folosină publică! 3l a fost dez&oltat plec)nd de la algoritmul 0ucifer conceput în aboratoare aboratoarele le 79! :n mai 1;<=( re&ista re&ista *ederal >egister a sintetizat sintetizat principiile principiile care trebuie să stea la baza proiectării unui algoritm criptografic standard+ , algori algoritmu tmull trebui trebuiee să asigu asigure re un înal înaltt ni&el ni&el de secu securit ritate ate.. , algoritmul algoritmul trebuie trebuie să fie complet complet specif specificat icat #i simplu simplu de îneles. îneles. , securi securitat tatea ea algorit algoritmul mului ui trebui trebuiee să fie asigur asigurată ată de c$eie c$eie #i nu trebuie trebuie să depind depindăă de păstrarea secretă a algoritmului. , algori algoritmu tmull trebuie trebuie să fie fie disponi disponibil bil tutur tuturor or utili utilizat zatori orilor lor.. , algori algoritmu tmull trebui trebuiee să fie adapt adaptabi abill pentru pentru di&ers di&ersee aplica aplicaii. ii. <8
Capitolul 5 – Criptografia modernă , algoritmul algoritmul trebuie trebuie să fie implementa implementabil bil pe pe dispozi dispoziti&el ti&elee electro electronice. nice. , algori algoritmu tmull trebui trebuiee să fie fie efic eficien ientt în utiliz utilizare are.. , algor algorit itmu mull treb trebui uiee să poat poatăă fi &al &alid idat at.. , algor algorit itmu mull treb trebui uiee să fie fie e-po e-port rtab abil il!! 3" 3" a fost fost ofic oficia iall ado adopt ptat at ca stan standa dard rd fede federa rall în 2= noie noiemb mbri riee 1;< 1;<6( 6( iar iar în 1;<< 1;<< specificaiile sale au fost făcute publice! Privire generală asupra algoritmului
Algori Algoritmu tmull 3" este este o combin combinai aiee comple comple-ă -ă folosi folosind nd două blocur blocurii fundam fundament entale ale în criptografie+ substituia #i permutarea %transpoziia'! Acest cifru cifru bloc acceptă un bloc de 64 de bii la intrare #i generează un bloc cifrat de 64 de bii! 3" este un algoritm simetric! Acela#i algoritm #i aceea#i c$eie sunt folosii at)t la criptare c)t #i la decriptare! Algoritmul este constituit din 16 cicluri repetate ale blocurilor fundamentale! ?e-tul iniial este descompus în blocuri de 64 de bii! C$eia este de 64 bii din care doar 56 sunt efecti&i( ceilali fiind bii de paritate! *olosirea substituiei pro&oacă confuzie prin sistematica substituire a unor bii cu alii! ?ranspoziiile ?ranspoziiile pro&oacă difuzie prin re,ordonarea biilor! Algoritmul folose#te numai operaii clasice aritmetice #i logice cu număr de p)nă la 64 de bii( ceea ce face relati& u#or de implementat at)t soft@are c)t mai ales $ard@are+ unul din scop scopur uril ilee decl declar arat atee ale ale algo algori ritm tmul ului ui fiin fiindd u#oar u#oaraa lui lui impl implem ement entar aree $ard@ $ard@ar aree într într,u ,unn cip cip specializat! arcurgerea celor 16 cicluri( descrisă în Bfl8; are loc după sc$ema din figura 5!1+
<;
Capitolul 5 – Criptografia modernă Intrare permutare iniţială
Substituţie
Cheia
Permutare
Ciclul 1
Substituţie
Cheia
Permutare
Ciclul 2
Substituţie
Cheia
Permutare
Ciclul 16
Imaginea inversată a permutării iniţiale Ieşire
Fig. 5.1 Detalii pentru folosirea algoritmului DES
8D
Capitolul 5 – Criptografia modernă a intrarea datele sunt împărite în blocuri de 64 bii( care sunt transformate folosind c$eia de 64 de bii! Cei 64 de bii sunt permutai prin 0permutarea iniială! :n continuare( urmează operaiile ce constituie un ciclu! locul de 64 de bii este separat în două( 0jumătatea st)ngă #i 0jumătatea dreaptă( fiecare de =2 de bii! C$eia este deplasată la st)nga cu un număr de bii #i permutată+ ea se combină cu 0partea dreaptă care apoi se combină cu 0partea st)ngă. rezultatul de&ine noua 0parte dreaptă. &ec$ea 0parte dreaptă de&ine noua 0parte st)ngă %&ezi fig! 5!2'! ate permutate
Eumătatea st)ngă
C$eie deplasată
Eumătatea dreaptă
"
C$eie permutată
Foua jumătatea st)ngă %&ec$ea jumătate dreaptă'
Foua jumătatea dreaptă
Fig. 5.2 Manipularea cheii în algoritmul DES
upă repetarea acestui ciclu de 16 ori se face permutarea finală care este in&ersă permutării iniiale! entru combinarea unei sec&ene de =2 bii cu c$eia de 64 bii se folosesc e-pandări de la =2 bii la 48 bii #i reducerea c$eii de la 64 bii la 48 bii prin alegerea anumitor bii( operaii ce le numim 0permutare e-pandată #i 0permutare aleasă %fig! 5!='!
ermutare
ermutare aleasă
ermutare e-pandată
Fig. 5.3 Manipularea permutării în algoritmul DES
81
Capitolul 5 – Criptografia modernă :n fiecare ciclu practic au loc patru operaii separate! :nt)i partea dreaptă este e-pandată de la =2 la 48 bii. apoi este combinată cu o formă a c$eii. rezultatul este substituit #i condensat în =2 bii( cei =2 bii sunt permutai #i apoi combinai cu partea st)ngă pentru a da o nouă parte dreaptă %fig! 5!4'!
"
=2 bii
=2 bii
C$eia 28 bii
Aermutare e-pandată
eplasare
28 bii eplasare
permutare aleasa de 58 bii
48 bii
5.4 Ciclul în algoritmul DES
Permutarea expandată este definită în tabelul ce urmeaă!
it se mută la it se mută la it se mută la it se mută la
1
2
=
4
5
6
<
24! $ 1214 1" 242#
3 1% 15 1! 2"
4 11 1# 1$ 2!
5" 12 1"1$ 2% 2$31
#! 13 1!2% 21 3%32
$ 14 21 22 33
1% 15 22 23 34
25 3#3!
2# 3$
2" 4%
2! 4143
2$ 4244
3% 45
31 4#
8 1113 1# 2325 24 353"
32 4"1
&a'elul 5.1 Definirea permutării e(pan)ate în DES
C$eia este împărită cu două pări de 28 bii deplasate la st)nga cu un număr de bii apoi reunite #i 48 din cei 56 de bii sunt permutai #i folosii ca o c$eie de 48 de bii de,a lungul ciclului! 82
Capitolul 5 – Criptografia modernă C$eia dintr,un ciclu este combinată printr,o funcie sau e-clusi& cu 0partea dreaptă e-pandată! >ezultatul este operat în 8 0cutii," care efectuează substituia! G 0cutie," este o tabelă în care 6 bii de date sunt înlocuii de 4 bii! ermutările sunt efectuate de tabele numite 0cutii,! Consideraţii asupra algoritmului DES
Cu algoritmul 3" se poate face at)t codificarea c)t #i decodificarea unui mesaj! >ezultatul este ade&ărat pentru că ciclul * deri&ă din ciclul % *+1' astfel+ S * D *
D*
%1'
1
S *
1
% ' f % D *
1
(, * '
%2'
unde %H' este operaia sau e-clusi&( f este funcia rezultată din operaiile dintr,un ciclu! Aceste ecuaii arată că rezultatul fiecărui ciclu depinde numai de ciclul precedent! escriind ecuaiile pentru *+1 #i " *+1 a&em + D *
#i
S *
1
1
%='
S * D * % ' f % D *
1
(, * '
%4'
înlocuind %=' în %4' a&em+ S *
1
D * % ' f % S * (, * '
%5'
3cuaiile %=' #i %5' arată că acelea#i &alori pot fi obinute în cicluri ulterioare! Această proprietate face algoritmul 3" re&ersibil! eci putem face codificarea unor date #i decodificarea lor folosind acela#i algoritm făc)nd obser&aia că la decodificare c$eia se ia în ordine in&ersă! atorită lungimii c$eii de lucru #i a operaiilor elementare pe care le folose#te algoritmul( nu se ridică probleme deosebite într,o implementare soft@are. singura obser&aie este că( datorită modulului de lucru %cu sec&ene de date( cu tabele' practic algoritmul este lent într,o implementare soft@are! 9odul de concepere îl face însă perfect implementabil $ard %într,un cip' ceea ce s,a #i realizat( e-ist)nd multiple &ariante de ma#ini $ard de codificare!
5.1.8 Algoritmul AES
8=
Capitolul 5 – Criptografia modernă :n ianuarie 1;;<( F7"?1 a organizat un concurs de criptografie desc$is cercetătorilor din întreaga lume( a&)nd ca subiect crearea unui nou standard( care urma să se numească A3"2! >egulile concursului erau+ , algoritmul să fie un cifru bloc simetric. , proiectul trebuia să fie public. , A3" trebuia să suporte c$ei de 128( 1;2 #i 256 bii. , algoritmul trebuia să se poată implementa at)t $ard@are c)t #i soft@are. , A3" trebuia să fie un standard public sau oferit cu licenă ne discriminatorie! :n august 1;;8 F7"? a selectat cinci finali#ti pe criterii de securitate( eficienă( fle-ibilitate #i cerine de memorie! *inali#tii au fost+ 1! >ijndael %Eoan aemen #i Iincent >ijmen( 86 de &oturi' 2! "erpent %>oss Anderson( 3li i$am( ars Jnudsen( 56 &oturi' =! ?@ofis$ %ec$ipa condusă de ruce "c$neier( =1 &oturi' 4! >C6 %>"A aboratories( 2= &oturi' 5! 9A>" %79( 1= &oturi' :n octombrie 2DDD F7"? a stabilit c)#tigătorul! Acesta este algoritmul >ijndael( dez&oltat de doi tineri cercetători belgieni( Eoan aemen #i Iincent >ijmen #i care de&ine standard gu&ernamental al "A! "e speră ca >jindael să de&ină standardul criptografic dominant în lume pentru următorii 1D ani! >ijndael permite lungimi de c$ei #i mărimi de blocuri de la 128 de bii la 256 de bii( în pa#i de c)te =2 de bii! ungimea c$eii #i lungimea blocului pot fi alese în mod independent( dar în practică se &or folosi două &ariante+ bloc de 128 bii cu c$eie de 128 bii #i bloc de 128 bii cu c$eie de 256 bii! "tandardul comercial &a de&eni cel mai probabil &arianta 128/128! G c$eie de 128 bii permite un spaiu al c$eilor de 2 128 c$ei! Preliminarii matematice
>ijndael se bazează pe teoria c)mpului Kalois( în sensul că anumite operaiuni sunt definite la ni&el de octet iar octeii reprezintă elemente în c)mpul finit K*%28'!
1 2
Fational 7nstitute of "tandards and ?ec$nolog "A Ad&anced 3ncrption "tandard – "tandard de Criptare A&ansat
84
Capitolul 5 – Criptografia modernă Cum toate reprezentările c)mpului finit K*%2 8' sunt izomorfe( se poate alege reprezentarea clasică polinomială( cu impact poziti& asupra comple-ităii implementării! Gctetul '( format din biii '" '# '5 '4 '3 '2 '1 #i '%( este considerat ca fiind un polinom de gradul < cu coeficieni D sau 1+ '" -< - '# -6 - '5 -5 - '4 -4 - '3 -= - '2 -2 - '1 - H '%
Gperaiunea de adunare este definită ca suma a două polinoame în care coeficienii se adună modulo 2 #i care corespunde operării LG> a celor doi octei corespondeni! "unt îndeplinite a-iomele grupului abelian+ operaia este internă( asociati&ă( comutati&ă( e-istă element neutru #i element in&ers Gperaiunea de înmulire corespunde produsului a două polinoame modulo( un polinom ireductibil de grad 8 #i care pentru A3" este m(/ 0 (! - (4 - (3 - ( - 1
:nmulirea este internă %rezultatul este un polinom de grad strict mai mic ca 8'( asociati&ă #i e-istă element neutru! 3lementul in&ers se determină cu algoritmul lui 3uclid( iar distributi&itatea celor doua operaii se &erifică! Concluzia este că mulimea celor 256 de &alori posibile ale unui octet( împreună cu cele două operaiuni definite mai sus formează un corp algebric finit( respecti& K*%28'! Proiectarea AES
:n proiectarea A3" s,a inut cont de trei criterii+ , rezistena împotri&a tuturor atacurilor cunoscute. , &iteza #i compactitatea codului pe un mare număr de platforme. , simplicitatea proiectării! Ca #i 3"( A3" folose#te substituie #i permutări( ca #i runde multiple! Fumărul de runde depinde de mărimea c$eii #i de mărimea blocului( fiind 1D în cazul 128/128 #i mărindu,se p)nă la 14 pentru cazul 256/128! "pre deosebire de 3"( toate operaiile sunt la ni&el de octet( pentru a permite implementări eficient $ard@are #i soft@are! Descrierea AES
:n algoritmul A3" rezultatul cifrat intermediar este numit &ector state( care poate fi reprezentat ca un tabel cu patru linii #i patru coloane( acestea fiind numerotate încep)nd de la D! 85
Capitolul 5 – Criptografia modernă Iectorul state se iniializează cu blocul de 128 bii de te-t în clar %în ordinea coloanelor( cu primii patru octei în coloana D' #i &a fi modificat la fiecare pas al calculului( prin substituii( permutări #i alte transformări( rezult)nd în final blocul de 128 bii de te-t cifrat! C$eia de 128 de bii este e-pandată în 11 tabele 4-4 notate r,%/ r,1/.... r,1%/. 3-pandarea este realizată prin rotiri repetate #i operaii LG> asupra unor grupuri de bii din c$eia originală! :nainte de a începe cele 1D runde( c$eia r,%/ se operează LG> cu &ectorul state. Calculul principal constă în e-ecuia a 1D runde( folosind c$eia r,i/ la iteraia i! *iecare rundă constă în patru pa#i! asul 1 realizează o substituie octet cu octet asupra &ectorului state folosind o cutie S ! asul 2 rote#te la st)nga fiecare din cele 4 r)nduri ale &ectorului state+ r)ndul D este rotit cu D octei( r)ndul 1 este rotit cu 1 octet( r)ndul 2 este rotit cu 2 octei #i r)ndul = este rotit cu = octei( realiz)nd difuzia datelor! asul = amestecă fiecare coloană din &ectorul state independent de celelalte( prin înmulirea coloanei cu o matrice constantă( multiplicarea fiind realizată folosind c)mpul finit Kalois K*%28'! :n fine( pasul 4 operează LG> c$eia r, din runda respecti&ă cu &ectorul state! eoarece fiecare pas este re&ersibil( decriptarea se poate realiza prin rularea algoritmului de la coadă la cap( sau prin rularea algoritmului de criptare nemodificat( dar folosind tabele diferite! Avantae AES
anta*ele ES relati& la implementare sunt+
,
A3" se poate implementa pe un procesor entium ro #i &a rula cu o &iteză mai mare dec)t orice alt cifru bloc.
,
A3" se poate implementa pe un dispoziti& "mart Card( folosind un spaiu redus de memorie >A9 #i un număr redus de cicluri.
,
transformarea din cadrul unei runde este paralelă prin proiectare( ceea ce constituie un a&antaj pentru &iitoarele procesoare.
,
A3" nu folose#te operaiuni aritmetice( ci doar operaii la ni&el de #iruri de bii!
Simplitatea proiectării ES +
,
A3" nu folose#te componente criptografice e-terne( cum ar fi cutii "( bii aleatori sau #iruri de cifre din dez&oltarea numărului . 86
Capitolul 5 – Criptografia modernă ,
A3" nu î#i bazează securitatea pe interaciuni obscure sau greu de îneles între operaiuni aritmetice.
,
proiectarea clară a A3" nu permite ascunderea unei 0trape!
ungimea aria'ilă a 'locului
,
lungimile de bloc de 1;2 #i 256 bii permit construirea unei funcii $as$ iterati&e folosind A3" ca funcie de compresie!
E(tensii
,
proiectarea permite specificarea de &ariante cu lungimi de blocuri #i lungimi de c$ei aflate între 128 #i 256 bii( în pa#i de c)te =2 de bii.
,
de#i numărul de runde în A3" este fi-at în specificaiile algoritmului( el poate modificat ca un parametru în cazul unor probleme de securitate!
!imitările AES
imitările ES sunt în legătură cu algoritmul de decriptare+
, algoritmul de decriptare este mai puin pretabil la implementarea pe un dispoziti& "mart Card( deoarece necesită mai mult cod #i mai multe cicluri. , implementarea soft@are a A3" folose#te cod #i/sau tabele diferite pentru algoritmul de criptare( respecti& decriptare. , implementarea $ard@are a A3" a algoritmului de decriptare refolose#te doar parial circuitele care implementează algoritmul de criptare!
5.1.15 Algoritmul "lo#fis$
8<
Capitolul 5 – Criptografia modernă
lo@fis$ este un algoritm proiectat pentru a fi implementat pe procesoare puternice( care încearcă să respecte următoarele criterii+ 1!
>apiditate – lo@fis$ criptează date pe procesoare de =2 de bii la o rată de 26 de tacturi pe octet!
2!
Compact – lo@fis$ poate rula în mai puin de 5J de memorie!
=!
"implitate – lo@fis$ folose#te doar operaii simple+ adunare( operare LG> #i căutare în tabelă( cu operanzi de =2 de bii! Algoritmul este u#or de analizat( ceea ce e&ită erorile de implementare!
4!
"ecuritate &ariabilă – lungimea c$eii este &ariabilă( put)nd cre#te p)nă la 448 de bii!
lo@fis$ este optimizat pentru aplicaii în care c$eia nu trebuie să se sc$imbe des( cum ar fi legături de comunicaie sau un criptor automat pentru fi#iere! 3ste semnificati& mai rapid dec)t 3" c)nd este implementat pe procesoare de =2 de bii dotate cu memorie cac$e mare( cum ar fi entium! lo@fis$ nu este potri&it pentru comutarea de pac$ete( cu sc$imbări dese de c$eie( ca funcie $as$ one,@a sau în aplicaii smart,card( unde memoria este insuficientă! Descrierea algoritmului Blowfish
lo@fis$ este un cifru bloc care operează cu blocuri de 64 de bii si are c$eie de lungime &ariabilă! Algoritmul constă în două pări+ e-pandarea c$eii #i criptarea datelor! 3-pandarea c$eii con&erte#te o c$eie de p)nă la 448 de bii în mai multe matrice de sub,c$ei totaliz)nd 4168 de bii! Criptarea datelor rezidă într,o funcie simplă iterată de 16 ori! *iecare ciclu este format dintr,o permutare dependentă de c$eie #i o substituie dependentă #i de c$eie #i de date! ?oate operaiile sunt adunări #i operări LG> pe cu&inte de =2 de bii! "ingurele operaii suplimentare sunt patru căutări într,un tabel inde-at( pe ciclu! lo@fis$ folose#te un număr mare de sub,c$ei! Aceste sub,c$ei trebuie precalculate înainte de orice criptare sau decriptare de date! ?abelul este format din 16 c$ei de =2 de bii+ 1 2 6 1!
88
Capitolul 5 – Criptografia modernă
atru 0cutii," de =2 de bii are 256 de intrări fiecare+ "1(D( "1(1( M! ( "1(255 "2(D( "2(1( M! ( "2(255 "=(D( "=(1( M! ( "=(255 "4(D( "4(1( M! ( "4(255 lo@fis$ este o reea *eistel cu 16 cicluri! 7ntrarea este (( un element de 64 bii de date! entru criptare+ "e împarte ( în două pări de c)te =2 de bii+ ( #i ( 7 *or i N 1 to 16+ ( N ( i ( 7 N *% ( ' ( 7
se sc$imbă ( #i ( 7 între ele 3nd for se sc$imbă ( #i ( 7 între ele ( 7 N ( 7 1" ( N ( 1!
se recombină ( #i ( 7 *uncia * funcionează astfel+ "e împarte ( în patru sferturi a c)te 8 bii+ a ' c )
*% ( ' N %%S 1a H S 2' mod 2=2' S 3c' H S 4) mod 2=2 ecriptarea are loc similar cu criptarea( cu diferena că 1 2 6 1! sunt folosite în ordine in&ersă!
8;
Capitolul 5 – Criptografia modernă G implementare a algoritmului lo@fis$ care să asigure o cre#tere de &iteză trebuie să menină toate c$eile în memoria cac$e! "ub,c$eile sunt calculate folosind algoritmul lo@fis$( care constă în următorii pa#i+ 1!
"e iniializează tabelul #i cele patru 0cutii,"( în ordine( cu un #ir fi-! Acest #ir este format din cifrele $e-azecimale ale lui !
2!
"e operează LG> 1 cu primii =2 de bii ai c$eii( se operează 2 cu următorii =2 de bii ai c$eii #i tot a#a p)nă la 1!( astfel înc)t întreg tabelul să fie operat LG> cu biii din c$eie!
=!
"e criptează un #ir format din zerouri cu algoritmul lo@fis$( folosind sub,c$eile descrise în pa#ii 1 #i 2!
4!
"e înlocuiesc 1 #i 2 cu ie#irea din pasul =!
5!
"e criptează ie#irea din pasul = folosind algoritmul lo@fis$ cu sub,c$eile modificate!
6!
"e înlocuiesc 3 #i 4 cu ie#irea din pasul 5!
"e continuă procesul( înlocuind toate elementele din tabelul #i apoi cele patru 0cutii," în ordine( cu ie#irea algoritmului lo@fis$!
:n total( 521 de iteraii sunt necesare pentru a genera toate sub,c$eile necesare! Aplicaiile pot memora sub,c$eile pentru a nu trebui să le calculeze de fiecare dată! Securitatea algoritmului Blowfish
:n cazul algoritmului lo@fis$ cu 0cutii," cunoscute #i r cicluri( tabelul poate fi determinat cu 28rH1 te-te în clar alese! Atacul funcionează doar pe &ariantele cu un număr redus de cicluri #i este complet ineficient în cazul algoritmului lo@fis$ cu 16 cicluri!
;D
Capitolul 5 – Criptografia modernă
Cifrul %C&
>C4 este un cifru #ir cu c$eie de lungime &ariabilă( dez&oltat în 1;8< de către >on >i&est pentru >"A ata "ecurit! :n 1;;4 codul sursă al algoritmului este făcut public pe 7nternet! >C4 este un algoritm simplu de descris+ #irul c$eie este independent de te-tul în clar! Are 8 - 8 0cutii,"+ S %( S 1( !!!( S 255! 7ntrările sunt permutări ale numerelor de la zero la 255( iar permutarea este o funcie de o c$eie de lungime &ariabilă! 3-istă doi indici( i #i *( iniializai cu zero! entru a genera un octet aleator se procedează astfel+ i N %i H 1' modulo 256 * N % * H S i' modulo 256 & N S i S i N S * S * N & t N %S i H S *' modulo 256 8 N S t
Gctetul 8 este operat LG> cu te-tul în clar pentru a produce te-t cifrat sau operat LG> cu te-tul cifrat pentru a obine te-tul în clar! Criptarea este aproape de 1D ori mai rapidă dec)t 3",ul! 7niializarea 0cutiilor," este simplă! "e iniializează liniar+ S % N D( S 1 N 1( M( S 255 N 255 #i un alt &ector de 256 de octei cu c$eia( repet)nd c$eia( dacă este necesar( pentru a completa &ectorul cu componentele+ 8 %( 8 1( M( 8 255! * N D
*or i N D to 255+ * N % * H S i H 8 i' modulo 256
se sc$imbă S i cu S * între ele
;1
Capitolul 5 – Criptografia modernă Fu e-istă rezultate publice ale criptanalizei! "e crede ca algoritmul este imun la analiza diferenială #i liniară. >C4 poate fi în apro-imati& 2 1
C4 are un statut special de e-port( acesta fiind permis doar pentru c$ei de p)nă la 4D de octei! >C4 este implementat în multe produse comerciale( dintre care amintim otus Fotes #i Gracle "ecure "O!
;2
Capitolul 5 – Criptografia modernă
5.'.( Algoritmul %ivest)S$amir)Adelman *%SA+
n alt criptosistem bazat pe o problemă dificilă este algoritmul >"A( numit astfel după in&entatorii săi( >i&est( "$amir #i Adelman! A fost publicat în 1;<8 B>"A<8 #i răm)ne un algoritm foarte folosit #i astăzi( în ciuda eforturilor criptanali#tilor de a,l sparge! Introducere
Algoritmul de criptare >"A incorporează rezultate din teoria numerelor( combinate cu dificultatea determinării factorilor primi pentru un număr intă! Ca în cazul algoritmului 9erPle, Qellman #i algoritmul >"A operează cu aritmetica modulo n! n bloc în te-t clar este tratat ca un întreg( iar pentru criptare #i decriptare se folosesc două c$ei( e #i ) ( care sunt intersc$imbabile! locul de te-t clar este criptat ca e modulo n! eoarece e-ponenierea este modulo n( este foarte dificil să se factorizeze e pentru a descoperi te-tul original! entru aceasta( c$eia de decriptare ) este astfel aleasă înc)t %e'd N modulo n! Astfel este regăsit fără a fi necesară descompunerea în factori primi a lui e! roblema pe care se bazează algoritmul de criptare este cea a factorizării numerelor mari! roblema factorizării nu se cunoa#te a fi F completă. cel mai rapid algoritm cunoscut este e-ponenial în timp! Descrierea detaliată
Cu algoritmul >"A( mesajul în te-t clar este criptat în( mesajul în te-t cifrat C prin intermediul c$eii de criptare e+ C N e modulo n 9esajul în te-t clar este regăsit cu ajutorul c$eii de decriptare ) + N Cd modulo n in cauza simetriei din aritmetica modulară( criptarea #i decriptarea sunt mutual in&erse #i comutati&e+ N Cd modulo n N %e'd modulo n N %d'e modulo n
;=
Capitolul 5 – Criptografia modernă
Alegerea cheilor
C$eia de criptare constă în perec$ea de întregi %e n'( iar c$eia de decriptare este % ) n'! unctul de plecare în găsirea c$eilor pentru acest algoritm este selectarea unei &alori pentru n! Ialoarea lui n trebuie să fie suficient de mare( dată de un produs a două numere prime p #i 9! At)t p c)t #i 9 trebuie să fie ele însele suficient de mari! :n mod obi#nuit( p #i 9 au apro-imati& 1DD de
cifre fiecare( astfel înc)t n are apro-imati& 2DD de cifre! Această lungime in$ibă încercarea de a factoriza pe n( pentru a afla pe p #i pe 9! :n continuare( se alege un întreg e relati& mare( astfel înc)t e este relati& prim cu % p,1'%9,1'! "atisfacerea acestei condiii se face aleg)ndu,l pe e ca un număr prim mai mare dec)t p,1 #i 9,1! :n final( se alege ) astfel înc)t+ e ) 1 modulo % p,1'%9,1'
Fundamentele matematice ale algoritmului SA
*uncia lui 3uler %n' este numărul întregilor poziti&i mai mici dec)t n care sunt relati& primi cu n! acă p este prim( atunci+ % p' N p,1
acă n N p 9( unde p #i 9 sunt ambele prime( %n' N % p' R%9' N % p,1' %9,1'
7dentitatea 3uler,*ermat afirmă că + ( %n' 1 modulo n
pentru orice întreg (( dacă n #i ( sunt relati& prime! "ă presupunem că mesajul în te-t clar este criptat cu algoritmul >"A( astfel înc)t E/0 e! ?rebuie să fim siguri că putem decripta mesajul! Ialoarea e este astfel aleasă înc)t
in&ersa sa ) să poată fi găsită u#or! eoarece e #i ) sunt in&erse modulo %n'( e ) 1 modulo %n'
sau e ) N , %n' H 1
pentru anumii întregi , ! Implementarea practică a algoritmului
;4
Capitolul 5 – Criptografia modernă tilizatorul algoritmului >"A alege numerele prime p #i 9( din care se obine n N p 9! Apoi alege e( relati& prim la % p,1' %9,1'( de obicei un număr prim mai mare dec)t p,1
#i dec)t 9,1! :n final( ) se calculează ca in&ersul lui e modulo %n'! tilizatorul distribuie e #i n( #i păstrează c$eia ) secretă. p( 9 #iR % n' pot fi ignorate( dar nu făcute publice! C$iar dacă se #tie că n este produsul a două numere prime( datorită mărimii sale – peste 2DD de cifre( nu &a fi posibil să se determine factorii p #i 9( #i nici c$eia pri&ată( ) din e! e asemenea( &erificarea că p #i 9 sunt prime( presupune luarea în considerare a 1D5D factori!
"olo&a #i "trassen au dez&oltat un algoritm euristic de calcul a probabilităii ca un număr să fie prim( cu gradul de încredere dorit! Grice număr prim satisface două teste! acă p este un număr prim #i r orice număr mai mic dec)t p( cmmdc% p r 'N1
unde cmmdc este cel mai mare di&izor comun( #i E%r p' r p+1/:2 modulo p unde E este funcia Eacobi( definită astfel+
1 % p 1' / 8 ; %r ( p' ; %r / 2( p' %1' ; % p modulo r( r' %1' % r 1'% p 1' / 4 2
daca r 1 daca r este par daca r este impar si r 1
acă un număr pare a fi prim( dar nu trece unul din aceste teste( în mod sigur nu este prim! acă însă satisface cele două teste( numărul este prim cu o probabilitate de cel puin 1/2! roblema în algoritmul >"A este de a găsi două numere prime mari( p #i 9! entru a folosi metoda de mai sus( se alege un posibil număr mare prim( p! "e generează aleator un număr r #i se calculează cmmdc% pr ' #i E% rp'! acă una din cele două condiii nu este îndeplinită( p nu este număr prim! acă ambele teste se &erifică( probabilitatea ca p să nu fie prim este cel mult 1/2! rocesul se repetă pentru noi &alori ale lui r alese aleator! acă al doilea r &erifică ambele teste( probabilitatea ca p să nu fie prim este cel mult 1/4! upă repetarea procesului de P ori astfel înc)t cele două teste sunt &erificate( probabilitatea ca p să nu fie prim este cel mult 1/2 P ! Criptanali!a metodei SA
?eoretic sunt trei posibilităi de abordare a unui atac în cazul algoritmului >"A+ atacul în foră( atacul bazat pe metode matematice %încercarea factorizării produsului a două numere prime ;5
Capitolul 5 – Criptografia modernă mari' #i atacul temporal! Analiza acestor atacuri duce la concluzia că nici unul nu are sori de izb)ndă! :n pofida unor intense cercetări( au fost identificate doar probleme minore în comparaie cu cele din cazul algoritmului rucsacului a lui 9erPle #i Qellman!
5.& Conclu,ii
Criptografia cu c$ei simetrice #i cea cu c$ei publice prezintă di&erse a&antaje #i deza&antaje pe care le prezentăm în continuare+ "i# Avanta$e ale criptografiei cu chei simetrice
1!
Algoritmii folosii permit gestionarea unor &olume mari de date( cu &iteză relati& bună! :n special atunci c)nd este &orba de implementări $ard!
2!
C$eile folosite pentru algoritmii simetrici sunt relati& scurte!
=!
Algoritmii simetrici pot fi folosii ca primiti&e pentru a construi soluii criptografice incluzînd generatoarele de numere pseudo,aleatoare #i funciile $as$!
4!
Algoritmii cu c$ei simetrice se pot compune pentru a produce algoritmi mai puternici!
"ii# De!avanta$ele criptografiei cu chei simetrice
1!
:ntr,o comunicaie c$eia trebuie să rămînă secretă în ambele capete!
2!
:ntr,o reea cu muli utilizatori numărul c$eilor care trebuie gestionate de&ine o problemă majoră!
=!
entru o comunicaie între două pări( practica criptografică impune sc$imbul c$eilor frec&ent( uneori c$iar la fiecare sesiune( ceea ce în condiiile unui canal nesigur de comunicaie este o altă problemă! ;6
Capitolul 5 – Criptografia modernă
"iii# Avanta$ele criptografiei cu chei pu%lice
1!
intre cele două c$ei folosite în algoritmii cu c$ei publice doar una trebuie inută secret!
2!
Administrarea c$eilor într,o reea poate fi făcută cu un singur administrator 0de încredere!
=!
:n general perec$ile de c$ei publice/secrete pot fi folosite pe o perioada lungă de timp fără a fi sc$imbate!
4!
:ntr,o reea de dimensiuni mari numărul de c$ei necesare este considerabil mai mic decît în cazul criptografiei simetrice!
"iv# De!avanta$ele criptografiei cu chei pu%lice
1!
Iiteza algoritmilor cu c$ei publice %c$iar #i a celor mai performani' este de c)te&a ori mai mică dec)t a celor cu c$ei secrete!
2!
imensiunea c$eilor folosite este mai mare %1D24 pentru >"A în comparaie cu 64 sau 128 în cazul algorimilor de tip bloc'!
=!
entru nici un algoritm cu c$ei publice nu s,a demonstrat că ar fi 0sigur. securitatea lor se bazează prezumia de dificultate a unui set de probleme de teoria numerelor!
4!
7storia criptografiei cu c$ei publice este relati& scurtă %din 1;
rincipiul algoritmului >"A
*ie numărul întreg ( mesajul pe care &rem să,l transmitem #i fie n0p9 ( unde p #i 9 sunt două numere prime suficient de mari %n este un număr care poate fi făcut public( însă nu p #i 9'! "e dă de asemenea c$eia de criptare( e! >"A se bazează pe congruenele modulo n( astfel+ S 3-peditorul construie#te <0(3 %mod n'( număr care &a fi făcut public %criptarea mesajului ('! S estinatarul( care este singurul ce cunoa#te ) cu proprietatea (N <) %modn'( reconstruie#te mesajul iniial (! %decriptarea mesajului'!
;<
Capitolul 5 – Criptografia modernă "uportul matematic al algoritmului >"A A&em de arătat că e-istă numerele e #i ) pe care le,am folosit în paragraful anterior! "ă obser&ăm că a face operaiile modulo n este acela#i lucru cu a lucra în inelul 7n( deci ne &om folosi de proprietăile sale algebrice! acă j este funcia indicatoare a lui 3uler( atunci 7n este un inel cu j%n' elemente in&ersabile( adică( în cazul nostru particular( cu %p,1'%9,1' elemente in&ersabile! acă alegem e astfel înc)t %e( j%n''N1( atunci( conform algoritmului lui 3uclid( &a e-ista un număr întreg ) #i un număr , astfel înc)t )e-,=n/01( de unde &a rezulta că (e) 0( ( deci e #i ) îndeplinesc proprietăile necesare pentru a putea fi folosite drept c$eie publică #i c$eie secretă în algoritmul >"A! 9ai facem obser&aia că a afla ) %care ar trebui să nu fie cunoscut dec)t de destinatar' este totuna cu a factoriza n( lucru care am stabilit deja că este foarte dificil! eza&antajul algoritmului >"A( #i în general al algoritmilor cu c$ei publice( este că sunt destul de leni( în sensul că pentru a cripta #i a decripta un mesaj %în condiiile în care a&em c$eile publică #i secretă' consumăm o cantitate mare de timp! in acest moti&( de multe ori( se folosesc algoritmi combinai+ cu c$ei secrete #i c$ei publice!
Aplicaii ale algoritmului >"A n prim domeniu unde înt)lnim algoritmi de criptare( #i în special >"A( este cel al telecomunicaiilor+ telefoane publice( cu cartele electronice( sau telefoanele mobile %protocoale de autentificare a persoanei apelate'! e asemenea( în domeniul sănătăii( prin intermediul cardurilor electronice care să conină istoricul medical al unui indi&id! "ecuritatea naională+ cări de identitate( pa#apoarte( legitimaii magnetice! Ti să nu uităm economia+ cardurile bancare( comerul electronic( sau informatica+ confidenialitatea po#tei electronice( a informaiilor de pe o pagină de @eb( pe scurt( dreptul la intimitate! nde &om înt)lni ne&oia de semnătură #i identificare electronică( &om înt)lni criptarea prin >"A!
;8