06-Métodos modernos de cript e id remota

download 06-Métodos modernos de cript e id remota

of 163

Transcript of 06-Métodos modernos de cript e id remota

CONSECRI 2001

Mtodos modernos de criptografa e identificacin remota "Dr. Hugo D. Scolnik Prof. Titular Dpto. Computacin FCEN -UBA FIRMAS DIGITALES SRL [email protected]

1. Introduccin. Definiciones bsicas. 2. Inalterabilidad de los mensajes. El concepto de hashing. 3. Mtodos simtricos. Confiabilidad, longitud de claves, el problema de la distribucin de las claves. 4. Mtodos asimtricos, transmisin de claves. Sobres digitales. El concepto de firma digital, claves privadas y pblicas. Seguridad de los protocolos. Firma digital y firma electrnica. 5. Conceptos de tecnologa PKI. Autoridades certificantes y certificados digitales. Normas a cumplir. 6. Modelos de e-commerce seguro. Sesiones SSL. Secure Mail. Form Signing. 7. Autenticacin fuerte de clientes remotos. Biometra. Comparacin entre tcnicas tradicionales y nuevas tendencias hacia el uso masivo. 8. Aspectos legales de la criptografa aplicada en nuestro Pas. 9. Consultas y discusin abierta con los participantes.

Introduccin. Definiciones bsicas: texto plano, texto cifrado, encripcin, desencripcin, llaves, ataques por fuerza bruta.

ELEMENTOS BSICOS DE CRIPTOLOGA Criptografa: es el arte de transformar mensajes de modo tal que sean ilegibles para todos aquellos a los que no se les confiere el modo de acceder a los mismos. Criptoanlisis: es el estudio de las tcnicas para quebrar mensajes criptografiados. Criptologa: es el estudio de la Criptografa y el Criptoanlisis. Texto plano: es un mensaje original. Texto cifrado: es el resultado de criptografiar un texto plano.

OBJETIVOS DE LA CRIPTOGRAFA CONFIDENCIALIDAD INTEGRIDAD CERTIFICACIN DE ORIGEN NO REPUDIO

CONFIDENCIALIDAD

Encripcin: es cualquier procedimiento para transformar un texto plano en un texto cifrado. Desencripcin: es el procedimiento transformar un texto cifrado en correspondiente texto plano. de el

Llave : es la clave - normalmente alfanumrica para el proceso de encripcin.

Entidad: alguien que enva, recibe, o manipula informacin. Emisor: una entidad que es un legtimo transmisor de informacin Receptor: idem Espa: una entidad que no es ni el emisor ni el receptor y que trata de alterar el proceso de comunicacin. Canales: un canal es un medio de transmitir informacin de una entidad a otra, Un canal es fsicamente inseguro si un adversario puede borrar, insertar, leer o modificar datos.

Un esquema de encripcin es quebrable si un adversario sin un conocimiento a priori del par (e,d) puede sistemticamente recuperar el texto plano a partir del cifrado en un tiempo razonable. El objetivo de un diseador es lograr que el NICO ataque posible sea el de fuerza bruta

ATAQUE DE FUERZA BRUTA Consiste en probar en forma sistemticamente todas las combinaciones posibles de las claves, hasta descubrir la que fue usada en una encripcin

Seguridad de un sistema criptogrficodebe depender nicamente del desconocimiento de las claves y no del algoritmo (este es generalmente conocido)

Punto 2. Inalterabilidad de los mensajes. El concepto de hashing. Los algoritmos MD5, SHA, SHA-1 y otros.

INTEGRIDAD

HASHINGCmo sabemos que un mensaje que recibimos y desciframos no ha sido alterado ? Un espa o saboteador pudo haber interceptado el mensaje y haberlo alterado para estudiar el mecanismo o para causar dao.

Hash Function

Es una funcin H que toma un string M, y produce otro, h, de tamao fijo (generalmente ms corto) Al resultado (h) de aplicar una hash function a un string se lo suele llamar simplemente hash del string M

Hash:

