La criptografía es la ciencia del secreto. Es el conjunto de técnicas que nos permite cifrar y descifrar información para poder trasmitir datos de una forma segura.
Los elementos del sistema criptográfico son:
El mensaje en claro: Es el que se puede leer a simple vista.
El mensaje cifrado o criptograma: Es el resultado de cifrar un mensaje en claro.
Las acciones de cifrar y descifrar: Son las propias acciones
El criptoanálisis: El estudio de los métodos para romper un cifrado o criptograma.
Tipos de Criptografía 🔑
1- Criptografía simétrica: datos en reposo
En la criptografía de cifrado simétrico, se utiliza la misma clave de cifrado para cifrar y descifrar los datos. Este medio de cifrado se utiliza principalmente para proteger los datos en reposo.
Un ejemplo sería cifrar datos confidenciales en texto cifrado mientras están almacenados en una base de datos y descifrarlos en texto sin formato cuando un usuario autorizado accede a ellos, y viceversa.
El cifrado simétrico se utilizan principalmente para proteger los datos en reposo.
Los principales algoritmos de cifrado simétrico existentes son:
Por bloques
El cifrado de bloque procesa la entrada de texto claro en bloques de tamaño fijo y produce un bloque de texto cifrado de igual tamaño para cada bloque de entrada
Los algoritmos de cifrado simétrico de bloque más importantes son:
• Data Encryption Standard (DES)
• Triple DES (3DES)
• Advanced Encryption Standard (AES)
En flujos
En este algoritmo de cifrado se combinan los dígitos del texto claro con un flujo pseudoaleatorio de dígitos (flujo de claves). Puede ser síncrono o asíncrono.
En el cifrado de flujo síncrono, el flujo de claves se genera en función de la clave solamente. En el asíncrono (o auto-sincronizable), el flujo de claves se genera en función de la clave y de un número fijo de dígitos previos del texto cifrado.
Triple DES
Triple DES o 3DES es el sucesor del algoritmo DES, o el Estándar de cifrado de datos.
DES es un método obsoleto de clave simétrica de cifrado de datos. Fue eliminado debido a sus vulnerabilidades sobreexplotadas.
Originalmente, DES solía ser un método de cifrado muy popular. Es una creación de los ingenieros de IBM, desde 1970. En 1977, el gobierno de los EE. UU. Lo adoptó como un estándar de cifrado: el Estándar de cifrado de información federal. DES se utilizó para proteger datos no clasificados pero confidenciales.
Fue el primer algoritmo aprobado por el gobierno federal para divulgación pública. Ganó popularidad rápidamente entre las empresas que se ocupan de información confidencial: instituciones financieras, empresas de telecomunicaciones, otros proveedores de software e Internet, etc.
DES cifra los datos agrupándolos en bloques y codificándolos simultáneamente aplicando la clave a todo el bloque, en lugar de bit a bit. Los bloques son siempre de 64 bits.
La clave podría aplicarse a todos los bloques simultáneamente o podría usarse otro modelo en el que el cifrado de un bloque dependa del resultado del anterior.
En DES, la misma clave se usa para cifrar y descifrar el mensaje. La decodificación no es más que aplicar los mismos pasos en dirección inversa y en orden inverso.
Triple DES se utiliza para pagos en línea, por aplicaciones en el paquete de Microsoft Office, así como por Firefox y Thunderbird de Mozilla.
Blowfish
Al igual que DES, la tecnología de Blowfish es simétrica, lo que significa que se usa una clave privada (o solo una clave) para cifrar un bloque completo de datos. El tamaño de los bloques es de 64 bits, y la longitud de la clave puede variar de una clave de 32 bits a una de 448 bits.
Con la capacidad de usar teclas más cortas, el método Blowfish es una alternativa que es considerablemente más rápida que sus dos competidores. La excepción es cambiar las claves. Cada cambio de clave requiere un preprocesamiento, que requiere recursos equivalentes a encriptar 4KB de texto.
Blowfish no está patentado. Su flexibilidad, velocidad y seguridad le da una ventaja competitiva frente a sus alternativas. Se puede utilizar y explorar de forma gratuita. Por lo tanto, es muy popular en software criptográfico.
Twofish
Twofish, al igual que su predecesor Blowfish, utiliza cifrado en bloque. Es simétrico, lo que nuevamente significa que se usa la misma clave para cifrar y descifrar. Twofish divide el mensaje que necesita cifrado en bloques de 128 bits y aplica la clave simultáneamente a todos los bloques. El tamaño del bloque es otra diferencia con Blowfish.
A diferencia de su predecesor, Twofish solo usa claves para el cifrado de datos de hasta 256 bits. El cifrado de cada bloque tiene una relación compleja con el resultado del cifrado del bloque anterior.
La codificación con Twofish es popular para software y dispositivos que tienen recursos de procesamiento relativamente bajos a su disposición, como las tarjetas SIM.
Twofish se considera rápido, flexible y, al mismo tiempo, tiene un diseño conservador.
Al igual que Blowfish, el método de cifrado no ha sido patentado y es de uso gratuito.
AES
AES es otro algoritmo de cifrado simétrico. Se hizo popular por su fácil implementación en hardware, así como por entornos restringidos.
Sus características son:
• Fue probado previamente para resistir ataques.
• Alta eficiencia computacional y de memoria y bajo coste.
• Flexibilidad, fácil implementación y simplicidad.
AES trabaja con rondas de cifrado. Cada ronda es una secuencia de varios pasos de procesamiento, que podrían ser una combinación de sustitución, transposición y creación de relaciones entre el texto sin formato de entrada y la salida.
El número de rondas aplicables varía con 10 rondas aplicadas con claves de 128 bits, 12 rondas para claves de 192 bits y 14 rondas para claves de 256 bits.
El cifrado AES utiliza la sustitución de datos basada en tablas por filas y columnas. La regla de sustitución está dictada por diferentes partes de la clave de cifrado.
2- Criptografía asimétricas: datos en movimiento
Las claves asimétricas son un par de claves para el cifrado y descifrado de los datos. Ambas claves están relacionadas entre sí y se crean al mismo tiempo. Se les conoce como clave pública y privada:
• Clave pública: esta clave se usa principalmente para cifrar los datos y se puede dar libremente, ya que se usará para cifrar datos, no para descifrarlos.
• Clave privada: esta clave se utiliza para descifrar los datos que su contraparte, la clave pública, ha cifrado. Esta clave debe protegerse, ya que es la única clave que puede descifrar los datos cifrados.
Cada usuario tiene una clave publica y una clave privada. La clave publica se puede compartir, enseñar…La clave privada es única y secreta.
Estas claves son complementarias, es decir si cifro con la clave publica, se descifrará con la clave privada. Y si cifro con la clave privada se descifrará con la clave pública.
En función que firmes con una u otra clave, obtendrás unas características u otras. Los elementos de una comunicación segura son:
• Confidencialidad: codifica el contenido del mensaje. Para obtener confidencialidad debemos cifrar el contenido con la clave publica de la persona receptora, siendo ella la única que podrá descifrar el contenido por medio de su clave privada, siendo ella su única poseedora.
• Autenticación: verifica el origen de un mensaje. Para obtener autenticación debemos cifrar el contenido con nuestra clave privada, requiriendo nuestra la clave publica para descifrar el contenido.
• Integridad: demuestra que el contenido de un mensaje no ha cambiado desde que se envió.
• No rechazo: evita que los remitentes nieguen haber enviado el mensaje cifrado.
Los algoritmos de cifrado asimétrico más conocidos son:
RSA
RSA es asimétrico, lo que significa que el sistema no está utilizando la misma clave para descifrado y cifrado. El algoritmo funciona mediante la generación de una clave pública y una privada. Las claves pública y privada no son idénticas, pero están vinculadas entre sí.
No hay diferencia sobre qué clave se usa para el cifrado y cuál se usa para el descifrado. Tanto la clave privada como la pública pueden usarse para codificar el mensaje y la clave opuesta deberá aplicarse para decodificarlo.