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
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 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 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. thumb|300px|ROT13 es una variante del cifrado César, un tipo de cifrado de sustitución. En ROT13, el alfabeto es rotado 14 posiciones. 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: 320px|An example pigpen message 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. David Crawford / Mike Esterl, At Siemens, witnesses cite pattern of bribery, The Wall Street Journal, January 31st, 2007: 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
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
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.Singh, Simon. The Code Book The Science of Secrecy from Ancient Egypt to Quantum *Cryptography. New York: Anchor, 2000.
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 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 las 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.
thumb|80px|Disco de Alberti. 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 cómo 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. thumb|80px|Tabla de Vigenère. 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.
Transposición