RSA si gestiunea cheilor publice

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "RSA si gestiunea cheilor publice"

Transcript

1 RSA si gestiunea cheilor publice RSA reprezintă cel mai folosit sistem cu chei publice şi semnături digitale. A fost realizat de trei cercetători - Rivest, Shamir, Adleman - de la MIT (Massachusetts Institute of Technology) şi are o mare susţinere atât în mediul guvernamental, cât şi în cel comercial. Securitatea RSA depinde de dificultatea factorizării lui n în p şi q. Rivest, Shamir şi Adleman recomandă folosirea unor numere prime p şi q de 100 cifre zecimale, adică a unui n de 200 de cifre zecimale, ceea ce cere pentru factorizare mai multe milioane de ani calculator. Ultimele recomandări făcute de firma RSA Data Security, deţinătoarea patentului RSA, pentru alegerea dimensiunii cheilor de cifrare RSA (de fapt a modulului n) sunt următoarele: - în cazul unor aplicaţii cu cerinţe de securitate pe termen scurt: 768 biţi, dimensiune suficientă în aplicaţii pentru utilizatori individuali. Se precizează că informaţia este sigură 1 an; - în cazul unor aplicaţii cu cerinţe de securitate pe termen mediu: 1024 biţi, dimensiune suficientă în aplicaţii comerciale. Se apreciază că informaţia este sigură 3 ani; - în cazul unor aplicaţii cu cerinţe de securitate pe termen lung: 2048 biţi, dimensiune considerată suficientă pentru aplicaţii cu cerinţe de securitate sporită, la nivel strategic militar sau guvernamental. Se apreciază că, în acest caz, informaţia este sigură 20 de ani. Generează cheilor publică şi privată folosite de RSA 1. Generează aleator două numere prime de mari dimensiuni p şi q 2. n=p*q 3. φ=(p-1)*(q-1) 4. selectează aleator un întreg e cu proprietatea că e [1, φ] şi gcd(e, φ)=1 5. foloseste invmod pentru a-l afla pe d cu proprietatea că d [1, φ] astfel încât d=e -1 *(mod φ) 6. cheia publică (n,e) iar cea privată d Numerele e şi d se numesc exponentul de criptare, respectiv exponentul de decriptare, iar n se numeşte modul. long invmod(long e, long phi) { long e0,t0=0,t=1,q,r,n0,temp; n0=phi; e0=e; q=n0/e0; r=n0-q*e0; while(r>0) { temp=t0-q*t; if(temp>=0) { temp=temp%phi; } else { temp=phi-((-temp)%phi); } t0=t;

2 t=temp; n0=e0; e0=r; q=n0/e0; r=n0-q*e0; } return t; } Algoritmul RSA propriuzis 1. Criptarea (la emisie) - obţine cheia publică (n,e) pentru destinatar - reprezintă mesajul ca un întreg m în intervalul [0,n-1] - calculează c=m e mod n - trmite mesajul criptat 2. Decriparea (la recepţie) - foloseşte cheia privată pentru a reface numărul m ca m=c d mod n Un exemplu p=61, q=53 N=p*q=3233, e=17, d=2753, cheia publica (e, N), cheia privata d atunci: Functia de criptare este crpt(n) = n e mod N = n 17 mod 3233, pt n=123 crtp=855, unde n este textul in clar iar la decriptare dcrpt(c) = c d mod N = c 2753 mod 3233, pt c=855 dcrpt=123 unde c este textul criptate Tehnici de distribuţie a cheilor publice Protocoalele care implică criptarea cu chei publice sunt de obicei descrise presupunând o posesie prioritară pentru cheile (autentice) publice a părţilor convenabile. Alternative pentru a distribui chei publice explicite cu autenticitate garantata sau verificabila include urmatoarele: 1. Transmisie punct-la-punct peste un canal sigur. Cheile publice autentice ale altor utilizatori sunt obţinute direct de la utilizatorul asociat prin schimb personal sau peste un canal direct care garantează integritatea şi autenticitatea (ex. un curier de încredere sau scrisoare recomandată). Această metodă se pretează dacă nu e folosită frecvent (ex. înregistrarea unui utilizator) sau în sisteme mici închise. O metodă alternativă este de a schimba chei publice şi a informaţiilor asociate peste un canal electronic nesigur şi de a oferi autentificarea acestor informaţii comunicând un hash (folosind o funcţie hash) prin intermediul un canal independent, autentic, de lăţime de banda mica (cum e scrisoarea recomandată). Inconvenientele acestei metode sunt: este consumatoare de timp; obţinerea neautomatizată a cheilor în defavoarea comunicaţiilor securizate cu fiecare nou partener ( timing chronologic ); costul canalului sigur. 2. Acces direct la un fişier public sigur (registru cheie-publică). O bază de date publică, menţine integritatea a ceea ce se consideră sigur, poate fi setată să conţină numele şi cheia publică autentică a fiecărui utilizator. Aceasta poate fi implementată ca o cheie publică în registru folosită de un partener sigur. Utilizatorii obţin chei direct din acest registru. În timp ce accesul de la distanţă la acest registru peste canale nesigure este acceptat împotriva adversarilor pasivi, un canal sigur e impus pentru accesul de la distanţă în prezenţa adversarilor activi. O metodă de autentificare a unui fişier public este autentificarea arbore a cheilor publice. 3. Folosirea unui utilizator sigur on-line. Un server sigur on-line oferă acces la echivalentul unui fişier public ce deţine chei publice autentice, returnînd cheile publice (individuale) cerute în transmisii cu semnătură; confidenţialitatea nu e cerută. Partenerul care cere, deţine o copie a semnăturii de verificare a cheii publice, permiţând astfel verificarea autenticităţii unor astfel de transmisii.

