Вы находитесь на странице: 1из 32

CRIPTOGRAFA

PLACAS 02
CRIPTOGRAFIA CLASICA

cripto I-scolnik-hecht

DESARROLLO
Mdulo I Criptografa clsica
Definicin, objetivos y fundamentos de criptologa.
Introduccin
a
los
criptosistemas.
Definiciones.
Necesidades. Seguridad terica y prctica. Criptografa
por software y por hardware. Ataques criptogrficos.
Clasificacin general de sistemas criptogrficos. Principios
de Kerckhoff. Procedimientos clsicos de cifrado: mtodos
histricos (esctala espartana, etc.). Primalidad, aritmtica
modular (Zn, Z*n) y funciones numricas elementales (MCD,
mcm). Clave de Julio Csar. Mtodos generales de
transposicin y sustitucin. Cifrador afn. Cifrador de Hill.
Claves
polialfabticas
(Vigenre).
Otros
mtodos
especiales (Playfair, Autokey, etc.). Criptoanlisis
elemental: ataque estadstico. Mtodo de Kasiski. ndice
de coincidencia e ndice de coincidencia mutuo.
cripto I-scolnik-hecht
3

CRIPTOGRAFIA HISTRICA -1
THE CODEBREAKERS David Kahn Scribner Rev.Ed. (1966)

EGIPTO (1900 AC)


Jeroglficos especiales
MESOPOTAMIA (asirios-babilonios)
Colofones cuneiformes
ASIA (India)
Clave de sustitucin
GRECIA (Esparta-500AC)criptografa militar
Esctala (1er aparato criptogrfico)

cripto I-scolnik-hecht

CRIPTOGRAFIA HISTRICA -2
THE CODEBREAKERS David Kahn Scribner Rev.Ed. (1966)

GRECIA (Aeneas el tctico)


Esteganografa x agujeros en
Astrgalos como clave
GRECIA (Polybius)
Clave de sustitucin matricial
ROMA (Julio Csar)
Clave de sustitucin modular
ROT(3)
ITALIA (Simeone de Crema 1401)
Primer clave de sustitucin
homofnica
cripto I-scolnik-hecht

CRIPTOGRAFIA
HISTRICA
-3
THE CODEBREAKERS David Kahn Scribner Rev.Ed. (1966)
Leon Battista Alberti (Siglo XV)- Primer
clave de sustitucin polialfabtica por
hardware (2 discos concntricos)
ITALIA (Florencia 1550)
Primer Nomencador conocido
ITALIA (Sforza-Medici) FRANCIA-ALEMANIAESPAA-INGLATERRA Siglo XVI y
siguientes
Nacen los criptoanalistas profesionales
Florecen las claves de sustitucin mono y
polialfabticas, poligrficas, de permutacin
y nomencladores de toda clase
cripto I-scolnik-hecht

CRIPTOGRAFIA
HISTRICA
-4
THE CODEBREAKERS David Kahn Scribner Rev.Ed. (1966)
ALEMANIA (Abad Johannes Trithemius 1518)
Primer Libro sobre Criptologa (latn)
(Polygraphiae Libri Sex)
Clave AVE MARIA polialfabtica
ITALIA (Cardano 1550 Vigenre - 1570)
Clave auto-retroalimentada (autokey)
Vigenre: clave sustitucin polialfabtica
EUROPA (Siglos XVII-XVIII-XIX)
Gabinetes Oscuros (Vite, von Marnix,..)
Se consolida la criptografa clsica
cripto I-scolnik-hecht

CRIPTOGRAFIA HISTRICA -5
THE CODEBREAKERS David Kahn Scribner Rev.Ed. (1966)

EUROPA-EEUU (XIX)
Beaufort: clave matricial (tipo Polybius)
Kasiski: criptoanlisis cientfico: mdulos y ataques
estadsticos (etaoin)
Babbage: criptologa computacional

SIGLO XX
Alan Turing (1941/2)- Cdigo Enigma
1976: Nace la criptografa asimtrica y de clave pblica
(Diffie-Hellman)(Pohlig-Hellman) (Hellman-Merkle)
1977: DES-56 standard NIST (Feistel)
1978: RSA (plagio parcial de Pohlig-Hellman)

cripto I-scolnik-hecht

CRIPTOSISTEMAS (SHANNON)

sustituir

permutar

cripto I-scolnik-hecht