dado un mensaje de bits una funcin de hashing aplicada al mismo da como resultado otro mensaje de longitud que constituye un resumen del mismo. La idea es que aunque obviamente hay otros mensajes que producen el mismo hash, es extremadamente difcil encontrarlos y an ms difcil que tengan un significado. Por lo tanto si se transmite un mensaje (encriptado o no) por una va y su correspondiente hashing por otro (o firmado digitalmente), se puede verificar si el mismo ha sido alterado.

Secure Hash Functions

h = H ( M ) con los siguientes requisitos: Dado M es fcil computar h Dado h es difcil encontrar el M original Dado M, es difcil encontrar otro M tal que H ( M ) = H ( M ) 2 tipos de s.h.f.: Sin clave, son las normales Con clave, llamadas MACs Aplicaciones: integridad de mensajes o archivos, firma de digestos en vez de mensajes.

PGUESE A HUGO SCOLNIK U$S 12.000.000 Bill Gates

A2F508DE091AB30135F2 HASHING

PGUESE A HUGO SCOLNIK U$S 12.000.000 Bill Gates

FCIL

IMPOSIBLE... sin colisiones!

A2F508DE091AB30135F2

FUNCIN TRAMPA

Secure Hash Functions

Sinnimos y variantes en distintos escenarios: compression function, contraction function, message digest, fingerprint, cryptographic checksum, data integrity check (DIC), manipulation detection code (MDC), message authentication code (MAC), data authentication code (DAC)

Secure hashes

SNEFRU

(128/256 bits); El SNEFRU de 2 pasos se puede quebrar, usando una PC, en 3 minutos [birthday: dado M, hallar M cuyo H(M)=H(M)], o en 1 hora (hallar un mensaje M dado un hash h)

N-HASH MD2 (Message Digest-2, Ron Rivest, 128 bits, mas lento, menos seguroque MD4, usado en PEM)

MD4 (Message Digest-4, Ron Rivest, 128 bits, muy usado) MD5 (Message Digest-5, Ron Rivest, 128 bits, MD4 con mejoras, muyusado, usado en PEM, SSL)

SHA/SHA-1/SHA 256/SHA 512 (secure hashalgorithm, 160 a 512 bits, usado en DSS, SSL)

RIPEMD 128 / RIPEMD 160 OTROS

Mtodos simtricos, DES, 3DES, IDEA, AES, Cryptoflash, confiabilidad, longitud de claves, el problema de la distribucin de las claves.

CLAVE(NICA)

MTODOS DE ENCRIPCIN SIMTRICOS

ESTAMOS HABLANDO DE CRIPTOGRAFA

#@Y6&(*-+jW3!G&%;{I8=UENCRIPCIN SIMTRICA

DES RC2 RC6

Algoritmos simtricos(block, clave de 56 bits)

3DES (block, clave de 112/168 bits)(block, Ron Rivest, reemplazo para DES, clave de tamao variable)

(block, Ron Rivest, clave arbitraria) (block, international data encryption algorithm. clave de

IDEA128 bits)

NCT (block, non-linear curves traveller, clave arbitraria) AES - RIJNDAEL (block, clave 128/256-bits) CRYPTOFLASH (Stream, clave de 1024-bits)

Elementos bsicos de los mtodos simtricos. Todos los algoritmos criptogrficos transforman a los mensajes en secuencias numricas. Por ejemplo, si numeramos las letras del alfabeto utilizado en el idioma castellano obtenemos:A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8 I 9 J K L M N 10 11 12 13 14

O P Q R S T U V W X Y Z 15 16 17 18 19 20 21 22 23 24 25 26 27

El mensaje: V A M O S A L Se escribe: 23 01 13 16 20 01 12

C I N E 03 09 14 05

Donde escribimos A 01, etc, para dejar en claro la codificacin. Aqu no hemos hecho distincin de maysculas y minsculas ni hemos agregado los signos de puntuacin con propsitos ilustrativos (en la vida real se utiliza todo el cdigo ASCII o EBCDIC) El mtodo ms simple es el de corrimiento (shift cipher en ingls) que se remonta a la poca de Julio Csar y consiste simplemente en asignarle a cada letra la que le corresponde k posiciones mas adelante. En el ejemplo anterior, si usamos k=3 como lo haca Julio Csar, resulta: 23 +3 =26 Y finalmente: YDORVD FLPH ; 01+3=4 D, etc, obteniendo

