CRIPTOGRAFÍA

 

CRIPTOGRAFÍA DE CLAVE PÚBLICA

Los métodos de encriptación clásicos comparten dos propiedades fundamentales: (1) todo el que puede encriptar un mensaje también puede desencriptarlo, y (2) el emisor y el receptor comparten una clave secreta que debe ser acordada antes de comenzar el proceso de encriptación. Esta simetría trae como consecuencia la necesidad de generar y transmitir de manera segura una clave para cada emisor-destinatario, que estos deben en secreto.

Whitfield Diffie y Martin Hellman propusieron en 1976 un esquema asimétrico, que solucionó los inconvenientes anteriores. Está basado en el uso de ciertas funciones, llamadas funciones de un solo sentido , que son funciones reversibles con la propiedad de que en la práctica es imposible encontrar la función inversa. 


¿Cuál es la idea? Cada usuario elige una función de un solo sentido f , que se usará para encriptar, con su correspondiente inversa  f - 1 , que sirve para desencriptar. Las funciones para encriptar se publican (de ahí el nombre de criptografía de clave pública ) en una especie de "guía telefónica", pero cada uno mantiene en secreto la función inversa para desencriptar. Si Ana quiere mandarle un mensaje secreto M a Bruno, busca en la guía la función fB para encriptar publicada por Bruno ( clave pública de Bruno) y le envía fB (M).

Bruno (y sólo él!) conoce la función f – 1B ( clave privada de Bruno) que le permite desencriptar el envío y recuperar el mensaje de Ana, simplemente calculando f – 1B ( fB (M)) = M. Si Ema intercepta el envío de Ana, no puede descifrar el mensaje porque, aun si busca la función fB en la guía, no puede calcular su inversa.


Ahora bien, ¿cómo se lleva esta idea a la práctica? La primera implementación del modelo descripto arriba, y que se emplea aún hoy, fue propuesta por Ronald Rivest, Adi Shamir y Leonard Adleman en 1977. Se trata del algoritmo RSA (nombre formado por las iniciales de los apellidos de sus autores). 

El algoritmo RSA se basa en propiedades de los números primos. Su seguridad reside en que es fácil encontrar números primos "grandes", pero es muy difícil factorizar un número "grande" que es producto de dos primos "grandes".

Veamos lo que se sintetiza en el mural. La elección de las claves (pública y privada) se realiza de la siguiente manera:

Bruno toma dos números primos p y q y calcula N = pq ; por ejemplo, p = 3, q ​​= 11 y N = 33. Luego elige dos números E y D tales que el producto ED tenga resto 1 en la división por ( p -1)( q -1); por ejemplo, E = 13 y D = 7, que cumple que 13.17 = 221 tiene resto 1 en la división por 20 = (3-1)(11-1). La clave pública de Bruno es el par de números (E, N) y su clave privada, el par (D, N); en el ejemplo, la clave pública de Bruno es (13, 33) y la privada es (17, 33).


Para mandarle un mensaje M a Bruno (representado por un número natural menor que N), Ana utiliza la clave pública de Bruno (E, N) para encriptarlo : calcula el resto de dividir por N al número M E y le envía este resto, que es el mensaje grabado M C . En el ejemplo, si M = 2, Ana calcula el resto de dividir 2 13 por 33, obteniendo M C = 8. 


Cuando Bruno recibe el mensaje grabado M C , lo desencripta con su clave privada (D, N), calculando el resto de dividir (M C ) D por N. En el ejemplo, Bruno recibe M C = 8 y calcula el resto de dividir 8 17 por 33, obteniendo M = 2, que es el mensaje original de Ana.

Observamos que el resto de dividir (M C ) D por N es siempre M; o sea, al desencriptar usando su clave privada, Bruno siempre recupera correctamente el mensaje de Ana. Esto es consecuencia del pequeño teorema de Fermat , que afirma que si p es un número primo y m es un número entero que no es múltiplo de p , entonces el resto de dividir m p -1 por p es 1.


Si Ema intercepta el mensaje grabado M C , no puede recuperar M: conociendo el resto de dividir a M E por N, y los números E y N, se cree que la única manera de calcular M es obteniendo D tal que ED tiene resto 1 en la división por ( p -1)( q -1) (¡y ésta es la clave secreta de Bruno!). A su vez, para calcular D, sería necesario conocer ( p -1)( q -1), para lo cual, se necesitaría conocer p y q , es decir, la factorización de N.

En la práctica, en la generación de claves se utilizan números primos de entre 100 y 200 cifras decimales, lo que hace que sea computacionalmente imposible hallar p y q conociendo N = pq



CRIPTOGRAFÍA DE CLAVE PRIVADA

El interés por transmitir un mensaje de forma que su significado quede oculto a los ojos de toda persona que no sea el destinatario es tan antiguo como la propia escritura. Con el nacimiento de grandes imperios en lucha constante, la criptografía (arte de escribir en clave) y, en general, la transmisión segura de información se concluye en una prioridad de gobiernos e individuos. Hoy en día, con el advenimiento de la era de la Información, surge la necesidad de proteger la integridad de las comunicaciones y mantener un nivel adecuado de privacidad.


Supongamos que dos individuos, Ana y Bruno, quieren comunicarse de manera segura , es decir, que si una tercera persona no está autorizada, Ema, intercepta el mensaje que Ana le envía a Bruno, no puede enterarse de su contenido.

 

La Criptografía se encarga de resolver este problema. La idea es encriptar el mensaje antes de enviarlo mediante un código que lo vuelva incomprensible para cualquier persona no autorizada a acceder a su contenido. El receptor legítimo de la información debe ser capaz de entenderlo, es decir, de desencriptar el mensaje.  


