Criptografia. Cifrado e Historia
Base64
¿Qué es?
Base64 es un esquema de codificación binaria a texto que convierte datos binarios en una representación textual legible basada en 64 caracteres ASCII. Este conjunto incluye letras mayúsculas y minúsculas (A-Z, a-z), dígitos (0-9) y dos símbolos especiales (+, /). A menudo se utiliza para codificar datos que deben almacenarse o transferirse a través de medios que están diseñados para manejar solo datos de texto.
¿De dónde proviene?
Base64 fue introducido formalmente en el RFC 1421 en el contexto de la codificación de contenido para correo electrónico (MIME) y más adelante refinado en el RFC 4648, que estandariza su uso en aplicaciones modernas.
¿Por qué se usa?
Transmisión segura de datos binarios (imágenes, archivos, certificados, etc.) a través de canales de solo texto.
Codificación de credenciales para autenticación HTTP básica.
Persistencia de datos binarios en formatos como JSON o XML.
Uso en consola
# Codificar
echo -n "texto" | base64
# Decodificar
echo "dGV4dG8=" | base64 -d
Flags útiles
-d
o--decode
: decodifica datos codificados en Base64.-w N
: envuelve las líneas de salida a cada N caracteres (útil en MIME).
Ejemplo completo
$ echo -n "CyberCrack" | base64
Q3liZXJDcmFjaw==
$ echo "Q3liZXJDcmFjaw==" | base64 -d
CyberCrack
URL Encode
¿Qué es?
La codificación de URLs (o codificación de porcentaje) convierte caracteres no válidos para URLs en un formato seguro utilizando el símbolo %
seguido por dos dígitos hexadecimales que representan el valor ASCII del carácter.
¿Por qué?
URLs sólo permiten un subconjunto de caracteres ASCII. Caracteres especiales como espacios, &
, ?
, #
, etc., pueden interferir con el análisis de la URL.
Ejemplo
https://example.com/buscar?q=hola mundo
→ https://example.com/buscar?q=hola%20mundo
Más info en MDN Web Docs - URL Encoding.
Codificación Hexadecimal
¿Qué es?
Representación de datos binarios utilizando base 16. Cada byte se representa por dos dígitos hexadecimales. Fundamental para entender cómo se almacenan y procesan datos a bajo nivel.
Ejemplo técnico
Texto: Hola
ASCII: 72 111 108 97
Hex: 48 6f 6c 61
Se usa frecuentemente en:
Análisis forense
Criptografía
Programación de bajo nivel
Criptografía, Criptoanálisis y Cryptosystem
Criptografía
Es la ciencia de escribir en secreto. Involucra técnicas para ocultar información a ojos no autorizados. Incluye:
Cifrado
Firmas digitales
Protocolos de autenticación
Criptoanálisis
El arte de romper cifrados. Técnicas comunes:
Fuerza bruta
Análisis de frecuencia
Criptoanálisis diferencial y lineal
Cryptosystem
Modelo formal de un sistema criptográfico. Incluye:
Espacio de claves
Algoritmo de cifrado y descifrado
Protocolo de gestión de claves
La Triada CIA
Conceptos
Confidentiality (Confidencialidad): Asegura que la información solo sea accesible a quienes están autorizados.
Integrity (Integridad): Garantiza que la información no ha sido alterada de manera no autorizada.
Availability (Disponibilidad): Asegura que los datos estén accesibles cuando se necesiten.
Ejemplos prácticos
C: Uso de cifrado TLS.
I: Validación de integridad con hashes (SHA-256).
A: Implementación de backups y redundancia.
Tipos de Criptografía
Simétrica
Usa la misma clave para cifrar y descifrar. Ventaja: rapidez. Desventaja: gestión segura de claves.
Ejemplos: AES, DES, Blowfish
Asimétrica
Utiliza un par de claves: pública y privada. Muy usada en Internet (HTTPS, GPG).
Ejemplos: RSA, ECC, ElGamal
Funciones Hash
Transforman cualquier entrada en una salida de tamaño fijo. Irreversibles.
Ejemplos: SHA-2, SHA-3, MD5 (inseguro)
Autenticación y No Repudio
Autenticación: Confirma identidad (contraseñas, tokens).
No repudio: Prueba que una transacción fue realizada por una parte (firmas digitales).
Key Space y Longitud de Clave
Un espacio de claves grande dificulta ataques de fuerza bruta.
AES-256 tiene 2^256 posibles claves.
Ejemplo básico
Texto: "ATAQUE" → con cifrado César (+3): "DWDTXH"
Historia de la Criptografía
Egipto Antiguo
Jeroglíficos usados para ocultar significado.
Piedra Rosetta permitió descifrar los jeroglíficos.
Grecia
Escítala Espartana: Cinta enrollada en cilindros.
Roma
Cifrado César: Sustitución alfabética con desplazamiento fijo.
Edad Media
Monjes usaban símbolos secretos en manuscritos.
Libro de Jeremías: Mensajes ocultos bíblicos.
Renacimiento
Cifrado de Vigenère: mejora al César usando palabras clave.
Siglo XX
Enigma: Alemania, Segunda Guerra Mundial. Rotares mecánicos.
Purple: Japón, descifrado por criptólogos estadounidenses.
Venona: Proyecto de EEUU para interceptar espías soviéticos.
Era Moderna
1977: RSA revoluciona la criptografía.
1995: SSL/TLS para web segura.
Hoy: Blockchain, criptografía homomórfica, post-cuántica.
Principios de Kerckhoffs
La seguridad debe depender solo de la clave, no del algoritmo.
El sistema debe ser comprensible.
No debe requerir memorias imposibles.
Debe ser portátil.
Debe ser utilizable por personas normales.
Si se pierde, no debe comprometer otros sistemas.
Aplicado hoy: uso de algoritmos públicos y claves secretas.
Operaciones Booleanas
Definición
Son operaciones lógicas a nivel de bits. Base de toda computación y criptografía binaria.
Tabla
AND
1
1
1
AND
1
0
0
OR
1
0
1
XOR
1
1
0
NOT (A)
1
-
0
Aplicación
XOR se usa para cifrados básicos y stream ciphers.
NOT invierte bits en operaciones de enmascaramiento.
Más detalles en Wikipedia - Álgebra booleana.
Last updated