PRINCIPIOS DE KERCHOFF (1883)


LOS CRIPTOSISTEMAS DEBEN SER:

1. Inquebrables en la prctica, si no lo fuesen


tericamente.
2. La difusin del mtodo no debe afectar a los
corresponsales.
3. La clave debe ser memorizable y fcilmente
cambiable.
4. El cifrado debe ser telegrafiable.
5. El equipo encriptor debe ser porttil y operable por
una sla persona.
6. El sistema debe ser simple, sin requerir
memorizacin de muchas reglas ni generar
esfuerzo mental.
cripto I-scolnik-hecht

10

CRIPTOSISTEMA - 1
Un criptosist ema es una quintupla ( P, C , K , E , D ) tal que
1) P es el conjunto de los posibles textos planos
2) C es el conjunto de los posibles textos cifrados
3) K , el espacio de claves es un conjunto finito
4) k K una regla de encripcin ek E y una correspondiente regla
de desencripcin d k D tales que cada ek : P C y d k : C P son
funciones biunvocas / d k (ek ( x )) = x x P

cripto I-scolnik-hecht

11

CRIPTOSISTEMA - 2
Sea A = {a1 ,..., aq } el alfabeto a utilizar.
Por ejemplo, A = {0,1}, A = ASCII , A = alfabeto espaol
Sea x = x1...xn , n 1, un mensaje a transmitir.
El emisor calcula yi = ek ( xi ), 1 i n resultando
y = y1... yn
El receptor recupera el mensaje mediante
xi = d k ( yi ), 1 i n

cripto I-scolnik-hecht

12

CRIPTOSISTEMA - 3

El conjunto P de los posibles textos planos consiste entonces de cadenas


de smbolos del alfabeto A.
Cada elemento k K determina unvocamente una
biyeccinde P a C denotada por ek , que es llamada una funcin de encripcin
La correspondiente funcin inversa se denota entonces por d k

cripto I-scolnik-hecht

13

METODOS SIMETRICOS

Definicin : consideremos un esquema de encripcin consistente de


{ek : k K } y {d k : k K }. Diremos que es simtrico si para cada par asociado
(e, d ) es posible, dado uno de ellos, computar el otro
Usualmente e = d , pero podra usarse cualquier funcin conocida biunvoca
tal que d = f (e)
Por ejemplo d = [3.1459 log(e)] + 1

cripto I-scolnik-hecht

14

ENCRIPTORES DE SUSTITUCION SIMPLE

Ejemplo: sea A = {A,B,...,Z}el alfabetoespaolcompuestode


las letras maysculasnicamente
P y C = {cadenade longitud5 sobre A}.
Tomemoscomofuncinde encripcina una permutacin de A.
Para encriptarun mensajese lo particionaen gruposde 5 letrasy
se le aplicala permutacin a cada uno

cripto I-scolnik-hecht

15

ENCRIPTORES DE SUSTITUCION SIMPLE


Un caso particular es la encripcin de Julio Csar donde
se le asigna a cada letra la que figura 3 lugares adelante
en forma modular ( o sea mdulo 27 que es la cantidad
de letras del alfabeto)
Ejemplo:
ABCDEFGHIJKLMNOPQRSTUVWXY
Z
DEFGHIJKLMNOPQRSTUVWXYZAB
C
aorar
 dqrudu
cripto I-scolnik-hecht

16

ENCRIPTORES DE SUSTITUCION SIMPLE


A = q ser el nmero de elementos del alfabeto, o sea su cardinalidad
P = {cadenas de longitud t de elementos de A}
K = {permutaciones de A}
Para cada k K definimos la transformacin de encripcin la
transformacin de encripcin
ek como ek ( M ) = (k ( p1 ),..., k ( pt )) = (c1 ,..., ct ) = C
donde M = ( p1 ,..., pt ) es el mensaje a encriptar.
O sea, cada smbolo de una t - upla es reemplazado por otro smbolo
del alfabeto Ade acuerdo con una permutacin FIJA k

cripto I-scolnik-hecht

17

ENCRIPTORES DE SUSTITUCION SIMPLE

Para desencriptar el mensaje codificado C = (c1,..., ct ) se calcula la permutacin


