Exemple d'algorisme asimètric: RSA. Hi ha diferents algoritmes asimètrics. Un dels més coneguts és el RSA (A causa dels seus desenvolupadors). Aquest algoritme es fa servir àmpliament en els navegadors, per a llocs web segurs i per a xifrar correus electrònics. Està al domini públic.

Exemple d'algorisme asimètric: RSA per xifrar

Per xifrar un missatge, fem: c = m ^ i mod n

Per desxifrar-: m = c ^ d mod nm = Text sense format

c = Missatge xifrat

(I, n) = Clau pública

(D, n) = Clau privada

no = És el producte de dos nombres primers

^ = És l'operació de exponenciació (a ^ b: la potència b)

mod = És l'operació de mòdul (resta de la divisió entera)

Crea un parell de claus

És molt simple, però vés amb compte a l'escollir y, d y no. I sàpiga que el càlcul d'aquests tres nombres és delicat.

Aquí s'explica com fer-ho:

1. Recull dos nombres primers p y que (Aproximadament la mateixa mida). calcular n = per què.

2. Recull un nombre y que no té cap factor en comú amb (P-1) (q-1).

3. Calcular d com a ed mod (p-1) (q-1) = 1.

el parell (I, n) És la clau pública. (D, n) És la clau privada.

Exemple:

Primer, creiem el nostre parell de claus:

Recull dos nombres primers a l'atzar: p = 29, q = 37

Calcular n = pq = 29 * 37 = 1073

y s'ha d'elegir a l'atzar perquè y no tenen factors en comú amb (P-1) (q-1):

(P-1) (q-1) = (29-1) (37-1) = 1008

recollir i = 71

per triar d com a 71 * d mod 1008 = 1

Anem a trobar d = 1079

Ara tenim les nostres claus:

  • La clau pública és (I, n) = (71.1073) (= Clau de xifrat)
  • La clau privada és (D, n) = (1079.1073) (= Clau de desxifrat)

Encriptem el missatge «Hola ». aconseguim el codi ASCII de cada lletra i els posem un a la banda de l'altre:

m = 7269767679

Llavors hem de tallar el missatge en blocs que continguin menys dígits que no. no té 4 dígits, així que talli el nostre missatge en blocs de tres dígits:

726 976 767 900

(Complet amb zeros)

Després encriptaremos cada bloc:

726 ^ 71 mod 1073 = 436

976 ^ 71 mod 1073 = 822

767 ^ 71 mod 1073 = 825

900 ^ 71 mod 1073 = 552

El missatge encriptat és 436 822 825 552. Es pot desxifrar amb gras> d:

436 ^ 1079 mod 1073 = 726

822 ^ 1079 mod 1073 = 976

825 ^ 1079 mod 1073 = 767

552 ^ 1079 mod 1073 = 900

És a dir, la seqüència de nombres. 726976767900.

Trobem el nostre missatge en text pla 72 69 76 76 79: «HOLA».

A la pràctica

A la pràctica, no és tan fàcil programar:

  • Necessites trobar nombres primers grans (això pot ser massa llarg per calcular)
  • Necessites obtenir nombres primers p y que aleatori (que no és fàcil).
  • No utilitza blocs tan petits com en l'exemple anterior: hauria de poder calcular potències i mòduls amb nombres molt grans.

De fet, els algoritmes asimètrics mai s'utilitzen per xifrar totes les dades perquè porta massa temps calcular-los: les dades es xifren amb un algoritme simètric la clau es tria aleatòriament, i és aquesta clau la qual es desxifra amb un algoritme asimètric com El RSA.

Programaris per xifrar arxius

Si voleu xifrar els seus arxius, us recomano l'excel·lent programari PGP (Pretty Good Privacy) o GPG (el GNU Privacy Guard).

Hi ha altres algoritmes asimètrics, inclosos els ECC (Criptosistemes de corba el·líptica, per corba el·líptica). Aquest sistema es basa en una corba paramètrica que passa un cert nombre de punts de coordenades sencers. Encara no està ben desenvolupat, però és prometedor.

També hi ha el Diffie-hellman , Es prefereix cada vegada més que RSA. (Diffie-Hellman va ser ràpidament adoptat per la comunitat de codi obert quan RSA encara no era de domini públic).