Está en la página 1de 11

Criptografa de llave pblica

ndice:
Introduccin: Breve historia de la criptografa
1-Nociones matemticas previas
2-Inicio de la criptografa de llave pblica: algoritmo de Diffie-Hellman
2.1- Ataques al Diffie-Hellman
3-Algoritmo RSA
3.1- El Algoritmo RSA
3.2- Vulnerabilidades y ataques al RSA
4-Otros algoritmos de cifrado de llave pblica
4.1- Cifrado de Rabin
4.2- Cifrado de El Gamal
5-Aplicaciones de la criptografa de llave pblica
Introduccin: Breve historia de la criptografa
Se suele definir criptografa como el conjunto de procedimientos (aunque sera
ms correcto hablar de una disciplina) que permiten transformar una informacin
de manera que quede oculta a observadores no autorizados.
En tiempos remotos se estableci ya la necesidad de ocultar la informacin
a observadores no deseados. Probablemente esta preocupacin sea tan antigua
como la propia escritura, ya que cualquiera que supiera leer poda tener acceso a
una informacin que poda desearse mantener oculta.
Existen pruebas de que en tiempos del antiguo Egipto, o la Roma clsica
ya se usaban mtodos criptogrficos. Algunos de ellos, como el mtodo Csar, o
el algoritmo de cifrado de Augusto, se siguieron usando durante la edad media, y
fueron perfeccionados en el renacimiento (mtodo Vignere).
Durante un tiempo se tendi a abandonar la criptografa por otros mtodos
de ocultacin (como el uso de una jerga particular), pero en la edad moderna, con
la llegada de los nuevos medios de comunicacin, como el telgrafo, la
criptografa volvi a cobrar importancia, y se empez abuscar nuevos mtodos
criptogrficos.
Sin embargo, ha sido durante el S. XX cuando la criptografa ha
experimentado un mayor crecimiento. Basta recordar la importancia que lleg a
tener durante la II Guerra Mundial, cuando numerosos matemticos trabajaron,
tanto en el bando aliado como en el bando del eje, dedicndose casi en exclusiva
a tratar de romper los cifrados del enemigo.
Durante todo ese tiempo, se estuvo empleando la criptografa de llave
privada como medio de proteccin de la informacin. En ella, toda la seguridad
depende de la capacidad del mtodo y de la capacidad de cada uno de los
usuarios de mantener su clave privada en secreto. Pero para descifrar la
informacin se necesita dicha llave, y eso vuelve vulnerable todo el sistema.
As, en la dcada de los 70 apareci un nuevo concepto en criptografa: la
criptografa de llave pblica. En este tipo de criptografa, cada uno de los
usuarios tiene dos claves, una clave pblica y una clave privada, y slo una de
ellas es necesaria para descifrar la informacin que se cifra con la otra. As, la
seguridad del sistema se ve incrementada.
As, utilizando lo mejor de la criptografa de llave pblica y privada, se
consigue dar respuesta a las siguientes necesidades:
a)Garantizar la autenticidad del origen de la informacin
b)Garantizar la autenticidad del contenido e integridad del mismo
c)Incorporacin de protocolos que dificulten en repudio interesado
d)Verificar la identidad de los comunicantes.
En la actualidad, ambos tipos de criptografa se emplean, utilizndose la
criptografa de llave pblica como complemento de la de llave privada,
permitiendo aumentar la seguridad de los mtodos criptogrficos empleados y
cubriendo las lagunas que la criptografa de llave privada deja.
1- Nociones matemticas previas
Nmeros relativamente primos: Se definen los nmeros relativamente primos
(o nmeros primos entre s) como aquellos pares de nmeros tales que su
mximo comn divisor sea uno. Es decir, dados dos nmeros a, n N
m.c.d.(a, n) =1
Funcin de Euler: Se define la funcin de Euler de un determinado nmero N
como el nmero de valores enteros positivos menores que N y relativamente
primos con N. Es decir, teniendo en cuenta la factorizacin de N de la forma:
i=t

N=p
i
ei

i=1