En los sistemas que hemos visto suscintamente hasta el momento los caracteres sucesivos son encriptados usando la misma clave. Estos mtodos se llaman de bloques (block ciphers). Un mtodo alternativo muy utilizado es el de flujo (stream ciphers). La idea esencial es un flujo de claves cambiantes que dependen de la clave inicial fijada, y de los caracteres anteriores. Por ello, un cifrado de bloques es un caso especial de un cifrado de flujo donde la clave es siempre la misma. Los stream ciphers son muy utilizados actualmente (p.ej. CryptoFlash)

MODO ECB (sin feedback) aaaaaaaa xD$#!0). aaaaaaaa xD$#!0). aaaaaaaa xD$#!0).

MODO CBC (con feedback) aaaaaaaa I.V. 4kG8xb: aaaaaaaa eT5$m>ls aaaaaaaa Rq0@+#*

MODOS OPERATIVOS

CLAVE Minsculas (26) minsc + dgitos (36)

4 Bytes .5 sec 1.7 sec

6 Bytes 5 min 36 min

8 Bytes 2.4 dias 33 dias

Caracteres 15 sec 16 horas 6.9 aos alfanumricos (62) Caracteres ASCII 4.5 min 51 dias 2300 aos (128) Bytes (256) 1.2 horas 8.9 aos 580000 aosExploracin a razn de 1.000.000 pruebas/segundo(y el poder computacional se duplica cada 18 meses)

SEGURIDAD

ALGORITMO Y CLAVERC4 cipher, 128-bit key RC2 cipher, 128-bit key Triple-DES cipher, 168-bit key IDEA cipher, 128-bit key DES cipher, 56-bit key RC4-Export cipher, 40-bit key RC2-Export cipher, 40-bit key No Encryption cipher

En 1980 Stephen Wolfram desarrolla un nuevo algoritmo simtrico basado en un AC, su uso qued relegado por su baja performance. Fue criptoanalizado en 1981, bajo ciertas restricciones. En Mayo de 1998 se quiebra el DES 56-bits con una Workstation dotada con una plaqueta especial en menos de 24 Horas y un presupuesto de $200.000 (ataque de fuerza bruta = 256 = 72.057.594.037.927.936) En 1998 se abre el concurso al reemplazante del DES (AES). La seleccin ha concludo en octubre 2000, habindose seleccionado un algoritmo de bloques (Rijndael) con clave de 128/256-bits. En Agosto 1999 se desarroll en Argentina un algoritmo de flujo basado en un AC no lineal con clave de 1024-bits (CryptoFlash)

RELATIVE BENCHMARK OF Cryptoflash AND THE SYMMETRIC ALGORITHM SELECTED BY THE NIST (10/02/2000) AS THE AES (Advanced Encryption Standard)ON A STANDARD PENTIUM USING TEXTS WITH LENGTHS > 215 bytes

AES Rijndael Cryptoflash

20CPU Cycles/byte

Max key length:

256-bitsMax key length:

--difficult scalability with performance slowdown -the inverse takes more code & time - CPU Fully scalable (8/16/32/64-bits) with same performance - inverse and direct take the same code & time

7CPU cycles/byte

285% faster

1024-bits

Bibliography: [1] Wolfram,S., Cryptography with Cellular Automata, CRYPTO85 [2] Meier,W. et al., Analysis of Pseudo Random Sequences Generated by Cellular Automata, EUROCRYPT91 [3] Hecht, J.P., ,Generacin de caos determinstico y atractores extraos usando AC, FOUBA, Mar 2000 [4]. Schneier et al, Performance Comparison of the AES Submissions Vers 1.4b Jan 15, (1999) http://www.counterpane.com/aes-performance.html [5] http://csrc.nist.gov/encryption/aes/round2/AESAlgs/Rijndael/Rijndael.pdf

Mtodos inquebrables. One time pad o anotador de nica vez.

Si consideramos que el texto a encriptar es una sucesin de nmeros binarios, un mtodo de criptografa puede considerarse como un algoritmo que genera nmeros binarios que se SUMAN a los anteriores mdulo 2 (es la operacin XOR que corresponde a la tabla de verdad de la disyuncin excluyente). Esta tabla es: x 0 0 1 1 y 0 1 0 1 x

0 1 1 0

