¿Cómo Proteger la Confidencialidad de un Mensaje?
La criptografía protege la confidencialidad de los mensajes
En el artículo explicamos lo fácil que es cifrar datos con la función exponencial y lo difícil que es descifrar con la función logarítmica. La criptografía busca:
Que sea fácil para nosotros ambas cosas cifrar y descifrar.
Y para nuestros atacantes que sea difícil.
Aritmética modular
La mejor manera de introducir la aritmética modular es pensar en un reloj. Los números van del 1 al 12, pero cuando llega a "13 en punto", es la 1 en punto:
Si el espacio del 1 al 12 lo llamamos Módulo con longitud n = 12, podemos escribir:
13 ≡1 module 12
“las 13 horas son equivalentes con la 1 modulo 12”
25 ≡1 module 12
“las 25 horas son equivalentes con la 1 modulo 12”
14≡ 2 module 12
“las 14 horas son equivalentes con las 2 modulo 12”
Definición del formato modular: D ≡ R modulo n; donde:
D, R, n pertenecen a los números enteros.
R (Residuo), es menor que n, y resulta de dividir D/n.
Ejemplo1: determinar el valor de R en:
40 ≡ R module 17
Paso 1: dividir 40/17
Paso 2: Seleccionar el residuo R = 6
Paso 3: Escribir en formato modular: 40 ≡ 6 mod 17
Paso 4: El resultado se lee “40 equivale a 6 en el módulo 17”
Ejemplo 2: determinar el valor de R en:
83 ≡ R module 51
Paso 1: dividir 83/51
Paso 2: Seleccionar el residuo R = 32
Paso 3: escribir en formato modular: 83 ≡ 32 mod 51
Paso 4: El resultado se lee “83 equivale a 32 en el módulo 51”
Operación exponencial en formato modular
Definición de la función exponencial Y = bX, donde b= base y X= exponente. En formato modular seria:
Y = bX modulo n.
Si Y = C, b=m, X=e tendremos el formato modular:
C= me mod n, Donde:
C debe ser menor que n, y C = es el residuo de dividir me/ n
Ejemplo 1: determinar el valor de C en:
C ≡ 53 mod 13
Paso 1: 53= (5)(5)(5) = 125
Paso 2: dividir 125/13
Paso 3: Seleccionar el residuo C = 8
Paso 4: escribir en formato modular: 8 ≡ 53 mod 13
Paso 5: El resultado se lee “8 equivale a 53 en el módulo 13”
Ejemplo 2: determinar el valor de C en:
C ≡ 1005 module 211
Paso 1: 1005= 10,000,000,000 (diez mil millones)
Paso 2: dividir 10,000,000,000/211
Paso 3: Seleccionar el residuo C = 196
Paso 4: Escribir en formato modular: 196 ≡ 1005 mod 211
Paso 5: El resultado se lee “196 equivale a 1005 en el módulo 211”
Observación: en el módulo 211, en lugar de utilizar el número diez mil millones, puedo utilizar 196, lo cual me simplifica las operaciones matemáticas (pero no así a un atacante).
La criptografía protege la confidencialidad con la matemática modular
Ahora aplicaremos la matemática modular para enviar un mensaje cifrado. Utilizaremos dos funciones exponenciales en formato modular:
función para cifrar: C = me module n
función para descifrar: m = Cd modulo n, donde:
“m” es el mensaje para enviar, también llamado texto plano.
“C” es el mensaje cifrado, llamado texto cifrado.
“e” exponente, debe ser un numero primo y puede ser conocido por todos (que llamaremos la llave publica)
“d” exponente, es el inverso multiplicativo de “e”, debe ser número secreto (llamaremos la llave privada), obtener con el algoritmo euclidiano extendido (método matemático avanzado).
“n” es un número que selecciona el que codifica y debe cumplir ciertos requisitos.
Ejemplo de un protocolo de confidencialidad
Paso 1: Roberto desea enviar un mensaje (m) a su amiga Antonella, pero que nadie más conozca que la hora de la reunión será a las 4 de la tarde (16 horas).
Paso 2: Con ella previamente a acordado en utilizar las funciones:
Para encriptar o cifrar con la función C = me module n
Para descifrar el mensaje con la función m = Cd modulo n
Paso 3: Roberto recibe de Antonella, la clave publica e = 17 y el módulo n= 589. La clave privada “d” la tiene Antonella.
Paso 4: Generar simultáneamente la clave publica “e” y la privada “d” por métodos avanzados y muy seguros, pero en nuestro ejemplo lo obtenemos del sitio online: Generador de claves
El módulo 540 resulta de aplicar la función totient de Euler a n=589 (la explicación en artículos posteriores).
Resultado = 413, es el inverso multiplicative de e = 17
Paso 5: Cifrado del mensaje m= 16 horas con la clave publica 17
C = me modulo n
C = 1617 modulo 589
Introduciendo los datos en el sitio online: exponenciación modular
Resulta C = 101.
Paso 6: Así Roberto envía a Antonella el texto cifrado C = 101.
Paso 7: Descifrado del texto C con la llave privada d= 413, Antonella recibe C = 101 y calcula m:
m = Cd mod n
m = 101413 mod 589
Paso 8: En el sitio web introducimos los datos:
Resulta el mensaje m = 16, Antonella conoce que la reunión será a las 4 de la tarde.
Conclusiones:
Para transmitir datos entre los componentes de la infraestructura de un sistema de informática, como una red local (LAN) o externa (Internet) como servidores, clientes, routers etc. el cifrado es la garantía, de que terceras personas, aunque tengan acceso no conocerán el mensaje.
El estudio de la criptografía te ayudara a conocer cuan seguro es tu Sistema de información. Este es un ejemplo simplificado con fines educativos, en la practica la criptografía tiene algoritmos poderosos.
En el siguiente articulo estudiaremos como la criptografía enfrenta la autenticación de un mensaje, es decir si el que lo envía es quien debe ser.