Índice·Index Anterior·Previous Siguiente·Next

5.4 METODOS DE CIFRADO

Los métodos de cifrado se dividen en dos categorías: cifradores de substitución (incluyendo los códigos) y cifradores de transposición.

5.4.1 CIFRADORES DE SUBSTITUCION

En un cifrador de sustitución, cada letra o grupo de letras se sustituyen por otra letra o grupo de letras de una tabla de sustitución.

El cifrado más antiguo es el Cifrado de César. En este método, a se representa por D, b por E, c por F, ..., y z por C. Por ejemplo:

ataquen se representa por dwdtxhq

Una generalización sencilla de este método permite que el alfabeto cifrado se desplace k letras, en lugar de 3. En este caso, k se convierte en una llave para el método general de alfabetos desplazados en forma circular.

Se puede quebrar este método analizando la frecuencia de cada caracter del texto cifrado y comparando estas frecuencias con aquellas que normalmente aparecen en un determinado idioma. Las vocales tienen mayor frecuencia que las consonantes y algunos caracteres poseen frecuencia muy baja en relación a las demás. Para amenizar la frecuencia de caracteres, podemos utilizar varias tablas para el cifrado de un texto.

Una mejora de este método consiste en correlacionar cada uno de los símbolos del texto en claro con alguna otra letra, por ejemplo:
Texto en claro:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Texto cifrado :
Q
W
E
R
T
Y
U
I
O
P
A
S
D
F
G
H
J
K
L
Z
X
C
V
B
N
M

A este sistema se le conoce como sustitución monoalfabética, en la cual la llave se constituye por una cadena de 26 letras, correspondiente al alfabeto completo. Así:

ataquen sería QZQJXTF

Aparentemente, este sistema puede ser seguro por que aún, cuando el criptoanalista conociera el sistema general (sustitución letra por letra), no conoce cuál de las 26!=4x4026 posibles llaves está empleándose. No es factible probar todas las llaves como en el cifrado de César.

Sin embargo, el cifrador puede desbaratarse fácilmente mediante las propiedades estadísticas de los lenguajes naturales, es decir, por la frecuencia con que una letra se presenta en un idioma dado.

En una sustitución Monoalfabética, cada letra del texto original es cambiada por otra de acuerdo con una tabla y con su posición del texto. La sustitución de César es un ejemplo de sustitución monoalfabética, que consiste en cambiar cada letra por otra que está en orden alfabético 3 letras adelante, como acabamos de verlo. Se puede usar otros valores en vez de 3, lo que constituye una llave de ciframiento. Existen apenas 26 llaves, pero eso es un método que basta para proteger textos con pequeño grado de discreción. Se tiene una llave que dice cuál de las tablas será usada para cada letra del texto original. Por tanto, cuanto mayor sea la llave, más seguro es el método. Entretanto, es suficiente descubrir el tamaño de la llave k y analizar bloques de k caracteres del texto, verificando la frecuencia de repetición de los caracteres.

Cuando un criptoanalista intenta desbaratar un cifrado monoalfabético, comienza contando las frecuencias relativas de todas las letras que aparecen en el texto cifrado. Después le asigna en forma tentativa una letra, luego del cual supone otra letra para aquella que le sigue a la de mayor frecuencia. Por medio de suposiciones con las letras, el criptoanalista genera un texto tentativo, letra por letra.

En una sustitución por Deslocamiento, una llave indica cuántas posiciones alfabéticas se debe avanzar para sustituir cada letra. Sería diferente la sustitución de César, las letras no son cambiadas siempre por una letra n posiciones a frente del alfabeto. Ejemplo: Llave:020813. La primera letra es cambiada por la letra que está 2 posiciones al frente del alfabeto, la segunda por la que está 8 posiciones al frente, y así por delante, repitiendo la llave como sea necesario. (PAI=RIV).

La sustitución Monofónica como la anterior, pero cada caracter puede ser mapeado para uno o varios caracteres en mensaje cifrado. Eso evita la linearidad de sustitución.

Otro sistema que se conoce es el Polialfabético, que es el resultado de introducir múltiples alfabetos de cifrado que se utilizan en rotación de acuerdo con un criterio o llave, cuyo objetivo es adecuar las frecuencias del texto cifrado, de forma tal que las letras con mayor frecuencia de aparición, no sobresalgan tan claramente.

Dentro de este sistema se tiene el cifrado vigénere, que consiste de una matriz cuadrada que contiene 26 alfabetos de César.

El primer renglón llamado renglón A es ABCDEFGH....XYZ.
El siguiente renglón, llamado renglón B es BCDEFGHI....YZA

