Vous êtes sur la page 1sur 7

CRIPTOGRAFIA

La palabra criptografa proviene del griego criptos que significa oculto y grafe
de escritura que alude textualmente a la escritura oculta. La criptografa es la
ciencia que resguarda documentos y datos que acta a travs del uso de las cifras
o cdigos para escribir algo secreto en documentos y datos que se aplica a la
informacin que circulan en las redes locales o en internet. Los romanos utilizaban
cdigos para guardar sus ideas y proyectos de guerra de aquellos que no lo
conocan y lo hicieron con el propsito de que los entes que conocan el
significado del cdigo interpretan el mensaje oculto.
Antes de entrar al tema de las funciones hash tenemos que hablar sobre los
tipos de criptografa (simtrica y asimtrica) que son la base para comprender
sobre criptografa, donde pondremos en prctica estos conceptos junto a GPG.

La criptografa simtrica solo utiliza una clave para u ordinario o haciendo una
llamada telefnica).cifrar y descifrar el mensaje, que tiene que conocer el emisor y
el receptor previamente y este es el punto dbil del sistema, la comunicacin de
las claves entre ambos sujetos, ya que resulta ms fcil interceptar una clave que
se ha transmitido sin seguridad (dicindola en alto, mandndola por correo
electrnico .

Criptografa asimtrica
La criptografa asimtrica se basa en el uso de dos claves: la pblica (que se
podr difundir sin ningn problema a todas las personas que necesiten mandarte
algo cifrado) y la privada (que no debe de ser revelada nunca).

Esquema de criptografa asimtrica

Sabiendo lo anterior, si queremos que tres compaeros de trabajo nos manden un


archivo cifrado debemos de mandarle nuestra clave pblica (que est vinculada a
la privada) y nos podrn mandar de forma confidencial ese archivo que solo
nosotros podremos descifrar con la clave privada.
Puede parecer a simple vista un sistema un poco cojo ya que podramos pensar
que sabiendo la clave pblica podramos deducir la privada, pero este tipo de
sistemas criptogrficos usa algoritmos bastante complejos que generan a partir de
la frase de paso (la contrasea) la clave privada y pblica que pueden tener
perfectamente un tamao de 2048bits (probablemente imposible de reventar).
Como os habris dado cuenta solo cifra una persona (con la clave pblica) y la
otra se limita a mirar el contenido, por lo que la forma correcta de tener una
comunicacin bidireccional sera realizando este mismo proceso con dos pares de
claves, o una por cada comunicador.
Otro propsito de este sistema es tambin el de poder firmar documentos,
certificando que el emisor es quien dice ser, firmando con la clave privada y
verificando la identidad con la pblica.
Nota: todo esto puede parecer lioso (y lo es) pero hablar de como poner en
prctica esto con GnuPG (una herramienta de cifrado libre muy usada para este
propsito) y ser ms fcil de comprender.

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):

Ciframos la clave que hemos usadGenerar una clave pblica y otra privada
(en el receptor).

Cifrar un archivo de forma sncrona.

El receptor nos enva su clave pblica.

o 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).

Qu son y para qu sirven los Hash?


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.

Ejemplos y formas de uso


Las funciones hash son muy usadas, una de las utilidades que tiene es proteger la
confidencialidad de una contrasea, ya que podra estar en texto plano y ser
accesible por cualquiera y an as no poder ser capaces de deducirla. En este
caso, para saber si una contrasea que est guardada, por ejemplo, en una base
de datos es igual a la que hemos introducido no se descifra el hash (ya que
debera de ser imposible hacerlo) sino que se aplicar la misma funcin de
resumen a la contrasea que especificamos y se comparar el resultado con el
que tenemos guardado (como se hace con las contraseas de los sistemas Linux).
Pongamos un ejemplo, la funcin hash MD5 es una de estas funciones de
resumen y la usaremos para resumir el siguiente texto:
Genbeta Dev
Y aplicar la funcin de resumen con el comando especifico que tienen la mayora
de sistemas basados en Linux (md5sum):
pedro@ubuntu:~$ md5sum
Genbeta Dev
b71dada304875838f0263e3ae50c2c49 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).
Asegurar la integridad de la informacin
Otro uso que tiene esta funcin es la de garantizar la integridad de los datos y es
algo que habris visto muchas veces, por ejemplo en algunas webs que
proporcionan descargas de archivos grandes, por ejemplos software, dando junto
a su vez el resumen del archivo y la funcin usada.

Por poner un ejemplo en la pgina de descarga de Virtual Box podemos encontrar


esta pgina con todos los resmenes de las descargas disponibles con los que
podemos comprobar que el archivo se ha descargado correctamente y que nadie
ha modificado su contenido durante la transmisin.
Para poner en prctica este uso coger esta imagen de HTML5 y le aplicar una
funcin de resumen con el algoritmo MD5.
Ejemplo que tomaremos para hacer el hash con el algoritmo MD5
Y el resultado de hacer el resumen es el siguiente, usando otra vez la funcin
presente en sistemas Linux (md5sum).
pedro@ubuntu:~$ md5sum HTML5.png
cc617bf6a1ec75373af6696873fccef1 HTML5.png
Este es el mtodo para saber que un documento est integro tras su recepcin,
por eso se usa para comprobar que un archivo se a descargado correctamente o
para comprobar que datos como un pequeo texto sigue siendo el mismo tras su
emisin.

Firma digital
Firmar un documento no es algo novedoso, pero la firma digital si lo es un poco
ms y nos ayuda a verificar la identidad del emisor de un mensaje (as nos
podemos asegurar que nuestro jefe nos manda un archivo concreto y no es el
vecino que nos gasta una broma).
El mtodo ms simple de firma digital consiste en crear un hash de la informacin
enviada y cifrarlo con nuestra cave privada (de nuestro par de claves de la
criptografa asimtrica) para que cualquiera con nuestra clave pblica pueda ver el
hash real y verificar que el contenido del archivo es el que hemos mandado
nosotros.
Me voy a adelantar al prximo captulo sobre criptografa y hablar un poquito de
GnuPG (GPG) que es una herramienta de cifrado que nos permite firmar
documentos, en este caso lo har con una firma en texto plano (es un sistema
menos seguro pero veremos que es lo que hace).
Lo que voy a hacer es firmar la imagen que hemos usado antes (la de HTML5) con
el siguiente comando en una terminal de Linux (para otras plataformas hay otras
soluciones muy similares o incluso idnticas):
pedro@ubuntu:~$ gpg --clearsign HTML5.png

Necesita una frase contrasea para desbloquear la clave secreta


del usuario: "Pedro Gutirrez Puente (Clave pblica) <info@xitrus.es>"
clave DSA de 3072 bits, ID 783F3E6D, creada el 2012 -12-11

Automticamente a partir del archivo HTML5.png nos genera el archivo


HTML5.png.asc que si lo abrimos con un visor de texto vemos el contenido de la
imagen (un conjunto de caracteres sin sentido) y al final del archivo el siguiente
texto (que contiene el hash cifrado):
-----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.11 (GNU/Linux)
iF4EAREIAAYFAlD0vH0ACgkQJQ5Gcng/Pm1gDgD+PnXZfni9n90duv2ir0hdnWdp
1bpBHGzCNWxN8q5I8CoA/RsdMeMxY9kwOx/y8jnxQYDjWFiBRThiE7GSxTtvXUPf
=PwS6
-----END PGP SIGNATURE-----

Vous aimerez peut-être aussi