inversa d k = ek1 y d k (C ) = (d k (c1 ),..., d k (ct )) = ( p1,..., pt ) = M
Esto se denomina una substitucin SIMPLE o MONOALFABETICA.
El nmero de encriptadores distintos de substitucin es q != q.(q 1)...2.1
y es INDEPENDIENTE del tamao del mensaje a encriptar.
Los encriptadores de substitucin sobre mensajes de tamao pequeo son muy
inseguros aunque el espacio de claves es MUY GRANDE.Por ejemplo, en el
alfabeto espaol el nmero de claves es 27 ! 1.09.1028 293 , pero la clave
puede recuperarse rpidamente examinando una cantidad relativamente pequea
de texto pues se conservan las frecuencias.

cripto I-scolnik-hecht

18

ENCRIPTORES DE
SUSTITUCION HOMOFONICA
A cada a A le asociamos un conjunto H (a ) de cadenas de t smbolos, con
la restriccin de que si a, b A H ( a ) H (b) = a b
Un mtodo homofnico reeemplaza cada smbolo a con una cadena elegida al azar
en H ( a ). Para desencriptar una cadena C de t smbolos hay que encontrar
a A / C H (a ). La clave es el conjunto H (a ).
Ejemplo : A = (a, b) , H (a ) = {00,10}, H (b) = {01,11}
El codominio de la funcin de encripcin para mensajes de longitud 2 consiste de
los conjuntos disjuntos de cadenas de 4 elementos :
aa {0000,0010,1000,1010}
ab {0001,0011,1001,1011}
ba {0100,0110,1100,1110}
bb {0101,0111,1101,1111}
Sirven para " disimular" la frecuencia de los smbolos.

cripto I-scolnik-hecht

19

ENCRIPTORES DE CORRIMIENTO
(SHIFT CIPHERS)
Para describir en general los cifradores de corrimient o (Shift Ciphers) tenemos
que repasar los conceptos bsicos de la aritmtica modular.
Definicin : sean a , b enteros, y m un entero positivo. Entonces escribirem os
a b mod( m ) si m divide a b a. Decimos en este caso que a es congruente
con b mdulo m.
Supongamos que dividimos a , b por m, obteniendo a = q1m + r1 , b = q2 m + r2
Ver que a b mod( m ) r1 = r2
Definicin : la aritmtica mdulo m se define sobre el conjunto Z m = {0,..., m 1}
con las operacione s + y x. Las operacione s son las usuales, pero el
resultado se expresa mdulo m
Ejemplo :11x13 en Z16 11x13 = 143 = 8x16 + 15 11x13 mdulo 16 = 15
cripto I-scolnik-hecht

20

ENCRIPTORES DE CORRIMIENTO
(SHIFT CIPHERS)
Estas definicion es de suma y multiplicacin en Z m satisfacen la mayora de
las reglas usuales de la aritmtica. Ellas son :
1) la suma es cerrada, es decir a, b Z m a + b Z m
2) la suma es conmutativa, es decir a, b Z m a + b = b + a
3) la suma es asociativa, o sea que a, b, c Z m ( a + b) + c = a + (b + c )
4) 0 es la identidad para la suma, o sea a Z m , a + 0 = 0 + a
5) La inversa aditiva de cualquier a Z m es m a
6) la multiplicacin es cerrada, es decir que a, b Z m ab Z m
7) la multiplicacin es conmutativa, o sea que a, b Z m ab = ba
8) la multiplicacin es asociativa, es decir que a, b, c Z m ( ab )c = a (bc )
9) 1 es la identidad para la multiplicacin, o sea que a Z m 1.a = a.1
10) la multiplicacin es distributi va con respecto a la adicin, es decir que
a, b, c Z m ( a + b)c = ac + bc y a (b + c) = ab + ac
1 + 3 + 4 + 5 Z m es un grupo respecto a la suma y por 2 es abeliano
cripto I-scolnik-hecht

21

ENCRIPTORES DE CORRIMIENTO
(SHIFT CIPHERS)
Las propiedades 1 a 10 establecen que Z m es un anillo finito.
Como existen inversas aditivas, podemos restar en Z m . Para ello definimos
a b en Z m como a + m b mod m o, equivalentemente, se puede calcular
a b y luego reducirlo mod m.
Ejemplo :11 18 en Z 31 se puede calcular como 11 + 31 18 = 24
El cifrador de corrimiento :
Sea P = C = K = Z m
ek ( x) = x + k mod m

Para 0 k m 1 definimos
y d k ( y ) = y k mod m

