Seguridad en la Red: Criptografía de Clave Pública


Entrar en eBay, realizar un pago por Paypal, loguearse en Gmail o consultar nuestras cuentas bancarias… son acciones que hacemos todo y cada uno de nosotros de manera cotidiana y casi a diario.

Enviar información privada y claves de acceso a alguna web a través del navegador es, actualmente, uno los hábitos más comunes de cualquier internauta. Sin embargo, ¿cuantos de vosotros os habéis detenido a pensar si ese intercambio de información será seguro? ¿No habrá alguien capaz de obtener vuestras claves y acceder no solo a vuestro correo electrónico, si no a vuestras cuentas bancarias, y todo ello sin moverse de una silla?

La respuesta es obvia. NO. Si la web utilizada es de fiar, nadie podrá obtener fraudulentamente vuestra información mediante hackeo de los datos que intercambiáis con vuestro proveedor de servicios de internet o con esa página tan guarra de Tailandia. Y, el que esto sea posible, es gracias a varios genios matemáticos del Siglo XX y a lo que se conoce como Criptografía de Clave Pública.

Desde muy pronto en la historia de la humanidad ha existido la necesidad de enviar mensajes sin que ninguna otra persona que no fueran emisor y receptor pudiesen comprender la información contenida en ellos. Ya lo intentó de manera primitiva el imperio romano con el cifrado Caesar, desarrollado por Julio Cesar; o, de manera mucho más elaborada, el tercer Reich alemán con la llamada máquina Enigma. Sin embargo, y pese a que durante toda la historia se persiguió el objetivo del mensaje indescifrable, no fue hasta la segunda mitad del Siglo XX que, con el desarrollo de la informática, se vio la necesidad de sistemas mucho más complejos cuyo descifrado no dependiese únicamente de acertar una combinación entre miles.

Concretamente, el cifrado de clave publica nació de la necesidad de autentificar indudablemente una identidad en el interior del canal de transmisión.

La idea tras este tipo de codificado reside en lo que se conoce como función trampa, una función matemática que es sencilla de calcular en un sentido pero que es endiabladamente difícil en sentido inverso… a menos que se conozca la trampa. Un ejemplo sencillo es la multiplicación de dos números primos. Multiplicar ambos es sencillo, sin embargo, dado el resultado, conocer de que dos números proviene es complicadisimo, a menos que se conozca uno de los dos números, claro.

Es decir, a la hora de descifrar por completo el mensaje necesitamos dos claves, el resultado de la operación y uno de los dos números primos. En el lenguaje de la criptografía, hablamos de clave pública y clave privada.

Esta estratagema, este juego con los números, permite una seguridad absoluta en el envío de información. Imaginemos que deseamos hacer loguin en la web de nuestro banco y poder darle información sobre una transferencia bancaria. Para ello el servidor de la entidad bancaria nos enviará su clave pública, a la que todo el mundo puede acceder sin problema. Nosotros cifraremos nuestros datos con esa clave y, aquí viene lo bueno, sólo se podrán descifrar con la clave privada correspondiente… ¡que solo tiene el banco! Hemos conseguido pues, la seguridad completa de que nadie se hará con nuestro número de cuenta por el camino.

Así mismo, este sistema de cifrado también nos permite asegurar nuestra identidad mediante lo que se conoce como firma digital (y que, por ejemplo, el DNI electrónico español implementa). En esta situación se opera de manera distinta al ejemplo anterior. Ahora, ciframos los datos a enviar con nuestra clave privada de manera que cualquiera puede descifrarlos con nuestra clave pública (que es eso… pública). Si bien en este caso los datos no son privados, lo que hemos conseguido es asegurar nuestra identidad, porque nadie más puede cifrar lo que enviemos de la misma manera al no disponer de la clave privada.

Como veis, el éxito de este tipo de cifrado reside en la imposibilidad de resolver la función trampa sin la posesión de ambas claves. Por tanto, al final, todo depende de qué función escojamos. Actualmente, uno de los algoritmos de cifrado de clave pública más utilizados es el que se conoce como algoritmo RSA, el cual utiliza una excelente propiedad de lo números primos para generar la función trampa y se vale del hecho de que el hombre sólo conoce un algoritmo que permita realizar la inversa de la función sin conocer la trampa, el cual es endiabladamente lento y consume demasiado tiempo de cálculo como para que el descifrado de este algoritmo sea viable.

Así pues, una vez más y aunque muchos se empeñen en negarlo, la ciencia asoma por cada uno de los rincones de nuestra vida cotidiana y hace posible lo imposible ;)

, , , , , , , , , , , , ,

  1. #1 por Sir_Sayco el 12 julio, 2010 - 22:54

    Esto es interesante para el que nunca escucho la palabra criptografía, digamos 3 de cada 10? Un poco mas de que se trata hubiera sido mejor. ;)
    Saludos!

  2. #2 por Alive el 13 julio, 2010 - 13:29

    No conozco nada de criptografía, y este artículo me ha parecido excelente, aunque se me ha quedado un poco corto.

    Saludoss.

  3. #3 por Fooly_Cooly el 14 julio, 2010 - 13:54

    Gracias por leerlo.

    Mi intención es escribir más artículos del tema comenzando por lo básico, con ejemplos y puede que incluso retos a los lectores; pero este ya lo tenía escrito de hace unos días, así que lo publiqué de igual manera.

  4. #4 por carlitos el 15 noviembre, 2010 - 22:13

    jo muchas gracias esta guapisimo el articulo, aunque sigo fastidiado con lo de las claves, publica y privada.si me pudiesen decir se lo agradeceria mucho

(No será publicado)


Recuerda que puedes usar Latex introduciendo el código correctamente
entre las etiquetas $latex CÓDIGO $