Vous êtes sur la page 1sur 14

Criptografa asimtrica(En ingls two-key cryptography)

Se desarroll en los aos 70 y utiliza complicados algoritmos matemticos


relacionados con nmeros primos y curvas elpticas. En este caso, cada
usuario del sistema criptogrfico ha de poseer una pareja de claves:
Clave Privada: Ser custodiada por su propietario y no se dar a
conocer a ningn otro.
Clave Pblica: ser conocida por todos los usuarios

Funcionamiento
En este mtodo criptogrfico se usa un par de claves para el envo de
mensajes. Las dos claves pertenecen a la misma persona que ha enviado el
mensaje. Una clave es pblica y se puede entregar a cualquier persona, la otra
clave es privada y el propietario debe guardarla de modo que nadie tenga
acceso a ella. Adems, los mtodos criptogrficos garantizan que esa pareja
de claves slo se puede generar una vez, de modo que se puede asumir que
no es posible que dos personas hayan obtenido casualmente la misma pareja
de claves.

Si el remitente usa la clave pblica del destinatario para cifrar el mensaje, una
vez cifrado, slo la clave privada del destinatario podr descifrar este mensaje,
ya que es el nico que la conoce. Por tanto se logra la confidencialidad del
envo del mensaje, nadie salvo el destinatario puede descifrarlo.
Si el propietario del par de claves usa su clave privada para cifrar el mensaje,
cualquiera puede descifrarlo utilizando su clave pblica. En este caso se
consigue por tanto la identificacin y autentificacin del remitente, ya que se
sabe que slo pudo haber sido l quien emple su clave privada.

Ejemplo:

Esta pareja de claves es complementaria, lo que cifra una solo lo puede


descifrar la otra y viceversa. Estas claves se obtienen mediante mtodos
matemticos complicados de forma que por razones de tiempo de cmputo es
imposible conocer una clave a partir de la otra. El beneficio obtenido consiste
en la supresin de la necesidad del envi de la clave, siendo por lo tanto un
sistema ms seguro.

Ventajas
Verstiles: resuelven muchos problemas.
Seguros.
No tienen problemas para la distribucin de claves.
Inconvenientes
Lentos.
Suelen necesitar soportes especiales: aritmticas de
grandes nmeros y otras.
Difciles de implementar en hardware.
Para resolver el inconveniente de lentitud en la operacin, el procedimiento que
suele seguirse para realizar el cifrado de un mensaje es utilizar un algoritmo de
clave pblica junto a uno de clave simtrica.

Una analoga con el cifrado de clave pblica es la de un buzn con una ranura
de correo. La ranura de correo est expuesta y accesible al pblico; su
ubicacin (la direccin de la calle) es, en esencia, la clave pblica. Alguien que
conozca la direccin de la calle puede ir a la puerta y colocar un mensaje
escrito a travs de la ranura; sin embargo, slo la persona que posee la llave
(clave privada) puede abrir el buzn de correo y leer el mensaje.

Las dos principales ramas de la criptografa de asimtrica son:

Cifrado de clave pblica: un mensaje cifrado con la clave pblica de un


destinatario no puede ser descifrado por nadie (incluyendo al que lo cifr),
excepto un poseedor de la clave privada correspondiente, presumiblemete su
propietario y la persona asociada con la clave pblica utilizada. Su funcin es
garantizar la confidencialidad del mensaje.
Firmas digitales: un mensaje firmado con la clave privada del remitente puede
ser verificado por cualquier persona que tenga acceso a la clave pblica de
dicho remitente, lo que demuestra que este remitente tena acceso a la clave
privada (y por lo tanto, es probable que sea la persona asociada con la clave
pblica utilizada). Se asegura as que el mensaje no ha sido alterado, puesto
que cualquier manipulacin del mensaje repercutira en un distinto resultado del
algoritmo de resumen del mensaje (encoded message digest). Se utiliza para
garantizar la autenticidad del mensaje.
Actualmente la Criptografa asimtrica es muy usada; sus dos principales
Aplicaciones son el intercambio de claves privadas y la firma digital. Una firma
Digital se puede definir como una cadena de caracteres que se agrega a un
archivo digital que hace el mismo papel que la firma convencional que se
escribe en un documento de papel ordinario.
Algunos algoritmos y tecnologas de clave asimtrica son:

Diffie-Hellman
RSA
DSA
ElGamal

