Cifrando con AESphere

  Este programa permite al usuario realizar prácticas con el algoritmo ECA {Estándar de Cifrado Avanzado ["Advanced Encryption Standard" ("AES"), en inglés]} en entornos de Windows.
  Desarrollado en Java, su nombre se debe a la esfera que recubre al candado en el logotipo.
  Esta aplicación se emplea en criptografía, que es el ámbito de la criptología que se ocupa de las técnicas de cifrado o codificado destinadas a alterar las representaciones lingüísticas de ciertos mensajes con el fin de hacerlos incomprensibles a receptores no autorizados.
  Concretamente, AESphere, como su nombre indica, emplea el algoritmo ECA, también conocido como Rijndael, que consiste en un esquema de cifrado por bloques adoptado como un estándar de cifrado.  

LA CRIPTOGRAFÍA

 La criptografía es un antiguo (empezó en el siglo V a.C.) arte y ciencia de codificar información (texto plano) en un formato ilegible (texto cifrado) usando algoritmos y claves secretas, para asegurar la confidencialidad, integridad y autenticidad de los datos, protegiendo comunicaciones y archivos en sistemas informáticos, comercio electrónico y aplicaciones cotidianas, por lo que es fundamental para la ciberseguridad moderna, transformando datos en un lenguaje secreto que solo el destinatario autorizado puede descifrar.
  El primer sistema de cifrado era la escítala.


  Los conceptos básicos de la criptografía son:
  •   Texto plano: El mensaje original y legible.
  •   Algoritmo: Un método matemático para manipular el texto.
  •   Clave: Una pieza de información secreta que, junto con el algoritmo, determina la transformación.
  •   Texto cifrado: El resultado codificado e ininteligible.
  •   Descifrado: El proceso inverso para recuperar el texto plano, usando la clave correcta. 
    La criptografía posee los siguientes objetivos:
  •   Confidencialidad: Que solo usuarios autorizados accedan a la información.
  •   Integridad: Asegurar que los datos no han sido alterados.
  •   Autenticación: Verificar la identidad del remitente y la autenticidad de los datos.
  •   No repudio: Impedir que alguien niegue haber realizado una acción. 
  Esta ciencia alberga los siguientes tipos:
  •   Simétrica: Usa la misma clave para cifrar y descifrar. Requiere compartir la clave de forma segura.
  •   Asimétrica (o de Clave Pública): Utiliza un par de claves: una pública (para cifrar) y una privada (para descifrar). Permite comunicaciones seguras sin intercambio previo de secretos.
  •   Cuántica: Utiliza principios de la mecánica cuántica para una seguridad teóricamente inquebrantable. 


ECA

  Se trata de un algoritmo de cifrado simétrico en bloques, muy seguro y rápido, que usa la misma clave para cifrar y descifrar datos, protegiendo información sensible en internet, sistemas de pago y más, y opera con bloques de 128 bits y longitudes de clave de 128, 192 o 256 bits, aplicando múltiples rondas de sustitución, transposición y mezcla para una alta seguridad.
  Sus características más relevantes son:
  •   Simétrico: Utiliza la misma clave secreta para cifrar (texto plano a cifrado) y descifrar (cifrado a texto plano).
  •   Cifrado en bloques: Procesa los datos en bloques de 128 bits, usando diferentes modos para datos más grandes.
  •   Rondas de cifrado: Aplica múltiples rondas (10, 12 o 14, según la longitud de la clave) de operaciones como ByteSub (sustitución)}, ShiftRows (transposición)} y MixColumns (mezcla)} para una seguridad robusta.
  •   Longitudes de clave: Soporta claves de 128, 192 y 256 bits, ofreciendo distintos niveles de seguridad.
  •   Estándar abierto: De uso público, se ha convertido en un estándar global para la industria y gobiernos, como el de EE. UU., para proteger información clasificada. 
  Su uso básico consiste en:
  1.   Texto plano + clave: El mensaje original (texto plano) y la clave secreta se combinan.
  2.   Rondas repetidas: Se aplican una serie de transformaciones (sustitución, transposición, mezcla) en varias rondas.
  3.   Claves de ronda: Se genera una clave diferente para cada ronda a partir de la clave original.
  4.   Texto cifrado: El resultado es un texto ilegible que solo puede revertirse con la clave original y el algoritmo.

