Algoritmos de Cifrado Moderno

download Algoritmos de Cifrado Moderno

If you can't read please download the document

description

Algoritmos de Cifrado Moderno

Transcript of Algoritmos de Cifrado Moderno

Universidad Nacional de IngenieraCriptologa Moderna

Expositores: Reyna Judith Doa Rosales Laoska Benyasca Guadamuz Muoz Leonardo Moiss Mayorga Valdez Yahosca Virginia Paniagua Arellano Liseth del Carmen Prez Guillen Cristhian Johanna Vallecillo Lpez Verano 2012: Redes de Computadoras 5T1 - CO

Contenido Clasificacin Criptologa Moderna Criptologa Simtrica Criptologa por bloques (Blocks) Diseo de Feistel

Criptologa por flujo (Stream)

Criptologa Asimtrica DES (Data Encryption Standard) Triple DES RC2 RC4 RSA Rinjndael IDEA

Criptologa Moderna (Clasificacin)La criptografa moderna se puede clasificar en dos grandes grupos: la criptografa de llave secreta o simtrica y la criptografa de llave pblica o asimtrica.

Criptologa SimtricaLa criptografa simtrica o de llave secreta es aquella que utiliza algn mtodo matemtico llamado sistema de cifrado para cifrar y descifrar un mensaje utilizando nicamente una llave secreta. Se puede observar en la siguiente figura que la lnea punteada es el eje de simetra: lo mismo que hay de un lado existe exactamente igual en el otro, esto ilustra el hecho del porqu se le da el nombre de criptografa simtrica.

Continuacin

Cifrados Modernos

Clave Secreta

Cifrado en Flujo Cifrado en Bloques

Clave Pblica

Criptologa Simtrica por BloquesEste tipo de criptografa esta basado en el diseo propuesto por Horst Feistel en los aos 70.

Diseo de FeistelUn bloque de tamao N bits comnmente N=64 128 bits se divide en dos bloques de tamao N/2, A y B. A partir de aqu comienza el proceso de cifrado y consiste en aplicar una funcin unidireccional (muy difcil de invertir) a un bloque B y a una sub llave k1 generada a partir de la llave secreta. Se mezclan el bloque A con el resultado de la funcin mediante un XOR. Se permutan los bloques y se repite el proceso n veces. Finalmente se unen los dos bloques en el bloque original. Como se ilustra en la siguiente figura:

Continuacin

A lo largo de la historia de la criptografa moderna se han usado diversos mtodos de cifrado, siendo el ms usado el Estndar de Cifrado de Datos por sus siglas en ingles DES (Data Encryption Standard). El problema con este estndar es el tamao de su llave: 56 bits, para tratar de corregir esto se propuso el triple DES que nicamente aplica 3 veces el DES, cifrando, descifrando y cifrando con llaves diferentes de tamao 56 bits, incrementando el tamao de la llave hasta 168 bits.

Criptografa Simtrica de FlujoEste tipo de criptografa se basa en hacer un cifrado bit a bit, esto se logra usando la operacin XOR, representada con . Se utiliza un algoritmo determinstico que genera una secuencia pseudoaletoria de bits que junto con los bits del mensaje se van cifrando utilizando a operacin XOR. Algunos ejemplos de este tipo de criptografa son RC4 (usado en redes inalmbricas), A5 (usado en telefona celular).

Criptologa AsimtricaLa siguiente figura, ilustra la idea de criptografa de llave pblica, se puede ver claramente que no existe simetra en ella, ya que de un lado de la figura se cifra o descifra con una llave pblica y en el otro lado con una privada. De este hecho es de donde la criptografa asimtrica debe su nombre. Algunos ejemplos de este tipo de criptografa son RSA, El Gamal y Curvas Elpticas.

Continuacin Es importante destacar que para este tipo de criptografa lo que se cifra con una llave se puede descifrar con la otra llave. Es decir, yo puedo cifrar con la llave pblica y descifrar con la privada y viceversa. Esto es de gran ayuda ya que el nmero de llaves que debo de poseer se reduce considerablemente. Si alguien quisiera enviar un mensaje cifrado a n personas, necesitara saber n llaves pblicas una de cada persona, pero si n personas le quiere enviar un mensaje cifrado slo es necesario que los dems conozcan su llave pblica. As, slo tengo que preocuparme de que la llave pblica sea de la persona que dice ser. Este es el problema de la criptografa asimtrica, la autenticidad de las llaves pblicas.

Continuacin

Solucin al problema de intercambio de llaves secretas usando criptografa asimtrica: Se supone que alguien va a enviar la llave secreta k a una persona para que puedan cifrar entre ellos mensajes. Lo que se hace es que se toma la llave pblica de la persona a la que se le va a enviar el mensaje y se cifra con un sistema asimtrico la llave secreta, esto implica que slo la persona poseedora de la llave privada pueda descifrar lo que se est enviando y con ello tener la llave secreta, tal y como se muestra en la siguiente figura.