y

Stream ciphers El encriptamiento de un bloque depende de la historia M = { a1, a 2, a3, ....} K = { k1, k 2, k3, ...} E = { e1, e2, e3, ...} Se cumple que

ei = ai ki ai = ei ki

Pero CUIDADO ! ki = ai ei

0 1 0 1 1

XOR0 0 1 0 1 .

0 0 1 0 1 1 1 1 0

Si a cada nmero binario del texto original se le suma mdulo 2 (XOR) un bit aleatorio en una secuencia que se usa UNA SOLA VEZ, se obtiene el llamado one time pad, mtodo que se puede demostrar mediante la teora de la informacin desarrollada por Shannon que es inviolable. El problema es que hay que distribur tantas claves (bits) como longitud tengan los mensajes a transmitir.

1 0 0 1 0 .

Mtodos asimtricos, transmisin de claves. El mtodo de Diffie-Hellman. Sobres digitales, RSA. El concepto de firma digital, claves privadas y pblicas. Seguridad de los protocolos.

Como distribuir las claves secretasLa idea es disponer de un conjunto numerado de claves y transmitir cdigos ininteligibles para un espa que permiten arribar mediante operaciones matemticas al mismo nmero. Este valor en comn entre los usuarios habilitados ser utilizado luego como llave de un algoritmo simtrico.

Mtodo de Diffie-Hellman Este fue el primer algoritmo de clave pblica y es universalmente utilizado para el intercambio seguro de claves.sea p un entero primo grande y a un entero menor a p

Los usuarios 1 y 2 eligen arbitrariamente exponentes enteros x, y que mantienen SECRETOS y proceden a calcular y envarse recprocamente lo siguiente:El usuario 1 calcula y enva a 2 El usuario 2 calcula y enva a 1 f(x) = (a)^x mod p f(y) = (a)^y mod p

Ahora 1 calculaK = ( f(y) ) ^x mod p = ( (a)^y ) ^x mod p

...y 2 calculaK = ( f(x) ) ^y mod p = ( (a)^x ) ^y mod p

donde K = K y ambos usan esa nueva clave !

Ejemplo: Sea p = 23, a = 5, x = 6, y = 10 . Ahora el usuario 1 calcula:

f ( x ) = a x mod( p ) = 56 mod( 23) = 15625 mod( 23) = 8y se lo enva al usuario 2. El usuario 2 calculay

f ( y ) = a mod( p) = 5 mod( 23) = 9765625 mod( 23) = 910

y se lo enva al usuario 1.

El usuario 2 recibi el nmero 8 y procede a calcular:K = f ( x) mod( p) = 8 mod( 23) = 3y 10

El usuario 1 recibi el nmero 9 y calcula:K = f ( y) mod( p) = 9 mod( 23) = 3x 6

Por lo tanto ambos llegaron a la MISMA clave.

Qu consigue un espa ? Intercepta los nmeros y aunque conozca el primo elegido y la base (o sea ) , no sabe cuales fueron los nmeros .Para encontrar la clave comn tendra que resolver el llamado problema del logaritmo discreto, por ejemplo:

5 mod( 23) = 8xCuando los nmeros involucrados son muy grandes, y estn bien elegidos, este problema es computacionalmente irresoluble en un tiempo razonable.

Ejemplo:

p = 1000475149 , a = 876543098 , x = 12345678909876543 , y = 6 5 4 3 7 5 4 2 6 738848Los resultados son:

f ( x ) = 993617947 , f ( y ) = 839026926y la clave comn a la que ambos arriban es:

K = 708448295

Obviamente puede usarse esta clave en un algoritmo simtrico o puede ser una referencia a un conjunto de claves numeradas,

El espa (si lleg a conocer los nmeros p, a) tendra que resolver la ecuacin: 876543098 mod(1000475149) = 993617947x

En la prctica se usan nmeros mucho mayores, lo que solo es factible con un software o hardware muy bien implementado.

Tests de primalidad basados en la simetra de los subgrupos de bases no-testigos.Alumna: Marcela Noem Nievas. Director: Dr. Hugo Daniel Scolnik.

Objetivo

ObjetivoDeterminar la primalidad de un nmero n impar dado, en forma ms eficiente a la usual, disminuyendo la cota de error, al declarar al nmero n, como primo.