INSTALACIÓN Y CONFIGURACIÓN

  El programa puede descargarse en el siguiente enlace.
  A continuación, se descomprime el archivo comprimido.
  Antes de abrirlo, es posible que se deba instalar una versión Java compatible con el AESphere, junto a un paquete de Windows llamado Zulu compatible con dicha versión de Java.

  Para abrir el programa, se pulsará sobre el ejecutable "AEsphere" de tipo "zulu".

USO BÁSICO

  Este programa permite al usuario comprobar los vectores estándar del algoritmo según los RFC (Request For Comments) del NIST, National Institute of Standards and Technology, así como cifrar y descifrar en modo ECB y CBC con entradas por teclado en formato ASCII, hexadecimal o Base64 (método de codificación que convierte datos binarios (como imágenes, archivos, etc.) en una cadena de caracteres de texto ASCII imprimibles, usando un alfabeto de 64 símbolos (letras mayúsculas, minúsculas, números y dos símbolos extra, más "=" para relleno) para permitir su almacenamiento y transmisión segura en sistemas diseñados para texto, evitando corrupción de datos), o bien a través de archivos, para claves de 128, 192 y 256 bits también en los tres formatos indicados, al igual que las salidas. El modo de ejecución de la aplicación puede elegirse como directo o paso a paso. Por otra parte, permite realizar ataques a la clave en modo monousuario con una sola máquina trabajando como servidor y cliente, o bien a través de una red con un servidor y "n" clientes. Por último, muestra los resultados y seguimiento gráfico dinámico de las operaciones SubBytes, ShiftRows, MixColumns y AddRoundKey del ECA.

  Su menú básico (en la parte superior izquierda de la ventana principal) posee las siguientes partes:
  •   Archivo: Sólo tiene la opción para salir del programa.
  •   Herramientas: Tiene las mismas opciones que se muestran mediante botones en la ventana.
  •   Ayuda: Sus opciones muestran el archivo de ayuda.
  Además de este menú, la ventana se compone de botones para realizar sus diferentes funciones:
  •  Verde: Se accede a la ventana correspondiente al proceso de cifrado, con todas sus opciones de configuración.
  •   Rojo: Conduce a la ventana de descifrado, en la que se podrán configurar todos los detalles del proceso.
  •   Naranja: Mediante el que es posible simular un ataque por fuerza bruta basado en un esquema Cliente - Servidor.
  •   Azul:  Permite comprobar el funcionamiento de los subprocesos que constituyen el algoritmo de cifrado ECA.
  •   Comprobar vectores: Accede a la comprobación del correcto funcionamiento de la implementación del algoritmo ECA, usando para ello los vectores de prueba incluidos en el RFC original de dicho algoritmo.
  En su parte inferior también hay dos botones para seleccionar el idioma (español o inglés) y para acceder al archivo de ayuda (en la parte inferior derecha). 

