Entenent el RSA
Per fi he entés com funciona el xifrat RSA, i com tinc una memòria de peix, he decidit fer un post explicant-ho, per poder-m'ho recordar a mi mateix quan no m'enrecordi.
Partim de 2 usuaris, A i B. Cadascun te dues claus, una pública i una privada:
La única condició que s'ha de complir entre les claus de un usuari és que un missatge xifrat amb la clau privada es pot desencriptar amb la clau pública, i viceversa: KpuA[M] = KprA[M]
Les claus privades les te l'usuari i no les dona a ningú mes, però les públiques es distribueixen amb el missatge xifrat.
Per tant, per enviar un missatge (M) de A a B, el que fariem seria xifrar el missatge dues vegades, primer el missatge es xifra amb la clau privada de A i després amb la clau pública de B (que hem obtingut prèviament), de manera que tenim:
De A a B enviem -> KpuB[ KprA[M] ]
Quan aquest missatge arriba a B, primer desencripta el missatge de 'KpuB' amb la seva clau privada, i després desencripta KprA amb la clau pública de A (que ha obtingut prèviament), i de pas, s'assegura que el missatge que ha rebut prove de A ja que sol el usuari A ha pogut encriptar 'KprA', ja que sol ell té la clau privada... alhora hem autentificat el usuari!!
I volià!! ja tenim un mètode per enviar comunicacions encriptades bastant fiable :)
Tot i així, ens han dit que aquest mètode de comunicació requereix bastant CPU i ara per ara no és viable, o sigui que de moment sol s'utilitza per passar firmes digitals. Pero... temps al temps!! :)
Val a dir que això ho he tret de una explicació que va fer el professor de un curs que estic fent :P (és un curs de seguretat de xarxes).
El RSA és un mètode per xifrar un missatge de un punt a un altre de manera segura, és a dir, que sol ells 2 puguin veure el missatge com a tal, i que per molt que ens espiin, no puguin dexifrar el missatge.
Partim de 2 usuaris, A i B. Cadascun te dues claus, una pública i una privada:
- KpuA -> Clau pública de A
- KprA -> Clau privada de A
- KpuB -> Clau pública de B
- KprB -> Clau privada de B
La única condició que s'ha de complir entre les claus de un usuari és que un missatge xifrat amb la clau privada es pot desencriptar amb la clau pública, i viceversa: KpuA[M] = KprA[M]
Les claus privades les te l'usuari i no les dona a ningú mes, però les públiques es distribueixen amb el missatge xifrat.
Per tant, per enviar un missatge (M) de A a B, el que fariem seria xifrar el missatge dues vegades, primer el missatge es xifra amb la clau privada de A i després amb la clau pública de B (que hem obtingut prèviament), de manera que tenim:
De A a B enviem -> KpuB[ KprA[M] ]
Quan aquest missatge arriba a B, primer desencripta el missatge de 'KpuB' amb la seva clau privada, i després desencripta KprA amb la clau pública de A (que ha obtingut prèviament), i de pas, s'assegura que el missatge que ha rebut prove de A ja que sol el usuari A ha pogut encriptar 'KprA', ja que sol ell té la clau privada... alhora hem autentificat el usuari!!
I volià!! ja tenim un mètode per enviar comunicacions encriptades bastant fiable :)
Tot i així, ens han dit que aquest mètode de comunicació requereix bastant CPU i ara per ara no és viable, o sigui que de moment sol s'utilitza per passar firmes digitals. Pero... temps al temps!! :)
Val a dir que això ho he tret de una explicació que va fer el professor de un curs que estic fent :P (és un curs de seguretat de xarxes).
Etiquetes de comentaris: code



0 Comments:
Publica un comentari
<< Home