Se calcula la funcin de Euler como:
(N)= p
i
ei-1
(p
i
-1)
Nmeros primos fuertes: se dice que dos nmeros primos, P y Q son nmeros
primos fuertes si son nmeros grandes ( 200 dgitos) y de la forma:
P=2p +1
Q=2q +1
Donde p y q son a su vez nmeros primos fuertes.
2- Inicio de la criptografa de llave pblica: algoritmo de Diffie-
Hellman

En los algoritmos de llave secreta, se haca necesario guardar la llave privadapara
evitar que toda posterior comunicacin fuese fcilmente vulnerable. Esta
condicin haca sumamente difcil el intercambio de las claves, que se tena que
hacer mediante protocolos jerrquicos rgidos.
En 1976 W. Diffie y M. E. Hellman inventaron un mtodo de intercambio de
llaves secretas a travs de un canal abierto. Con ello naca la criptografa de llave
pblica.
El algoritmo bsico de Diffie-Hellman es bastante sencillo de entender:
Sea p un nmero primo grande ( 200 dgitos en adelante), y sea g un
nmero entero. Los valores de p y g son pblicos. Sean k
a
y k
b
las claves privadas
que dos comunicantes, A y B desean intercambiar. Para ello, A genera un valor
(aleatorio) entero x
a
/ 1< x
a
< p-1, y de la misma manera, B genera un valor x
b
/ 1
< x
b
< p-1.
A continuacin, A enva a B el valor pblico :
y
a
g
xa
(mod p)
Y anlogamente, B enva a A el valor (tambin pblico):
y
b
g
xb
(mod p)
As, B calcula el valor secreto:
z
ab
y
xb
a
g
xaxb
(mod p)
Y de la misma forma, A calcula:
z
ba
y
xa
b
g
xbxa
(mod p)
Y como se puede fcilmente deducir, z
ab
=z
ba
, y puede ser utilizado como clave
secreta compartida por ambos comunicantes.
2.1- Ataques al Diffie-Hellman
Se pueden clasificar en dos grupos: ataque pasivos y ataques activos.
Un ataque pasivo es aquel en el que el espa trata de descifrar algo a
partir de informacin cifrada interceptada. Un ataque activo es aquel en el
atacante desea no slo espiar informacin interceptada, sino tambin poder
manipularla a su conveniencia.
Sera un tpico ataque pasivo intentar obtener a partir de p, g, y
a
, y
b
la
clave secreta z
ab
. No obstante, es difcil que este ataque pueda ser llevado a
trmino, ya que para ello se necesitara obtener x
a
o x
b
, y para ello debera
resolverse alguna de las operaciones:
x
a
log
g
y
a
(mod p)
x
b
log
g
y
b
(mod p)
lo que es inviable para nmeros grandes, as, bastara elegir p y g lo
suficientemente grandes para evitar este ataque.
As las cosas, para realizar un ataque activo un buen mtodo sera que el atacante
(sea llamado C) interviniese de forma activa en el intercambio. Supngase que C
genera un entero aleatorio x
c
/ 1<x
c
<p-1. As, cuando A enve a B y
a
, C intercepta
la comunicacin y enva a B y
c
g
xc
(mod p).
B recibe y
c
, creyendo que procede de A, y responde enviando y
b
. Nuevamente, C
intercepta la comunicacin, y ahora enva y
c
a A.
As, A calcula:
z
ca
y
xa
c
g
xcxa
(mod p)
Y B calcula:
z
cb
y
xb
c
g
xcxb
(mod p)
claves ambas que tambin pueden ser calculadas por el atacante. As, cuando A
enve una informacin a B cifrada con z
ca
, el atacante la intercepta, decodifica,
manipula a su antojo, la encripta con z
cb
y la enva a B. De igual forma cuando B
enva informacin cifrada a A.
Este ataque es difcil de evitar y de descubrir, pero requiere la continua
intervencin del atacante para no ser descubierto.
3-Algoritmo RSA
En 1977 R. L. Rivest, A. Shamir y L. Adleman propusieron un algoritmode
cifrado asimtrico de clave pblica, que bautizaron como RSA, y que fue
posteriormente patentado por el MIT (Massachussets Institute of Technology).
Los algoritmos de cifrado asimtrico son aquellos en los que cada comunicante
tiene dos claves diferentes, una pblica y una privada, siendo el/los algoritmo/s
de cifrado pblicos. Adems, deben cumplir:
Ambos comunicantes calculan sus claves en tiempo polinmico
El emisor A puede, si conoce la clave pblica de B, enviarle en tiempo
polinmico un mensaje cifrado con la clave pblica de B
El receptor B debe poder descifrar el mensaje cifrado de A en tiempo
polinmico con su clave secreta
Un atacante deber enfrentarse a costes cuya complejidad
computacional los haga inviables cuando trate de calcular, bien las
claves secretas, bien los mensajes en claro a partir de los mensajes
cifrados.
3.1- El Algoritmo RSA
Sean p y q dos nmeros primos grandes ( 100-200 dgitos), y sea N=pq
su producto, con (N)=(p-1)(q-1).
Sea e/ 1<e<N un nmero aleatorio relativamente primo con (N), y d un
entero que verifica que ed1 (mod (N)). As dispuesto, se verifica que para un
cierto mensaje M, resulta que M
ed
M(mod N), y por tanto, si CM
e
(mod N),
resulta que MC
d
(mod N).
El algoritmo RSA utiliza estas propiedades para establecer un sistema
criptogrfico de cifrado asimtrico, en el que N,e corresponderan a la clave
pblica, y d a la clave privada.
3.2- Vulnerabilidades y ataques al RSA
Ntese que en un sistema RSA existir un conjunto de mensajes que no
pueden ser cifrados. Se dice que un mensaje M no puede ser cifrado si
M
e
M(mod N). Esto se puede rescribir, de forma que M no podr ser cifrado si:
M
e
M(mod p)
M
e
M(mod q)
As, se puede calcular que el nmero de mensajes no cifrables de un
sistema RSA viene definido por la expresin:

