Un cifrado es un algoritmo que encripta y descifra datos. Toma un texto plano y una clave, y produce un texto cifrado que parece ruido aleatorio. Sin la clave, el texto cifrado es inútil. Con la clave, se recupera el mensaje original. Los cifrados existen desde hace miles de años, desde el cifrado por desplazamiento de César hasta la máquina Enigma y el moderno AES. Las matemáticas han cambiado, pero el objetivo sigue siendo el mismo.
Los cifrados modernos se dividen en dos tipos. Los cifrados simétricos utilizan la misma clave para el cifrado y el descifrado. AES es el estándar, utilizado en todas partes, desde el cifrado de discos hasta HTTPS. Es rápido y seguro con tamaños de clave adecuados. Los cifrados de flujo, como ChaCha20, cifran los datos bit a bit o byte a byte y funcionan bien en dispositivos sin aceleración de hardware. Los cifrados asimétricos utilizan un par de claves y resuelven el problema de la distribución de claves, pero son más lentos y se utilizan principalmente para el intercambio de claves y firmas. La robustez de un cifrado depende de su implementación. Claves débiles, nonces reutilizados y relleno deficiente han provocado fallos en sistemas que utilizaban algoritmos robustos. Por lo general, la matemática no es el punto débil.
Categorías de cifrado
- Clásico: sustitución y transposición, históricamente importantes.
- Bloque simétrico: AES, cifra bloques de tamaño fijo.
- Flujo simétrico — ChaCha20, cifra datos continuos
- Asimétrico: RSA, ECC, utilizado para el intercambio de claves y firmas.
No inventes tu propio cifrado. Utiliza algoritmos y bibliotecas ya establecidos que han superado décadas de análisis.
Comments
No comments yet. Be the first to share a thought.
Leave a comment