Criptografía de clave pública para dummies.

En primer lugar, no soy ningún experto (el FSM me libre) pero lo poco que sé me gustaría plasmarlo. Y preferiría hacerlo en un lenguaje de forma que me entienda todo cristo (dicho de otra manera, un manual para Dummies).

Los algoritmos de clave pública se basan en que cada persona tiene dos llaves, una privada (que ha de permanecer en secreto) y una pública (que todo el mundo conoce). Todo lo que “cierra” una (cifra) lo “abre” la otra (descifra). La clave de todo está en que lo que una cifra, ella misma no lo puede descifrar. Veamos qué interes puede tener este lío.

En primer lugar, presentar a los dos personajes que van a servir de ejemplo: A y B. PvA y PvB serán las claves privadas de A y B respectivamente. Por otra parte, PcA y PcB serán las claves públicas. Por otra parte, sea F una de las claves anteriores y m un mensaje, se denotará F(m) y, abreviando, Fm como el mensaje resultante de cifrar m con F

Primer caso: comprobar origen.

Mediante la criptografía de clave pública es fácil comprobar un origen, si todo se realiza adecuadamente. En este caso, usaremos un ejemplo al estilo repositorio de paquetes. Imaginemos que B es programador (sí, esa gente rara y sin escrúpulos que crea programas) y quiere que la gente sepa que el software que se está descargando es realmente suyo. Para ello, sea el paquete p, basta con que B distribuya el PvBp. De esta forma, si se utiliza la clave pública de B, podremos obtener PcBPvBp=p, que es el paquete original, a la vez que se comprueba que B es el emisor. Si hubiese sido modificado, PcB no lo descifraría.

Segundo caso: sólo para tus ojos.

Supongamos que A quiere enviar un mensaje que sólo ha de ver B. Para ello, se ha de servir de PcB. Puesto que todo lo que se cifra con PcB se descifra únicamente con PvB, el mensaje sólo lo podrá descifrar B. Por lo tanto, el mensaje a enviar será PcBm.

Otro día más.

Author: Serabe

Mathematician, and Ruby and JavaScript programmer. Sometimes I speak at conferences and local meetups.

Leave a Reply

Your email address will not be published. Required fields are marked *