Diffie-Hellman
El protocolo criptogrfico Diffie-Hellman,1 debido a Whitfield Diffie y Martin
Hellman (autores tambin del problema de Diffie-Hellman o DHP), es un
protocolo de establecimiento de claves entre partes que no han tenido contacto
previo, utilizando un canal inseguro, y de manera annima (no autentificada).
Se emplea generalmente como medio para acordar claves simtricas que
sern empleadas para el cifrado de una sesin (establecer clave de sesin).
Siendo no autenticado, sin embargo, provee las bases para varios protocolos
autenticados.
Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de
calcular logaritmos discretos en un cuerpo finito.
El sistema se basa en la idea de que dos interlocutores pueden generar
conjuntamente una clave compartida sin que un intruso que est escuchando
las comunicaciones pueda llegar a obtenerla.
Para ello cada interlocutor elige dos nmeros pblicos y un nmero secreto.
Usando una frmula matemtica, que incluye la exponenciacin, cada
interlocutor hace una serie de operaciones con los dos nmeros pblicos y el
secreto. A continuacin los interlocutores se intercambian los resultados de
forma pblica. En teora revertir esta funcin es tan difcil como calcular un
logaritmo discreto (Un sextilln de veces ms costosa que la exponenciacin
usada para transformar los nmeros). Por eso se dice que este nmero es el
resultado de aplicar una funcin unidireccional al nmero secreto.
RSA
RSA es un algoritmo de cifrado asimtrico, o de clave pblica, y es uno de los
algoritmos ms utilizados en la actualidad. De hecho, la mayor parte de los
sitios hoy corren sobre SSL/TLS, y permiten la autenticacin mediante cifrado
asimtrico basado en RSA.

RSA sirve para cifrar y descifrar informacin, y por ello tambin provee
servicios de autenticidad y de integridad, mediante lo que se conoce cono
Infraestructura de clave pblica.

As es que RSA, al ser un cifrador asimtrico, trabaja con dos claves, una
pblica y una privada. Todo el contenido de texto plano, o contenido sin cifrar,
que sea hecho con la clave pblica, podr ser descifrado mediante la clave
privada, y viceversa, todo contenido cifrado con la clave privada podr ser
descifrado mediante la clave pblica.

Funcionamiento
a) a cada usuario se le asigna un nmero entero n, que funciona como su clave
Pblica
b) solo el usuario respectivo conoce la factorizacin de n (o sea p,q), que
mantiene en secreto y es la clave privada.

c) existe un directorio de claves pblicas

d) si alguien quiere mandar un mensaje m a algn usuario entonces elige su


clave pblica n y con informacin adicional tambin pblica puede mandar el

mensaje cifrado c, que solo podr descifrar el usuario correspondiente, el


mensaje m convertido a nmero (codificacin) se somete a la siguiente
operacin (donde e es constante y pblico)

c = me modn
e) Entonces el mensaje c puede viajar sin problema por cualquier canal
inseguro

f) cuando la informacin cifrada llega a su destino el receptor procede a


descifrar el mensaje con la siguiente frmula.

g) Se puede mostrar que estas formulas son inversas y por lo tanto dan el
resultado deseado, (n,e) son la clave pblica, la clave privada es la pareja (p,q)
o equivalentemente el nmero d. La relacin que existe entre d y e es que uno
es el inverso multiplicativo del otro mdulo (n) donde (n) es el mnimo comn
mltiplo de p-1 y q-1, o tambin puede usarse (n)=(p-1)(q-1) esto significa que
la clave privada o el la pareja p,q o es el nmero d.
DSA

Es un estndar del Gobierno Federal de los Estados Unidos de Amrica o FIPS para
firmas digitales.
Propuesto por el Instituto Nacional de Normas y Tecnologa de los Estados Unidos para su
uso en su Estndar de Firma Digital (DSS), especificado en el FIPS 186.
Se hizo pblico el 30 de agosto de 1991.
Este algoritmo (como su nombre lo indica) sirve para firmar y no para cifrar
informacin.
Una desventaja de este algoritmo es que requiere mucho ms tiempo de cmputo que
RSA.
El funcionamiento de DSA se divide en 3 etapas. Generacin de claves, firma y
verificacin. Las dos primeras las realiza el emisor y la ltima el receptor tal y como se
muestra en la figura 5.6.1.
PARMETROS

