[LinuxFocus-icon]
Hogar  |  Mapa  |  Indice  |  Busqueda

Noticias | Arca | Enlaces | Sobre LF
Este documento está disponible en los siguientes idiomas: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Portugues  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

Pierre Loidreau
por Pierre Loidreau
<pierre.loidreau(at)ensta.fr>

Sobre el autor:

Pierre es profesor e investigador en la ENSTA (Ecole Nationale Supérieure de Techniques Avancées - Escuela Nacional Superior de Técnicas Avanzadas ). Su campo de investigación son los "criptosistemas" basados en la teoría de códigos correctores de errores. Practica Linux a diario... y tenis a menudo.



Taducido al español por:
Roberto Hernando Velasco (homepage)

Contenidos:

 

Introducción a la criptografía

mail

Resumen:

Este artículo se ha publicado en un número especial sobre la seguridad de Linux Magazine France. El editor, los autores y los traductores han aceptado amablemente que todos los artículos de ese número especial sean publicados en LinuxFocus. En consecuencia, LinuxFocus os "ofrecerá" esos artículos a medida que se vayan traduciendo al inglés. Este resumen se reproducirá en todos los artículos que tengan el mismo origen.



 

Porqué la criptografía. 2500 años de historia

El origen de la criptografía se remonta sin duda a los orígenes del hombre, desde que aprendió a comunicarse. Entonces, tuvo que encontrar medios de asegurar la confidencialidad de una parte de sus comunicaciones. En el antiguo Egipto, la escritura jugó a veces ese papel. Sin embargo, el primer testimonio de uso deliberado de métodos técnicos que permitieran cifrar los mensajes viene de Grecia, sobre el siglo VI antes de Cristo, y se llama "escitalo". El escitalo era un bastón. El emisor enrollaba una tira de cuero alrededor del bastón y escribía longitudinalmente sobre el bastón. Después desenrollaba la tira y la enviaba al destinatario. Sin conocer el diámetro del bastón que había jugado el papel de clave, era imposible descifrar el mensaje. Más tarde los ejércitos romanos utilizaron para comunicarse el cifrado de César, consistente en desplazar el alfabeto tres letras.

Después, durante cerca de 19 siglos, se asiste al desarrollo más o menos ingenioso de técnicas de cifrado experimentales donde la seguridad residía esencialmente en la confianza que quisieran darles los usuarios. En el siglo XIX, Kerchoffs estableció los principios de la criptografía moderna. Uno de los principios establece que la seguridad de un sistema de cifrado no reside más que en la clave y no en el procedimiento de cifrado.

En lo sucesivo, concebir sistemas criptográficos debía responder a esos criterios. Sin embargo, todavia les faltaba a esos sistemas unos cimientos matemáticos suficientes que proveyeran utilidades para medir y cuantificar su resistencia a eventuales ataques y, por qué no, encontrar el "Santo Grial" de la criptografía: el sistema incondicionalmente seguro. En 1948 y 1949 dos artículos de Claude Shannon, "Teoría Matemática de la Comunicación" y sobre todo "La Teoría de la Comunicación de los Sistemas Secretos" dieron los cimientos científicos a la criptografía borrando tanto vanas promesas como falsos prejuicios. Shannon probó que el cifrado de Vernam introducido algunas decenas de años antes --todavía llamado one-time pad-- era el único sistema incondicionalmente seguro. Sin embargo el sistema era impracticable. Es por lo que hoy en día la evaluación de la seguridad de un sistema se interesa principalmente en la seguridad computacional. Se dice que un sistema de cifrado de clave secreta es seguro si ningún ataque conocido de menor complejidad que la búsqueda exhaustiva sobre el espacio de claves ofrece mejores resultados que ésta.

 

AES (Advanced Encryption Standard, Norma de Encriptación Avanzada)