Continuacin

DES (Data Encryption Standard)

Es un algoritmo desarrollado originalmente por IBM a requerimiento del NBS (National Bureau of Standards, Oficina Nacional de Estandarizacin, en la actualidad denominado NIST, National Institute of Standards and Technology, Instituto Nacional de Estandarizacin y Tecnologa) de EE.UU. y posteriormente modificado y adoptado por el gobierno de EE.UU. en 1977 como estndar de cifrado de todas las informaciones sensibles no clasificadas. Posteriormente, en 1980, el NIST estandariz los diferentes modos de operacin del algoritmo. Es el ms estudiado y utilizado de los algoritmos de clave simtrica.

Continuacin El nombre original del algoritmo, tal como lo denomin IBM, era Lucifer. Trabajaba sobre bloques de 128 bits, teniendo la clave igual longitud. Se basaba en operaciones lgicas booleanas y poda ser implementado fcilmente, tanto en software como en hardware.

Tras las modificaciones introducidas por el NBS, consistentes bsicamente en la reduccin de la longitud de clave y de los bloques, DES cifra bloques de 64 bits, mediante permutacin y sustitucin y usando una clave de 64 bits, de los que 8 son de paridad (esto es, en realidad usa 56 bits), produciendo as 64 bits cifrados.

Continuacin DES tiene 19 etapas diferentes. La primera etapa es una transposicin, una permutacin inicial (IP) del texto plano de 64 bits, independientemente de la clave. La ltima etapa es otra transposicin (IP-1), exactamente la inversa de la primera. La penltima etapa intercambia los 32 bits de la izquierda y los 32 de la derecha. Las 16 etapas restantes son una Red de Feistel de 16 rondas.

Continuacin En cada una de las 16 iteraciones se emplea un valor, Ki, obtenido a partir de la clave de 56 bits y distinto en cada iteracin. Se realiza una permutacin inicial (PC-1) sobre la clave, y luego la clave obtenida se divide en dos mitades de 28 bits, cada una de las cuales se rota a izquierda un nmero de bits determinado que no siempre es el mismo. Ki se

Continuacin

deriva de la eleccin permutada (PC-2) de 48 de los 56 bits de estas dos mitades rotadas. La funcin f de la red de Feistel se compone de una permutacin de expansin (E), que convierte el bloque correspondiente de 32 bits en uno de 48. Despus realiza una or-exclusiva con el valor Ki, tambin de 48 bits, aplica ocho S-Cajas de 6*4 bits, y efecta una nueva permutacin (P).

Descripcin Paso a Paso del algoritmo DES (Ejemplo)El ejemplo que desarrollaremos ser el siguiente:

Dejemos que M sea el texto plano M = 0123456789ABCDEF, donde M esta en base hexadecimal (Base 16). Re escribiendo M, conseguiramos el bloque de 64 bits, necesario para DES:

El primer bit de M es 0. El ultimo bit es 1. Leemos esta informacin de izquierda a derecha.

Continuacin DES opera en bloques de 64 bits usando una llave de 56 bits. La llave actualmente es almacenada con una longitud de 64 bits, pero cada 8 bit en la llave no es utilizado. Sin embargo, nosotros numeraremos los bits del 1 al 64, de izquierda a derecha, en las siguientes clculos. Pero, a como usted llegar a ver, el 8 bit se eliminar cuando creemos las sub claves. Continuando con el ejemplo: Dejemos K ser la clave Hexadecimal K = 133457799BBCDFF1. Esta llave debemos transformarla al sistema numrico binario y debe ser agrupado en grupos de 8 bits, de los cuales el 8 ser eliminado.

Continuacin Paso 1: Crear 16 sub llaves, cada una de 48 Bits (Longitud)La clave de 64 bits es permutada de acuerdo a la siguiente tabla, IP-1.

Continuacin Como la primera entrada de la tabla es 57, eso significa que el bit 57 de la clave original K se convertir en el primer bit de la clave permutada k+. El bit 49 de la clave original se convertir en el segundo bit de la llave permutada. El 4 bit de la llave original ser el ltimo bit de la llave permutada. Nota: Solo 56 bits de la llave original aparecern en la llave permutada. Ejemplo: Desde la clave original de 64 bits:

Conseguiremos la permutacin de 56 bits:

Continuacin El siguiente paso ser dividir la clave en 2 mitades de izquierda a derecha, C0 y D0, donde cada mitad tiene 28 bits.

Ejemplo: De la llave permutada K+, conseguimos:

Con C0 y D0 definida, ahora crearemos los 16 bloques Cn y Dn, 1