Cifrando un texto
  Pulsando en el botón "CIFRAR" (o desde el menú de la ventana principal), se accede a la pantalla de cifrado.
  Esta pantalla también tiene un menú en su parte superior izquierda  con una opción "Archivo" (con opciones para abrir y/o guardar, un archivo con clave de Base64, o bien para salir de esta pantalla), "Editar" (con opciones para copiar y pegar una entrada y/o una clave), y "Ayuda" (opciones para acceder al archivo de ayuda).
  En la sección "ENTRADA" hay un desplegable donde se pueden escoger las siguientes opciones:
  •   Texto ASCII: Se habilita el área de texto para poder introducir un texto de hasta 1024 caracteres. El texto se rellenará para que el tamaño del mismo coincida con el tamaño de bloque que utiliza la aplicación para cifrar y descifra (este relleno no afectará en ningún momento ni al cifrar ni al descifrar).
  •   Hexadecimal: Se procede de manera análoga a la anterior, rellenando la entrada únicamente con caracteres hexadecimales ya que la aplicación sólo permite la entrada de caracteres hexadecimales.
  •   Archivo: Se habilitará el botón "Buscar", que permite al usuario elegir un archivo de entrada. Puede ser cualquier tipo de archivo; tanto un archivo de texto (en cuyo caso se cifrará su contenido), como una imagen, un archivo de sonido, un archivo comprimido, etc. La única limitación es el tamaño del archivo, que es de 40 megabytes, ya que el propósito de esta aplicación es fundamentalmente didáctico, y archivos mayores conllevan un proceso muy largo e incluso llegando a colapsar la pila de Java.
  También está la caja para escribir el texto pertinente.
  
  En la subsección "Clave"  también hay un desplegable con las mismas opciones que en la sección anterior (aunque en la opción de "Archivo" se especifica que debe ser de  Base64). Después, aparecen tres opciones de tamaño de clave: 128, 192 ó 256 bits. Este tamaño provocará que el proceso de cifrar tenga más o menos rondas: 10, 12 ó 14 respectivamente. Por otra parte, el número de caracteres a introducir dependerá directamente del tamaño de bits elegido, puesto que la aplicación no permite introducir más caracteres del que se expecifiquen. La clave cargada de archivo en caso de ser menor de los bits marcados, se rellenará para coincidir con el tamaño de bits elegido.
  También se encuentra la caja para escribir el texto adecuado de la clave.
  En la sección "SALIDA" se puede escoger el formato usando, principalmente, el desplegable con las opciones: "Base64", "Hexadecimal" y "Archivo". De esta elección dependerá el formato de escritura de la salida del cifrado. De elegir salida archivo, se deberá especificar la ruta donde se creará el archivo o bien elegir, mediante el botón "Buscar". Si elegimos un archivo existente, se reemplazará tras el término del cifrado.
  La sección "OPCIONES AVANZADAS" posee dos subsecciones, cada una con un desplegable:
  •   Método de cifrado: Permite escoger el tipo de cifrado en el desplegable entre sus opciones:
    •   Modo ECB: El Libro Electrónico de Códigos {LEC ["Electronic Codebook" ("ECB"), en inglés]} es el método más simple de cifrado por bloques, que divide el mensaje en bloques y cifra cada uno de ellos de forma independiente con la misma clave. Es inseguro y está obsoleto.
    •   Modo CBC:  El Encadenamiento de Bloques Cifrados {EBC ["Cipher Block Chaining" ("CBC"]} es un método criptográfico por bloques que mejora la seguridad al encadenar la encriptación de datos, usando una operación XOR [función lógica que devuelve verdadero (1) si una y solo una de sus entradas es verdadera, y falso (0) si ambas entradas son iguales (ambas verdaderas o ambas falsas)] entre cada bloque de texto plano y el bloque cifrado anterior (o un Vector de Inicialización, IV, para el primero) para que bloques iguales no produzcan salidas iguales, ocultando patrones, aunque su procesamiento es secuencial y no paralelizable. Al seleccionar esta opción, se habilitaría una casilla de verificación para poder introducir el IV manualmente, o bien, que se genere aleatoriamente.
  •   Modo de ejecución:  Permite elegir el modo de ejecución del cifrado en el desplegable entre sus opciones:
    •   Directo:  La salida es directamente la entrada cifrada.
    •   Paso a paso:  La salida es el resultado de los pasos intermedios del proceso junto con la entrada cifrada respectivamente. En este caso, el procedimiento tardará más. De elegir salida "Archivo", el modo "paso a paso" sólo mostrará el primer y último bloque en caso de que éste sea demasiado grande.
  En este ejemplo se usará el texto ASCII "Todo gran poder conlleva una gran responsabilidad.", con una clave ASCII de 128 bits "1234567890123456" y una salida de Base64 con el método de cifrado "ECB" y el modo de ejecución "Directo". Tras configurar el cifrado, se pulsará el botón "Siguiente".

  La siguiente ventana muestra el resultado del cifrado con un texto en claro ("546f646f206772616e20706f64657220636f6e6c6c65766120756e61206772616e20726573706f6e736162696c696461642e0e0e0e0e0e0e0e0e0e0e0e0e0e0e"", en este ejemplo),  en formato hexadecimal, y un texto cifrado (en este ejemplo "ZZYR2HPECBXSSMO2RP2bSfPD/otjZ5V/MtFahtVypPkO0/9p2OTBUVZylB3ht5rOlwvdpztE9NHiLK0NCKgbtw==") en el formato escogidoAdemás, si se eligió como método de cifrado "Método CBC", en el apartado "Vector de Inicialización" se puede ver el vector que se usó para el proceso.
  La ventana también tiene un menú en la parte superior izquierda con las siguientes opciones: "Archivo" (permite salir de la pantalla), "Edición" [permite copiar y pegar los dos tipos de texto y el vector de inicialización (si procede)], "Ayuda" (opciones para acceder al archivo de ayuda). Al terminar, se cierra manualmente la ventana.

Descifrando un texto
  Se pulsa en el botón "DESCIFRAR" (o desde el menú de la ventana principal), se accede a la pantalla de descifrado.
  Esta pantalla es igual que la anterior pero con una diferencia: En las opciones de "ENTRADA" y "SALIDA" donde antes estaba la opción "Texto ASCII", ahora está la opción "Base64" y viceversa. 
  En este ejemplo se revertirá el cifrado hecho en el ejemplo anterior, poniendo el texto cifrado "ZZYR2HPECBXSSMO2RP2bSfPD/otjZ5V/MtFahtVypPkO0/9p2OTBUVZylB3ht5rOlwvdpztE9NHiLK0NCKgbtw==" en la caja de "ENTRADA" y la clave "1234567890123456", dejando el resto de configuraciones de modo predeterminado. Al terminar, se pulsa en el botón "Siguiente".
  La siguiente ventana muestra un texto cifrado "659611d873c40815d248c3b644fd9b49f3c3fe8b6367957f32d15a86d572a4f90ed3ff69d8e4c1515672941de1b79ace970bdda73b44f4d1e22cad0d08a81bb7", e
n formato hexadecimal, y el texto descifrado "Todo gran poder conlleva una gran responsabilidad.". 

Operaciones
  En esta pantalla es posible acceder a cada una de las fases que se realizan en las rondas del algoritmo ECA facilitando así su comprensión y pudiendo comprobar en detalle como funciona este algoritmo de cifrado. En cada una de estas fases se opera con una matriz de 4x4 bytes llamada "state", y es de esa forma (como matriz) como se introducirán los datos en la aplicación.
  En esta pantalla se tiene acceso a 4 operaciones:
  •   SubBytes: Permite al usuario comprobar el funcionamiento de la fase de SubBytes, durante la cual se realiza una sustitución no lineal donde cada byte es reemplazado con otro de acuerdo a una tabla de búsqueda.
  •   ShiftRows: Permite al usuario podremos comprobar el funcionamiento de la fase de ShiftRows en la cual se realiza una rotación cíclica de los bytes de la matriz de entrada.
  •   MixColumns: Permite al usuario probar el funcionamiento de MixColumns, la operación de mezclado que opera en las columnas de la matriz, combinando los cuatro bytes en cada columna usando una transformación lineal.
  •   AddRoundKey: Permite al usuario probar el funcionamiento de AddRoundkey, donde cada byte de la matriz de entrada es combinado con la clave de ronda mediante una operación XOR.
  Si se quiere salir de esta pantalla, se pulsará el botón "Atrás".


  Espero que la presente entrada haya sido interesante para el lector. Si es así, aguardo que el lector la comente y/o la comparta, por favor.  

https://www.pdfgear.com/es/
https://es.planetcalc.com/2468/

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.