Está en la página 1de 31

Lección 1. Criptosistemas clásicos.

Introducción

Definición. Criptologı́a es el estudio de métodos para enviar men-


sajes de manera disfrazada para que sólo los receptores autor-
izados puedan entenderlos.

El mensaje que se desea enviar se denomina texto claro. El pro-


ceso para disfrazar un mensaje se denomina encriptar o cifrar. El
mensaje disfrazado se denomina texto cifrado.

Criptoanálisis es el arte y la ciencia de romper textos cifrados.


Criptologı́a = Criptografı́a + Criptoanálisis.

Ejemplos históricos

Cifrador de Polybios (Siglo II a.C.)

A B C D E
A A B C D E
B F G H IJ K
C L M N O P
D Q R S T U
E V W X Y Z
Ejemplo. M = Pasarán por las Termópilas.

C= CEAADCAADBAA CECDAACC CECDDB CAAADC DDAED-


BCBCEBDCAAADC.

Cifrador de Caesar. (Siglo I a.C.)

Al cifrar se aplica un desplazamiento constante de tres carac-


teres.

Ejemplo. M= vini, vidi, vinci.

C= YLPL, YLGL, YLPFL


Definición. Un criptosistema es una quintupla (P, C, K, E, D), sat-
isfaciendo las siguientes condiciones:

1. P es un conjunto finito de textos claros posibles;

2. C es un conjunto finito de textos cifrados posibles;

3. K, el espacio de claves, es un conjunto finito de claves posibles;

4. Para cada clave k ∈ K existe una regla de cifrado ek ∈ E y una


regla de descifrado dk ∈ D. Cada ek : P → C y dk : C → P son
funciones tales que

dk (ek (x)) = x
para cada texto en claro x ∈ P.
Criptosistemas clásicos

Cifrado por desplazamiento

En el alfabeto en castellano las letras son:

A = 0B = 1C = 2D = 3E = 4F = 5G = 6H = 7I = 8

J = 9 K = 10 L = 11 M = 12 N = 13 N = 14 O = 15 P = 16 Q = 17
R = 18 S = 19 T = 20 U = 21 V = 22 W = 23 X = 24 Y = 25 Z = 26

que corresponden a los números en Z27.

Tomamos P = C = K = Z27. Para 0 ≤ k ≤ 27 ponemos

ek (x) = x + k (mod 27)

dk (y) = y − k (mod 27)


Caso particular. Para el caso k = 3 obtenemos el cifrado de
Caesar.

Cifrado por sustitución

Sea P = C = Z27. K consiste en todas las posibles permutaciones


de los 27 simbolos 0,1,...,26. Para cada permutación π ∈ K,
definimos

eπ (x) = π(x)
y definimos

dπ (y) = π −1(y)

donde π −1 es la permutación inversa de π.

Cifrado afı́n

P = C = Z27 y sea

K = {(a, b) ∈ Z27 × Z27|mcd(a, 27) = 1}.


Para k = (a, b) ∈ K, definimos

ek (x) = ax + b (mod 27)

dk (y) = a−1(y − b) (mod 27)

(x, y ∈ Z27).

Cifrador de Vigenère
Es el criptosistema polialfabético más conocido. El cifrador en-
cripta m caracteres alfabéticos cada vez. Existe una clave para
indicar el desplazamiento de cada caracter.

Ejemplo. Sea la clave SOS y el texto en claro ”DESASTRE


NUCLEAR EN MURUROA”. El mensaje en números serı́a

3 4 19 0 19 20 18 4 13 21 2 11 4 0 18 4 13 12 21 18 21 18 15
0

a cada grupo de tres le sumamos SOS en números 19 15 19


dando la lista
22 19 11 19 7 12 10 19 5 13 17 3 23 15 10 23 1 4 13 6 13 10
19

ası́ pues, el texto cifrado será

VSLSH MKSFN QDWOK WBENG NKDS.

Cifrado de Hill

Inventado por Lester Hill en 1929. Sea m un entero positivo fijo,


y ahora consideramos P = C = (Z27)m y el espacio de claves

K = {matrices invertibles de tamaño m × m sobre Z26}


Para una matriz A ∈ K definimos

eA(x) = xA

dA(y) = yA´−1

aquı́ x, y representan vectores de longitud m y todas las opera-


ciones se hacen en Z27.
Cifradores por permutaciones

También se conocen como los cifradores por transposición.

a) Transposiciones por grupos.

Los caracteres del texto en claro se reordenan por medio de


una permutación de tamaño k determinado. El texto en claro se
divide en grupos de ese tamaño y se aplica a cada uno de ellos
la permutación elegida.

Supongamos que seleccionamos la permutación de cuatro ele-


mentos dada como producto de transposiciones por (14)(23).
El texto CONVIENE COMPRAR AHORA se divide en grupos
de 4 letras CONV IENE COMP RARA HORA al aplicar la per-
mutación el texto se convierte en: VNOC ENEI PMOC ARAR
AROH.

b) Transposición por series

Se eligen series de números que se utilizan para reordenar los


caracteres del texto en claro. Por ejemplo podemos utilizar las
series

M1 = Los números primos

M2= Los números pares mayores que dos


M3= Los números impares no primos.

Para un mensaje con 25 caracteres los ordenarı́amos ponien-


do primero los de lugar 1,2,3,5,7,11,13,17,19,23 a continuación
4,6,8,10,12,14,16,18,20,22,24 y por último 9,15,21,25.

