jueves, abril 21, 2005

Apuntes sobre criptografía I: Conceptos Básicos

Hace mucho tiempo le dije a nuestro compañero Indegheto que escribiría un articulo intentando explicar ciertos aspectos de la criptografía moderna. Así que empezare una serie de artículos donde expondré los términos más usados en criptografía así como documentación y enlaces donde podréis ampliar vuestro conocimiento sobre el tema.

A continuación definiremos los términos más usados en criptografía.

  • Texto claro o texto plano: Es la información original, que después de usar ciertas técnicas criptográficas pasara ser un texto cifrado.
  • Texto cifrado o codificado: La información resultante después de cifrar un texto plano. Esta información es inteligible.
  • Cifrar: Operación de pasar un texto claro a codificado.
  • Descifrar: Paso contrario a cifrar, convertir un texto cifrado o criptograma a texto plano.
  • Clave: Información secreta que es usada para codificar y descodificar los textos. Es la – o las – que abre la puerta.
  • Algoritmo de clave simétrica: Algoritmo de cifrado que utiliza para cifrar y descifrar la misma clave. Estos algoritmos se caracterizan por sé muy rápidos en cifrar-descifrar, no aumenta el volumen de información y casi imposible romper – obtener la información del texto claro sin saber la clave. Como ejemplo de algoritmo de clave simétrica tenemos a AES, 3DES o LOKI – por citar dos de los muchos.
  • Algoritmo de clave pública o asimétricos: Algoritmos que utilizan diferentes clave para cifrar – clave pública – y descifrar – clave privada. Son más lentos, aumentan el volumen de información, necesitan una longitud de clave mayor para alcanzar – o intentar aproximarse – a los algoritmos simétricos, requieren más potencia de cálculo – por lo cual más tiempo, para cifrar y descifrar. Todos los algoritmos modernos – RSA y ElGamal por nombrar algunos - son asimétricos.

En este punto de la exposición se nos plantea – o debería – plantear una duda. ¿Cómo es posible que los algoritmos modernos sean “peores” – más lentos, menos seguros, aumentan el volumen de información – que los simétricos ? ¿Por qué no usar algoritmos simétricos? La repuesta es muy simple, uno de los mayores problemas de los de los algoritmos simétricos es el intercambio de claves. Tanto el receptor o como el transmisor deben conocer la misma clave, si estoy enviando una información codificada es porque esa información es sensible de ser interceptada. Pero para que la comunicación sea completa debo enviar antes la clave, pero si la información puede ser interceptada la clave también. Debería entonces enviar la clave por un canal seguro – no corre el riesgo de ser interceptada, pero ... ¿Por qué no envió entonces la información por ese canal seguro? Si pudiera – o dispusiera - de un canal seguro no necesitaría cifrar la información. Hemos llegado a una paradoja.

Con los algoritmos asimétricos no tenemos este problema, ya que las claves son diferentes para cifrar y descifrar. Si yo quiero enviar un mensaje a A, cogería su clave pública y codificaría con ella la información. Luego más tarde A con su clave privada descifraría el texto. No ha existido necesidad de intercambiar claves ninguna – la única clave conocida por todos el precisamente la pública. ¿Dónde esta el truco? Pues que en la clave pública va embebida la privada, pero de manera que no es posible obtenerla – de hecho el ataque a un criptosistema de clave pública consiste en intentar obtener la clave privada a partir de la pública.

Podéis encontrar mucha más información sobre los conceptos básicos aquí.