Introduccin

Quines necesitan nmeros primos?

Criptosistemas RSA Esquemas de Firmas Digitales Esquema de Intercambio de Claves

Introduccin

RSA Obtener P y Q primos grandes, distintos. Calcular n = P Q Elegir e primo relativo con (n) = (P-1).(Q-1) Calcular d, tal que e.d 1 mod ((n)) Destruir P, Q y (n) Clave pblica (e, n) y clave privada (d, n), viceversa. Se encripta m, haciendo c = m e mod (n) Se desencripta c, haciendo m = c d mod (n)

Introduccin

Por qu se necesitan nmeros primos?Porque su seguridad radica en no poder factorizar el nmero n = P Q, en un tiempo razonable.

Tests de PrimalidadTest de Fermat Test de Miller Test de Miller-Rabin

Test de primalidad

En qu se basan los tests de primalidad?Se basan en las propiedades algebraicas que cumplen los nmeros primos

Test de primalidad

Pequeo Teorema de Fermat: Si n es primo. b entero, tal que MCD(b,n ) = 1 entonces b n-1 1 mod (n) Test de Fermat: Buscar algn b tal que, b n-1 1 mod (n) Si lo encuentra n es compuesto Si no, declara a n como posible primo

Test de primalidad

Problemas con el Test de FermatLos seudo primos de base b Nmeros de Carmichael

Son nmeros compuestos

Test de primalidad

Seudo Primos de Base b Cumplen con b n-1 1 mod (n) para n compuesto

Nmeros de Carmichael (1910) b entero / MCD(b,n) = 1, cumplen b n-1 1 mod (n)

Los tests basados en el teorema de Fermat calculaban an-1 mod (n), con a = 2 y comprobaban si el resultado era igual a 1 no. Pero este mtodo no fu suficiente, dado que existen nmeros compuestos n que satisfacen el teorema. Por ejemplo, tomando n = 341 se puede comprobar que 2340 1 mod (341) siendo 341 = 11 31.

Seudo primos de base bSea n un nmero impar compuesto. Si existe b, tal que bn-1 1 mod (n) para algn 1 b < n, entonces n es llamado seudo primo de base b porque cumple con la propiedad de Fermat, aunque n sea compuesto. En el ejemplo anterior, 341 es llamado seudo primo de base 2.

La existencia de estos seudo primos, invalid el uso del teorema de Fermat como Test de primalidad.

Una solucin parcial, fue cambiar de base igual a 2 a base igual a 3. De esta forma algunos seudo primos de base 2 fueron detectados. En nuestro ejemplo, 3340 56 mod (341), por lo que es detectado como compuesto.

Aqu se dice que 3 es Testigo y 2 es No-Testigo de que 341 es compuesto, utilizando el pequeo Teorema de Fermat como test de primalidad.

Pero tambin existen nmeros que son seudo primos de bases iguales a 2 y 3 y de bases iguales a 2, 3 y 5 simultneamente. Ejemplo, 265340 1 mod (65341), 365340 1 mod (65341) y 565340 1 mod (65341) pero 65341 = 181 361, compuesto

Entonces, Existe algn n que sea seudo primo para toda base en el intervalo [1,,n-1]?

Test de primalidad de Miller

Secuencia de Miller (1976) n 3 entero impar, n 1 = 2 q con q entero impar, k 1 Para algn b , 1 b ( n 1), se obtiene la secuencia de Millerk

{b , b

q

2 q

, ... ,b

2 k 1 q

,b

2 k q

}

Test de primalidad de Miller

Propiedad de MillerSi n es primo impar dada la sec. {b , bq 2 q

, ... ,b

2 k 1 q

,b

2 k q

} sucede que,

b 1 mod ( n )q

b

2 j q

( n 1) mod ( n ) con 0 j k 1

Test de primalidad de Miller

Test de Miller

Se basa en elegir bases b al azar en el intervalo [1,...,n-1] y comprobar si cumplen o no, con la propiedad de Miller.

Test de primalidad de Miller

Testigos y No-Testigos

Para n entero compuesto impar b es TESTIGO si con l se detecta que n es compuesto. b es NO-TESTIGO si con l no se puede comprobar que n es compuesto.