c) Transposición por filas

Se escribe el mensaje por filas verticales de una determinada


longitud y luego se lee de forma horizontal.

Ejemplo

M=Firmaremos la paz en breve.


f m e s p e r e
i a m l a n e x
r r o a z b v x

C= fmespereiamlanexrroazbvx

d) Transposición por columnas

d1) Por columnas simples

Ordenamos los caracteres del texto en claro por columnas y el


mensaje ası́ escrito se transmite por columnas.
Ejemplo

M= Nos encontraremos a la cuatro en el lugar de siempre.


n o s e n c o
n t r a r m o
s a l a s c u
a t r o e n e
l l u g a r d
e s i e m p r
e x x x x x x

C= nnsalee otatlsx srlruix eaaogex nrseamx cmcnrpx oouedrx

d2. Por columnas simples con clave.


En este caso las columnas se permutan según una palabra clave
que al ordenarla alfabéticamente nos determina la permutación.

Ejemplo.

M= invierta todo el dinero en Terra

la palabra clave es ”diosa”.

La tabla será
d i o s a
i n v i e
r t a t o
d o e l d
i n e r o
e n t e r
r a x x x

ordenando será
a d i o s
e i n v i
o r t a t
d d o e l
o i n e r
r e n t e
x r a x x

C=aeodorx dirdier intonna ovaeetx sitlrex

d3. Doble transposición por columnas.

Aplicamos dos veces sucesivas la transposición por columnas.


Ejemplo

M= nunca digas nunca jamás

n u n c a
d i g a s
n u n c a
j a m a s

C= ndnj uiua ugnm asas

Ahora utilizamos seis columnas,


n d n j u i
u a u g n m
a s a s x x

C´= nua das nua jgs unx imx

Cifrador de flujo

Hasta ahora hemos estudiado los sistemas conocidos como

Cifrado en bloques: el texto claro x = x1x2... se cifra mediante

y = y1y2... = eK (x1)eK (x2)...


donde K es la misma clave.
Pero ahora nos interesa otro tipo de sistemas conocidos como

Cifrado en flujo: Se genera un flujo de claves z = z1z2... y se


usan para cifrar el texto claro x = x1x2... mediante la regla

y = y1y2... = ez1 (x1)ez2 (x2)...

Definición Un cifrador de flujo es una septupla

(P, C, K, L, F , E, D)

satisfaciendo las condiciones siguientes:


1. P es un conjunto finito de textos en claro posibles,

2. C es un conjunto finito de textos cifrados posibles,

3. K, es espacio de claves, un conjunto finito de claves posibles,

4. L es un conjunto finito llamado el alfabeto de flujo de claves,

5. F = (f1, f2, ...) es el generador de flujo de claves. Para i ≥ 1,

fi : K × P i−1 → L,
6. Para cada z ∈ L, existe una regla de cifrado ez ∈ E y una regla
de descifrado correspondiente dz ∈ D. ez : P → C y dx : C → P
son funciones tales que

dx(ex(x)) = x

para cada texto en claro x ∈ P.

Funcionamiento. Sea x = x1x2.... un texto claro y K la clave. La


función fi asigna a
fi(K, x1, ..., xi−1) = zi.
El elemento de la clave en flujo zi se usa para cifrar xi dando
yi = ezi (xi). Por tanto calculamos sucesivamente

z1, y1, z2, y2, ...

Cifrado en flujo sı́ncrono: la secuencia de claves en flujo no


depende de la lista del texto claro.

Cifrado en flujo periódico: si zi+d = zi para un entero positivo


d, llamado el perı́odo. Ejemplo el cifrado de Vigenere.

Cifrados en flujo con alfabeto binario Usamos P = C = L =


Z2. En esta situación el cifrado y descifrado son la suma md́ulo
2:
ez (x) = x + z mod 2

dz (y) = y + z mod 2

La suma módulo 2 corresponde al OR exclusivo.

Recurrencia lineal. Se trata de un método para generar un


flujo de claves. Comenzamos con (k1, ..., km) y sea zi = ki para
1 ≤ i ≤ m entonces
m−1
X
zi+m = cj zi+j mod 2
j=0

donde las cj son constantes predeterminadas.

Ejemplo: Sea m = 4 y el flujo de claves generado por la regla

zi+4 = zi + zi+1 mod 2

Si el flujo de claves se inicia por (1, 0, 0, 0) el flujo de claves es


1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, ...

Ejemplo de un cifrado en flujo no sı́ncrono.

Cifrado autoclave Sea P = C = K = L = Z26. Sea z1 = K y


zi = xi−1 para i ≥ 2. Definimos
ez (x) = x + z mod 26

dz (y) = y − z mod 26.

Ejemplo 1 Le cifrador de Vinegère con una palabra clave de lon-


gitud m, digamos (k1, k2, ..., km) entonces poniendo z1 = k1, z2 =
k2, ..., zm = km y repitiendo el flujo de claves a partir de ahı́.
Obtenemos que el cifrado y descifrado se consigue por desplaza-
miento usando zi en cada lugar i.

Ejemplo 2 El cifrador autoclave

Sea P = C = K = L = Z27. Sea z1 = k, y sea zi = xi−1, (i ≥ 2).


Definimos

ez (x) = x + z mod 27
y
dz (x) = x − z mod 27

(x, y ∈ Z27).

También podría gustarte