3 Dezavantajele unei asemenea abordări sunt: serverul sigur trebuie sa fie on-line; serverul poate deveni un punct de gâtuire şi legăturile de comunicaţie trebuie să fie stabilite între ambii parteneri: solicitantul si serverul sigur. 4. Folosirea unui server off-line şi a certificatelor. Printr-o singura procesare, fiecare partener contactează un partener off-line definit ca autoritate de certificare (CA) pentru a-şi înregistra cheia sa publică şi a obţine semnătura cheie publică CA (permiţand verificarea cheilor publice altor utilizatori). CA certifică cheia publică legând-o de un string, deci creând un certificat. partenerii obţin chei publice autentificate schimbând certificatele sau extrăgându-le dintr-un director public. 5. Folosirea sistemelor implicite garantează autenticitatea parametrilor publici. În astfel de sisteme, inclusiv sistemele bazate pe identitate şi cele care folosesc chei publice certificate, prin proiectarea algoritmilor, modificarea parametrilor publici se materializează în tehnici criptografice detectabile, necompromiţătoare. Arbori de autentificare Arborii de autentificare oferă o metodă pentru a marca datele publice disponibile ca autentice folosind o structură arborescentă în conjuncţie cu o funcţie hash, autentificând valoarea din rădăcina. Aplicaţiile includ: 1. autentificarea cheilor publice (ca o alternativă la certificatele cheilor publice). Un arbore de autentificare creat de o terţă parte ce conţine cheile publice utilizator, permite autentificarea unui mare număr de astfel de chei. 2. serviciu moment-in-timp sigur. Crearea unui arbore de autentificare de o a treia entitate de încredere, într-un mod similar, facilitează un serviciu moment-in-timp sigur 3. autentificarea parametrilor de validare ai utilizatorului. Crearea unui arbore de către un singur utilizator îi permite să publice, cu autenticitate verificabilă, a unui număr mare de parametri publici ai săi de validare, cum ar fi schemele de semnătura cerute o singură dată. Contruirea si folosirea cheilor de autentificare Să considerăm un arbore binar T care are t frunze. Fie h o funcţie hash. T poate fi folosit ca să autentifice t valori publice Y1, Y2,, Yt prin construirea unui arbore automatizat T după cum urmează: 1. Etichetaţi fiecare frunză t cu o cheie publică unică cu valoarea Yi. 2. Pe muchia orientată dinspre frunza notata Yi, puneţi eticheta h(yi) 3. Dacă muchia stânga şi dreapta a unui nod intern sunt etichetate h1 şi h2, respectiv, etichetaţi muchia superioară a nodului h (h1 h2). 4. Dacă muchiile îndreptate înspre către nodul rădăcina sunt etichetate u1 şi u2, etichetaţi nodul rădăcină h (u1 u2). Din moment ce valorile publice sunt asignate frunzelor arborelui binar, o astfel de etichetare este bine definită. Figura 1 ilustrează un arbore de autentificare cu 4 frunze. Presupunând nişte inţelesuri autentifică eticheta în nodul rădăcină, arborele de autentificare oferă un înţeles care să autentifice oricare t dintre valorile publice Yi după cum urmează. Pentru fiecare valoare publică Yi există o cale unică (calea de autentificare) de la Yi la rădăcină. Fiecare muchie din cale este o muchie stângă sau dreapta a unui nod interior sau rădăcina. Daca e este o astfel de muchie îndreptată înspre nodul x, se va reţine eticheta celeilalte muchii îndreptate spre x. Această secvenţa de etichete (valorile căii de autentificare) folosită în ordinea corectă oferă autentificarea lui Yi, aşa cum e ilustrat de exemplul de mai jos. De remarcat că dacă o singură valoare frunză (ex. Y1) este modificată, intenţionat sau nu, atunci autentificarea valorii va eşua.

4 Figura 1: Arbore de autentificare. Exemplu (verificarea cheii folosind arbori de autentificare) Valoarea publica Y1 poate fi autentificată folosind secvenţa de etichete h(y2), h(y3), h(y4). Autentificarea se desfasoară în felul următor: calculează h(y1), apoi calculează h1 = h(h(y1) h(y2)), apoi h2 = h(h1 h(y3)); în final acceptă Y1 ca autentică dacă h(h2 h(y4)) = R, unde valoarea din rădăcina R este cunoscută ca autentică. Avantajul arborilor de autentificare este evident considerând spaţial de memorie utilizat pentru a se permite autentificarea a t valori publice folosind următoarea abordare (foarte simplă): o entitate A autentifică t valori publice Y1, Y2,, Yt înregistrând pe fiecare cu câte o valoare de încredere din afară. Aceasta abordare necesita înregistrarea a t valori publice, care poate ridica probleme de stocare la partea din afara când t este destul de mare. În contrast, un arbore de autentificare necesită numai o singura valoare să fie înregistrata în exterior. Dacă o cheie publică Yi a unei entităţi A este valoarea corespunzătoare unei frunze într-un arbore de autentificare, şi A doreşte sa ofere lui B informaţii ce permit lui B să verifice autenticitatea lui Yi, atunci A trebuie (să stocheze şi) să ofere lui B atât pe Yi cât şi toate valorile funcţiei hash asociate cu calea de autentificare de la Yi către rădăcina; în plus B trebuie sa aibă mai întâi cunoştinţe şi încredere în autenticitatea valorii rădăcina R. Aceste valori luate împreună garantează autenticitatea, analog cu semnătura unui certificat cu cheie publică. Numărul valorilor pe care fiecare parte trebuie sa le stocheze (şi să le ofere celorlalţi pentru a le permite verificarea cheilor publice) este lg(t). Obs1 (lungimea cailor de autentificare) Folosind un arbore binar echilibrat ca arbore de autentificare cu t valori publice ca şi frunze, autentificarea unei valori publice conţinute poate fi obţinuta prin hashul a lg(t) valori de-a lungul căii către rădăcină. Obs2 (componenta timp - spatiu) Arborii de autentificare necesită ca o singura valoare (din rădăcină) din arbore să fie autentificată, dar verificarea autenticităţii fiecării frunze în particular necesită acces şi hash la toate valorile de-a lungul căii de autentificare de la frunză către rădăcină. Obs3 (schimbarea valorilor din frunze) pentru a schimba o valoare (frunză) publică sau pentru a adăuga mai multe valori într-un arbore de autentificare este necesară recalcularea valorii din nodul radacină. Pentru arbori echilibraţi de dimensiuni mari, aceasta poate implica calcule substanţiale. În toate cazurile, restabilirea încrederii tuturor utilizatorilor în această valoare - radacina nouă (ex. autenticitatea sa) este necesară. Costul de calcul implicat de adăugarea de noi valori la arbore poate motiva construirea noului arbore ca neechilibrat cu valoarea din noua frunza, sau un subarbore cu asemenea valori fiind fiul drept al radacinii şi vechiul arbore fiul stang. Altă motivare pentru a permite arborilor neechilibraţi să apară când nişte valori frunză sunt cerute cu o frecvenţă mai mare.