Test de primalidad de Miller

Seudo Primos FuertesSean q1, ..., qr los primeros r primos. r es el menor entero positivo que es seudo primo para las bases las bases q1, ..., qr Algunos de ellos son:

r1 2 3 4

Seudo Primo Fuerte2.047 1.373.653 25.326.001 3.215.031.751

Test de primalidad de Miller-Rabin

Cuntos No-Testigos hay?

En 1977, Michael Rabin demostr que la cantidad de bases No Testigos para todo n entero compuesto impar es menor a n/4.

Test de primalidad de Miller-Rabin

Pero ...Sea n entero impar de 155 dgitos decimales ( 10155) Hay que probar con (n/4) bases pero (n/4) 10154

Investigacin de las Bases No-Testigos

Investigacin

Anlisis de las bases No-TestigosSea n = 561, el primer Carmichael. Las bases No-Testigos para n son {1, 50, 101, 103, 256, 305, 458, 460, 511, 560}

Investigacin

(I) Secuencias de Miller para 561Base NoTestigo 1 50 101 103 256 305 458 460 511 560 Secuencia de Miller {1, 1, 1} {560, 1, 1} {560, 1, 1} {1, 1, 1} {1, 1, 1} {560, 1, 1} {560, 1, 1} {1, 1, 1} {1, 1, 1} {560, 1, 1}

Investigacin

Teorema 1Sea b [1,..., n-1], con n y q enteros impares, entonces b q 1 mod (n) (n-b) q (n-1) mod (n).

Investigacin

Corolario 1.1Sea b [1,..., n-1], con n y q enteros impares, entonces b q (n-1) mod (n) (n-b) q 1 mod (n).

Investigacin

Teorema 2Dado n nmero entero impar, b es No-Testigo para n (n-b) es No-Testigo para n (usando el mtodo de Miller).

Investigacin

Resumenv

b es No-Testigo (n-b) es No-Testigo

Investigacin

Corolario 2.1 n 3 entero impar, sucede que las bases 1 y (n-1) siempre son No-Testigos para n (usando el mtodo de Miller).

Investigacin

Resumenb es No-Testigo (n-b) es No-Testigo v 1 y (n-1) siempre son No-Testigosv

Investigacin

Si partimos el intervalo [1,...,n-1] por la mitad Por el Teorema 2, tenemos que:1 (n-1)

b

n-b

Entonces, tenemos igual cantidad de bases No-Testigos en cada subintervalo

Investigacin

Corolario 2.2 n 3 entero impar, la cantidad de bases No-Testigos en el intervalo [1, ..., (n-1)] es par (usando el mtodo de Miller).

Investigacin

Resumenv v v

b es No-Testigo (n-b) es No-Testigo 1 y (n-1) siempre son No-Testigos La cantidad de No-Testigos es par

Investigacin

Resumenv v

b es No-Testigo (n-b) es No-Testigo

1 y (n-1) siempre son No-Testigos v La cantidad de No-Testigos es parv

Las bases No-Testigos conforman un * subgrupo propio de Z n

Investigacin

(II) Secuencias de Miller para 56149 51 2 153 49 153 2 51 49 Base NoTestigo 1 50 101 103 256 305 458 460 511 560 Secuencia de Miller {1, 1, 1} {560, 1, 1} {560, 1, 1} {1, 1, 1} {1, 1, 1} {560, 1, 1} {560, 1, 1} {1, 1, 1} {1, 1, 1} {560, 1, 1}

Investigacin

Teorema 4Las bases No - Testigos para n entero impar utilizando el mtodo de Miller, en el intervalo [1,..., n2 1 ] estn espejadas

con las bases No - Testigos en el intervalo [ n21 + 1,..., n 1].

1

50

103 101

256 305

458

511 560

460

Investigacin

Resumenv v

b es No-Testigo (n-b) es No-Testigo

1 y (n-1) siempre son No-Testigos v La cantidad de No-Testigos es par v Las bases No-Testigos conforman un * subgrupo propio de Z nv

Las bases No-Testigos estn espejadas

Investigacin

Por Rabin sabemos queb / b es Testigo de n 3( n 1) 4 ( n 1) 4

b / b es No - Testigo de n