Nota : si k = 3 obtenemos el encriptador de Julio Csar

cripto I-scolnik-hecht

22

Veamos un ejemplo en ingls ( m = 26 )


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
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Texto plano : wewillme etatmidnig ht
Este texto escrito numricame nte segn la correspond encia anterior es :
22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19
Si la clave es k = 11, le sumamos ese valor a cada elemento y tomamos mod 26
obteniendo
7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4
que, en carcteres alfabtico s, se escribe
HPHTWWXPPE LEXTOYTRSE
Para desencript ar se escribe este texto como nmeros, se le resta 11, y se toma
mod 26
Basta probar las m claves posibles y se desencript a. Adems conserva
las frecuencia s.
cripto I-scolnik-hecht

23

ENCRIPTORES DE SUSTITUCION
Han sido muy usados, la mayor parte de los criptogramas que aparecen en revistas y diarios
son de esta clase.
Algoritmo: Sea P = C = Z m
K = conjunto de claves consiste de todas las permutaciones de m
Para cada permutacin K definimos e ( x) = (x)
siendo la correspondiente desencripcin d (y ) = 1 ( y )
Ejemplo de permutacin:
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
X Z Y W V U R S T P Q O M N K I L F E D H G J B A CB
Entonces e (a) = X, e (b) = Z, etc
Permutando las filas de la tabla anterior y ordenandola en forma alfabtica,
se obtiene la permutacin inversa

cripto I-scolnik-hecht

24

ENCRIPTORES AFINES
El cifrador de corrimiento (Shift Cipher) es un caso especial del cifrador de
substitucin que incluye a slo 27 de las 27! permutaciones. Otro caso especial
es el cifrador afn, en el que la funcin de encripcin es afn, o sea
e( x) = ax + b mod 27 , con a, b Z 27 (observar que si a = 1 es un cifrador de
corrimiento)
Para que sea posible desencriptar es necesario preguntarse cuando una funcin
afn es inyectiva.En otras palabras, y Z 27 queremos que la congruencia
ax + b y mod 27 tenga una nica solucin. Esta congruencia es equivalente
a
ax y b mod 27
como y vara en Z 27 tambin lo hace y b. Por lo tanto basta con estudiar
la congruencia ax y mod 27 (con y Z 27 ).
El resultado esencial es que esta congruencia tiene una nica solucin para todo
y si y slo si MCD(a,27) = 1.
cripto I-scolnik-hecht

25

Supongamos por lo contrario que MCD ( a , 27 ) = d > 1 . Entonces la congruenci a


ax 0 mod 27 tiene al menos dos soluciones distintas en Z 27 , x = 0 y x = 27 / d
En ese caso la funcin e ( x ) = ax + b mod 27 no es inyectiva y por lo tanto no
puede usarse como funcin de encripcin .
Supongamos ahora que MCD ( a , 27 ) = 1 y que para algn par x1 , x 2 se verifica
ax1 ax 2 mod 27, a ( x1 x 2 ) 0 mod 27 27 / a ( x1 x 2 )
Usamos ahora una propiedad de la divisin :
si MCD ( a , b ) = 1 y a / bc a / c
Como 27 / a ( x1 x 2 ) y MCD ( a , 27 ) = 1 27 /( x1 x 2 ) x1 x 2 mod 27
Por lo tanto hemos probado que si MCD ( a , 27 ) = 1, entonces una congruenci a
de la forma ax y mod 27 tiene a lo sumo una solucin en Z 27 . O sea que si
x vara sobre Z 27 entonces ax mod 27 toma 27 valores distintos mod 27, lo que
significa que toma cada valor exactament e una vez y eso conduce a que la
congruenci a ax b mod 27 tiene una nica solucin para y Z 27 .
cripto I-scolnik-hecht

26

ENCRIPTORES AFINES
Por supuesto que el nmero 27 no tiene nada de particular. En general :
Teorema : la congruencia ax b mod m tiene una nica solucin x Z m
para todo b Z m si y slo si MCD( a, m) = 1.
Para calcular el nmero de claves necesitamos otro resultado de la teora de
nmeros :
Definicin : Sean a 1 y m 2 enteros. Si MCD ( a, m) = 1 diremos que a y m
son primos relativos. El nmero de enteros en Z m = {0,..., m - 1} que son
primos relativos con m se denota por ( m) (llamada la funcin de Euler o
totient function en ingls)