Un ejemplo muy antiguo de código criptográfico, utilizado por Julio César, consiste en sustituir cada letra de una palabra por la que está tres lugares más adelante en el alfabeto de manera cíclica: la A se cambia por D, la B por la E,. .., la Y por la B, la Z por la C. Así, para transmitir el mensaje "ATACAR" se envía su forma encriptada "DWDFDU". El destinatario debe conocer la regla con la que se encriptó el mensaje, y entonces puede desencriptarlo fácilmente (en este caso, cambiando cada letra por la que está tres lugares antes en el alfabeto). Sin embargo, no es tan fácil descifrar el contenido del mensaje para alguien que intercepta el envío y no conoce cómo fue fabricado.

 El proceso de encriptación consta de un algoritmo o regla de encriptación (en este caso, cambiar cada letra por la que está una cantidad de posiciones hacia adelante en el alfabeto) y una clave , que es el parámetro concreto empleado para codificar siguiendo la regla (en el ejemplo, la cantidad de posiciones que hay que adelantarse en el alfabeto). 


En el contexto de la criptografía de clave privada , la clave es un secreto compartido entre el emisor y el destinatario, y ambos utilizan esta misma clave secreta para encriptar o desencriptar. La seguridad del sistema reside en la privacidad de las claves (si Ema intercepta el envío de Ana a Bruno, no puede descifrarlo porque no conoce la clave secreta compartida por Ana y Bruno).


El mural presenta un método de clave privada, llamado one-time pad en inglés, que es un sistema criptográfico de gran importancia tanto desde el punto de vista teórico como en la práctica, que se origina en una idea propuesta en 1917 por Gilbert Vernam. 


Para utilizar el método en computadora, los mensajes se escriben con bits 0 y 1.

Cuando Ana quiere enviarle un mensaje M = m 1 m 2 ... m n formado por 0 y 1 a Bruno (por ejemplo, M = 00111011), eligen una clave secreta K = k 1 k 2 .... k n , compartida por Ana y Bruno, también formada por bits (por ejemplo, K = 10110111).


Para encriptar el mensaje se usa la siguiente operación entre bits:

0 + 0 = 0, 1 + 1 = 0, 1 + 0 = 1, 0 + 1 = 1 (la operación + no es otra cosa que la suma módulo 2).

Ana realizando esta operación bit a bit entre el mensaje M y la clave K, formando el mensaje grabado M K = ( m 1 + k 1 ) ( m 2 + k 2 ) ... ( m n + k n ) (en el ejemplo, M K = 10001100), y envía M K a Bruno.

Aplicando la misma operación bit a bit entre M K y la clave K, Bruno desencripta el mensaje. Observar que, si m y k son dos bits, entonces ( m + k ) + k = m , con lo cual, al desencriptar, Bruno recupera el mensaje original M de Ana. 


Este sistema criptográfico tiene seguridad perfecta , en el siguiente sentido: si la clave se elige al azar, de longitud mayor o igual que el mensaje a enviar, no se la reutiliza y se la mantiene en secreto, es imposible descifrar el mensaje original a partir del enviado.

Sin embargo, su aplicación tiene una dificultad importante: requiere que el emisor y el destinatario compartan una clave secreta "larga" que de alguna forma y en algún momento debe generarse y transmitirse de manera segura. 




Una anécdota histórica: La conspiración de Babington

Ubiquémonos en Inglaterra en 1586. El 15 de octubre de ese año, María Estuardo, reina de Escocia, entró en la sala de justicia del castillo de Fotheringhay. Se la acusaba de traición por liderar a un grupo de jóvenes nobles católicos decididos a eliminar a la reina Isabel, protestante, y sustituirla por María, católica como ellos. Se la vio tranquila y segura. Era difícil para el tribunal demostrar el vínculo entre los conspiradores y ella. Para Isabel había razones políticas para no condenar a muerte a su prima. Necesitaba pruebas contundentes para tomar una decisión tan drástica. Al fin de cuentas además de primas, ambas eran reinas y lo que hoy le pasara a una, mañana le podría pasar a la otra… 

En realidad María había autorizado toda la trama pero se había asegurado de que toda su correspondencia con los conspiradores se había escrito en clave; una suerte de nomenclador que reemplazó letras por símbolos y algunas palabras usuales tales como “cuando”, “no” “esto” y otras más, con símbolos especiales. La clave convirtió sus dichos en una serie de símbolos sin sentido. “¿Se me puede hacer responsable de los proyectos criminales de unos pocos hombres desesperados que planearon sin mi conocimiento? argumentó María en su defensa. 

Desgraciadamente para María, Sir Francis Walsingham, secretario privado de Isabel y jefe del espionaje de Inglaterra, no sólo había interceptado la correspondencia sino que encargó a Thomas Phelippes, un experto analista de códigos, que le dijora el contenido de la correspondencia. Walsingham había conocido la idea de codificación en un libro del matemático italiano Cardano. Phelippes estudió cada carta, analizando la frecuencia con la que aparecía cada símbolo y comparándola con la frecuencia que aparece cada letra en el leguaje corriente; probando posibles valores para cada símbolo, capacitado para descifrar los mensajes. En uno de ellos, Sir Babington propuso a María Estuardo el asesinato de Isabel. Walsingham esperó la respuesta de María con la que firmaría su sentencia de muerte. Cuando ésta llegó no se detuvo allí. “Me alegraría conocer los nombres y las cualidades de los seis caballeros que llevan a cabo el plan…” . El 8 de febrero de 1587 en la misma sala del castillo, María fue decapitada





No hay comentarios.:

Publicar un comentario