Volver |

Cifrados básicos

Introducción

Los cifrados presentados aquí hacen referencia a las primeras técnicas de ocultamiento de información utilizadas en la historia. Fueron desarrolladas hace ya mucho tiempo, por lo que utilizarlos en la actualidad para proteger la información de un sistema informático sería muy probablemente un error debido a la facilidad de deducirlos o "romperlos". Sin embargo, nos siven para entender los pilares de la criptografía y en las ideas en las que se basan.

Cifrado César

Usado por Julio César, en el siglo I a. C, también llamado cifrado por desplazamiento, es una técnica de encriptación simple, que usa un cifrado por sustitución. Consiste en “desplazar” el alfabeto k caracteres, es decir, si tengo un carácter “a” y elijo para mi cifrado un k = 3, nuestra letra se desplazará 3 lugares en el alfabeto, transformándose en una “d”.

Por ejemplo, con un  k = 13 (también conocido como ROT-13):

Original:   HOLA GENTE DE SISTEMAS

Cifrado:    UBYN TRAGR QR FVFGRZNF

Las fomas mas conocidas de descifrar mensajes que utilicen este tipo de cifrado son:

  • Fuerza bruta: sin conocer k, consiste en básicamente ir aumentando el valor de k en 1, hasta que el mensaje muestre cierta coherencia.
  • Análisis de frecuencias: consiste en analizar la frecuencia de cada letra en un texto. En el idioma español, las letras que aparecen con mayor frecuencia en un texto normal son la “a” y la “e”. Teniendo eso en cuenta, podemos llegar a estimar o encontrar el desplazamiento.

 

Ejemplo de código fuente en JavaScript:

function caesar(text, rot) {
    return text.split('').map(c => {
        let mayus = (c === c.toUpperCase()) ? true : false;
        let valorEntero = c.toLowerCase().charCodeAt(0);
        if (valorEntero >= 97 && valorEntero <= 122) {

            if (valorEntero + rot > 122) {
                valorEntero = 97 + (valorEntero - 122) + rot - 1;
            } else if (valorEntero + rot >= 97) {
                valorEntero = valorEntero + rot;
            } else {
                valorEntero = 122 - (97 - (valorEntero + rot)) + 1;
            }
        }
					
        let cifrado = String.fromCharCode(valorEntero);
        return mayus ? cifrado.toUpperCase() : cifrado;
    }).join('');
}

 

Cifrado Vigenère

Es un cifrado basado en el de César por sustitución, pero en este se busca destruir esa correspondencia de frecuencias entre el mensaje en claro y el criptograma que hace que el cifrado César sea tan fácil de descifrar.

La diferencia es que es un cifrado es polialfabético, esto ocurre cuando cada carácter NO se sustituye siempre por el mismo carácter, es decir que en el sistema hay implicados varios alfabetos y dependiendo de la circunstancias se aplicará uno u otro. Los distintos métodos se diferencian entre sí por la forma en que se definen los distintos alfabetos y por el método que se usa para saber en qué momento hay que usar cada uno.

Para este método primero se busca una clave constituida por una secuencia de símbolos del alfabeto de nuestro mensaje K = {k0, k1, ... ,kd-1}, de longitud d, con la cual cifraremos cada letra de nuestro mensaje original, esta clave es la que hace polialfabético a este cifrado, ya que de ella depende cual otro de los 26 alfabetos que participan en este método usaremos para el cifrado de cada carácter de nuestro mensaje, que es justamente lo que dijimos anteriormente.

Existe una función matemática para generar el cifrado, pero puede realizarse mas facilmente con una matriz que contiene los alfabetos participantes facil de conseguir en internet.

Por ejemplo, cifraremos un mensaje utilizando la clave LABSIS:

Original: HOLAINGENIEROS

Clave:    LABSISLABSISLA

Cifrado:  SOMSQFREOAMJZS

Cifrado por autoclave

La idea de este cifrado es igual a la del cifrado Vigènere y hay información variada sobre quién inventó realmente el método.

La diferencia en este método de cifrado está en la elección de la clave, la innovación es la de usar el mismo mensaje como clave, pero agregando una letra acordada con el receptor al principio de la misma, aunque otra forma de formar la clave es usar una pequeña frase, en vez de solo una letra.

Por ejemplo, cifraremos un mesaje anteponiendo la frase LABSIS:

Mensaje: HOLAINGENIEROS

Clave:   LABSISHOLAINGE

Cifrado: SOMSQFNSYIMEUW

En este artículo participaron: