ALGORITMOS DE ENCRIPTAMIENTO - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

ALGORITMOS DE ENCRIPTAMIENTO

Description:

T e c n o l o g a p a r a s u s n e g o c i o s. Tecnolog a para sus negocios ... Algoritmos asim tricos o a llave ... I CAME I SAW I CONQUERED con j=3. ... – PowerPoint PPT presentation

Number of Views:596
Avg rating:3.0/5.0
Slides: 29
Provided by: thierrydes
Category:

less

Transcript and Presenter's Notes

Title: ALGORITMOS DE ENCRIPTAMIENTO


1
ALGORITMOS 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.

3
Temario (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.

4
Vocabulario
  • 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

5
Definiciones
  • 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

6
Fortaleza 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).

7
Historia
  • 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.

8
Algoritmo 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.

9
La 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.

10
La 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.

11
Algoritmo 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.

12
Programa 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

13
Teorí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)

14
Teorema 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).

15
Cuerpo 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.

16
GF(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.

17
Có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.

18
Complejidad
  • 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.

19
Complejidad 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

20
Teorí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.

21
La 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.

23
Sustitució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.

24
Transposició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, ...).

25
Sustitució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)

26
Llave 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 !.

27
Encriptamiento 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

28
Criterios 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.
Write a Comment
User Comments (0)
About PowerShow.com