IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

La criptografia asimètrica es un mètode criptogràfic que utilitza dues claus públiques. Les dues claus pertanyen a la mateixa persona, la que rep el missatge. Una de les claus es pública i qualsevol persona pot aconseguir-la, l'altre es privada i el seu propietari deu protegir-la perquè ningú tingui accés a ella. El emissor fa ús de la clau pública per xifrar el missatge, que només podrà ser desxifrat amb la clau privada.

Aquest sistema va ser inventat per evitar els problemes de la criptografia simètrica, en la qual l'emissor i el receptor s'han de posar d'acord per utilitzar la mateixa clau. Només es necessita que abans de enviar el missatge, l'emissor tingui una copia de la clau pública del receptor.


Funcionament

Els sistemes de criptografia asimètrica es basen en funcions-trampa d'un sol sentit. Una funció d'un sol sentit es aquella que es fàcil de calcular, mentre que la seva inversió resulta extremadament difícil. Per exemple, és fàcil multiplicar dos números primaris junts per obtenir un de compost, però es difícil factoritzar aquest número compost en els dos números primaris inicials. Però si tinguéssim un dels números primaris i el compost, podríem aconseguir l'altre fàcilment. Això es una funció-trampa.

Una clau pública conté un número compost per dos números primaris extensos, i el algoritme de xifrat utilitza aquest compost per xifrar el missatge. L'algoritme per desxifrar el missatge requereix el coneixement dels dos números primaris, d'aquesta manera es fàcil aconseguir-los si tenim el número compost (clau pública) i un dels dos números primaris (clau privada). Sense cap dels números primaris, es extremadament difícil aconseguir factoritzar el número compost.

Seguretat

Amb un bon sistema de xifrat de clau pública, tota la seguretat depèn de la clau i no de l'algoritme. Per aquesta raó s'utilitza un tamany de clau considerable, però no es pot comparar el tamany de clau de xifrat simètric amb el de xifrat de clau pública per mesurar la seguretat. En un atac per força bruta sobre un xifrat simètric d'un tamany de 80 bits, l'atacant ha de provar una quantitat de 281-1 vegades per trobar la clau correcta. En canvi, en un atac per força bruta sobre un xifrat de clau pública de tamany 512 bits, el atacant ha de factoritzar un número compost codificat en 512 bits (fins a 155 dígits en format decimal), es a dir, ha de extreure els dos números primaris que formen el compost. La quantitat de treball de l'atacant serà diferent depenent del xifrat que estigui atacant. Mentre que 128 bits son suficients per a xifrats simètrics, donada la tecnologia de factorització d'avui dia, es recomana l'ús de claus públiques de 1024 bits.

Diferencies respecte al algoritme de xifrat simètric

La principal avantatge es que només amb la clau pública ja pots enviar un missatge xifrat al receptor.

Les desavantatges son:

  • Per a una mateixa longitud de clau i de missatge es requereix més temps de procés.
  • Les claus son de major tamany que les simètriques.
  • El missatge xifrat ocupa més espai que l'original.

Eines com PGP o SSH per la jerarquia de protocols TCP/IP, utilitzen un híbrid format per la criptografia asimètrica per intercanviar claus de criptografia simètrica, i la criptografia simètrica para la transmissió de la informació.

Algoritmes

Alguns algoritmes reconeguts son:

  • Diffie-Hellman
  • RSA
  • DSA
  • ElGamal
  • Criptografia de curva el·líptica

Protocols

Alguns protocols que utilitzen els algoritmes abans citats son:

  • DSS ("Digital Signature Standard") amb el algoritme DSA
  • PGP
  • GPG una implementació de OpenPGP
  • SSH
  • SSL
  • TLS