5.6.3 ALGORITMOS DE LLAVE
PUBLICA (ASIMETRICOS)
Los investigadores Whitfield Diffie y Martin
Hellman, surgieron con la criptografía de llave asimétrica en 1975 para
resolver el problema de poseer una sola llave simétrica. Con este sistema,
todos los que quieran comunicarse posiblemente tienen un par de llaves:
una llave pública y una llave privada. La llave privada no puede
descubrirse desde la llave pública. Para usar la analogía de cerradura,
imagine una cerradura que requiere de una llave para cerrarla y otra llave
para abrirla.
Se puede observar dos conceptos, la de
ciframiento, de conocimiento público, y otra de desciframiento, secreto.
Si un usuario desea mandar un mensaje para un usuario B, utiliza la llave
de ciframiento que es publicada o tornada accesible a los usuarios, sin
que se haya quebrado la seguridad. De esa forma cada usuario tiene una
llave de ciframiento pública PB y envía un mensaje para B. Este posee su
llave de desciframiento secreta SB, que decodifica el mensaje.
Cada parte de la transacción posee un "par
de llaves", que consiste en dos llaves, con una relación muy particular,
que permite que una encripte un mensaje que la otra puede desencriptar.
Una de estas llaves está disponible al público y la otra es una llave
"privada". Un mensaje encriptado con la llave pública de una persona no
puede ser desencriptado con la misma llave, pero puede ser desencriptado
con la llave privada a la que corresponde. Si se autoriza una transacción
con el banco usando su llave privada, el banco puede leerla con la llave
pública correspondiente y sabe que sólo ese usuario puede haberla enviado.
Esto es el equivalente a una "firma digital".
En la criptografía simétrica, ambas partes
tienen la misma llave, que pueden usar para encriptar y desencriptar
mensajes. En la criptografía asimétrica, las llaves usadas por las
diferentes partes no son las mismas, siempre y cuando el sistema no sea
simétrico. Este tipo de sistema también es llamado criptografía de llave
pública. Hay varias llaves públicas, diferentes en el criptosistema que
usa diferentes algoritmos, que significa la manera en que los componentes
de las llaves privadas y públicas se generan diferentes. Hay una sola
llave pública en el criptosistema que está hoy en día en una amplia
aceptación. Esta se llama RSA, nombrada por sus inventores, Ron
Rivest, Adi Shamir y Leonard
Adelman.
En la criptografía de llave pública una de
sus llaves es "pública" o distribuida ampliamente. Esto no compromete su
llave privada, que no puede derivarse desde su llave pública. La llave
pública se da a alguien que quiere comunicarse con otro usuario. Alguien
puede usar su llave pública para encriptar un mensaje (usando un algoritmo
de llave pública como la cifra) y el otro usuario puede desencriptar
usando su llave privada. Ahora cada persona tiene su propio par de llaves,
para que la probabilidad de que alguien divulgue una llave sea menor,
podría descubrirse que la llave ha estado en su posesión cuando se usó. La
criptografía de Llave Pública es el primer ingrediente para las firmas
digitales.
Ejemplo de Uso: María y Carlos quieren
establecer una comunicación bidireccional. Para realizar ésto, cada parte
daría su llave pública a la otra parte. María usaría la llave pública de
Carlos para pasar el mensaje encriptado a Carlos. Carlos usaría su llave
privada para desencriptar el mensaje. Para la respuesta desde Carlos a
María, Carlos usaría la llave pública de María para encriptar el mensaje y
María usaría su llave privada para desencriptar el mensaje.
Desafortunadamente, la criptografía de llave
pública es muy cara computacionalmente, de tal manera que ésto no es como
es usado. Los sistemas simétricos son mucho más rápidos, cuando la
comunicación es segura, la llave pública se usa para encriptar un "secreto
compartido" por una de los partes y entonces la criptografía simétrica se
usa para la comunicación.
Como podemos apreciar en la siguiente
figura:
El software de María genera una llave
simétrica y usa la llave pública de Carlos para encriptarlo, entonces lo
envía a Carlos. Carlos entonces usa la llave pública de María para
encriptar, la misma llave que ella envió y la envía de regreso. Esto
confirma lo que realmente Carlos consiguió con la llave. Ahora ellos
pueden usar esta llave para continuar la comunicación con la cifra
simétrica más rápida.
Una característica importante del RSA de la
criptografía de llave pública, es que la llave puede "abrir" lo que su
compañero está "cerrando" o invertir la operación de su compañero. Para la
privacidad segura, esto no es de mucho uso. Si usted usó su llave privada
para encriptar los datos, alguien podría leer los datos usando su llave
pública para desencriptarlo.
Los algoritmos simétricos son ejecutados más
rápidamente por el computador que los asimétricos. Generalmente son
utilizados en conjunto, de esa forma un algoritmo de llave pública es
usado para cifrar una llave generada aleatoriamente, y esa llave es usada
para cifrar un mensaje usando un algoritmo simétrico.
La criptografía de llave pública disminuye
el riesgo de que una información privada sea interceptada y permite que
las partes se identifiquen positivamente una a otra, a través de firmas
digitales.
Existen varios métodos de llave pública,
entre ellos: Diffie-Hellman, Método de Mochila (Knapsack), Pohlig-Hellman,
Rabin, Feige-Fiat-Shamir, etc.
Para que un algoritmo pueda ser analizado
del punto de vista de robustez a ataques, son asumidas las siguientes
premisas:
- el criptoanalista tiene acceso al
descifrado completo del algoritmo,
- el criptoanalista tiene acceso a grandes
volúmenes de mensajes originales y sus correspondientes mensajes
cifrados,
- el criptoanalista es capaz de escoger qué
mensajes serán cifrados y recibir los correspondientes mensajes
cifrados.
La mayoría de sistemas utiliza normas para
evitar que esas premisas se realicen, el criptosistema que no se base en
esas premisas es automáticamente tomado como inseguro.
Algoritmos modernos de criptografía no
pueden ser ejecutados por humanos. Algoritmos fuertes y poderosos son
desarrollados para que sean ejecutados por computadoras o dispositivos
especiales de hardware. La mayor parte de las aplicaciones de criptografía
es hecha por software, y varios paquetes criptográficos están
disponibles.