Finalmente:

El último renglón llamado renglón Z es ZABCDEFG....WXY.

De forma similar al cifrado monoalfabético, este cifrado también tiene una llave, pero ya no es una cadena de 26 caracteres diferentes sino una palabra o frase corta y fácil de recordar.

Cuando se pone en llave un mensaje, la llave se escribe en forma repetida en la parte superior del texto en claro. Así:

LLAVELLAVELLAVELLAVELLAVECL
gerenteviajalunesenlamañana

La letra llave que se encuentra sobre el texto en claro indica el renglón que se debe utilizar para la puesta en llave. La g se pone en llave usando el alfabeto de César del renglón C, la e y la r, los renglones L y A. Una letra de texto se representa mediante diferentes letras en el texto cifrado, dependiendo de la posición en el texto claro.

Un cifrado polialfabético puede ser muy eficaz si se usan cifrados monoalfabéticos arbitrarios para los renglones, en lugar de restringirlos al cifrado de César, aunque tiene el inconveniente de que la matriz de 26x26 también se convierte en parte de la llave y se deberá memorizar o escribir.

Un criptoanalista puede desbaratar el cifrado dando una longitud supuesta de la llave. Si la longitud de la llave es K, ordena el texto cifrado en renglones tomando K letras por renglón. Si su suposición es correcta, todas las letras del texto cifrado en cada columna se ponen en llave mediante el mismo cifrador monoalfabético, en caso contrario se prueba con otro valor.

Otra de las formas de dar mejor complejidad al cifrado es utilizar una llave que sea de mayor longitud que la del texto en claro. Para ello se escoge como llave una cadena de bits aleatoria. Después, se convierte el texto en claro en una cadena de bits (puede ser su representación en ASCII). Por último, se aplica un OR EXCLUSIVO, bit por bit, con estas 2 cadenas. De este modo, el texto cifrado no puede desbaratarse puesto que todos los posibles textos en claro son candidatos, igualmente probables y no le proporcionará ninguna información al criptoanalista.

Las desventajas que tiene este método, conocido como llave de una sola vez, son las siguientes:

Sustitución por Polígramos, utiliza grupo de caracteres en vez de un caracter individual. Se pueden considerar trigramas, por ejemplo, ABA podría ser sustituido por RTQ o KXS.

5.4.2 CIFRADORES DE TRANSPOSICION

A diferencia de los cifradores de sustitución, que reemplazan las letras del texto en claro por símbolos, los cifradores de transposición reordenan las letras. Se cambia la posición de los caracteres en un mensaje. Por ejemplo, se puede reescribir un texto corrido o por columnas. O entonces, definir el tamaño para un vector de cambios y también un orden en el que los cambios son hechos. Se puede usar llave para eso. Ejemplo: en un vector de tamaño 6 se puede cambiar el primer caracter por el tercero, el segundo por el quinto y el cuarto por el sexto.

La llave del cifrador es una palabra o frase que no contiene una letra repetida.

La finalidad de la llave es la de numerar las columnas, siendo la columna 1 la que queda bajo la letra de la llave más cerca al inicio del alfabeto y así sucesivamente.

El texto en claro se escribe horizontalmente en renglones y el texto cifrado, se lee por columnas comenzando en la columna cuya letra llave tiene el valor inferior.

Para desbaratar el cifrado, el criptoanalista debe reconocer primero el tipo de cifrado (sustitución o transposición).

En este caso, se debe observar la frecuencia de las letras de aparición más común y si se adaptan al patrón normal del texto en claro.

Luego supone el número de columnas o longitud de la llave para ordenarlas.

Cuando el número de columnas K es pequeño, cada uno de los K(K-1) pares de columnas, se pueden examinar para ver las frecuencias de las letras. El par de mayor correspondencia es el que está colocado en la posición correcta y se prueban después las columnas restantes para ver cuál le sigue a ese par. El proceso continúa hasta que se encuentra un orden probable.

Es posible combinar sustitución y transposición, o viceversa.

5.4.3 MAQUINAS DE CIFRADO

Un código trabaja con grupos de caracteres de tamaño variable, al contrario de la cifra. Cada palabra es sustituida por otra. Quebrar un código equivale a quebrar una gigantesca sustitución monoalfabética donde las unidades son las palabras y no los caracteres. Para eso se debe usar una gramática de lengua y analizar la estructura de las frases.

Las Máquinas de cifrado se basan en engranajes que tienen tamaños diferentes y que giran a velocidades diferentes, obteniendo una sustitución polialfabética con llave de 26n, donde n es un número de engranajes.