Cifrado por sustitución

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

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 C 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.
ROT13 es una variante del cifrado César, un tipo de cifrado de sustitución. En ROT13, el alfabero es rotado 13 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 que carácter del alfabeto sustituye a cada carácter se aplica la fórmula (ax+b) \mod\ m, 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 a=5 y b=15 y el alfabeto del castellano de m=27 letras. La a se conviertirá en (5*1+15) \mod\ 27=20. 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:
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.
  • [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'.

Polialfabético[editar]

Se dice que un sistema de cifrado de sustitución simple es polialfabético cuando cada caracter NO se sustituye siempre por el mismo caracter. 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.

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 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.
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.

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) o por el método Kasiski (para cifrados polialfabéticos).

Referencias[editar]

  1. David Crawford / Mike Esterl, At Siemens, witnesses cite pattern of bribery, The Wall Street Journal, January 31rd, 2007:

Enlaces externos[editar]

  • sustitucion.php - Sencillo script para codificar mensajes mediante sustitución

Véase también[editar]