Código César: Cifrado sencillo pero eficaz

El Código César

¿Has oído hablar alguna vez del Código César? Es el algoritmo de cifrado más antiguo, es un tipo de cifrado de sustitución simple. Consiste en reemplazar una letra en el texto original por otra letra que se encuentra en un número fijo de posiciones más adelante en el alfabeto. Por ejemplo, usando un desplazamiento de 4 posiciones, la letra “A” se reemplazaría por la “E”, la letra “B” por la “F”, y así sucesivamente. Es una forma bastante eficaz de proteger tu información. Hoy en día, con la cantidad de ciberataques que existen, es importante tener conocimientos básicos de cifrado.

Historia del Código César

El Código César, nombrado así en honor a Julio César, lo utilizaba para comunicarse con sus generales. Según la leyenda, César utilizaba una clave de tres para enviar mensajes secretos a sus generales. El código no se descifró hasta el siglo IX, cuando el matemático árabe Al-Kindi descubrió un método para descifrarlo.

Fue ampliamente utilizado a lo largo de la historia, especialmente en aplicaciones militares. Lo usó el Ejército de la Unión durante la Guerra Civil estadounidense y por los alemanes durante la Primera y la Segunda Guerra Mundial.

Ejemplos de cifrado y descifrado del Código César

Veamos algunos ejemplos de cómo se puede utilizar el Código César para cifrar y descifrar mensajes.

Ejemplo de cifrado

Desplazamientos: 6

Mensaje que queremos cifrar: La ciberseguridad de las empresas es importante para todos

Ahora, desplazamos cada letra 6 posiciones hacia abajo en el alfabeto. El mensaje cifrado sería:

Rg iohkxykmaxojgj jk rgy ksvxkygy ky osvuxzgtzk vgxg zujuy

Ejemplo de descifrado

Desplazamientos: 6

Mensaje que queremos descifrar: Rg iohkxjkyvxuzkiiout ky vkromxuyg vgxg zujuy

Para descifrar el mensaje, tendremos que desplazar 6 posiciones hacia atrás en el alfabeto. El mensaje sería:

La ciberdesprotección es peligrosa para todos

Ventajas e inconvenientes de usar el Código César

Algunas de las ventajas que se pueden encontrar al usar este tipo se encriptación son:

  • Es fácil de entender y aplicar.
  • No requiere ningún equipo o software especial.
  • Es rápido y eficaz.
  • Puede utilizarse para cifrar mensajes de cualquier longitud.
  • La clave puede ser cualquier número entre 1 y 25, lo que facilita el cambio frecuente de la clave.
  • Tiene una larga e interesante historia.
  • Es una buena manera de introducir a los niños en el mundo de la criptografía y el descifrado de códigos.

En cambio, también presenta algunas desventajas:

  • Es muy fácil de descifrar.
  • Sólo hay 25 claves posibles, lo que facilita el descifrado.
  • No cifra espacios ni signos de puntuación.
  • Un atacante puede identificar la longitud del mensaje.
  • Es vulnerable al análisis de frecuencia.
  • No cambia la frecuencia de las letras en el mensaje.

Otras técnicas sencillas de cifrado

Mientras que el Código César es un método de encriptación simple y efectivo, hay muchas otras técnicas de encriptación simples que pueden ser usadas para proteger tu información confidencial. Algunas de estas técnicas incluyen:

  • Cifrado Vigenere: Este es un cifrado polialfabético que utiliza una serie de diferentes Cifrados César basados en una palabra clave.
  • Cifrado Rail Fence: Se trata de un cifrado por transposición que reordena las letras de un mensaje siguiendo un patrón en zig-zag.
  • Cifrado de guadaña: Se trata de un cifrado por transposición que utiliza un cilindro envuelto en una tira de pergamino. El mensaje se escribe longitudinalmente alrededor del cilindro y luego se desenvuelve el pergamino para revelar el mensaje cifrado.

¡Construye tu propia herramienta en Python!

Construir tu propia herramienta de encriptación y desencriptación del Código César es muy fácil. Todo lo que necesitas es un lenguaje de programación que pueda manipular cadenas de texto.

Aquí tienes un ejemplo de código en Python que puede usarse para encriptar y desencriptar mensajes usando el Código César. Disponible en este repositorio de GitHub:

https://github.com/msuxer/cifrado-cesar-py

def cifrado_cesar(palabra, desplazamiento):
    cifrado = ""
    # Recorremos la palabra letra por letra
    for letra in palabra:
        # Si la letra es una letra mayúscula, la ciframos
        if letra.isupper():
            cifrado += chr((ord(letra) + desplazamiento - 65) % 26 + 65)
        # Si la letra es una letra minúscula, la ciframos
        elif letra.islower():
            cifrado += chr((ord(letra) + desplazamiento - 97) % 26 + 97)
        # Si la letra no es una letra, la dejamos tal cual
        else:
            cifrado += letra
    return cifrado

def descifrado_cesar(palabra, desplazamiento):
    descifrado = ""
    # Recorremos la palabra letra por letra
    for letra in palabra:
        # Si la letra es una letra mayúscula, la desciframos
        if letra.isupper():
            descifrado += chr((ord(letra) - desplazamiento - 65) % 26 + 65)
        # Si la letra es una letra minúscula, la desciframos
        elif letra.islower():
            descifrado += chr((ord(letra) - desplazamiento - 97) % 26 + 97)
        # Si la letra no es una letra, la dejamos tal cual
        else:
            descifrado += letra
    return descifrado

# Pedimos al usuario que elija entre cifrar o descifrar
opcion = input("¿Quieres cifrar o descifrar una frase? (cifrar/descifrar): ")

# Pedimos la palabra y el desplazamiento por cifrado al usuario
palabra = input("Introduce la palabra que quieres cifrar/descifrar: ")
desplazamiento = int(input("Introduce el desplazamiento por cifrado: "))

# Realizamos el cifrado o descifrado según la opción elegida por el usuario
if opcion == "cifrar":
    resultado = cifrado_cesar(palabra, desplazamiento)
    print("La palabra cifrada es:", resultado)
elif opcion == "descifrar":
    resultado = descifrado_cesar(palabra, desplazamiento)
    print("La palabra descifrada es:", resultado)
else:
    print("Opción inválida. Por favor, introduce 'cifrar' o 'descifrar'.")

Probando los ejemplos anteriores

Ahora vamos a usar la herramienta en Python, que está disponible en el anterior repositorio de GitHub , para cifrar y descifrar los ejemplos del apartado anterior.

Probamos a encriptar la frase «La ciberseguridad de las empresas es importante para todos«.

Resultado: Rg iohkxykmaxojgj jk rgy ksvxkygy ky osvuxzgtzk vgxg zujuy

Ahora vamos a probar desencriptar el siguiente mensaje cifrado «Rg iohkxjkyvxuzkiiout ky vkromxuyg vgxg zujuy«.

Resultado: La ciberdesprotección es peligrosa para todos

¡Todo un éxito! Ahora te toca probarlo a ti construyendo tu propia herramienta o usando el ejemplo de código que te proporcionamos.

El Código César es un método de cifrado sencillo pero eficaz que se ha utilizado durante siglos. Aunque es fácil de descifrar, sigue siendo una herramienta útil para proteger la información confidencia, aunque no muy recomendable ya que existen técnicas más avanzadas. También es una buena forma de introducir a los niños en el mundo de la criptografía y el descifrado de códigos.