Icono que muestra un diálogo con el texto Blog y un lápiz escribiendo líneas.Pythonesa's Blog

Criptografía y Esteganografía

By Pythonesa on 07 Aug 2024
Laptop mostrando íconos de ciberseguridad con candados y monedas en un escritorio.

La criptografía juega un papel crucial en la seguridad al estar presente en todas las áreas para mantener los datos confidenciales mediante el cifrado. A través de un algoritmo matemático, el mensaje que se envía se convierte en una expresión ilegible a menos que tengas los permisos necesarios para leerlo.


Criptografía:


La criptografía ha sido utilizada desde tiempos antiguos para proteger mensajes confidenciales. Un ejemplo clásico es el cifrado César, que consiste en reemplazar cada letra por la que se encuentra tres espacios adelante en el alfabeto. Aunque muy simple, este método ilustra cómo el cifrado puede transformar un mensaje legible en uno que solo el destinatario autorizado debería poder entender.


Esteganografía:


La esteganografía, por otro lado, es el arte de ocultar datos dentro de imágenes, audios u otros archivos. La información se esconde de tal manera que solo el remitente y el destinatario saben dónde está y pueden encontrarla. Sin embargo, si alguien descubre estos datos en el camino, podría leer la información sin problemas.


Combinando Criptografía y Esteganografía:


Para aumentar la seguridad, se pueden combinar la criptografía y la esteganografía. Esto nos permite no solo ocultar la información sino que también cifrarla. De este modo, si alguien encuentra los datos ocultos, no podrá leerlos sin la clave adecuada.


Características clave de la criptografía:


Confidencialidad: Asegura que la información solo sea accesible a quienes están autorizados a verla.


Integridad: Asegura que la información sea inmutable, o sea, que no se pueda alterar durante su transmisión.


Autenticación: Confirma la identidad de las partes que se comunican.


No repudio: Evita que una parte niegue haber enviado un mensaje.


Características clave de la esteganografía:


Capacidad: Cantidad de información que se puede ocultar en un archivo sin que se detecte.


Robustez: Resistencia del archivo esteganografiado a manipulaciones y ediciones (que no se rompa si lo tocan).


Imperceptibilidad: Qué tan difícil es detectar la información oculta (si no se ve, no se encuentra).


Seguridad: Nivel de dificultad para descubrir y extraer la información oculta.


La importancia de las matemáticas en la criptografía:


La criptografía se basa en principios matemáticos complejos, algunos conceptos esenciales que necesitas son:


Teoría de números: Es lo más fundamental, especialmente en algoritmos como RSA, que se basan en la dificultad de factorizar grandes números primos. La factorización y la generación de números primos son aspectos clave.


Algebra lineal: Utilizada en criptografía simétrica y criptosistemas de clave pública, como el algoritmo de cifrado AES y los esquemas basados en curvas elípticas. Aquí, se trabaja con matrices y vectores que son esenciales en ciertos algoritmos.


Teoría de la información: Es crucial para entender conceptos como entropía, redundancia y capacidad de canal, que son fundamentales para medir la seguridad y eficiencia de los algoritmos criptográficos.


Probabilidad y estadística: Esencial para el análisis de la fortaleza de los cifrados y la detección de patrones que puedan ser explotados en ataques. Ayuda a evaluar la aleatoriedad y a diseñar sistemas resistentes a ataques estadísticos.


Consejos para comenzar en criptografía y esteganografía:


Si estás interesado en adentrarte en ésta rama de la ciberseguridad, bienvenido y aquí te van los consejos de la tía Pythonesa.


Empieza por los fundamentos matemáticos, esos que nombramos recién ahí arribita.


Sigue por estudiar las características clave de la criptografía y la características clave de la esteganografía, si, también son las que mencionamos antes.


Explora algoritmos clásicos y modernos como el cifrado César, AES, RSA, ECC, y cualquiera que se te cruce por las narices. Céntrate en comprender como funcionan, como se aplican y sus fortalezas y debilidades.


Experimenta con herramientas como, por ejemplo, aprender a generar claves con OpenSSL o a firmar y cifrar mensajes con GnuPG (GPG). Juega con diferentes técnicas y formatos con Steghide para ocultar datos en imágenes (de gatitos) o audios. Estas herramientas son básicas, pero te ayudarán a aplicar los conocimientos que vayas adquiriendo y con suerte a pensar formas más efectivas.


Si no sabes programar, ¡aprende! Python es un lenguaje muy versátil con bibliotecas como PyCrypto o Cryptography que te permiten trabajar con diversos algoritmos criptográficos de manera eficiente.

Además, podrás implementar tus propias soluciones. Escribir tus propias implementaciones de algoritmos criptográficos y técnicas de esteganografía te ayudará a comprender mejor como funcionan estos procesos internamente (por favor, haz ésto, no te quedes solo con usar las cosas).


En fin, sumergirse en la criptografía y la esteganografía requiere una combinación de conocimientos matemáticos, habilidades prácticas y una comprensión profunda de los conceptos de seguridad, pero si me preguntan a mi, es una de las ramas más emocionantes y críticas de la ciberseguridad.

¡Gracias por leer y que tus conocimientos te protejan de las fotos de gatitos!