Contenido del curso
Conceptos Criptográficos
Criptografía Simétrica
- 9

Cifrado por bloques vs flujo en criptografía
Viendo ahora - 10

"Funcionamiento del Estándar de Cifrado Avanzado AES"
07:05 min - 11

Cifrado y Descifrado de Archivos con AES en Línea de Comandos
12:36 min - 12

Funciones de Hash y su Importancia en Criptografía
04:35 min - 13

Funciones de Hash y HMAC en Línea de Comandos con OpenSSL
10:40 min
Criptografía Asimétrica
- 14

Aritmética Modular en Criptografía: Fundamentos y Aplicaciones
05:22 min - 15

Intercambio de Llaves en Criptografía Moderna
05:50 min - 16

Criptografía Asimétrica: Algoritmo Diffie-Hellman y su Aplicación
03:53 min - 17

Implementación de Diffie-Hellman en Línea de Comandos
12:42 min - 18

Cómo RSA cifra y firma mensajes
09:31 min - 19

Implementación de RSA en Línea de Comandos para Firmado de Documentos
17:39 min - 20

Criptografía de curvas elípticas en la práctica
04:44 min - 21

Firma Digital con Algoritmos de Curvas Elípticas (ECDSA)
05:36 min
Criptografía Moderna
Cifrado por bloques vs flujo en criptografía
Resumen
En criptografía moderna, los ciphers son los pequeños fragmentos de software o código que contienen el proceso de mezclado con el que encriptas información. Entender cómo operan te permite elegir el algoritmo correcto para proteger datos en aplicaciones reales, ya sea que estés cifrando archivos estáticos o transmitiendo video en streaming.
La base de todo procedimiento de cifrado parte de una idea sencilla: una función simétrica recibe texto plano, devuelve texto encriptado y, al pasar ese resultado de vuelta por la función, recupera el texto original. Esa pequeña cajita que recibe información de un lado y la entrega del otro es lo que define a un cipher [0:34].
¿Qué es un cipher y cómo funciona en criptografía?
Un cipher es la implementación concreta de un algoritmo de encripción. La mayoría ya vienen empaquetados en librerías que usarás directamente, así que tu trabajo no es reinventarlos, sino entender su modo de operación para configurarlos bien.
¿Qué es un cipher? Es un fragmento de software que contiene el proceso de mezclado mediante el cual se encripta información. Recibe texto plano y devuelve texto cifrado usando una función simétrica.
A partir de esa definición, los ciphers modernos se dividen en dos grandes familias: los que cifran por bloques y los que cifran por flujo. Cada uno responde a un escenario distinto.
¿Cómo funciona el cifrado por bloques?
El cifrado por bloques opera en rondas [1:24]. Tomas una porción de información, le aplicas el algoritmo de encripción, y al resultado le vuelves a aplicar la misma función, probablemente con una llave distinta. Cada proceso se envuelve en el siguiente, capa sobre capa.
La forma de generar las llaves y de ejecutar cada ronda depende del algoritmo, pero la lógica es siempre la misma: encadenar transformaciones para que el texto cifrado final sea muy difícil de revertir sin la llave correcta.
¿Qué son los modos de operación en cifrado por bloques?
Los algoritmos de bloque tienen modos de operación que cambian cómo se cifra el contenido. Uno de los más populares es el electronic code book (ECB), que paraleliza la información separándola en bloques y cifra cada bloque por sí solo [2:08].
ECB es popular por su simpleza, pero existen modos más seguros según la aplicación. La regla práctica es que el modo de operación es configurable cuando usas un algoritmo de cifrado, así que conviene revisar cuál ofrece tu librería antes de elegir uno por defecto.
¿Qué es el cifrado por flujo y cuándo conviene usarlo?
El cifrado por flujo se usa cuando no conoces de antemano la información completa que vas a encriptar. El ejemplo más claro es el streaming en servicios como Spotify o YouTube [2:42], donde el contenido es pesado y se envía en tiempo real.
La técnica consiste en aplicar un generador de números pseudoaleatorio que empuja bits aleatorios sobre la información que va llegando por el flujo. Como ese generador es determinista, basta con tener la llave para aplicar el mismo flujo en sentido contrario y revelar el contenido original.
¿Qué es un nonce en criptografía? Es un número que solo se utiliza una vez (number used once). Se combina con la llave para diferenciar cada uso del cifrado y evitar que el siguiente resultado sea predecible.
Si repites la combinación de llave y nonce, el cifrado se vuelve predecible y, por tanto, inseguro. Por eso los cifrados de flujo siempre exigen ambos elementos juntos [3:45].
¿Qué arquitecturas de flujo existen para cifrar información?
Así como el cifrado por bloques tiene modos de operación, el cifrado por flujo tiene arquitecturas de flujo que definen cómo se distribuye la información al momento de encriptarla.
Flujo basado en estado
Este modelo mantiene una memoria interna que se actualiza con cada encripción. Ese estado funciona como una segunda semilla, de modo que el siguiente procedimiento depende del anterior [4:25].
La consecuencia práctica es que no puedes saltar a un punto intermedio del flujo y continuar desde ahí. Esa restricción es deliberada, porque saltar a un punto arbitrario es justamente uno de los ataques que se intentan contra el cifrado por flujo.
Flujo basado en contador
Aquí no usas solo llave y nonce, sino que también generas llaves específicas para cada flujo de tu aplicación mediante un contador externo [4:58]. El estado deja de vivir dentro del mecanismo y depende de un output que tú provees.
Ambas arquitecturas ofrecen seguridad similar, siempre que el contador tenga las mismas garantías que el estado interno: principalmente, que un atacante no pueda alterarlo a propósito.
Resumen rápido de los tipos de cifrado moderno
Para que te quede claro el mapa antes de implementar cualquier algoritmo, estos son los puntos que debes tener en mente:
- Los ciphers son funciones simétricas que entran texto plano y salen texto cifrado.
- El cifrado por bloques opera en rondas y usa modos de operación como ECB.
- El cifrado por flujo se apoya en generadores pseudoaleatorios y exige llave más nonce.
- Las arquitecturas de flujo se dividen en basadas en estado y basadas en contador.
- La seguridad depende tanto del algoritmo como del modo o arquitectura que elijas.
¿Qué ejemplos conoces de arquitecturas de cifrado por flujo o de modos de operación para cifrado por bloques? Déjalos en los comentarios para comparar implementaciones.