Muy recientemente, en octubre de 2000, el NIST (National Institute of Standards and Technology, Instituto Nacional de Estándares y Tecnología) eligió, entre 15 candidatos, un nuevo estándar de cifrado con clave secreta para reemplazar al viejo DES, debido a que el tamaño de las claves se había vuelto demasiado pequeño. El algoritmo elegido para convertirse en el AES es el Rijndael, cuyo nombre viene del de sus creadores, Rijmen y Daemen.

Éste es un sistema de cifrado llamado "por bloques" ya que los mensajes están cifrados por bloques completos, que aquí son de 128 bits. Hay varias versiones del sistema utilizando claves de 128, 192 o 256 bits. Como información apuntar que el DES cifra bloques de 64 bits con una clave de 56 bits solamente. El triple DES utilizaba normalmente hasta entonces cifras con bloques de 64 bits con una clave de 112 bits.

AES

Figura 1: Iteraciones del AES

El principio de funcionamiento del AES está descrito en la figura 1. En primer lugar, se añade bit a bit al mensaje la clave secreta K0 . Después, como para todos los algoritmos de cifrado por bloques, se itera una función F, parametrizada por subclaves que se obtienen de la clave maestra mediante un algoritmo de expansión de claves.

En el caso de AES, se itera 10 veces la función F.
Función F

Figura 2: Función F

Veamos brevemente cómo se construyen las permutaciones y a qué corresponde la constante ai. Técnicamente y por simplicidad, un octeto se puede considerar como un elemento de un conjunto con 256 elementos llamado cuerpo finito, sobre el que existen todo tipo de operaciones simples, entre otras las operaciones de adición, producto e inversión. La permutación S anteriormente mencionada corresponde a la inversión sobre este conjunto. La permutación P está especificada como una operación muy simple, implementándose fácilmente. El elemento ai corresponde a elevar a la potencia i un elemento del cuerpo. Estas consideraciones permiten implementar AES de forma muy eficaz.

Como el AES no comprende más que operaciones muy simples sobre los octetos se tienen dos ventajas enormes:
Algoritmo de expansión de clave

Figura 3: Algoritmo de expansión de claves
 

Criptografía de clave pública

En 1975 Diffie y Hellman publicaron un artículo llamado "New Directions in Cryptography" (Nuevas direcciones en Criptografía) que tuvo el efecto de una bomba en la comunidad de los criptógrafos, introduciendo el concepto de criptografía de clave pública. Los algoritmos de cifrado con clave secreta (o clave privada), los únicos conocidos hasta entonces, ya no satisfacían las nuevas necesidades que aparecían paralelamente a la explosión de nuevos medios de comunicación muy impersonales -- como por ejemplo, el desarrollo de las redes de comunicaciones.

La solución completamente revolucionaria que propusieron fue introducir la noción de función de una sola vía con trampa, o trapdoor one-way function (también conocida como función de un sentido irreversible). Es una función que se calcula fácilmente en un sentido, pero que es computacionalmente imposible de invertir si no se conoce un secreto llamado trampa, aunque la función sea conocida por todos. Entonces la clave pública es la función, mientras que la trampa, conocida por un número restringido de usuarios se denomina clave privada. Así nació el mundo de Alice, Bob y compañía. Alice y Bob son dos personas que buscan comunicarse de forma íntegra mientras algunas personas pueden interponerse, escuchando o incluso alterando el canal de comunicación.

Para descifrar el mensaje el receptor invierte la función utilizando la trampa.

El ejemplo más bello de criptosistema de clave pública y, sin lugar a dudas, el más simple aparece justo dos años después, en 1978. Se debe a Rivest, Shamir y Adleman de donde toma el nombre RSA. Se basa en la dificultad de factorizar dos números enteros. La clave privada está formada por la tripleta (p,q,d) donde p y q son dos números primos de aproximadamente el mismo tamaño, d es un número entero primo con p-1 y con q-1. La clave pública se compone del par (n,e). Donde n=pq y e es el inverso de d módulo (p-1)(q-1), i.e.

ed = 1 mod(p-1)(q-1).



Supongamos que Alice desea enviar un mensaje cifrado con la clave pública de Bob (n,e). Primero transforma el mensaje en un número m inferior a n. Después calcula 
c = me mod n,


