El cifrado de Gronsfeld es una variante del cifrado de Vigenère y, por tanto, también un cifrado simple de sustitución polialfabética, es decir, cada carácter del texto a cifrar NO se sustituye siempre por el mismo carácter en el texto cifrado, sino que se emplean varios alfabetos y dependiendo de ciertas circunstancias se aplica uno u otro.
La diferencia entre ambos radica en que mientras que el cifrado de Vigenère utiliza 26 alfabetos (la clave puede estar compuesta por una combinación de los 26 caracteres del alfabeto inglés: A, B,.., Z) el cifrado de Gronsfeld utiliza sólo 10 alfabetos (se trata de una clave numérica que puede estar compuesta por una combinación de los dígitos del 0 al 9).
Se cifra y descifra de la siguiente manera:
1º) Para cifrar: los dígitos de la clave (todos ellos del 0 al 9) se asocian secuencialmente con un carácter del texto plano o en claro, si se acaban los dígitos de la clave se vuelve a empezar con su primer dígito en el siguiente carácter del texto plano hasta completar toda la longitud de éste, y después cada letra del texto en plano se sustituye en el criptograma por la que corresponde al desplazarse hacia la derecha en el alfabeto que se utilice tantas posiciones como indique el dígito de la clave al que esté asociado.
Es decir, se basa en la siguiente tabla:
Como se observa, tal y como decía al principio, esta tabla es idéntica a la empleada en el cifrado de Vigenère (ver este post donde lo explico) con las dos únicas diferencias indicadas.
2º) Por ejemplo, para cifrar el mensaje "EJEMPLO CIFRADO" con la clave "38045", ponemos la clave encima del texto a cifrar repitiendo la clave tantas veces como haga falta hasta cubrir completamente el texto a cifrar, de la siguiente manera:
Por ejemplo: a la primera "E" del texto a cifrar, que tiene justo encima el "3" de la clave, le correspondería como carácter en el texto cifrado la letra "H". Es decir:
Y ahora para descifrar el criptograma sólo queda sustituir cada carácter del texto cifrado por el carácter de la columna que le corresponde al carácter cifrado en la fila correspondiente al dígito de la clave que está justo encima.
Por ejemplo: a la letra "H" del texto cifrado, que tiene justo encima el "3" de la clave, le correspondería como carácter en el texto descifrado la letra "E". Es decir:
Comentarios
Publicar un comentario