5 Certificate cu Chei publice Certificatele cu chei publice sunt un mijloc prin care cheile publice pot fi stocate, distribuite sau trimise peste mijloace media nesigure fără pericolul folosirii neautorizate. Obiectivul este de a face cheia publică a unei entităţi valabilă celorlalţi astfel încât autenticitatea (ex., statusul de cheie publică validă a entităţii) şi validitatea sunt verificabile. În practică, certificatele X.509 sunt folosite. Definitie Un certificat cu cheie publică este o structură de date ce conţine o parte de date si o parte de semnatură. Partea de date conţine text incluzând, cel putin, o cheie publică şi un string de identificare a partenerului (entitate subiect) cu care să fie asociat. Partea de semnatură constă în semnătura digitală a unei autorităţi de certificare peste partea de date, astfel legând identitatea entităţii subiect de cheia publică specificată. Autoritatea de Certificare (Certification Authority - CA) este un partener neutru de încredere a cărui semnătura pe certificate garantează autenticitate cheii publice legate de entitatea subiect. Semnificaţia legăturii (e.g., pentru ce poate fi folosită cheia) trebuie oferită de inţelesuri adiţionale, cum ar fi un certificate atribut sau o declaraţie de pozitie. În certificate, şirul de caractere care identifică subiectul entitate trebuie să fie un nume unic în sistem (nume diferenţiabil), pe care CA de obicei îl asociază cu entitatea din lumea reală. CA cere propria pereche de chei de semnatură, cheia publică autentică cu ajutorul căreia este valabilă fiecărui partener înregistrat ca un utilizator autorizat al sistemului. Aceasta cheie publică a CA permite oricarui utilizator a sistemului, prin achiziţionarea şi verificarea certificatului, să dobândească progresiv încrederea în autenticitatea cheii publice în orice certificat semnat de catre CA. Certificatele sunt o modalitate de a transfera încrederea. Autenticitatea cheilor publice ale CA poate fi oferită în exclusivitate prin modalităţi non criptografice inclusiv achiziţia personală, sau prin curieri de încredere. Autenticitatea este cerută, nu secretă. Exemple de informatii aditionale pe care partea de date a certificatului le poate include: 1. o perioadă de validitate a cheii publice; 2. un număr de serie cu identificator de cheie care identifica certificatul sau cheia; 3. informaţii adiţionale cu privire la subiectul entitate (ex., strada sau adresa de reţea); 4. informaţii adiţionale cu privire la cheie (ex., algoritm sau scop de folosire); 5. măsuri ale calităţii relative la identificarea subiectului entitate, generarea cheilor pereche, alte probleme de securitate; 6. informaţii care să faciliteze verificarea semnăturii (ex., un algoritm de identificare şi eliberare a numelui CA); 7. starea cheii publice (i) Crearea de certificate cu chei publice Înainte de a crea un certificate cu cheie publică pentru o entitate subiect A, autoritatea de certificare ar trebui să ia măsurile de rigoare (relative la nivelul de securitate cerut şi practicile de afaceri ale clienţilor), tipic de natură non criptografică, pentru a verifica identitatea cerută a lui A şi faptul că şi cheia publică ce trebuie certificată este chiar A. Doua cazuri pot fi distinse: Cazul 1: partenerul de încredere crează chei pereche. Partenerii de încredere crează o pereche de chei publice, o asignează unei entităţi specifice şi include cheia publică şi identitatea acestei entităţi în certificate. Entitatea obţine o copie a cheii publice corespunzatoare peste un canal sigur (autentic şi privat) după aceea işi dovedeşte identitatea (ex. arătând un paşaport sau o poză, în persoană). Toate părţile care folosesc acest certificat se delegă la această primă verificare de identitate de către partea de încredere. Cazul 2: entitatea crează propria pereche de chei. Entitatea işi crează perechea de chei publice şi transferă sigur cheia publică la partenerul de încredere într-o manieră care pastrează autenticitatea (ex. peste un canal sigur sau în persoană). Dupa verificarea autenticităţii (sursei) cheii publice, partenerul de încredere crează cheia publică certificată ca mai sus.

