Algoritmos de encriptación en bloques


Derivado de una consulta que nos hicieron sobre el algoritmo de encriptación IDEA, que es un algoritmo algo viejo y no recomendado, pero útil para fines didactivos explicaremos como funcionan estos algoritmos de encriptamiento, no sera el proceso completo, puesto que es algo largo, así que resumiremos algunas cosas.

Lo primero es que aclarar que NO se aplican algoritmos de encriptación en bloque a cadenas de caracteres, esto se hace a nivel de bits y no existe equivalencia al hacerlo con valores enteros, asi que lo primero que necesitamos es una clave y un texto:

  • texto= «hola buenos días a todos»
  • clave=»soy un tonto»

lo primero sera transformar todo esto a bits, tomamos cada letra del texto, buscamos su valor en ASCII y lo convertimos a binario, algo como lo siguiente:

 

En la imagen he colocado 160 porque es el numero de bits que da como resultado de convertir el texto del ejemplo, ahora bien, el proceso se vuelve a hacer pero con la clave, con eso ya tenemos las entradas de nuestro algoritmo.

 

Para comenzar no tomamos los 160 caracteres del golpe, los dividimos en grupos de 64, si no alcanzan para completar los grupos de 64, algunos algoritmos generan valores complementarios. quedando algo así.

En la imagen hemos tomado 64 bits y mostramos dos grupos de 16, esos serán x1 y x2 en nuestro algoritmo son 4 bloques de 16, ahora bien el proceso se repite con la clave, pero en como la clave es de 128 bits o debe serlo de forma obligatoria se divide en 8 bloques de 16, pero solo se tomaran 6 de esos bloques, estos bloque se nombran z.

Después de la conversiones comienza el proceso de multiplicar, que es algo mas o menos así:

Observe que se multiplica el primer bloque del texto por el primer bloque de la clave y de la misma forma con los demás bloques, y los resultados salteados se combinan con la función XOR, es decir, el 1 con el 3 y el 2 con el 4, como vemos en el diagrama, es importante recordar que cada cuadro representa un grupo de 16 bits y los resultados de cada operación son bits o números binarios.

Después de todo esto, se hacen unas cuantas sumas y funciones XOR mas, pero recuerde dos cosas:

  1. hasta este punto solo se ha realizado una ronda, este proceso se repetira con sun propio resultado 8 veces mas, empleando una modificación de la clave.
  2. en este punto solo se esta cifrando una parte de la clave, es decir, solo se han cifrado 64 bits, el proceso se repetirá para el siguiente grupo de 64 bits hasta terminar con todos los grupos

La clave es alterada a través de una permutación en cada vuelta, y el texto cifrado resulta de la unión de cada bloque de 64 bits

 

Esperamos que esta explicación sea de utilidad.

 

 

 

Anuncio publicitario

¿Qué estas pensando?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.