Cifrado por sustitución
En criptografía, el cifrado por sustitución es un método de cifrado por el que unidades de texto plano son sustituidas con texto cifrado siguiendo un sistema regular; las "unidades" pueden ser una sola letra (el caso más común), pares de letras, tríos de letras, mezclas de lo anterior, entre otros. El receptor descifra el texto realizando la sustitución inversa.
Los cifrados por sustitución son comparables a los cifrados por transposición. En un cifrado por transposición, las unidades del texto plano son cambiadas usando una ordenación diferente y normalmente bastante compleja, pero las unidades en sí mismas no son modificadas. Por el contrario, en un cifrado por sustitución, las unidades del texto plano mantienen el mismo orden, lo que hace es sustituir las propias unidades del texto plano.
Tipos[editar]
Existen diversos tipos de cifrados por sustitución. Si el cifrado opera sobre letras simples, se denomina cifrado por sustitución simple; si opera sobre grupos de letras se denomina, poligráfico. Se dice que un cifrado es monoalfabético si usa una sustitución fija para todo el mensaje, mientras que se dice que es polialfabético si usa diferentes sustituciones en diferentes momentos del mensaje. Un tipo especial de cifrado polialfabético son los homófonos, en los que una unidad del texto plano es sustituida por una de entre varias posibilidades existentes.
Sustitución simple[editar]
En los cifrados de sustitución simple un carácter en el texto original es reemplazado por un carácter determinado del alfabeto de sustitución. Es decir, se establecen parejas de caracteres donde el segundo elemento de la pareja establece el carácter que sustituye al primer elemento de la pareja.
A veces el sistema usa el mismo alfabeto para el texto en claro y para el texto cifrado. Esto permite aprovechar el orden definido por los alfabetos para así facilitar la descripción de los algoritmos, dándose así los llamados cifrados de alfabeto invertido y de alfabeto desplazado. Otras veces el orden no se utiliza y se dice que es un alfabeto mezclado o un alfabeto sin rango.
Monoalfabético[editar]
Se dice que un sistema de cifrado de sustitución simple es monoalfabético cuando cada carácter se sustituye siempre por un determinado carácter del alfabeto del texto cifrado. En este tipo de cifrados al alfabeto usado para el texto cifrado se le llama alfabeto de sustitución.
Si cada símbolo del texto en claro es sustituido por un símbolo distintos del texto cifrado y sea n el número de símbolos el número de símbolos del texto en claro, vemos que el posible número de sustituciones que se pueden definir es el número posible de permutaciones, es decir, n!.
Algunos ejemplos de este tipo de cifrado son:
- El cifrado Atbash establece las parejas de sustitución invirtiendo el orden del alfabeto del texto en claro. Por tanto en castellano la A será sustituida por la Z, la B por la Y,... Este tipo de cifrado se dice que es de alfabeto invertido.
- El cifrado César establece las parejas de sustitución desplazando tres posiciones el orden del alfabeto del texto en claro. Cuando se acaban las letras por el final se empieza por el principio. Por tanto en castellano la A será sustituida por la D, la B por la E,... y la Z por la C. Este tipo de cifrado se dice que es de alfabeto desplazado. En este algoritmo la clave está implícita en el mismo. Este algoritmo se puede parametrizar introduciendo un valor que nos sirva como clave. Podemos usar como clave el carácter asociado a la letra A, el algoritmo queda plenamente definido. El Cifrado César tradicional sería el que usa la letra D como clave.
- El cifrado ROT13 o ROT-13 es similar al cifrado César pero en lugar de tener un desplazamiento de tres, utiliza un desplazamiento de trece. Por tanto también es de alfabeto desplazado.
- Otra forma tradicional de definir la sustitución consiste en determinar una clave que se usará para definir la sustitución de la siguiente forma:
- La clave "zebras" nos define la sustitución del alfabeto abcdefghijklmnopqrstuvwxyz por el alfabeto reordenado ZEBRASCDFGHIJKLMNOPQTUVWXY. Observar que primero se pone la clave y luego los caracteres en orden sin usar los usados por la clave. Por tanto el mensaje 'flee at once. we are discovered!' será traducido por 'SIAA ZQ LKBA. VA ZOA RFPBLUAOAR!'
- El cifrado afín es un tipo de cifrado que usa el mismo alfabeto para el texto plano que para el texto cifrado que utiliza una expresión matemática para determinar la posición en el alfabeto (según el orden normal) del carácter del texto cifrado asociado.
- En este cifrado la clave viene definida por dos valores numéricos a y b. Sea m el tamaño de alfabeto del texto plano. Para definir qué carácter del alfabeto sustituye a cada carácter se aplica la fórmula , donde x es la posición del carácter al que le estamos buscando sustituto. El resultado se usa como índice en el orden predefinido del alfabeto.
- Por ejemplo con y y el alfabeto del castellano de letras, la a se convertirá en . Por tanto el carácter asociado será el que ocupa la posición 20, la s. Aplicando el mismo algoritmo podemos obtener que el texto cifrado de 'plantanuclear' es 'ntsdlspctmsb'.
- En el cifrado francmasón, el texto cifrado consiste en un conjunto de símbolos. como por ejemplo:
- Esta característica hacen más seguro el cifrado ya que el descifrador tiene que buscar más posibilidades para encajar el texto en un alfabeto A-Z.
- [1]En listas y catálogos de personal de ventas a veces se puede encontrar un esquema de cifrado simple mediante el que se puede reemplazar números y dígitos por letras haciendo corresponder la lista de texto plano 1234567890 con MAKEPROFIT . De esta forma para cifrar '120' se utilizaría 'MAT'.
- El cifrado Monomio-Binomio sustituye las letras por uno o dos números según una norma preestablecida, contribuyendo a ocultar la longitud del mensaje.
En la cultura popular[editar]
- Un cifrado de sustitución monoalfabética es el nudo del relato El escarabajo de oro, de Edgar Allan Poe. En el relato se narra, con cierto detalle, la técnica empleada para descifrarlo. Se trata de un sustitución por símbolos que no son letras ni, salvo una excepción, números.
- Un cifrado de sustitución monoalfabética es la clave del relato La aventura de los bailarines, de Sir Arthur Conan Doyle. En este relato, Sherlock Holmes debe enfrentarse a unos misteriosos dibujos de tiza con forma de bailarines. Como nota de curiosidad, los mensajes secretos resultan cumplir con la tercera norma de Francis Bacon: Si es posible, libre de sospecha. La cantidad de texto cifrada a disposición del detective, en este relato, resulta muy breve.
Homofónico[editar]
El cifrado homofónico está diseñado especialmente para contrarrestar la principal herramienta de descifrado de las sustituciones monoalfabéticas, el análisis de frecuencias. Si el análisis de frecuencias se basa en que no todas las letras aparecen en igual proporción, la sustitución homofónica permite que las letras más comunes del alfabeto tengan varias posibilidades por las que puedan ser representadas. El método más sencillo de hacerlo es sustituir cada letra por una pareja de números (que irían desde 01, uno, hasta 00, cien) y asignar en función del porcentaje de aparición de las letras tantos números como tanto por ciento de aparición de la letra. En castellano, las letras A y E, las más habituales, apareceren en más del 10% de un texto normal.[2]
Como ejemplos de cifrado homofónico se pueden citar el alfabeto que, para deeletrear, emplearon los hablantes de código navajo durante la Segunda Guerra Mundial que tenía tres formas distintas de decir las seis letras más frecuentes del idioma inglés, dos formas de decir las seis siguientes y una para las demás y el Método de cinta móvil que fue el Oficial del Ministerio de la Guerra español desde la década de 1890 hasta la Guerra Civil.
Sin embargo, esto no quiere decir que sea invulnerable, las letras tienen ciertas características que, aun con mayor dificultad, revelarían la correspondencia. A diferencia de los cifrados polialfabéticos, cada uno de los números del ejemplo anterior se correspondería con una única letra, no variando el significado de cada elemento del texto cifrado en su correspondencia con el texto claro.
Polialfabético[editar]
Se dice que un sistema de cifrado de sustitución simple es polialfabético cuando cada carácter NO se sustituye siempre por el mismo carácter. Es decir, 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.
Algunos ejemplos son:
- El cifrado de Alberti se apoya para su definición en un artilugio conocido como discos de Alberti que consiste en un armazón fijo en el que está grabado un alfabeto convencional, y unido a él una pieza circular concéntrica y móvil con otro alfabeto grabado. El usuario puede, mediante un giro del anillo móvil emparejar el alfabeto del mensaje en claro con tantos alfabetos de mensaje cifrado como giros distintos dé al anillo. La descripción del algoritmo consiste en describir como es la situación inicial de los discos (determinado por la clave) y cual es el método para determinar cuando hay que girar el disco interior para cambiar de alfabeto.
- El cifrado de Vigenère se basa en una matriz cuadrada 26x26 donde aparecen los 26 alfabetos de desplazamiento correspondientes al alfabeto ordinario de 26 letras. Para poder cifrar lo primero que hay que hacer es superponer la clave secreta (un texto) sobre el texto plano repitiéndola tantas veces como sea necesario. Cada letra del texto plano se sustituirá por la letra que le corresponde en el alfabeto designado de la siguiente forma: El alfabeto seleccionado será aquel en el que la letra que le corresponde de la clave es sustituida por la letra 'A'.
- Ejemplo si la clave es 'WORD' y el texto en claro es 'CRYPTOGRAPHY' tenemos:
- WORDWORDWORD
- CRYPTOGRAPHY
- y usando los alfabetos definidos por esas correspondencias tenemos el mensaje cifrado 'YFPSPCXUWDYB'
- El cifrado Vernam se puede considerar como un caso particular del cifrado de Vigenère con una clave de igual longitud que el texto a codificar. Eligiendo la clave en forma aleatoria, el sistema es incondicionalmente seguro. Tiene el inconveniente de que tanto el transmisor como el receptor deben saber esa clave y que ésta sea secreta. Estas dos características definen (y se basan en -aunque ninguno de los autores de este cifrado lo mencionara-) la libreta de un solo uso, que también es un cifrado de sustitución.
Sustitución por bloques[editar]
En criptografía se denomina sustitución por bloques a la sustitución de los elementos del mensaje por grupos de los mismos ya sean dígrafos, trígrafos o más numerosos, o se trate de sílabas como en el Gran Cifrado de Luis XIV. Pertenecen a este grupo sistemas criptográficos como el cifrado de Playfair con sus múltiples variantes, los cifrados bífido y trífido de Félix Delastelle o el Cifrado Hill. Son, consecuentemente, más difíciles de descifrar que los métodos de sustitución simple pero suelen ser, también, más trabajosos de implementar. La mayoría de las cifras modernas, que requieren de elementos informáticos para su implementación, son cifras por bloques, o lo incorporan como un elemento de su algoritmo.
En cierto modo, actúan como cifrados monoalfabéticos, pero como codifican bloques homogéneos existen muchos más bloques de letras que letras y eso dificulta las técnicas de criptoanálisis. como regla general se puede fijar que el número de estos bloques es igual al número de signos de nuestro alfabeto elevado a la potencia del número de elementos por cada bloque. Hay, no obstante, excepciones, como en el cifrado de Playfair que no permite la repetición de elementos, por lo que el número es algo menor.
Algunos ejemplos de cifras de bloques son:
- El cifrado de Playfair que codifica pares de letras empleando una matriz de cifrado similar a un cuadrado de Polibio.
- El Gran Cifrado empleado por el cardenal Richelieu, por Luis XIV y por diversos miembros del gobierno francés del siglo XVII y que, supuestamente, codificó información acerca del hombre de la máscara de hierro. La peculiaridad de este sistema residía en que codificaba sílabas por lo que cada letra podía ser transcrita de muy diversos modos.[2]
- La Clave silábica de Carmona,[3] publicada junto con su Tratado, se basa en la sustitución de sílabas (ocasionalmente letras, signos de puntuación, indicación de acentos o dígitos) por grupos de tres dígitos que pueden ser sometidos a toda clase de cifrados posteriores.
- El cifrado Hill, el primer algoritmo de cifrado que consideró a las letras como equivalentes a números y las cifró empleando operaciones algebraicas y aritmética modular. Posiblemente, la primera de las cifras modernas.
- El cifrado DES y, en general, todas las cifras y códigos modernos que emplean las rondas de Feistel.
Nomenclátor[editar]
En criptografía se denomina nomenclátor a un método de sustitución en el que la mayor parte de los términos son sustituidos por alguno de los sistemas antes mencionados, pero los términos más importantes o frecuentes (por ejemplo los nombres de los destinatarios) son sustituidos por términos especiales. Es una especie de híbrido entre las cifras y los códigos. María Estuardo empleó un nomenclátor para sus comunicaciones secretas mientras era prisionera de Isabel I de Inglaterra.[2]
Fraccionamiento[editar]
Algunas cifras de sustitución presentan la propiedad del fraccionamiento, esto es, dividen los caracteres a cifrar en elementos distintos que pueden ser tratados (pudiendo perfectamente ser cifrados) por separado. Normalmente esto se logra por medio de un sistema de abscisas y ordenadas, pero no forzosamente. Algunas de las cifras que emplean esta propiedad son el Cuadrado de Polibio, la cifra de Trithemius, la cifra de Bacon, las variantes bífida y trífida de la cifra de Delastelle o la cifra ADFGVX alemana. Estas cifras pueden resultar muy poderosas si son combinadas con alguna clase de cifrado por transposición.[4] Del mismo modo, los modernos sistemas criptográficos, al traducir las letras del alfabeto empleando el código ASCII cambian una letra por una sucesión de ceros y unos que pueden ser cifrados aparte y considerados individualmente.
Cuando se tratan las distintas partes de los caracteres como si fueran elementos completamente distintos, puede alcanzarse la difusión de Shannon o hacer que dos textos claros prácticamente idénticos den lugar a dos textos cifrados completamente distintos como ocurre con el cifrado Hill o con el cifrado IDEA.
Criptoanálisis[editar]
Los ataques sobre este tipo de cifrados se suelen hacer por fuerza bruta (cuando hay un espacio reducido de claves), y por análisis de frecuencias. Los análisis de frecuencias pueden hacerse de forma directa (para cifrados monoalfabéticos) *[5] o por el método Kasiski (para cifrados polialfabéticos).
Referencias[editar]
- David Crawford / Mike Esterl, At Siemens, witnesses cite pattern of bribery, The Wall Street Journal, January 31st, 2007:
- Singh, Simon. The Code Book The Science of Secrecy from Ancient Egypt to Quantum *Cryptography. New York: Anchor, 2000.
- Tratado de criptografía con aplicación especial al ejército, de J. G. Carmona, edición facsimil publicada por el Ministerio de Defensa, ISBN 978-84-9781-663-2
- Cryptanalysis - a study of ciphers and their solution. Gaines, Helen Fouché. Dover. ISBN 0-486-20097-3. (1939)
- Juan G. Triana / Jorge M. Ruiz, Ataque matricial a cifrados de sustitución monoalfabética', Morfismos, diciembre 2015: [1] Archivado el 25 de abril de 2016 en Wayback Machine.
Enlaces externos[editar]
- sustitución.php - Sencillo script para codificar mensajes mediante sustitución