6 Obs (dovada cunoasterii cheii publice) În cazul 2 de mai sus, autoritatea de certificare ar trebui să ceară dovada cunoasterii cheii private corespunzatoare, pentru a preveni (printre alte atacuri posibile) ca alt partener legitim să obţină, pentru scopuri incorecte, o cheie publică certificată legându-şi astfel numele de cheia publică a altui partener. În cazul semnăturii cheilor publice, aceasta poate fi facută de catre partener prezentând propria semnatură pe un subset din partea de date a certificatului; sau răspunzând unei provocări r1 generată aleator chiar de către însuşi partenerul de exemplu semnand h(r1 r2) pentru o anumită funcţie hash h şi un număr aleator r2. (ii) Folosirea si verificarea certificatelor cu chei publice Procesul, per ansamblu, unde un partener B foloseste un certificat cu cheie publică pentru a obţine cheia publică autentică a unei părţi A poate fi descris după cum urmează: 1. (O dată) obţine cheia publică autentică a autorităţii de certificare. 2. Obţine un şir de caractere de identificare care identifică unic partenerul A. 3. Obţine peste nişte canale nesigure (ex. de la o baza de date centrală şi publică de certificate, sau de la A direct), o cheie publică corespunzatoare subiectului entitate A şi care e corespunzatoare cu stringul de identificare anterior. 4. (a) verifică data curentă şi timpul cu perioada de validitate (dacă există) în certificat, bazandu-se pe un timp local de încredere; (b) verifică validitatea curenta a insesi cheii publice a CA; (c) verifica semnatura certifictului lui A, folosind cheia publica a CA. (d) verifica ca certificatul nu a fost revocat. 5. Daca toate verificarile sunt cu suuces, accepta cheia publica din certificate ca si o cheie autentica a lui A. Remarca (ciclul de viata pentru certificate cheie unica) Datorita cerintilor de timpi de viata diferiti pentru diferite tipuri de chei (ex. diferite criptoperioade, backup, arhivare si alte cerinte de protectie pe viata), sunt recomandate certificate separate pentru chei separate, in opozitie cu includerea mai multor chei intr-un singur certificat. (iii) Certificatele atribut Cheile publice certificate leaga o cheie publica si o identitate si contin campuri de date aditionale necesare pentru a clarifica aceasta legatura, darn u sunt destinate pentru a certifica informatii aditionale. Cerificatele atribut sunt similare certificatelor chei publice, dar in special destinate pentru a permite specificarea de informatii (atribute) altele decat cheile publice (dar legate de CA, entitate sau cheie publica), astfel incat sa poata fi convertita intr-o maniera de incredere (verificabila). Certificatele atribut pot fi associate cu o cheie publica specifica prin legarea informatiei de atribut de cheie prin metoda prin care cheia este identificata, e.g. prin numarul de serie a unui certificat cheie publice corespunzator, sau valoarea hash a cheii publice sau certificate. Certificatele atribut pot fi semnate de catre o autoritate de certificare a atributelor, create in conjunctie cu o autoritate de inregistrare a atributelor, si distribuita in conjunctie cu un serviciu de mentinere a atributelor. Mai general, oricare partener cu o cheie de semnatura si o autoritate recunoscuta poate crea un certificate atribut. O aplicatie este sa certifice informatia de autorizare relative la o cheie publica. Mai précis, aceasta poate fi folosita, de exemplu, pentru a limita inconvenientele unei semnaturi digitale, sau pentru a constringe folosirea unei chei publice (ex. in tranzactiile cu valori limitate, anumite tipuri, sau de-a lungul anumitor ore). Sisteme bazate pe identitate Sisteme bazate pe identitate sunt sisteme chei publice normale, implicand o transformare privata si o transformare publica, dar utilizatorii nu au chei publice ca inainte. In schimb, cheie publica este

7 efectiv inlocuita de (sau construita din) informatia public valabila a utilizatorului (e.g nume si adresa de retea sau strada). Orice informatie pubica valabila care identifica unic un utilizator poate fi asociata negresit cu utilizatorul. Poate folosi ca si informatie de identificare. Definitie Un sistem criptografic bazat pe identitate (system bazat pe ID) este un sistem asimetric in care informatia de identificare publica a entitatii (numele unic) joaca rolul cheii sale publice si e folosit ca intrare de catre o autoritate de incredere T (alaturi de cheia private a lui T) pentru a compara cheia private corespunzatoare a entitatii. Dupa ce o calculeaza, T transfera cheia private a entoitatii la entitate peste un canal sigur (autentic si privat). Aceasta cheie private e calculata nu numai din informatia de identificare a entitatii, dar de asemeenea trebuie sa fie o functie a unor informatii privilegiate stiute numai de T (cheia private a lui T). Aceasta e necesar pentru a preveni anumite evenimente nedorite este esntial ca numai T sa fie capabil sa creeze chei private valide corespunzatoare informatiilor de identitate oferite. Corespunzator, datele public valabile trebuie incorporate in transformari criptografice ale sistemului bazat pe ID, analog cu cheia publica a autoritatatii de certificare. Figura 13.7(b) ilustreaza arhitectura unui sistem bazat pe identitate. In unele cazuri, date sistem definite public Da trebuie asociate cu fiecare utilizator A in plus cu identitatea sa primara IDa (v. Remarca 13.27); asemenea sisteme nu mai sunt bazate pur pe identitate, desi nici autenticitatea Da sau IDa nu trebuie verificate explicit Remarca (autenticitatea in sisteme bazate pe ID) Sistemele bazate pe ID difera de sistemele cheie publica in faptul ca autenticitatea datelor publice specifica utilizatorului nu este (si nici nu trebuie) explicit verificata, asa cum este necesar pentru utilizatorii de chei publice in sistemele bazate pe certificate. Redundanta mostenita a datelor publice ale utilizatorului in sitemele bazate pe ID (derivate din dependenta cheii publice corespunzatoare) impreuna cu utilizarea datelor publice autentice, protejeaza implicit impotriva fraudelor; daca sunt folosite date publice incorecte, transformarile criptografice pur si simplu esueaza. Mai in amanunt: verificarea de semnatura esueaza, autentificarea entitatii esueaza, rezultatele encriptiei cheii publice rezida in text indescifrabil, etc. Motivarea din spatele sistemelor bazate pe identitate este de a crea un sistem criptografic modeland un sistem de posta ideal unde cunosterea doar a numelui unei persone e sufficient pentru a permite scrisorii sa fie trimise astfel incat sa fie citita numai de persoana respective si pentru a permite verificarea semnaturii. Intr-un astfel de sistem criptografic ideal: 1. utilizatorii nu trebuie sa schimbe chei simetrice sau publice; 2. directoarele publice (fisiere cu chei publice sau certificate) nu trebuie pastrate; si 3. serviciile unei autoritati de incredere sunt necesare numai in faza incipienta (in timpul careia utilizatorii dobandesc parametrii sistem autentici pentru a fi mentinuti) Remarca (sisteme ideale vs. sisteme bazate pe ID) In multe propuneri concrete a sitemelor bazate pe ID identitatea datelor utilizatorului cerute include date aditionale (un intreg sau o valoare publica), asa cum se observa Da in figura 2(b), sub o identitate primara IDa. Ideal, Da nu este cerut, ca motivare primara pentru scheme bazate pe identitate fiind eliminarea nevoii de a transmite chei publice, pentru e permite protocoale non interactive cu informatii de identificare sa fie suficiente ca si chei publice autentice. Problema e mai putin semnificativa in semnatura si scheme de identificare unde cheia publica a unui pretendent nu e ceruta pana nu se primeste un mesaj de la acest pretendent (in acest caz Da este oferit cu usurinta); dar in acest caz avantajul schemelor bazate pe identitate se diminueaza. Este critic in criptarea cu chei publice in care cheia publica a altui partener este necesara. Exemplu (sisteme bazte pe ID implementate folosind card-uri) un sistem bazat pe ID simplificat bazat pe card-uri poate rula dupa cum urmeaza. Un partener neutru T, care se comporta ca un sistem de generare de chei sigure, este unic responsabil pentru a oferi fiecarui utilizator un card in timpul

