Algoritm Asimetric de Criptare - Algoritmul EG

download Algoritm Asimetric de Criptare - Algoritmul EG

of 6

Transcript of Algoritm Asimetric de Criptare - Algoritmul EG

  • 7/27/2019 Algoritm Asimetric de Criptare - Algoritmul EG

    1/6

    1. Noiuni generale

    Algoritmi criptografici cu chei publice (asimetrici)

    O nou privire asupra sistemelor criptografice au adus-o algoritmii de criptare asimetrici (cu chei

    publice). Aceti algoritmi se caracterizeaz prin aceea, c la criptare i decriptare se folosesc chei diferite,

    legate ntre ele printr-o relaie matematic. Acest tip de relaie este de o aa natur, c cunoscnd o cheie,s o determini pe cealalt, din punct de vedere computaional, este foarte greu. Astfel dac criptm cu

    prima cheie vom putea decripta doar cu cea de adoua i invers. n acest fel pentru transmitere de

    informaii secrete una dintre chei (de exemplu cea de criptare) poate fi fcut public, pe cnd cealalt s

    fie inut n secret (cheie privat). Dac de fcut cheia de descifrare public, atunci pe baza acestui sistem

    se poate de creat un sistem de autentificare.

    Figura 1. Schema de aplicare a algoritmului asimetric de criptare

    Din cele expuse aici se pot evidenia dou direcii de utilizare a criptosistemelor asimetrice:

    de confidenialitate - se face public cheia public i astfel cel care dorete s trimit date

    confideniale proprietarului cheii publice va cripta aceste date cu aceast cheie, tiind c doar proprietarul

    le va putea decripta;

    de autentificare att a emitorului ct i a datelor - emitorul cripteaz datele cu cheia sa

    secret (privat), iar cel ce va dori s autentifice datele va folosi la decriptare cheia pereche (cea fcut

    public).

    Chiar dac criptosistemul asimetric este destul de puternic, vom avea nevoie ca lungimea cheii s

    fie de minimum 2304 bii pentru a oferi un nivel de securitate comparabil cu cel oferit de o cheie de 128

    bii n criptosistemul simetric. Criptosistemele asimetrice sunt cu mult mai lente la criptare/decriptare i

    sunt nepractice la criptarea volumelor mari de informaii. Criptosistemele simetrice sunt de aproximativ

    1000 de ori mai rapide ca cele asimetrice, deaceea criptosistemele asimetrice cel mai des se folosesc n

    urmtoarele scopuri de baz:

    la distribuia cheilor, care se folosesc la algoritmii simetrici de criptare

    semntura digital, un atribut al unui utilizator, folosit pentru recunoaterea acestuia.

  • 7/27/2019 Algoritm Asimetric de Criptare - Algoritmul EG

    2/6

    Tehnica cheilor publice poate fi folosit i pentru autentificarea mesajelor, prin aa numita

    semnatur digital, fapt care i-a sporit popularitatea. Folosind algoritmi cu cheie public (asimetrici), se

    creaz criptosisteme cu dou chei, n cadrul crora doi utilizatori (procese) pot comunica cunoscnd

    fiecare doar cheia public a celuilalt.

    n criptosistemele cu chei publice fiecare utilizator A, deine o transformare de cifrare public, EA, care

    poate fi memorat ntr-un registru (fiier) public i o transformare de descifrare secret, DA , ce nu este

    posibil s fie obinut din EA. Cheia de descifrare (secret) este derivat din cheia de cifrare (public)

    printr-o transformare greu inversabila (one-way). n sistemele cu chei publice, protecia i autentificarea

    sunt realizate prin transformari distincte. S presupunem ca utilizatorul (procesul) A doreste s emit un

    mesaj, M, unui alt utilizator (proces) B. Dac A cunoate transformarea public E B, atunci A poate

    transmite M la B sub forma C=EB(M), asigurndu-se astfel funcia de confidenialitate.

    La recepie, B, va descifra criptograma C utiliznd transformarea secret D B, cunoscut doar de el:

    DB(C) = DB(EB(M)) = M.

    Schema nu furnizeaz faciliti de autentificare, deoarece orice utilizator (proces) are acces la

    transformarea public EB a lui B i i poate trimite mesaje false M' sub forma C'=E B(M').

    Pentru autentificare se aplic lui M transformarea secret DA a lui A. Ignornd protecia pentru

    moment, A va emite C=DA(M) la B, care la recepie va aplica transformarea publica, E A a lui A:

    EA(C)=EA(DA(M))=M (a se vedea Crearea i Verificarea Semnturii Digitale).

    Autentificarea este realizat deoarece numai A poate aplica transformarea D A. Acest concept

    poart numele de semnatu digital, fiind folosit pentru recunoaterea sigur a utilizatorilor sau

    proceselor. Fie B un receptor de mesaj semnat de A. Semntura lui A trebuie s satisfac urmtoareleproprieti:

    B s fie capabil sa valideze semnatura lui A;

    sa fie imposibil pentru oricine, inclusiv B, s falsifice semnatura lui A;

    n cazul n care A nu recunoate semnarea unui mesaj M, trebuie s existe un judector" care s

    poat rezolva disputa dintre A i B.

    Protecia nu este asigurata, intrucit este posibil ca mesajul M sa fie obtinut de oricine, aplicind

    transformarea publica EA. Pentru a se realiza simultan protectia si autentificarea informatiilor spatiului

    {M} trebuie sa fie echivalent spatiului {C}, asa incit orice pereche (E A, DA) sa fie in masura sa opereze

    atit asupra textului clar, cit si asupra textului cifrat; n plus se cere ca EA i DA s fie mutual inverse,

    adic:

    EA(DA(M)) = DA(EA(M)) = M.

    Emitorul de mesaj A va aplica mai nti transformarea secret a sa, D A, mesajului M, semnndu-

    l. Apoi A va cifra rezultatul - utilizind transformarea public a lui B, E B i va emite ctre receptor

    criptograma: C=EB(DA(M)).

    Receptorul B l obine pe M aplicnd la nceput propria-i funcie de descifrare, DB, iar apoi

    transformare public a lui A, EA, cea care furnizeaza autentificarea :

    EA(DB(C))=EA(DB(EB(DA(M)))) = EA(DA(M)) =M.

  • 7/27/2019 Algoritm Asimetric de Criptare - Algoritmul EG

    3/6

    Cele mai ntrebuinate criptosisteme asimetrice sunt urmtoarele:

    RSA(Rivest-Shamir-Adleman)

    EG (ElGamal)

    ECC (Elliptical Curve Cryptography).

    2. Criptosistemul ElGamal

    Criptosistemul ElGamal a fost propus n anul 1985, de catre Taher ElGamal. Algoritmul ElGamal

    poate fi folosit att pentru criptare ct i pentru semnturi digitale. Securitatea acestui criptosistem se

    bazeaz pe intractabilitatea problemei logaritmului discret. Este un sistem de criptare probabilist, n

    sensul c unui plaintext i pot corespunde mai multe criptotexte (relaie `one-to-many'). Un dezavantaj al

    criptosistemului ElGamal este expansiunea mesajului cu un factor 2. Cu alte cuvinte, criptotextul este de

    dou ori mai mare fa de textul clar. Criptosistemul ElGamal este folosit n programul gratuit GNU

    Privacy Guard i n versiuni recente ale programului PGP.Avnd n vedere ultimele progrese ce s-au fcut n domeniul problemei logaritmului discret, un

    parametru p de dimensiune 512 bii furnizeaz o securitate marginal. Pentru securitate pe termen lung

    este recomandat s alegem p cu o dimensiune de minim 1024 biti. De asemenea, pentru a evita calcularea

    logaritmului discret cu ajutorul algoritmului Pohlig-Hellman, se alege p astfel nct p1 sa aib cel puin

    un divizor prim `mare'.

    Este esenial s alegem valori diferite pentru parametrul k n cazul n care dorim s criptm

    mesaje diferite. S presupunem c acelai k este folosit pentru a cripta mesajele m1 si m2, rezultatul fiind

    criptotextele (1, 1) si (2, 2). Atunci 1/2 = m1/m2, iar m2 poate fi calculat uor dac m1 este cunoscut.

    Mai mult, n acest caz se poate determina cheia privat a.

    El Gamal propune n o nou metod de semntur bazat pe schema de distribuie a cheilor a lui

    Diffie i Hellman. Schema presupune c A i B doreau stabilirea unei chei secrete kAB, A folosind

    informaia secret xA, iar B pe xB. De asemenea exist un ntreg prim mare p i un element a primitiv

    modulo p. A va calcula yA=axA mod p i va emite la B pe yA. Similar B va emite la A: yB=axB mod p. Ca

    urmare fiecare poate acum calcula cheia secret comun:

    kAB=(axA)xB mod p = (yA)xB mod p = (axB)xA mod p = (yB)xA mod p.

    Pentru ca A s transmit un mesaj m cifrat la B, 0mp-1, A va putea alege un k [0, p-1] care

    va servi drept cheie secret xA. El va calcula apoi cheia: kAB=yBk mod p, unde yB a fost obinut direct de la

    B sau dintr-un fiier cu chei publice. A va putea emite la B perechea (c1, c2), unde: c 1=ak mod p, i c2=kAB

    m mod p.

    Descifrarea se face i ea n dou etape. Mai nti se obine kAB:

    kAB = (ak)xB = (c1)xB mod p.

    Apoi se va obine mesajul clar prin mprirea lui c 2 la kAB. El Gamal propune pe baza acestei

    scheme o nou metod de semntur. Fie m un document semnat, 0mp-1. Fiierul public va conine

    cheia y=ax mod p pentru fiecare utilizator. Pentru a semna un document, A va folosi cheia sa secret x A

  • 7/27/2019 Algoritm Asimetric de Criptare - Algoritmul EG

    4/6

    ntr-o astfel de manier nct semntura s poat fi verificat de orice alt utilizator pe baza cheii publice

    yA.

    2.1 Procedura de semnare

    a) Se alege aleator un ntreg k, k [0, p-1], astfel ca c.m.m.d.c.(k, p-1) = 1;

    b) Se calculeaz: r = ak mod p. Semntura lui m este perechea (r,s), 0r, sp-1, care satisface condiia:

    m=yrrs (mod p) (*);

    c) acum condiia (*) poate fi scris: am=axraks mod p, prin rezolvarea ecuaiei m=xr+ks mod p, care are

    soluie dac se respect procedura a).

    2.2 Verificarea semnturii

    Fiind dai m, r, s, este uor s se verifice autenticitatea semnturii calculnd am (mod p), yrrs

    (mod p) i verificnd apoi dac sunt egale. Este indicat ca valoarea lui k, aleas aleator, s fie folosit o

    singur dat. Se poate folosi n acest scop un generator de k bazat pe un model DES (generator cucontor).

    2.3 Schema succint ElGamal:

    - cheia public: EA = aDA (mod n), unde a este o constant a sistemului cunoscut de ctre toi

    parametrii; n = este un numr prim;

    - cheia secret: DA, un numr natural.

    (1) Semnarea unui mesaj M se face dup urmtorul algoritm:

    pentru i=1, p-1 execut

    generez aleator ki n [0, n-1] astfel nctc.m.m.d.c. (ki, n-1)=1

    calculez ai = aki (mod n) din ecuaia:

    M=DAa1+k1a2+...+kp-1ap (mod n-1)

    sfrit

    Ca urmare semntura lui M realizat cu nivelul de securitate p este reprezentat de:

    S=(a1,a2,...,ap).

    (2) Verificarea semnturii se face calculnd separat:

    Valoarea 1 = aM mod n i Valoarea 2 = eAa1a1a2...ap-1ap mod n i comparndu-le dac sunt egale.Aceast schem introduce un factor de complexitate suplimentar prin nivelul p de securitate,

    ceea ce sporete rezistena schemei la atac criptanalitic. Criptanalistul este confruntat cu necesitatea

    inversrii tuturor funciilor exponeniale a i=aki (mod n) n cmp finit, ceea ce reprezint o problem grea

    computaional dac n este mare (128, 256, 512 bii).

    2.4 Generalizarea algoritmului de criptare asimetric ElGamal (EG)

    Schema de semntur ElGamal:

    Generarea semnturii

    Entitatea A semneaz un mesaj binar m de o lungime arbitrar.

    Pentru aceasta, entitatea A execut urmtoarele:

  • 7/27/2019 Algoritm Asimetric de Criptare - Algoritmul EG

    5/6

    Selecteaz aleator un nr. ntreg secret k, 1 k p-2, astfel nct cmmdc (k, p-1) =

    Calculeaz r = kmod p i k-1 mod (p-1)

    Calculeaz s = k-1(H(m)-a*r) mod (p-1), unde H este o funcie Hash

    Semntura mesajului m este perechea (r,s).

    Verificarea semnturii

    Pentru a verifica semntura (r,s) a mesajului m, entitatea B execut urmtoarele:

    Obine cheia public autentic (p, , y) a entitii A

    Verific dac 1 r p-1. Dac aceast inegalitate nu are loc, semntura (r, s) nu e valid.

    Calculeaz v1 = yr rs mod p.

    Calculeaz H(m) i v2 = H(m) mod p, unde H este o funcie Hash.

    Semntura (r,s) este acceptat dac i numai dac v1 = v2.

    Shema de semntur ElGamal

    Exemplu: A genereaz nr. prim p = 2357 i generatorul = 2 al gr. Z*2357.

    A alege cheia privat a =1751 i calculeaz y=a mod p=21751 mod 2357 = 1185.

    Cheia public a lui A este (p=2357, =2, y=1185), iar cheia sa privat este a =

    1751.

    Pentru a semna mesajul m=1463, A selecteaz aleator un ntreg k=1529,

    calculeaz r=k mod p=21529 mod 2357=1490 i k-1 mod (p-1)=245.

    A calculeaz S=245*(1463-1751*1490) mod 2356 = 1777. Semntura mesajului

    m=1463 este perechea (r=1490, s=1777). Pentru verificarea semnturii, B calculeaz v1=11851490 *14901777 mod 2357=1072,

    H(m)=1463 i v2=21463 mod 2357=1072.

    Entitatea B accept semntura deoarece v1 = v2.

    3. Avantajele criptrii cu chei publice

    Avantajele criptografiei cu chei publice sunt extraordinare, cu condiia ca

    aceasta s poat fi realizat practic fr nici un fel de urmri secundare negative. O

    inovaie adus de cheile publice privete gestiunea cheilor: cum se pot mnui i

    transmite chei. S considerm un criptosistem clasic (simetric). Cheia de criptare o

    furnizeaz i pe cea de decriptare i, prin urmare, prima nu poate fi fcut public.

    Aceasta nseamn c cele dou pri legale (emitorul i receptorul) trebuie s

    cad de acord n avans asupra metodei de criptare. Aceasta poate avea loc fie prin

    ntlnirea dintre cele dou pri, fie prin transmiterea cheii de criptare pe un anumit

    canal sigur.

    Dac se folosete un criptosistem cu chei publice, nu este obligatoriu ca cele

    dou pri s se fi ntlnit ele pot chiar s nu se cunoasc una cu alta sau chiar s

    nu fi comunicat ntre ele vreodat. Aceasta este un avantaj uria, de exemplu, n

  • 7/27/2019 Algoritm Asimetric de Criptare - Algoritmul EG

    6/6

    cazul unei mari bnci de date, unde exist numeroi utilizatori i unul dintre ei vrea

    s comunice numai cu anumit utilizator. Atunci el poate realiza acest lucru

    introducnd informaii n nsi baza de date. Criptosistemele cu chei publice i cele

    clasice se pot compara i n ce privete lungimea cheii. Deoarece fiecare cheie

    trebuie descris ntr-un fel sau altul, descrierea fiind o secven de litere ale unui

    anumit alfabet (adic un cuvnt), pare foarte natural s vorbim despre lungimea

    unei chei. Exist o diferen considerabil ntre criptosistemele cu chei publice i

    cele clasice.

    S considerm la nceput un criptosistem clasic. Dac cheia este mai lung

    dect textul clar, realmente nu s-a obinut nimic. Deoarece cheia trebuie transmis

    pe un canal sigur am putea transmite textul clar n locul cheii pe acelai canal sigur.

    Evident, n anumite situaii cheia se transmite n avans n ateptarea unui moment

    crucial. S considerm acum i criptosistemul cu chei publice. Lungimea cheii decriptare este n mare msur irelevant. Cheia este oricum public. Aceasta

    nseamn c i lungimea cheii de decriptare este irelevant, receptorul trebuind s

    o stocheze ntr-un singur loc.

    Uurina gestiunii cheilor poate fi privit cu ndreptire ca avantajul esenial

    al criptografiei cu chei publice.

    4. Concluzii

    Criptosistemul ElGamal are proprieti homomorfice, nsemnnd faptul c are loc relaia E(m0,k0) E(m1, k1) = E(m0 m1, k0+k1), unde E(m, k) reprezint criptarea mesajului m folosind numrul aleator

    k. Aceast proprietate l face potrivit pentru aplicaii de vot electronic sau licitaie electronic, ceea ce l

    face utilizabil n aceste domenii. nc de la inventarea sa, schema ElGamal a generat un interes continuu

    n comunitatea criptologilor. Cercetri asupra sistemului ct i aplicaii reale ale acestui criptosistem,

    continu i astzi. n plus, ideile ce stau la baza acestei scheme de criptare formeaz baza unor scheme de

    semnturi digitale ca DSS (Digital Standard Signature) sau Schnorr.