Ecuación #51: La encriptación de datos

descripción de la imagen

Por

02 February 2019

Hace 2400 años el Mar Egeo en Grecia estaba sumido en guerra. Esparta y Atenas libraban fieras batallas por el dominio regional. A los diferentes escenarios se enviaban mensajes militares que debían ser protegidos con la vida para que los planes no fueran interceptados por el enemigo. Los espartanos tenían un método ingenioso. Enrollaban una cinta de cuero en un tronco y escribían el mensaje ahí. Luego desenrollaban la cinta y la enviaban. Su destinatario debía tener un tronco del mismo grosor para que al enrollar la cinta de nuevo, las letras se alinearan correctamente y el mensaje fuera legible. Le llamaban “escítala” y así transmitían mensajes que aunque fueran interceptados, no podían ser entendidos.

Los espartanos habían inventado un método sencillo de lo que hoy llamamos “encriptación de datos”.

A lo largo de la historia las sociedades han necesitado guardar y compartir secretos. En el Primer Milenio, los romanos y árabes desarrollaron sus propias formas de cifrar mensajes simplemente sustituyendo letras. En 1467 el italiano Leon Battista Alberti inventó un aparato de encriptación que utilizaba una palabra secreta como “llave” porque sus letras servían como guía de un rotor que modificaba las letras del resto del mensaje. Su método fue tan revolucionario y efectivo que no pudo ser roto por casi 450 años. Durante la Segunda Guerra Mundial los nazis utilizaron la máquina “Enigma”, tan sofisticada que romper su cifrado significaba probar más de 15,000,000,000,000,000,000 de posibilidades. Aún así el matemático inglés Alan Turing inventó una máquina para romper el cifrado y con ello hizo posible la victoria aliada.

Hoy las transacciones bancarias, sitios web, celulares o firmas electrónicas dependen de compleja encriptación para asegurar integridad y protección de datos. Estos esquemas son rápidos de aplicar y prácticamente imposibles de descifrar. El más moderno y popular algoritmo es el “Rijndael”, que funciona dividiendo los datos en bloques y aplicando a cada uno una serie de combinaciones y permutaciones basadas en llaves de 128 o más valores.

El Rijndael es tan seguro que aun con todas las computadoras del mundo intentando descubrir un mensaje cifrado con llaves de 128 valores, les tomaría mucho más tiempo que la edad actual del universo. Se necesita la llave. Pero ¿cómo intercambiar la llave (K) para que no sea interceptada por un tercero? La solución es el algoritmo Diffie-Hellman, que se basa en la siguiente ecuación:

K = B^XY mod P

Dejando a un lado los detalles, si el remitente escoge (X) y el destinatario (Y), sin compartirlos, entonces solo intercambiando (B) y (P) pueden ambos calcular la misma llave (K) sin que ningún intermediario pueda calcularla. ¿Por qué? Porque (P) es un número primo enorme y factorizar el producto de grandes primos es extremadamente difícil.

Haga el ejercicio. El número 3,411,321,005,933 tiene solamente dos factores (aparte de 1 y el número mismo). ¿Cuáles son? No le queda otra que ir probando. Aún con calculadora le tomaría meses. El algoritmo Diffie-Hellman utiliza (P) con longitudes arriba de los 600 dígitos, cuyos productos son números de más de 360,000 dígitos. Aún para una supercomputadora sería prácticamente imposible descifrar la llave.

Otro método, el RSA, utiliza dos llaves distintas. Lo que se encripta con una se descifra con la otra y viceversa. En este caso, mientras una se mantenga secreta, la otra puede hacerse pública. Esto elimina la necesidad de un método de intercambio de llaves y pueden utilizarse números aún más grandes.

Por ahora no hay métodos para romper el Rijndael o el RSA. Se consideran intractables para computadoras convencionales. Pero en laboratorios alrededor del mundo se investiga un nuevo tipo de computación, la computación cuántica, cuyo poder es tan grande que en teoría serían capaces de romper todos estos esquemas en cuestión de minutos. Por eso se diseñan ya los cifrados poscuánticos.

(Para más detalles sobre los métodos, visite http://52ecuaciones.xyz).

Ingeniero Aeroespacial salvadoreño,

radicado en Holanda.

cornejo@52ecuaciones.xyz