Documente Academic
Documente Profesional
Documente Cultură
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)
cripto I-scolnik-hecht
CRIPTOGRAFIA HISTRICA -2
THE CODEBREAKERS David Kahn Scribner Rev.Ed. (1966)
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
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
cripto I-scolnik-hecht
13
METODOS SIMETRICOS
cripto I-scolnik-hecht
14
cripto I-scolnik-hecht
15
16
cripto I-scolnik-hecht
17
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
cripto I-scolnik-hecht
22
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
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
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
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