1. En la generacin de claves: los datos son pblicos excepto x


p: Nmero primo de 512 bits de longitud como mnimo
q: Nmero primo de 160 bits de longitud
g: Parmetro utilizado para calcular la clave pblica
x: CLAVE PRIVADA DEL REMITENTE
y: CLAVE PBLICA DEL REMITENTE
2. En la firma
k: Nmero pseudoaleatorio nico para cada firma
s: Valor que corresponde a la firma
r: Valor de comprobacin de la firma
3. En la verificacin
w: Valor que se requiere en el descifrado de la firma
u1: Dato relativo al valor del hash del mensaje en claro
u2: Dato relativo a la Integridad de la firma
v: Valor de comprobacin y verificacin de firma

ElGamal
l procedimiento de cifrado/descifrado ElGamal se refiere a un esquema de cifrado
basado en el problema matemtico del logaritmo discreto. Es un algoritmo de criptografa
asimtrica basado en la idea de Diffie-Hellman y que funciona de una forma parecida a
este algoritmo discreto.
El algoritmo de ElGamal puede ser utilizado tanto para generar firmas digitales como
para cifrar o descifrar.
Fue descrito por Taher Elgamal en 19841 y se usa en software GNU Privacy Guard,
versiones recientes de PGP, y otros sistemas criptogrficos. Este algoritmo no est bajo
ninguna patente lo que lo hace de uso libre.
La seguridad del algoritmo se basa en la suposicin que la funcin utilizada es de un slo
sentido debido a la dificultad de calcular un logaritmo discreto.
El procedimiento de cifrado (y descifrado) est basado en clculos sobre un grupo
cclico cualquiera G lo que lleva a que la seguridad del mismo dependa de la dificultad de
calcular logaritmos discretos en G
.

Diferencias entre criptografa simtrica y asimtrica

Para empezar, la criptografa simtrica es ms insegura ya que el hecho de


pasar la clave es una gran vulnerabilidad, pero se puede cifrar y descifrar en
menor tiempo del que tarda la criptografa asimtrica, que es el principal
inconveniente y es la razn por la que existe la criptografa hbrida.

Criptografa hbrida

Este sistema es la unin de las ventajas de los dos anteriores, debemos de


partir que el problema de ambos sistemas criptogrficos es que el simtrico es
inseguro y el asimtrico es lento.

El proceso para usar un sistema criptogrfico hbrido es el siguiente (para


enviar un archivo):

Generar una clave pblica y otra privada (en el receptor).


Cifrar un archivo de forma sncrona.
El receptor nos enva su clave pblica.
Ciframos la clave que hemos usado para encriptar el archivo con la clave
pblica del receptor.
Enviamos el archivo cifrado (sncronamente) y la clave del archivo cifrada
(asncronamente y solo puede ver el receptor)

Funciones Hash
Una funcin criptogrfica hash- usualmente conocida como hash- es un algoritmo
matemtico que transforma cualquier bloque arbitrario de datos en una nueva serie de
caracteres con una longitud fija. Independientemente de la longitud de los datos de
entrada, el valor hash de salida tendr siempre la misma longitud.

A las funciones resumen tambin se les llama funciones hash o funciones


digest.123 Una funcin hash H es una funcin computable mediante un
algoritmo tal que:

H: U M
x h(x)
Tiene como entrada un conjunto de elementos, que suelen ser cadenas, y los
convierte en un rango de salida finito, normalmente cadenas de longitud fija. Es
decir, la funcin acta como una proyeccin del conjunto U sobre el conjunto
M.

Observar que M puede ser un conjunto definido de enteros. En este caso


podemos considerar que la longitud es fija si el conjunto es un rango de
nmeros de enteros ya que podemos considerar que la longitud fija es la del
nmero con mayor nmero de cifras. Todos los nmeros se pueden convertir al
nmero especificado de cifras simplemente anteponiendo ceros.
Normalmente el conjunto U tiene un nmero elevado de elementos y M es un
conjunto de cadenas con un nmero ms o menos pequeo de smbolos. La
idea bsica de un valor hash es que sirva como una representacin compacta
de la cadena de entrada.

Por esta razn se dice que estas funciones resumen datos del conjunto
dominio.

Los hash o funciones de resumen son algoritmos que consiguen