N
=[1+ m.c.d.(e-1,p-1)][1+ m.c.d.(e-1,q-1)]
y los mensajes no cifrables sern de la forma:
M {q[q
-1
(mod p)]M
p
+p[p
-1
(mod q)]M
q
} (mod N)
Donde:
M
p
=[ M
e
M(mod p)]
M
q
=[ M
e
M(mod q)]
Se han propuesto multitud de ataques al algoritmo RSA, aunque hasta la
fecha ninguno de ellos ha demostrado ser efectivo:
El Ataque por factorizacin de la clave pblica
La forma ms evidente de romper la seguridad de un sistema RSA pasa por
factorizar su clave. Ello no obstante constituye la forma ms difcil de lograrlo,
ya que si los factores primos p y qson nmeros lo suficientemente grandes la
complejidad computacional de los algoritmos de factorizacin hace inviable la
factorizacin de N en un tiempo finito.
El Ataque Cclico
El ataque cclico se basa en la idea de que los sistemas RSA son grupos
multiplicativos con un nmero finito de elementos. As, para descifrar
CM
e
(mod N) no sera necesario conocer la llave privada d, sino que bastara con
realizar cifrados sucesivos con la clave pblica e hasta obtener el mensaje cifrado
C (recordemos que RSA se basa en la aritmtica modular). Si C
i
es el i-simo
cifrado realizado con la llave pblica e, y C
i
C(mod N), entonces resulta obvio
que C
i-1
debe corresponder a M.
Este ataque puede ser evitado si los valores primos p y q que forman la
factorizacin de N son nmeros primos fuertes, ya que entonces la complejidad
computacional aumenta hasta convertir el problema en irresoluble.
Ataque de Merkle-Hellman
Este ataque, propuesto por R. Merkle y M. Hellman en 1981, se basa en la
idea de que se puede romper el cifrado de un sistema conociendo un mensaje
cifrado y su correspondiente texto en claro (algo que en el RSA es,
evidentemente, posible).
La justificacin matemtica del ataque es muy compleja, pero su modo de
funcionamiento es relativamente simple de describir:se basa en realizar pruebas
de encriptacin con un mensaje M, hasta obtener una coincidencia que permita
obtener la clave privada pareja de la clave pblica (conocida) e. Se puede
demostrar que este mtodo de criptoanlisis es mejor que los mtodos de fuerza
bruta. No obstante, tambin se demuestra que la probabilidad de hallar una clave
vlida disminuye cuando los factores p y q son nmeros primos fuertes. Si los
nmeros p y q estn bien elegidos este ataque se vuelve impracticable.
Ataque por control de tiempos
Este ataque se basa en la idea de medir el tiempo invertido por el
dispositivo cifrante en realizar el cifrado de los mensajes, y a partir de esos
tiempos medidos tratar de extraer informacin acerca de la clave usada. No
obstante es complicado y existen ciertas sencillas tcnicas algortmicas que
permiten evitar este ataque.
Ataque por introduccin de faltas
La idea de este ataque pasa por la introduccin de alteraciones en el
mensaje que se va a cifrar con la clave privada, y observar despus la diferencia
entre el mensaje cifrado con los valores errneos y el mensaje que se hubiera
cifrado de no haber introducido errores. Tiene el evidente inconveniente de que
resulta necesario que el atacante tenga cierto control sobre el dispositivo a atacar.
As pues, parece bastante evidente que a pesar de la multitud de ataques
propuestos contra el algoritmo RSA, no hay ninguno de ellos que tenga la
suficiente efectividad como para comprometer seriamente la credibilidad de
dicho algoritmo.
4-Otros algoritmos de cifrado de llave pblica
RSA no es el nico algoritmo de cifrado de llave pblica que existe,
aunque s es seguramente el ms popular, no obstante, en la bibliografa se
pueden hallar algunos otros interesantes ejemplos
4.1- Cifrado de Rabin
Este mtodo de cifrado fue descrito en el ao 1979. Se basa en la
existencia de dos nmeros primos grandes, p y q / pq3(mod 4), siendo N=pq la
clave pblica, y el par (p,q) la llave privada. As, el cifrado de un cierto mensaje
M se obtendra:
CM
2
(mod N)
As, para descifrar el mensaje C sera necesario calcular su raz cuadrada (mod
N), y esto slo es posible si se conocen los factores primos p y q, ya que en otro
caso la complejidad de los algoritmos lo hace inviable. An as, existe el
problema de que existen cuatro posibles soluciones para dicha raz cuadrada, y de
ah el problema de elegir una, ya que si el mensaje M debe tener sentido en
alguna lengua humana, entonces un operador humano podr decidir, pero si el
mensaje M es aleatorio o no tiene sentido para un operador humano, o no puede
establecerse una relacin con un diccionario, entonces este mtodo de cifrado
resulta inviable.
Existe una modificacin a este mtodo de cifrado introducida por H. C. Williams
en el ao 1980, orientada a eliminar el inconveniente de la multiplicidad de las
races cuadradas (mod N).
4.2- Cifrado de El Gamal
Este sistema de cifrado fue propuesto por T. El Gamal en 1985. Se basa en la
dificultad del clculo de los logaritmos discretos con nmeros enteros grandes.
Sea p un nmero primo grande, y sea g un nmero entero (grande). Ambos
valores son pblicos. Sea x/ 1<x<p-1 un valor aleatorio secreto, con una clave
pblica asociada y, definida por yg
x
(mod p).
As, el cifrado de un cierto mensaje M se realizar eligiendo un valor aleatorio
k/1<k<p-1, siendo k relativamente primo con (p-1). As, el mensaje cifrado
vendr dado por la pareja de valores:
rg
k
(mod p)
sMy
k
(mod p)
La recuperacin del mensaje en claro a partir del cifrado se calcula como:
M(s/r
x
)(mod p)
Ya que M(s/r
x
)(mod p) => M(My
k
/y
k
)(mod p)M(mod p).
Este mtodo de cifrado tiene la particularidad de que dado un mismo mensaje en
claro puede tener varios cifrados diferentes. No obstante, tiene el problema de
que el cifrado tiene una longitud doble del mensaje original, lo que puede resultar
en problemas de espacio y de manejo de cifrado.
5-Aplicaciones de la criptografa de llave pblica
Despus de examinar los algoritmos de clave pblica y comprobar su efectividad,
cabe preguntarse por sus aplicaciones. Ya se ha explicado cmo cumplen estos
algoritmos con su principal aplicacin, que es la de cifrar (ocultar) la
informacin. A continuacin se intenta dar una visin somera de las otras
aplicaciones que tiene la criptografa de llave pblica.
Recordemos que al principio plantebamos las siguientes necesidades:
Garantizar la autenticidad del origen de la informacin
Garantizar la autenticidad del contenido e integridad del mismo
Incorporacin de protocolos que dificulten en repudio interesado
Verificar la identidad de los comunicantes.
La autenticacin pretende obtener constancia de que la informacin que se
recibe procede de un emisor esperado y no de un atacante. En la criptografa de
llave pblica la solucin a este punto es trivial, ya que resulta evidente que
cualquier informacin que se descifre con la clave pblica del emisor tiene
forzosamente que haber sido cifrada con su llave privada. No obstante, la
criptografa de llave pblica suele presentar el inconveniente de que resulta ms
lenta en el cifrado y descifrado que la de llave privada. Por ello, una posible
solucin puede ser la utilizacin de una llave de sesin para cifrar la informacin
mediante un algoritmo de llave privada (p. Ej. El DES), que permita ocultar
convenientemente la informacin, y a continuacin la encriptacin de la llave de
sesin mediante nuestra llave privada. El posterior descifrado del mensaje se
realizar mediante el descifrado de la llave de sesin, que al ser de menor
longitud que el mensaje, resulta ms rpida.
Al respecto de la identificacin de los comunicantes, existen protocolos
establecidos para permitir la identificacin electrnica, el ms conocido y
extendido de los cuales es la utilizacin de certificados. En este protocolo, una
autoridad certificadora se encarga de dar constancia de que la clave pblica
contenida en el certificado procede del comunicante que realiza la afirmacin, y
no de otro individuo. As, posteriormente toda comunicacin contar con las
garantas propias de la criptografa de llave pblica.
Sobre la garanta de integridad del contenido se ha establecido un protocolo de
firma digital que soluciona tanto los problemas de integridad como parte de los
problemas de autenticacin de la fuente y del repudio interesado. Este protocolo
se basa en la existencia de funciones resumen (hash) tales que, dada una
informacin, el resultado de la funcin resumen es nico, y cualquier
modificacin introducida en la informacin producir un resultado distinto de la
funcin resumen (la probabilidad de que exista una informacin similar a la
original con un resumen de igual valor es nfima). As, se realizara un resumen
del texto a firmar, y el resultado se cifrara con la clave privada y se colocara
anexo al texto original. Cualquier alteracin de la informacin sera detectada de
inmediato slo con desencriptar el resumen, y adems el hecho de estar
encriptado ste con la llave privada de firmante, permite autenticar la identidad
del mismo.
Acerca del resto de problemas del repudio interesado, se han descrito algunos
protocolos basados tambin en autoridad certificadora, que tratan de verificar los
documentos mediante la incorporacin de marcas de tiempo y similares. Estas
marcas de tiempo sern distintas segn el momento y el documento a marcar, de
tal forma que la autoridad certifica el tiempo de vida de tal documento.
Conclusin
Hemos visto que la criptografa de clave pblica es, hoy por hoy, la forma ms
segura de preservar la privacidad de nuestra informacin. Tal y como se ha
podido comprobar, la criptografa de llave pblica constituye una tecnologa
criptogrfica relativamente nueva (no ms de 26 aos), que permite dar solucin
a muchos de los problemas que la criptografa clsica, de clave privada, no
resolva. Ciertamente, la criptografa de llave pblica no es la panacea contra
todos los problemas de la sociedad de la informacin, pero puede resultar una
ayuda muy valiosa en la obtencin de tcnicas que solventen algunos de estos
problemas, aunque eso no hace que la criptografa no pase de ser una
herramienta, y slo un uso inteligente de ella dar los frutos esperados.