Antes de describir y explicar los distintos modelos de encriptación, se debe tener en cuenta qué es la encriptación. Esta se define como “la criptografía”, que designa un procedimiento que traduce un texto plano de un largo variable como entrada a una salida que entrega una secuencia inteligible de caracteres de un largo fijo mediante distintos tipos de procedimientos, con distintos tipos de algoritmos de encriptación según su clave, pero ¿Cuáles son esos tipos de algoritmo?
Modelos de encriptación. Se debe tener en cuenta que las claves cifradas y las de descifrado pueden ser de criptografía simétrica, criptografía asimétrica o criptografía híbrida, pero ¿Qué significa cada tipo de criptografía?
Criptografía simétrica. El principio básico que compone la criptografía simétrica es que el cifrado y el descifrado se realizan con ayuda de una clave secreta. Esto implica que los dos actores (emisor y receptor del documento que se cifra) han de disponer de una copia de la clave. Esta clave debe protegerse de terceros para no arriesgar la información encriptada. Esto hace que a este procedimiento se le conozca también como criptografía de clave secreta.
Si la clásica criptografía simétrica utiliza el alfabeto para traducir un texto plano en un texto cifrado, el encriptado informático se realiza mediante bits. En este caso, se diferencia entre:
Cifrado en flujo (stream): el cifrado se realiza por bits y se basa en claves muy largas. Cada bit del texto sin formato se correlaciona con un bit en el flujo de claves, de tal forma que se crea un carácter cifrado. Cifrado de bloques: en este algoritmo los bits que se han de cifrar se agrupan en bloques de longitud fija, que se corresponden con otros diferentes. Resulta un cifrado de longitud fija. Métodos de criptografía simétrica. Data Encryption Standard, DES: Dentro de los modelos de encriptación, fue el primer método de encriptación informática y tan seguro como permitían los estándares de esa época. DES sienta las bases de la criptografía moderna. Es libre de derechos de patente, y hoy se considera ya obsoleto debido a la reducida longitud de 64 bits (56 bits útiles) de las claves.
Este algoritmo simétrico trabaja en bloques de bits (cifrado de bloques). El texto plano se subdivide en bloques de 64 bits, cada uno de ellos se cifra con una clave de 64 bits. Se traduce así cada texto de 64 bits en un texto cifrado de 64 bits. En realidad, el algoritmo solo utiliza 56 bits pues los ocho restantes se usan para comprobar la paridad, siendo descartados después.
El estándar actual de la tecnología ha hecho a una clave DES tan vulnerable que un ataque de fuerza bruta la descifra en unos pocos segundos.
Advanced Encryption Standard, AES: AES es el estándar de encriptación que reemplazó al anterior estándar de encriptación, recientemente explicado, de abreviatura DES, El NIST (National Institute of Standards and Technology) certificó AES a finales del año 2000.
AES también subdivide el texto plano en bloques, pero a diferencia del estándar anterior este soporta claves de 128, 192 y 256 bits. Además, en lugar de utilizar bloques de 64 bits, el estándar avanzado utiliza bloques más grandes de 128 bits, que se cifran en varias rondas consecutivas con ayuda de una red de sustitución-permutación (SPN).
AES ha demostrado una elevada seguridad debido a su algoritmo, sin conocerse ningún ataque relevante. La longitud de clave de 128 bits anula la eficacia de los ataques de fuerza bruta, por su sencilla implementación y gran velocidad. AES se utiliza como estándar de cifrado en WPA2, SSH e IPSec y su algoritmo se usa para cifrar archivos comprimidos como 7-Zip o RAR. Sin embargo, la información encriptada con AES solo está segura de los ataques externos mientras la clave permanezca en secreto.
Como solo se usa una sola clave, tanto para el cifrado como para el descifrado, este algoritmo padece los mismos problemas que todos los simétricos en relación con el intercambio de la clave. De esta manera, el uso seguro de AES se limita a aquellos campos de aplicación que no requieren un intercambio de claves o que lo permiten en un canal seguro.
Criptografía asimétrica. La gran diferencia de la criptografía asimétrica de la simétrica es que en este método ambos interlocutores generan un par de claves en cada lado. En pocas palabras, cada actor dispone de dos claves, una clave pública y una clave privada. Para poder comunicarse de forma encriptada, cada parte comparte su clave pública, lo que suele tener lugar mediante el servidor de claves. Es lo que se conoce como método de clave pública y privada. La clave privada no se conoce.
En la criptografía asimétrica las claves públicas son necesarias para el proceso de cifrado. También, permiten comprobar firmas digitales y verificar usuarios. Por el contrario, las claves privadas se utilizan para descifrar la información y posibilitan la creación de firmas digitales o autenticarse frente a otros usuarios.
Ejemplo de Criptografía Asimétrica: El actor “A1” quiere enviar un mensaje encriptado al actor “B1”. Para ello, “A1” necesita la clave pública de “B1”. La clave pública de “B1” permite a “A1” cifrar un mensaje de tal modo que sólo pueda ser descifrado con la clave privada de “B1”. A excepción de “B1”, no hay nadie que tenga la posibilidad de leer el mensaje. Ni siquiera “A1” tiene la posibilidad, tras haber cifrado el mensaje, de descifrarlo. A pesar de la seguridad del protocolo AES es necesario un mecanismo para poder probar la autenticidad de los participantes en la comunicación, y es en este punto donde aparecen los certificados y firmas digitales.
Una firma digital es un mecanismo criptográfico que permite al receptor de un mensaje firmado digitalmente identificar a la entidad creadora de dicho mensaje, y confirmar que el mensaje no ha sido alterado desde que fue firmado por el creador.
Los certificados digitales permiten comprobar la autenticidad de las claves públicas de los interlocutores. Entre ellos el X.509 se ha consolidado como estándar, encontrando aplicación, por ejemplo, en la transferencia cifrada de datos TLS/SSL con HTTPS o en el cifrado de correos electrónicos mediante S/MIME.
Métodos de criptografía híbrida. Los métodos de cifrado híbrido consisten en la utilización de algoritmos tanto simétricos como asimétricos en la transferencia de datos en Internet. El objetivo de esta combinación es compensar las debilidades de un sistema con las ventajas de otro. En la criptografía híbrida los algoritmos asimétricos ya no se utilizan para encriptar datos útiles, sino para asegurar la transferencia de una clave de sesión simétrica en un canal no protegido. Esta clave permite, a su vez, descifrar eficazmente un texto codificado con ayuda de algoritmos simétricos.
La criptografía híbrida se utiliza en la forma de IPSec en la comunicación segura a través de redes IP no protegidas y como TLS/SSL en el protocolo de transferencia de hipertexto seguro o HTTPS, así como también es la base para estándares de cifrado como Pretty Good Privacy (PGP), GnuPG y S/MIME, utilizados en el cifrado del correo electrónico.
Pero, ¿Cuál de los modelos de encriptación utiliza EasyTax? Dentro de los modelos de encriptación, en Easytax decidimos utilizar las funciones hash de encriptación, especialmente la función sha-256 en lugar de MD5, que es una función hash popular y ampliamente usada que trabaja con bloques de 512 bits y genera resúmenes de hash de 128 bits. MD5 fue publicada en 1992, y aunque durante estos años fue usada y adoptada en forma generalizada, se han descubierto varias vulnerabilidades durante los últimos años, por lo que actualmente se recomienda usar algoritmos más seguros como SHA-256, en lugar de MD5.