8 unei faze initiale, continand cheia private a partenerului bazat pe ID, dupa efectuarea unei verificari de identitate. Daca nu mai trebuie adaugati noi utilizatori pe viitor, T poate publica datele sistem si isi poate inceta existenta. Utilizatorii sunt responsabili sa nu-si dezvaluie cheile private sau sa-si piarda card-urile. Chei publice implicit certificate Alta varianta a sistemelor cu chei publice sunt sistemele asimetrice cu chei publice implicit certificate. Aici cheile publice implicite exista (Figura 2(c)), dar ele trebuie reconstruite mai degraba decat transportate de catre certificate chei publice ca in sistemele bazate pe certificate. Sisteme cu chei publice implicit certificate sunt destinate pentru: 1. Cheile publice ale entitatilor pot fi reconstruite (de catre alte parti) din date publice (care inlocuiesc un certificate). 2. Data publica din care o cheie publica e reconstruita include: a. Date (i.e. sistem) publice associate cu un partener de incredere T. b. Identitatea entitatii utilizatorului (sau informatia de identificare, e.g. nume si adresa) c. Date publice aditionale per utilizator (date publice de reconstructie) 3. Integritatea unei chei publice reconstruite nu e direct verificabila, dar o cheie publica corecta poate fi recuperat doar din date publice autentice ale utilizatorului. In ceea ce priveste autenticitatea cheilor publice reconstruite, proiectarea sistemului trebuie sa garanteze: 1. Alterarea fie a identitatii utilizatorului, fie a reconstructiei datelor publice rezulta in recuperarea unei chei publice alterate, care cauzeaza interzicerea serviciului, nu si expunearea criptografica 2. Este nerealizabil ca un adversary (fara cunoasterea datelor private T) sa calculeze o cheie private corespunzatoare cheilor private a fiecarui partener, sau sa contruiasca o identitate de user potrivita sis a reconstruiasca date publice pentru care de asemenea o cheie private corespunzatoare trebuie calculate. Cheile publice reconstruite sunt acelea implicit autentificate de reconstructie. Remarca (aplicatii pentru chei implicit certificate) Cheile publice implicit certificate pot fi folosite cu un sens alternativ pentru distribuirea de chei publice (ex. chei Diffie-Hellman ) in diverse protocoale cu chei, sau in conjunctie cu protocoale de identificare, scheme de semnatura digitala si scheme de encriptie chei publice. Clase de chei publice certificate implicit Doua clase de chei publice implicit certificate pot fi deosebite: 1. chei publice bazate pe identitate (Clasa 1). Cheia private a fiecarei identitati A este compusa de un partener de incredere T, bazat pe informatia de identificare pentru A si cheia private a lui T; este de asemenea o functie de reconstructie a datelor publice a utilizatorului A, care e fxata in prealabil de T. Cheia private a lui A este transferata sigur mai apoi de T catre A. 2. chei publice auto-certificate (Clasa 2). Fiecare entitate A isi compune propria cheie private si cheia publica corespunzatoare. Reconstructia datelor publice pentru A (mai degraba decat cheia private a lui A, ca in Clasa 1) este calculate de T ca o functie de cheia publica (transferata de T catre A). Clasa 1 necesita mai multa siguranta de partea partenerului neutru, unde are acces al cheile private ale utilizatorului. Aceasta difera de Clasa 2, ca si diferenta intre termenii auto si auto-certificat, care se refera la cunostintele acestei chei de a fi restrictionata de catre insasi entitatea. (a) Sistem de chei publice (chei publice explicite)

9 (b) Sistem bazat pe identitate St, Pt sunt cheile publice private ale lui T; Da este data publica pentru A Figura 2: Managementul cheilor in clase diferite pentru sisteme de semnatura asimetrice (c) Sistem cu chei publice certificate implicit

