El cifrado Caesar (o César) es uno de los más antiguos que se conocen.
Debe su nombre al emperador Julio César, que presuntamente lo utilizó
para establecer comunicaciones seguras con sus generales durante las Guerras
Gálicas.
Matemáticamente, para trabajar con el cifrado Caesar, tomamos
el alfabeto
(enteros de módulo ). Cuando y
son primos entre sí, la aplicación , , recibe el
nombre de codificación módulo m con parámetros a, b, donde el par
es la clave de este criptosistema. Así, trabajando con el
alfabeto inglés (para nosotros resulta
conveniente tomar este alfabeto, de uso más extendido en informática que el
español; la única diferencia radica en el uso de la letra `ñ'), podemos
tomar el alfabeto definido por , para lo cual asignamos a cada
letra un entero módulo 26, de la siguiente forma:
A=0 |
B=1 |
C=2 |
D=3 |
E=4 |
F=5 |
G=6 |
H=7 |
I=8 |
J=9 |
K=10 |
L=11 |
M=12 |
N=13 |
O=14 |
P=15 |
Q=16 |
R=17 |
S=18 |
T=19 |
U=20 |
V=21 |
W=22 |
X=23 |
Y=24 |
Z=25 |
|
|
|
|
El cifrado Caesar siempre utiliza la clave , es decir, siempre
tomaremos . De esta forma, la anterior aplicación quedará
, lo cual se traduce sencillamente en que para encriptar una letra
hemos de tomar su entero correspondiente y sumarle (la clave del
criptosistema) para obtener el texto cifrado. Análogamente, y gracias al
hecho de que siempre ha de ser biyectiva, independientemente del valor
de , para descifrar un texto tomamos la función inversa, definida
por . Veamos un ejemplo sencillo, en el que se toma :
queremos cifrar, con la clave , la palabra CESAR; en primer lugar,
tomando el valor de cada letra, tenemos el equivalente numérico de la palabra:
A cada uno de los números anteriores le aplicamos la función ,
de forma que obtenemos el texto cifrado:
Este texto (GIWEV) es el resultado de cifrar la palabra CESAR con
la clave elegida (): es lo que enviaríamos al receptor, que conociendo
la clave acordada sería capaz de descifrarlo.
Veamos ahora el ejemplo contrario: somos los receptores de un mensaje del que
sabemos que ha sido cifrado con la misma clave , y buscamos descifrar la
cadena que nos ha sido enviada, FVYXYW. El valor de cada letra es
F |
V |
Y |
X |
Y |
W |
5 |
21 |
24 |
23 |
24 |
22 |
Tomando , tenemos el resultado
1 |
17 |
20 |
19 |
20 |
18 |
B |
R |
U |
T |
U |
S |
Como vemos, retornando cada número al alfabeto inglés obtenemos el texto
en claro que nuestro emisor nos ha enviado: BRUTUS, equivalente al
cifrado FVYXYW.
Si en el cifrado de un mensaje obtuviéramos que (genéricamente,
), como trabajamos con enteros de módulo , deberíamos
dividir por , considerando el resto entero como la cifra adecuada.
Así, si , tomamos (el resto de la división
entera), por lo que situaríamos una `A' en el texto cifrado.
Es obvio que el cifrado Caesar tiene 26 claves diferentes (utilizando
el alfabeto inglés), incluyendo la clave de identidad (), caso
en el que el texto cifrado y el texto en claro son idénticos. Así
pues, no resultaría muy difícil para un criptoanalista realizar
un ataque exhaustivo, buscando en el texto cifrado palabras en claro con
significado en el lenguaje utilizado. Por este motivo, y por otros muchos, este
criptosistema es claramente vulnerable para un atacante, no ofreciendo una
seguridad fiable en la transmisión de datos confidenciales.
© 2002 Antonio Villalón Huerta