crear a partir de una entrada (ya sea un texto, una contrasea o un
archivo, por ejemplo) una salida alfanumrica de longitud
normalmente fija que representa un resumen de toda la
informacin que se le ha dado (es decir, a partir de los datos de la
entrada crea una cadena que solo puede volverse a crear con esos
mismos datos).

Estas funciones no tienen el mismo propsito que la criptografa


simtrica y asimtrica, tiene varios cometidos, entre ellos est
asegurar que no se ha modificado un archivo en una transmisin,
hacer ilegible una contrasea o firmar digitalmente un
documento.

Caractersticas de los hash


En definitiva las funciones hash se encargan de representar de
forma compacta un archivo o conjunto de datos que
normalmente es de mayor tamao que el hash
independientemente del propsito de su uso.

Este sistema de criptografa usa algoritmos que aseguran que con


la respuesta (o hash) nunca se podr saber cuales han sido los
datos insertados, lo que indica que es una funcin
unidireccional. Sabiendo que se puede generar cualquier
resumen a partir de cualquier dato nos podemos preguntar si se
podran repetir estos resmenes (hash) y la respuesta es que
tericamente si, podra haber colisiones, ya que no es fcil tener
una funcin hash perfecta (que consiga que no se repita la
respuesta), pero esto no supone un problema, ya que si se
consiguieran (con un buen algoritmo) dos hash iguales los
contenidos seran totalmente distintos.

Es posible que existan huellas digitales iguales para objetos diferentes,


porque una funcin hash tiene un nmero de bits definido. En el caso del
SHA-1, tiene 160bits, y los posibles objetos a resumir no tienen un tamao
lmite. A partir de un hash o huella digital, no podemos recuperar el conjunto
de datos originales. Los ms conocidos son el MD5 y el SHA-1, aunque
actualmente no son seguros utilizarlos ya que se han encontrado colisiones.
Cifrar una huella digital se conoce como firma digital.
Requisitos que deben cumplir las funciones hash:

Imposibilidad de obtener el texto original a partir de la huella digital.


Imposibilidad de encontrar un conjunto de datos diferentes que tengan
la misma huella digital (aunque como hemos visto anteriormente es
posible que este requisito no se cumpla).
Poder transformar un texto de longitud variable en una huella de
tamao fijo (como el SHA-1 que es de 160bits).
Facilidad de empleo e implementacin.

jemplos de funciones Hash


MD5
Es una funcin hash de 128 bits. Como todas las funciones hash, toma unos
determinados tamaos a la entrada, y salen con una longitud fija (128bits). El
algoritmo MD5 no sirve para cifrar un mensaje. La informacin original no se
puede recuperar, ya que est especficamente diseado para que a partir de
una huella hash no se pueda recuperar la informacin. Actualmente esta
funcin hash no es segura utilizarla, nunca se debe usar.

SHA-1
Es parecido al famoso MD5, pero tiene un bloque de 160bits en lugar de los
128bits del MD5. La funcin de compresin es ms compleja que la funcin
de MD5, por tanto, SHA-1 es ms lento que MD5 porque el nmero de pasos
son de 80 (64 en MD5) y porque tiene mayor longitud que MD5 (160bits
contra 128bits).
SHA-1 es ms robusto y seguro que MD5, pero ya se han encontrado
colisiones, por tanto, actualmente esta funcin hash no es segura utilizarla,
nunca se debe usar.

SHA-2
Las principales diferencias con SHA-1 radica en en su diseo y que los rangos
de salida han sido incrementados. Dentro de SHA-2 encontramos varios tipos,
el SHA-224, SHA-256, SHA-384 y SHA-512. El ms seguro, es el que mayor
salida de bits tiene, el SHA-512, que tiene 80 rondas (pasos), como el SHA-1
pero se diferencia de ste en:

Tamao de salida 512 por los 160 de SHA-1.


Tamao del bloque, tamao de la palabra y tamao interno que es el
doble que SHA-1.

Como ocurre con todos los cifrados y hash, cuanto ms seguro, ms lento su
procesamiento y uso, debemos encontrar un equilibrio entre seguridad y
velocidad.
Ejemplo usando Linux

Por lo que la ltima lnea es la del hash, que podis comprobar en


un terminal, en una herramienta online o con una aplicacin con
este fin, aunque se puede aplicar en muchos lenguajes de
programacin que lo implementan (no solo esta funcin, sino
tambin otros tipos como el SHA que puede admitir distinta
longitud).