10 Figura 2: Managementul cheilor in clase diferite pentru sisteme de semnatura asimetrice Comparatie intre tehnicile de distributie a cheilor publice Figura 2 ilustreaza clasele corespondente pentru sistemele de semnatura asimetrice, contrastul sistemelor cu chei publice (cu chei publice explicite), sisteme bazate pe identitate (cheia publica este o informatie ce identifica utilizatorul) si sitemele cu chei publice implicit certificate (o cheie publica implicit certificate este reconstruita din datele publice ale utilizatorului). Diferentele principale sunt dupa cum urmeaza: 1. Sistemele de chei publice bazate pe certificate au chei publice explicite, in timp ce sistemele bazate pe ID nu; in sistemele implicit certificate cheile publice explicite sunt reconstruite. Cheia publica exlicita in sisteme de chei publice (Figura 2a) este inlocuita de: a. Tripletul (Da, IDa, Pt) pentru sistemele bazate pe identitate (Figura 2b). IDa este un sir de caractere pentru A, Da este data publica suplimentara (definite de catre T si legata de IDa si cheia private a lui A), si Pt consta in cheia private (sau parametric sistem) a unei autoritati sigure T. b. Tripletul (Ra, IDa, Pt) pentru sisteme cu chei publice implicit certificate (Figura 2c). In acest caz o cheie publica explicita Pa este reconstruita din acesti parametric. Datele publice de reconstructie Ra joaca rol analog datei publice Da in figura 2b. 2. Autenticitatea cheilor publice poate (si trebuie) sa fie explicit verificata in sisteme bazate pe certificate, nu si in sisteme bazate pe ID sau sisteme cu certificate implicite. 3. Autoritatea trebuie sa cunoasca cheile private ale utilizatorilor sistemelor de chei publice bazate pe certificate sau sisteme certificate implicit cu chei bazate pe ID. 4. La fel ca in cazul sistemelor bazate pe identitate, cheile publice implicit certificate (ale ambelor clase) depend de informatia de identificare a entitatii si in acest sens sunt de asemenea bazate pe identitate. Oricum, sistemele bazate pe ID evita in intregime cheile publice explicite (datele de identificare ale unui utilizator sunt esenta cheia sa publica) in timp ce cheile publice implicit certificate nu sunt restrictionate de identitatea utilizatorului si pot fi compuse explicit (si astfel mai usor de folosit in conjunctie cu schemele cu chei publice obisnuite). 5. Cele doua clase de chei publice implicit certificate (Figura 2c) difera in relatia dintre ele intre recontructia datelor publice utilizator si cheile private dupa cum urmeaza. a. Clasa 1: cheia private a unui utilizator este calculate ca functie de reconstructie a datelor si aceasta cheie private este calculate de autoritatea de incredere. b. Clasa 2: datele de reconstructie sunt calculate ca o functie de cheia publica a utilizatorului si cheia privata corespunzatoare este construita de insusi partener.

11 6. In toate cele 3 abordari, la un anumit nivel un partener neutru care are o anumit nivel de incredere este necesar pentru a oferi o legatura de transfer al increderei intre utilizatori care nu s-au intalnit poate niciodata si nu impart decat parametric de sistem autentici (si posibil acunoastere a identitatii altor utilizatori) Remarca (chei publice implicit certificate vs. chei publice certificate) Printre avantajele cheilor publice implicit certificate peste cheile publice certificate amintim: posibi spatiu necesar mai redus (certificatele cu semnatura necesita psatiu pentru semnatura); posibila economie de putere de calcul (verificarea de semnatura, asa cum era necesar certifcatelor, este evitata); economie de comunicatii (e.g. cazul in care identitatea este cunoscuta deja). Enumerand aceste puncte, calculele sunt necesare de fapt pentru a reconstrui o cheie publica; reconstructia de date publice este de obicei necesara. Remarca (revocarea cheilor in sisteme bazte pe ID) Revocarea cheilor publice poate fi adresata in scheme bazate pe ID si scheme care folosesc chei publice implicit certificate prin incorporarea informatiilor cum ar fi perioada de validitate a cheilor sau numarul de serie din sirul de identificare folosit la calcularea unei chei publice. Problema revocarii este astfel analoaga cu cea a certificatelor chei publice. Informatii suplimentare, e.g. politica de securitate asociata, pot fi incapsulate.