y envía el resultado c a Bob. Éste, cuya clave pública es (p,q,d), calcula: 
cd mod n = med mod n = m.


En el caso de RSA, la función de una sola vía con trampa que se considera es la función que asocia a un número x<n el valor xe mod n.

Tras el sistema de cifrado RSA, se han desarrollado muchos otros sistemas de clave pública. Uno de los más utilizados actualmente, y un serio competidor de RSA es un sistema de cifrado basado en los problemas de cálculo de los logaritmos discretos.  

Sobre el uso moderno de la criptografía

En realidad, el interés de la criptografía de clave pública es el de ocuparse de muchos problemas de seguridad, y ofrecer una gran flexibilidad. Lo que permite entre otras cosas encontrar soluciones a los problemas de autentificación: Por otro lado, como la criptografía de clave secreta, la criptografía de clave pública permite elaborar sistemas de cifrado, asegurando la confidencialidad de las comunicaciones.

Supongamos que Alice desea comunicarse con Bob de forma privada. Alice encuentra en un directorio la clave pública de Bob, y cifra el mensaje con esta clave. Cuando Bob recibe el mensaje cifrado, utiliza su clave privada para descifrar el mensaje y recuperar el texto llano. Las dos claves juegan papeles completamente distintos, ésta es la razón por la que se habla de criptosistemas asimétricos, en oposición a los criptosistemas de clave secreta que utilizan la misma clave para cifrar que para descifrar y se llaman criptosistemas simétricos.

La criptografía de clave pública presenta otra ventaja sobre la criptografía de clave secreta. Si n personas desean comunicarse mediante un criptosistema de clave secreta, cada una de ellas debe disponer de una clave diferente para cada persona del grupo. Por tanto hace falta poder generar en total n(n-1) claves. Teniendo en cuenta que n puede ser del orden de varios millares, será necesario generar ficheros de varios millones de claves. Además, añadir un miembro al grupo no es sencillo, ya que habrá que generar otrar n claves para que el nuevo miembro pueda comunicarse con los demás integrantes del grupo, y después distribuir las nuevas claves a todo el grupo. Por contra, en el caso de un criptosistema asimétrico, se guardan las n claves públicas de los miembros del grupo en un directorio. Para añadir un miembro, basta conque ponga su clave pública en el directorio.  

Clave pública o clave secreta: un compromiso

En el párrafo anterior, se ha visto que la criptografía de clave pública aporta solución a muchos más problemas que la criptografía de clave secreta. Entonces nos podemos preguntar cuál es la utilidad de AES. Existen dos razones fundamentales para escogerlo: En cifrado, es mejor entonces utilizar algoritmos de cifrado de clave secreta cuando sea posible. Una solución completamente interesante y aceptable es el compromiso elaborado por Zimmermann para concebir PGP. El principio de cifrado es el siguiente: supongamos que Alice y Bob desean comunicarse de manera íntegra, utilizando un algoritmo de clave secreta -en el caso de PGP éste algoritmo es IDEA-. Una vez que su conversación ha terminado, rechazan la clave de esa sesión. Tal sistema combina las ventajas de los dos tipos de criptografía. En general, se considera que la mayor debilidad se encuentra en el protocolo de intercambio de claves.  

Bibliografía

Historia de la criptografía: AES :
Criptografía en general :

 

Formulario de "talkback" para este artículo

Cada artículo tiene su propia página de "talkback". A través de esa página puedes enviar un comentario o consultar los comentarios de otros lectores
 Ir a la página de "talkback" 

Contactar con el equipo de LinuFocus
© Pierre Loidreau, FDL
LinuxFocus.org

Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus
Información sobre la traducción:
fr --> -- : Pierre Loidreau <pierre.loidreau(at)ensta.fr>
fr --> en: Axelle Apvrille <axellec(at)netcourrier.com>
fr --> es: Roberto Hernando Velasco (homepage)

2002-05-20, generated by lfparser version 2.21