cripto I-scolnik-hecht

27

Teorema : sea m = piei la descomposicin en factores primos de m, donde


1

los pi son primos distintos y ei > 0, 1 i n. Entonces


n

(m) = ( piei piei 1 )


1

De esta expresin se deduce que el nmero de claves distintas en el cifrador


afn es m ( m) dado que la cantidad de posibilidades para b es m y para
a es ( m) debido a que la funcin debe ser inyectiva.
Dijimos hasta ahora que para desencriptar y necesitamos encontrar la solucin
de y ax + b mod 27, y dimos las condiciones para que esto sea factible pero
no dijimos como calcular x . Para ello necesitamos :
Definicin : sea a Z m . La inversa multiplicativa de a es un elemento a.1 tal
que a.a 1 a 1.a 1 mod m
Usando argumentos similares puede probarse que a tiene una inversa
multiplicativa mod m si y slo si MCD ( a, m) = 1, y si existe es nica.
cripto I-scolnik-hecht

28

ENCRIPTORES AFINES
Si p es primo, entonces todo elemento no nulo de Z m tiene una inversa
multiplica tiva (un anillo en el que esto se cumple se llama un cuerpo)
Ms adelante se ver un algoritmo muy eficaz para calcular inversas
multiplica tivas. Mientras tanto, para el caso simple de m = 27, se puede
resolver por ensayo y error.
Ejemplo : encontrar las inversas multiplica tivas (si existen) de
a = 13, 7, 17, 3
Tenemos entonces el algoritmo del cifrador afn :
P = C = Z 27 y sea K = {( a , b ) Z 27 xZ 27 / MCD ( a,27 ) = 1}
Para K = ( a , b ) K definimos e K ( x ) = ax + b mod 27 y
d K ( y ) = a 1 ( y b ) mod 27
cripto I-scolnik-hecht

29

ENCRIPTORES AFINES

Ejemplo : sea K = (25,3) la funcin de encripcin es


eK ( x) = 25 x + 3
La inversa multiplicativa de a = 25 es a 1 = 13 en Z 27 as que
d K ( y ) = 13( y 3) = 13 y 12 (en Z 27 )
Verifiquemos :
d K (eK ( x)) = 13eK ( x) 12 = 13(25 x + 3) 12 = x (en Z 27 )

cripto I-scolnik-hecht

30

ENCRIPTORES DE SUSTITUCION
POLIALFABETICA (VIGENERE)
Vimos que en los cifradoresde corrimiento y en los de substitucin, cada elementodel alfabetoes
transformado a un nico carcter, y por eso estos mtodosse llaman MONOALFABETICOS.
Veremosahora un mtodo que no es de esta clase, debido a Blaise de Vignere(siglo XVI).La idea es
que cada clave se asocia con una cadena de m carcteres. Veamos un ejemploen ingls :
Sea m = 6 y la clave K = CIPHER = (2,8,15,7,4,17) y el texto plano
thiscryptosystemisnotsecure
Escribimosel texto numricamente
19 7 8 18 2 17 24 15 19 14 18 24 18 19 4 12 8 18 13 14 19 18 4 2
2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 7 4 17 2 8 15 7 4 17
----------------------------------------------------------2115 23 25 6 8 0 23 8 21 2215 20 1 1919 12 9 15 22 8 25 8 19
20 17 4
2 8 15
-------22 25 19
VPXZGIAXIVWPUBTTMJPWIZITWZT
cripto I-scolnik-hecht

31

ENCRIPTORES DE FLUJO
En los mtodos que vimos hasta ahora los carcteres sucesivos del texto plano se encriptaban
usando la misma clave, o sea y = y1 y 2 ... = ek ( x1 )ek ( x 2 )...
Son los llamados cifradores de bloques
Un enfoque alternativo es el de los cifradores de flujo, donde la idea bsica es
la de generar una sucesin de claves k = k1 k 2 ... de modo tal que
y = y1 y 2 ... = ek1 ( x1 )ek 2 ( x 2 )...
Un cifrador de flujos opera del siguiente modo : sea x = x1 x 2 ... el texto plano
y k K la clave. Sea f i una funcin que genera k i mediante la clave k y los
primeros i 1 elementos del texto plano, o sea
k i = f i (k , x1 ,..., xi 1 )

cripto I-scolnik-hecht

32