algoritmos-criptograficos

36
Algoritmos criptográficos Trabajo realizado por: Belén M. García Lobo Asignatura de Redes

description

b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbnmmmmmmmmmmmmmmmkkkkkjkm

Transcript of algoritmos-criptograficos

  • Algoritmos criptogrficos Trabajo realizado por: Beln M. Garca LoboAsignatura de Redes

  • ndice:Criptografa clsicaAlgoritmos simtricos (cifrado por bloques)Algoritmos asimtricos de cifrado

  • Criptografa clsicaLlamamos as a todos los sistemas de cifrado anteriores a la II Guerra Mundial, o lo que es lo mismo, al nacimiento de los ordenadores.Se basa en algoritmos sencillos y claves muy largas para la seguridad. Perdieron su eficacia, debido a que son fcilmente criptoanalizables por los ordenadores. Todos los algoritmos criptogrficos clsicos son simtricos

  • Cifrados por sustitucinSe basa en la sustitucin de cada letra por otra letra para disfrazarla pero conservan el orden de los smbolos de texto normal. Entre ellos cabe destacar los siguientes: - algoritmo de Csar, - mtodos de cifrado monoalfabticos, - polialfabticos..

  • - Algoritmo de Csar:Debe su nombre a que era usado por Julio Csar para enviar mensajes secretosConsiste en sumar 3 al nmero de orden de cada letra. De esta forma a la A le corresponde la D, a la B la E, y as sucesivamente.Este algoritmo no posee clave, puesto que la transformacin siempre es la misma. Para descifrar basta con restar 3 al nmero de orden de las letras del criptograma.Ejemplo: el mensaje ataque se convertira en DWDTXH

  • - Mtodos de cifrado monoalfabticosSustituyen cada letra por otra que ocupa la misma posicin en un alfabeto desordenado y esta correspondencia se mantiene a lo largo de todo el mensaje. As se consiguen tantas claves como posibilidades de alfabetos hay.El problema est en cmo recordar la clave (el alfabeto desordenado). El procedimiento es el siguiente:Se busca una palabra (clave) fcil de recordar y se le quitan las letras duplicadas.SEGURIDAD SEGURIDASe aaden al final de la palabra las restantes letras del alfabeto (sin duplicar letras).SEGURIDABCFH..................XYZSe ordenan en una matriz cuya primera fila es la palabra claveS E G U R I D AB C F H J K L MN O P Q T V W XY ZEl nuevo alfabeto se lee por columnas: SBNYECOZGFPUHQRJTIKVDLWAMXEjemplo: el mensaje ataque se convertira en SVSTDE

    El sistema de criptoanlisis mejor para romper el algoritmo es el estadstico.

  • - Mtodos de cifrado polialfabticosCorresponde a la aplicacin cclica de n cifrados monoalfabticos, (de varios abecedarios desordenados). Un ejemplo tpico es el Cifrado de Vignere:- Dada una tabla con un alfabeto por cada letra del abecedario- Mtodo:Se busca una palabra clave fcil de recordar.Se escribe la palabra debajo del texto en claro, repitindose tantas veces como sea necesario.Cada letra del texto en claro se codifica con el alfabeto de la tabla marcado por la letra inferior, o sea, la letra de la clave que corresponde. - Ejemplo:CLAVE: ADIOSTexto en claro : E S T O E S C R I P T O L O G I AClave: A D I O S A D I O S A D I O S A DCriptograma E V B D W S F Z W H T R T C Y I D

  • Cifrados por transposicinSe basa en la reordenacin de las letras de un texto de acuerdo a una palabra clave escogida que no contiene letras repetidas. Mtodo: Con la clave se numera las columnas, estando la columna 1 bajo la letra de la clave ms cercana al inicio del alfabeto, y as sucesivamente.El texto normal se escribe horizontalmente en filas.El texto cifrado se lee por columnas, comenzando por la columna cuya letra clave es ms bajaSe puede criptoanalizar efectuando un estudio estadstico sobre la frecuencia de aparicin de pares y tripletas de smbolos

  • Ejemplo:Texto normal: Este es un trabajo para la asignatura de Redes" Clave: VideoTexto cifrado:T ROAAA E EUA STDD SSTJR NAR NBPLIUEE EE AAAGR S

  • Rellenos de una sola vezEl mtodo consistira en:Escoger una clave al azar,Por otro lado se convierte el texto normal en una cadena de bitsSe calcula el XOR de estas dos cadenasEl texto cifrado es indescifrable ya que no proporciona ninguna informacin.Problemas:La clave no puede memorizarseLa cantidad de datos que se puede transmitir est limitada a la cantidad de clave disponibleEs sensible a la perdida o insercin de caracteres si se pierde la sincrona entre receptor y emisor

  • Algoritmos de clave simtrica Tambin se le denomina critografa privada o cifrado por bloques.Se caracteriza por usar la misma clave para encriptar y desencriptar.

    Toda la seguridad est basada en la privacidad de esta clave

  • Cifrado de productoSe apoyan en dos conceptos: Confusin: tratar de ocultar la relacin que existe entre el texto normal, el texto cifrado y la clave, es decir, realizar sustituciones simplesDifusin: trata de repartir la influencia de cada bit del mensaje original lo ms posible en el mensaje cifrado, es decir, realizar permutacionesEstas tcnicas consisten en trocear el mensaje en bloques de tamao fijo, y aplicar la funcin de cifrado a cada uno de ellos.Destacar que la confusin por s sola sera suficiente, pero ocupara mucha memoria, por lo que sera inviable.

  • Algoritmo DESEs el algoritmo simtrico ms extendido mundialmente. Codifica bloques de 64 bits empleando claves de 56 bits. Consta de 16 rondas, ms dos permutaciones, una que se aplica al principio (Pi) y otra al final (Pf ), tales que la ltima es la inversa de la primera. Para descifrar basta con usar el mismo algoritmo empleando el orden inverso.Ventajas del algoritmo:Es muy rpido y fcil de implementar.Desventajas:Emplea una clave demasiado corta, lo cual hace que con el avance actual de los ordenadores, los ataques por la fuerza bruta se puedan llevar a cabo.

  • Variantes del DESSe han propuesto variantes de este algoritmo para as aprovechar gran parte de las implementaciones por hardware existentes de DES. De ellos el que cabe destacar es:DES Mltiple:Consiste en aplicar varias veces el algoritmo DES con diferentes claves al mensaje original. El ms comn de todos ellos es el Triple-DES, que responde a la siguiente estructura:Codificar con la subclave k1, decodificar con k2 y volver a codificar con k1. La clave resultante es la concatenacin de k1 y k2, con una longitud de 112 bits.

  • Idea (International Data Encryption Algorithm)Codifica bloques de 64 bits empleando una clave de 128 bits. Como en el caso de DES, se usa el mismo algoritmo tanto para cifrar como para descifrar. Es un algoritmo bastante seguro, y hasta ahora se ha mostrado resistente a los ataques. Su longitud de clave hace imposible en la prctica un ataque por la fuerza bruta como se poda hacer en el DES.

  • Consta de ocho rondas.Dividiremos el bloque X a codificar, de 64 bits, en cuatro partes X1, X2, X3 y X4 de 16 bits. Denominaremos Zi a cada una de las 52 subclaves de 16 bits que vamos a necesitar. Las operaciones que llevaremos a cabo en cada ronda, se pueden apreciar en la figura:

  • Algoritmo de Rijndael (AES)Es considerado el sucesor de DES. Este algoritmo se adopt oficialmente en octubre del 2000 como nuevo Estndar Avanzado de Cifrado (AES) por el NIST (National Institute for Standards and Technology) para su empleo en aplicaciones criptogrficas. Su nombre se debe a dos autores belgas Joan Daemen y Vincent Rijmen.

  • Como peculiaridad tiene que todo el proceso de seleccin, revisin y estudio tanto de este algoritmo como de los restantes candidatos, se efectu de forma pblica y abierta, por lo que, toda la comunidad criptogrfica mundial ha participado en su anlisis, lo cual convierte a Rijndael en un algoritmo perfectamente digno de la confianza de todos.AES es un sistema de cifrado por bloques, diseado para manejar longitudes de clave y de bloque variables, ambas comprendidas entre los 128 y los 256 bits.

  • Se basa en aplicar un nmero determinado de rondas a un valor intermedio que se denomina estado y que se representar en una matriz rectangular, que posee cuatro filas, y Nb columnas. A[4,Nb]La clave tiene una estructura anloga a la del estado, y se representar mediante una tabla con cuatro filas y Nk columnas. K[4,Nk]El bloque que se pretende cifrar o descifrar se traslada a la matriz de estado y anlogamente, la clave se copia sobre la matriz de clave Siendo B el bloque que queremos cifrar, y S la matriz de estado, el algoritmo AES con n rondas queda como sigue:

  • 1. Calcular K0,K1, Kn subclaves a partir de la clave K.2. S B K03. Para i = 1 hasta n hacer4. Aplicar ronda i-sima del algoritmo con la subclave Ki.Puesto que AES permite emplear diferentes longitudes tanto de bloque como de clave, el nmero de rondas requerido en cada caso es variable Siendo S la matriz de estado, y Ki la subclave correspondiente a la ronda i-sima, cada una de las rondas posee la siguiente estructura:1. S ByteSub(S)2. S DesplazarFila(S)3. S MezclarColumnas(S)4. S Ki S

  • Funciones DesplazarFila y MezclarColumnas permiten obtener un alto nivel de difusin a lo largo de varias rondas.Funcin ByteSub consiste en la aplicacin paralela de s-cajas.La capa de adicin de clave es un simple or-exclusivo entre el estado intermedio y la subclave correspondiente a cada ronda.La ltima ronda es igual a las anteriores, pero eliminando el paso 3.

    El algoritmo de descifrado consistir en aplicar las inversas de cada una de las funciones en el orden contrarioEs un algoritmo resistente al criptoanlisis tanto lineal como diferencial y uno de los ms seguros en la actualidad.

  • Modos de Operacin paraAlgoritmos de Cifrado por Bloques Se ha de aadir informacin al final para que s lo sea. Mecanismo: Rellenar con 0s el bloque que se codifica hasta completar. Problema: cundo se descifra por donde hay que cortar?. Aadir como ltimo byte del ltimo bloque el nmero de bytes que se han aadido. Independientemente del mtodo empleado qu ocurre cuando la longitud del mensaje no es un mltiplo exacto del tamao de bloque?

  • Por otro ladoLos algoritmos simtricos encriptan bloques de texto aplicando cifrados de bloques. El tamao de los bloques puede ser constante o variable segn el tipo de algoritmo. Tienen 4 formas de funcionamiento:ECB CBCCFBOFB

  • - Modo ECB (Electronic Code Book)Es el mtodo ms sencillo de aplicar Subdivide la cadena a codificar en bloques del tamao fijo y se cifran todos ellos empleando la misma clave.Ventajas: Permite codificar bloques independientemente de su orden.Es resistente a errores. Desventajas: Si el mensaje presenta patrones que se repiten, el texto cifrado tambin los presentar.Puede sufrir una sustitucin de bloques

  • - Modo CBC (Cipher Book Chaining)Es un mecanismo de retroalimentacin de bloques mediante una codificacin XOR entre el mensaje a codificar y el criptograma cifrado anterior.No comienza a codificar hasta que no tenga un bloque enteroVentajas: Nos protege respecto a la sustitucin de bloques.Es resistente a errores. Desventajas: Si dos textos tienen el mismo patrn obtendrn el mismo resultado usar Vector de Inicio

  • - Modo CFB (Cipher Feedback Mode)Permite codificar la informacin en unidades inferiores al tamao del bloque Realiza una XOR entre caracteres o bits aislados del texto y las salidas del algoritmo. Ventajas: - Permite aprovechar totalmente la capacidad de transmisin del canal de comunicaciones con mayor seguridad.

  • - Modo OFB (Output FeedBack Mode)Como el CFB, realiza una XOR entre caracteres o bits aislados del texto y las salidas del algoritmo. Pero utiliza como entradas sus propias salidas, por lo tanto no depende del texto.Ventajas: Ya no depende del texto

  • Algoritmos de clave asimtricaSe caracteriza por usar una clave para encriptar y otra para desencriptar. Una clave no se derivar de la otra.Emplean longitudes de clave mucho mayores que los simtricos. Adems, la complejidad de clculo que comportan los hace ms lentos que los algoritmos de cifrado simtricos. Por ello, los mtodos asimtricos se emplean para intercambiar la clave de sesin mientras que los simtricos para el intercambio de informacin dentro de una sesin.

  • AplicacionesCifrado de la informacin sin tener que transmitir la clave de decodificacin, lo cual permite su uso en canales inseguros. La clave que se hace pblica es aquella que permite codificar los mensajes, mientras que la clave privada es aquella que permite descifrarlos.Autentificacin de mensajes que nos permiten obtener una firma digital a partir de un mensaje. Dicha firma es mucho ms pequea que el mensaje original, y es muy difcil encontrar otro mensaje de lugar a la misma. La clave de descifrado se har pblica previamente, y la clave que se emplea para cifrar es la clave privada.

  • Algoritmo RSADebe su nombre a: Ronald Rivest, Adi Shamir y Leonard Adleman. Las primeras versiones de PGP lo incorporaban como mtodo de cifrado y firma digital. Se le tiene como uno de los algoritmos asimtricos ms seguros.RSA se basa en la dificultad para factorizar grandes nmeros. El atacante se enfrentar a un problema de factorizacin.

  • Vulnerabilidades:Claves Demasiado CortasDeberemos escoger la longitud de la clave en funcin del tiempo que queramos que nuestra informacin permanezca en secreto. Ataques de IntermediarioPuede darse con cualquier algoritmo asimtrico. Manera de evitar: Certificados de confianza, que certifican la autenticidad de la clave. Ataques de Texto en Claro EscogidoExplota la posibilidad de que un usuario codifique y firme un nico mensaje empleando el mismo par de claves. Firmar y CodificarNunca se debe firmar un mensaje despus de codificarlo ya que existen ataques que aprovechan este hecho.

  • Algoritmo de Diffie-Hellman Se emplea fundamentalmente para acordar una clave comn entre dos interlocutores, a travs de un canal de comunicacin inseguro. Algoritmo:A escoge un nmero aleatorio x, y enva a B el valor x(mod p)B escoge un nmero aleatorio y enva a A el valor y(mod p) B recoge x y calcula K = ( x)y (mod p).A recoge y y calcula K = ( y)x (mod p).

    Ventaja: no son necesarias claves pblicas en el sentido estricto, sino una informacin compartida por los dos comunicantes.

  • Algoritmo ElGamal Fue diseado en un principio para producir firmas digitales, pero posteriormente se extendi tambin para codificar mensajes. Se basa en el problema de los logaritmos discretosAlgoritmo:Se escoge un nmero primo n y dos nmeros aleatorios p y x menores que n. Se calcula entonces la expresin:y = px (mod n)La clave pblica es (p, y, n), mientras que la clave privada es x.

  • Algoritmo ElGamal Firmas Digitales de ElGamalEscoger un nmero k aleatorio, tal que mcd(k,n-1) =1, y calcular: a = pk(mod n)b = (m-xa)k-1 (mod (n-1))La firma la constituye el par (a, b). En cuanto al valor k, debe mantenerse en secreto y ser diferente cada vez.

    La firma se verifica comprobando queyaab = pm (mod n) Codificacin de ElGamalPara codificar el mensaje m se escoge primero un nmero aleatorio k primo relativo con (n-1), que tambin ser mantenido en secreto. Calculamos:a = pk (mod n)b = ykm (mod n)El par (a, b) es el texto cifrado, de doble longitud que el texto original.

    Para decodificar se calculam = b * a-x (mod n)

  • Algoritmo de Rabin Se basa en el problema de calcular races cuadradas modulo un nmero compuesto. Este problema se ha demostrado que es equivalente al de la factorizacin de dicho nmero.En primer lugar escogemos dos nmeros primos, p y q, ambos congruentes con 3 mdulo 4 (los dos ltimos bits a 1). Estos primos son la clave privada. La clave pblica es su producto,n = pq.Para codificar un mensaje m, se calcula:c = m2 (mod n)

  • Algoritmo DSA (Digital Signature Algorithm)Es una parte el estndar de firma digital DSS (Digital Signature Standard). Este algoritmo, propuesto por el NIST, data de 1991, es una variante del mtodo asimtrico de ElGamal.Pasos:Por un lado se generar la clave pblica compuesta por (p, q, , y). Y por otro la clave privada a. Se gener la firma con la cual podr operar el emisor.El destinatario efectuar las operaciones oportunas, suponiendo que conoce la clave pblica (p, q, , y), para verificar la autenticidad de la firma.