Title: ALGORITMOS DE ENCRIPTAMIENTO
1ALGORITMOS DE ENCRIPTAMIENTO
- THIERRY DE SAINT PIERRE
- GERENTE COMERCIAL
- eBUSINESS TECHNOLOGY
2 Algoritmos de encriptamiento
- TEMARIO
- Historia.
- CriptografÃa en UNIX.
- TeorÃa matemática
- Aritmética modular.
- Complejidad de problemas en criptografÃa.
- TeorÃa de la información.
- Algoritmos clásicos
- Sustitución, transposición.
- Algoritmos simétricos o a llave privada
- DES en Modos ECB, CBC, FEAL.
- Algoritmos asimétricos o a llave pública
- RSA.
3Temario (2)
- Métodos de autentificación
- RSA.
- Shamir
- canales sub-liminales (EL-GAMAL).
- Firmas digitales
- Métodos de compresión.
- Esquema de Diffie-Lamport, Rabin, RSA.
- Esquemas con Arbitro.
4Vocabulario
- encryption (enciphering) encriptamiento
- cipher (codetext) código, clave
(nombre) cifrar, encriptar (verbo) - cryptogram criptograma
- decryption decriptar
- cryptography criptografÃa
- cryptanalysis criptoanálisis , análisis
criptográfico
5Definiciones
- Sistema criptográfico
- Familia de transformaciones invertibles
dependientes de un parámetro o llave k - Ek con k en K.
- Si M espacio de los mensajes C espacio de
los códigos - Entonces el sistema criptográfico debe verificar
- Algoritmo de encriptamiento Ek M --gt C es una
transformación invertible. - Existe un algoritmo inverso Dk Ek-1 llamado
el algoritmo de decriptamiento tal queDk C
--gt M y Dk(C) Dk(Ek(M)) M - Las llaves deben definir de manera unÃvoca el
mensaje encriptadoEk1 (M) ltgt Ek2 (M) si k1
ltgt k2
6Fortaleza de un sistema criptográfico
- El secreto de la llave k.
- La dificultad de adivinar la llave o de probar
todas las llaves posibles (k estimación k) - La dificultad de invertir el algoritmo de
encriptamiento si no se conoce la llave (M
estimador M) - La dificultad para decriptar un mensaje completo
suponiendo que se sabe decriptar una parte. - El secreto sobre las propiedades del mensaje
(p.ej alguna palabra que se repite al comienzo y
al final del mensaje).
7Historia
- Algoritmo de Cesar
- Algoritmo usado por Julio Cesar en sus campañas.
- El algoritmo consiste en desplazar cada letra del
mensaje tres caracteres a la derechai.e. A -gt
D, B-gt E, etc. - Todo algoritmo que transforma la letra i del
alfabeto en la letra i j es llamado Algoritmo
tipo Cesar - E i --gt i j
- El algoritmo de decriptamiento es
- D i --gt i - j
- Analisis criptográfico Se utiliza la
distribución de frecuencia de las letras. La
distribución de las letras en el espacio de los
mensajes M es la misma que en el espacio de los
códigos C.
8Algoritmo de Cesar
- Ejemplo
- L FPDH VDZ L FRQTXHUHG --gt I CAME I SAW I
CONQUERED con j3. - A partir de la palabra encriptada QJAAH
determinar cuál es la plabra inglesa original.
Hay que intentar con las 26 posibles
traslaciones. Respuesta 2 palabras posibles
BULLS , HARRY - Las frecuencias de las letras en el inglés son
- F(e) 13 F(a) 7 . Las frecuencias de i, n,
o, r, t varÃan entre 7 y 9. - Del mismo modo en el espacio de los códigos la
frecuencia serÃa F(h) 13 , F(d) 7 , etc. - Supuesto Conocimiento de la distribución de
letras (o mensajes) en el alfabeto inicial.
9La máquina Enigma los rotores
- La máquina Enigma
- Inventada por un ingeniero alemán durante la I
guerra mundial, utilizada posteriormente en la II
GM por los alemanes. - Las llaves se definÃan mediante 3 rotores. Una
vez posicionados los rotores se ingresaba el
carácter a encriptar y se obtenÃa como resultado
el carácter encriptado. Se encriptaba asÃ,
sucesivamente todo el texto. A cada
encriptamiento el rotor se desplazaba permitiendo
romper el esquema estadÃstico del idioma. - Para decriptar el mensaje era necesario tener la
misma máquina y conocer el posicionamiento
inicial de los rotores.
10La criptografÃa en UNIX
- UNIX posee dos algoritmos de encriptamiento
- El algoritmo CRYPT utilizado para encriptar las
password - El programa crypt que puede usar cualquier
usuario para encriptar sus datos. - Algoritmo CRYPT
- Basado en algoritmo DES.
- Utiliza la password como llave de encriptamiento
y encripta con esta llave una palabra de 64 bits
inicializada en zero. Este resultado es
encriptado (con la pwd ) 25 veces sucesivas.
Finalmente se transforman esos 64 bits en una
cadena de 11 caracteres que son almacenados en
/etc/passwd. - Para complicar el decriptamiento se le agrega una
semilla de 2 caracteres que depende de la hora
del dÃa.
11Algoritmo Crypt (1)
- El programa passwd
- al tipear la pwd, esta es encriptada, se le
agrega la semilla y se compara con lo que
contiene el archivo de passwords. - Ejemplo
- Password Semilla Password encriptada
- nutmeg Mi MiqkFWCm1fNJI
- ellen1 ri ri79KNd7V6.Sk
- El programa crypt
- Basado en la máquina enigma con un sólo rotor.
- cbw Crypt Breakers Workbench es un programa
que decripta automáticamente los archivos
encriptados con crypt.
12Programa Crypt (2)
- Trucos para mejorar la seguridad de crypt
- Comprimir el archivo antes de encriptarlo, de
esta forma cbw no sabe cuando ha adivinado
correctamente la llave pues no reconoce las
palabras. - Si se comprime el archivo con compress o pack hay
que eliminar los 3 primeros bytes de encabezado
pues dan pistas para decriptar. - compress -c lttexto dd bs3 skip1 crypt
gtcripto - Algoritmo DES
- En SUN hay un programa DES de encriptamiento en
modo CBC (Cipher Block Chaining) - encriptar des -k millave ltarchivo
- decriptar des -k millave gtarchivo_encriptado
13TeorÃa matemática
- Aritmética modular
- a b (mod n) ssi a b kn para algún k b
es llamado el residuo de a modulo n. Además n
divide a-b. - El conjunto de residuos de modulo n es (0, 1,
2, ...., n-1). - Los enteros modulo n con la suma y la
multiplicación forman un anillo commutativo
(propiedades de asociatividad, conmutatividad y
distributividad). - Además cómo módulo n es un homomorfismo del
anillo de los enteros en el anillo de los enteros
modulo n podemos reducir (mod n) y luego hacer la
operación (,) o bien hacer la operación y luego
reducir (mod n) - (ab) (mod n) ( a(mod n) b(mod n) ) (mod n)
- (ab) (mod n) ( a(mod n) b(mod n) ) (mod n)
- En particular a1a2 ...am (mod 9) a1 a2 ...
am (mod9)
14Teorema del residuo chino
- Teorema previo
- Sean p1, ... pr primos relativos entre ellos. Y
sea n p1 . p2 ... pr. Entonces - f(x) (mod n ) 0 ssi f(x) (mod pi) 0 para i1,
..., r. - Corolario
- Para resolver ax b (mod n) es necesario
resolver el sistema de congruencias - ax b (mod pi) para i1, ..., r.
- Teorema del residuo chino
- Sean p1, ... pr primos relativos entre ellos. Y
sea n p1. p2 ... pr. Entonces el sistema de
congruencias - x xi (mod pi) para i1,...,r.
- tiene una solución común en el intervalo (0,n-1).
15Cuerpo de Galois
- Campo de Galois GF(p)
- Para un primo p definimos en el campo de los
enteros modulo n las operaciones (mod n) y
(mod n). Para cada a en (1, p-1) tenemos un
inverso único a-1 tanto para cómo para . Se
trata luego de un campo. - Campos de Galois GF(2n)
- Aritmética módulo 2 sobre polinomios de grado
n.El polinomio es de la forma a(x) an-1 x n-1
... a1 x a0dónde los coeficientes an-1 ,
... ,a1 , a0. son enteros modulo n. En este caso
los ai valen 0 o 1. - Por ejemplo 11001 corresponde al polinomio x4 x3
1 en GF(25). - Cada elemento a(x) es un residuo módulo p(x)
dónde p(x) es un polinomio irreducible de grado
n. Luego de multiplicar 2 polinomios hay que
reducir el resultado con el polinomio irreducible.
16GF(2n)
- Los calculos en GF(2n) son más eficientes en
tiempo y espacio que en GF(p) - Se suma utilizando el or exclusivou v mod 2
u (or exclusivo) v - Se multiplica utilizando el and booleanou v
u and v - Ejemplo a 10101 , b 01100 y cab
11001En cambio si consideramos a y b cómo las
representaciones booleanas de 21 y 12 , la suma
21 12 33 y 21 12 252 4 (mod 31)
requiere mas cálculos.
17Cómo encontrar inversos en GF(2n)
- Ejemplo de cálculo de polinomios
- Sea a 100 en GF(25) módulo p(x) 1011.Para
invertir a(x) x2 modulo p(x) x3 x 1,
se define la inversa a-1(x) ex2 fx g
Luego 1 a(x) . a-1(x) x2 (ex2 fx g)
(mod x3 x 1)1 ex4 fx3 gx2 ex (x 1 )
f(x1) gx2 ya que x3 x 1 (mod x3 x
1)luego f 1 , e g y f e,entonces a -1
111. - Para dividir b por a en GF(2n) modulo p(x) se
encuentra primero a -1 con el teorema de los
residuos y luego se calcula b.a -1 (mod p(x)). - Se demuestra que a-1 a b , con b 2n - 2
- Por ejemplo (100)-1 100 8 (mod 1011)
111pues 100 2 (mod 1011) 110.
18Complejidad
- La teorÃa de complejidad de algoritmos clasifica
los problemas calculables según el tiempo
(asintótico) óptimo necesario para calcular una
respuesta al problema. - Ejemplos algoritmos polinomiales y algoritmos
exponenciales. - Clase P existe un algoritmo deterministico cuyo
peor caso está acotada por una función
polinomial. - Clase NP existe un algoritmo no-deterministico
polinomial para resolver el problema. No se
conocen algoritmos polinomiales determinÃsticos
para resolver los problemas en esta clase. - Problemas NP-completos problemas de clase NP que
son equivalentes. Si existe un algoritmo
polinomial determinÃstico para uno de ellos
entonces tambien existe un algoritmo para los
otros.
19Complejidad de problemas usados en criptologÃa
- Factorización
- Sea N, existen enteros p, q gt 1 tal que p.q N ?
- Clase NP
- Números primos
- es N primo ?
- Clase NP
- Problema exponencial
- Sean g,x pertenecientes a GF(N)Existe un
entero s gt 0 tal que s g x (mod N). - Clase P
20TeorÃa de la información
- TeorÃa de Shannon (1949).
- TeorÃa de codificación para corregir errores en
canales con ruido y teorÃa del encriptamiento. - La cantidad de información en un mensaje es el
promedio de bits necesarios para codificar todos
los mensajes optimamente. - La entropÃa de un mensaje M que puede tener Mi
variantes es - H(M) Suma P(Mi) Log 2 ( 1 / P(Mi) )Cada
término Log 2 ( 1 / P(Mi) representa el número
de bits necesario para codificar el mensaje Mi. - H(M) log 2 n si hay n mensajes equiprobables.
- H(M) 0 si hay un solo mensaje con P(M) 1. En
este último caso cómo no hay variedad de mensajes
no hay información.
21La redundancia de un lenguaje
- La tasa r de un mensaje de largo k es r H(M) /
k. Para el ingles, cuando k es grande se estima r
entre 1,0 y 1,5 bits/caracter. - La tasa absoluta R de un lenguaje se calcula como
el número de bits necesarios para codificar el
lenguaje cuando los mensajes son equiprobables.
Por ej para un lenguaje con 26 caracteres es
necesario Log 2 26 4,7. - Los lenguajes son redundantes, pues algunas
estructuras y letras ocurren más frecuentement e
que otras. P. ej en ingles son frecuentes e,t,a,
th, en , ....La redundancia D R - r. El ratio
D/R mide el de redundancia. El caso del ingles
3,7/4,7 79. - De la misma forma se puede calcular la
redundancia de un lenguaje con 2 letras
utilizando probabilidades condicionales P(Mi /
Mj).
22 Error y secreto
- Error entropÃa condicional de un mensaje M dado
el criptograma C - HC (M) Suma P(C) Suma PC (M) . log 2 (1 /PC(M)
) C Mdonde PC(M) es la probabilidad
condicional de un mensaje M dado el criptograma
C. - Secreto de una llave K
- HC (K) Suma P(C) Suma PC (K) . log 2 (1 /PC(K)
)donde PC(K) es la probabilidad condicional de
una llave K dado el criptograma C. - Si Hc(K) es cero no hay incertidumbre sobre el
criptograma, luego se puede quebrar. - La distancia de unicidad de un criptograma es el
largo mÃnimo del mensaje que hace que Hc(K)
tienda a cero. - Dist_Unic HC(K) / D , donde D es la
redundancia. - Los criptogramas con distancia infinita son
inquebrables.
23Sustitución monoalfabática
- Sustitución se reemplazan los bits, caracteres o
bloques de caracteres por un sustituto. - Generalización del código de Cesar se le asigna
a cada letra del alfabeto una letra aleatoria. - Si numeramos las letras
- 1,2,3,4 ., 25, 2623, 2,4,15, , 8,1
- Encriptamiento E x --gt y
- Decriptamiento D y --gt x
- Análisis criptográfico utiliza las frecuencias
de las letras del alfabeto. - Para este tipo de algoritmos existen n! llaves,
donde n es el número de letras en el alfabeto. Si
todas las llaves son equiprobables, el largo del
mensaje para poder quebrar la llave es la
distancia de unicidad NH(K)/D log 2 n!
/D.Para el inglés, N log2 26! / 3,2 27,6. Se
requiere un codigo de largo 28 para quebrar el
criptograma.
24Transposición monoalfabética
- Transposición o permutación se rearregla el
orden de los bits, de los caracteres o de los
bloques de caracteres. - Sea Zd los enteros de 1 a d y fZd --gt Zd una
permutación.Los bloques de d caracteres son
encriptados a la vez.La llave es la tupla (d,f)
. - Sea el mensaje M m1 ....md md1 .... m2d
...Entonces el mensaje encriptado es Ek(M)
mf(1) ... mf(d) m df(1) ... mdf(d) ... - Ejemplo sea d4 y f (2 3 4 1)Se recorta el
mensaje en bloques de largo 4 M CRYP TOGR
APHYLuego el criptograma es PCRY RTOG
YAPH - Criptoanálisis Se decripta utilizando
información de distribución de las letras del
lenguaje , asà como la distribución de las tuplas
(th, an, ..) y triples (the, ...).
25Sustitución polialfabetica
- Sustitución polialfabetica
- Se utilizan d alfabetos de encriptamiento C1, C2
...., Cd.Si definimos fi A --gtCientonces el
mensaje M m1 ....md md1 .... m2d se
transforma en Ek(M) f1( m1 )f2(m2) ....fd(md )
f1(md1 ).... fd(m2d ). - Encriptamiento de Vignerer
- Caso especial donde fi(a) a ki (mod n) define
el shift en el alfabeto. La llave se escribe K
k1k2 ...kd.Por ejemplo K HOST (7,14,18,19)
entonces - M INDI VIDU ALCH ARAC TERK HOST HOST HOST
HOST HOSEk(M) PBVB CWVN HZUA HFSV ASJ - Encriptamiento de Beauford
- fi(a) (ki - a) (mod n)
26Llave de una sola pasada Algoritmo de Vernam
- One-time pad
- Se genera una llave aleatoria K a lo menos del
largo del mensaje M a encriptar.La llave K es
producida por un algoritmo de generación de
números aleatorios seguros. - La llave es conocida por los dos usuarios que
comunican, esa llave debe ser más larga que
cualquier mensaje que deseen intercambiar. Para
cada mensaje se genera una nueva llave aleatoria
K. - Encriptamiento
- C Ek(M) M Xor K
- Decriptamiento
- D C Xor K
- Es un alg. de encriptamiento inquebrable pues la
llave es modificada aleatoriamente para cada
mensaje, la unica forma de decriptar el mensaje
es adivinarlo !.
27Encriptamiento con llaves en flujo
- Stream ciphers
- El emisor y el receptor generan simltáneamente
una secuencia de bits seudo-aleatorios a partir
de una misma llave inicial. Estos bits son
utilizados por el emisor para encriptar el
mensaje con un Xor y por el receptor para
decriptarlo via un Xor. - La fuerza del alg. de encriptamiento reside en la
capacidad de tener un algoritmo que genere
secuencias de bits seudo-aleatorios. - Caracteristica no propaga errores, muy rápido.
llave
Generador bits aleatorios
Mensaje encriptado
Mensaje
28Criterios de diseño de Algoritmos criptográficos
- El espacio de llaves debe ser grande.
- Los criptogramas no deben heredar las propiedades
estadÃsticas del lenguaje de base. Lo ideal es
que el criptograma parezca dato aleatorio. - Debe ser sometido a intensos tests y análisis
antes de ser usado. Lo complicado de su diseño no
es una garantÃa de que sea seguro. - El problema es Cómo garantizar que un algoritmo
es seguro ? - La idea es demostrar que para quebrarlo es al
menos necesario hacer una búsqueda exhaustiva de
la llave. - Por otro lado es necesario evaluar el lapso de
tiempo en el cual uno se quiere segurizar los
datos - En el mundo financiero se necesita protección
transiente. En el área de gobierno o militar la
información debe ser protegida por años.