Está en la página 1de 15

Unidad: Modelamiento Matemtico

Estudiantes: Francisco Esteban Carrillo Yaguana Juana Catalina Malacatus Morocho Nataly del Cisne Ochoa Trelles

Nadia Corina Proao Fernndez

Docente: Ing. Luis Antonio Chamba Eras LOJA -ECUADOR 2010-2011

1. INTRODUCCIN

Todo mtodo criptogrfico se ha asociado mucho a pocas en las que el envo de mensajes ocultos era muy importante, como sucede en las guerras. Si alguien del bando enemigo lograba interceptar un mensaje, las consecuencias podran ser desastrosas. Durante el imperio romano, por ejemplo, el problema tena solucin (un cambio de estrategia), porque era muy fcil detectar que un mensaje haba sido interceptado. En nuestros das, esta situacin cambia bastante, porque es posible interceptar un mensaje sin que el emisor ni el receptor se den cuenta. Por esta razn, es importante proteger mediante medios criptogrficos la informacin privada, sobre todo si se la desea enviar por la red. Para cifrar un texto se debe aplicar un algoritmo, es decir, un procedimiento para cifrar. Por ejemplo, vamos a cifrar el texto La accin ser maana en la plaza para lo cual se va a, sumar 2 posiciones a todas las letras:
texto original: "La accin ser maana en la plaza" texto cifrado: "Nc ceekqo ugtc cpcoc go nc rncbc"

De esta manera se puede cifrar y descifrar cualquier texto de forma muy sencilla. Con este ejemplo hemos podido ver los siguientes elementos dentro del cifrado: 1. El algoritmo empleado, en este caso sumar. 2. La clave utilizada, en este caso 2. Si la clave fuese 5, habra que sumar 5 para cifrar y restar 5 para descifrar, por ejemplo. 3. El texto original. 4. El texto cifrado.
texto original ---> algoritmo de cifrado ---> texto cifrado clave

Esto era empleado por Julio Csar para enviar mensajes cifrados. Tiene el problema de que en el otro lugar hacia donde se enviaba el mensaje, tambin necesitaban saber la clave con la que ha sido cifrado para poder descifrarlo. Esto se resolvi utilizando pergaminos enrollados sobre una vara de madera de diferente longitud. En funcin de esa longitud, el receptor del mensaje ya saba cul haba sido la clave empleada. Por ejemplo:
Longitud de la vara 10 cm 11 cm 12 cm 13 cm ... Clave 1 2 3 4

Este truco sirvi en su momento, pero es bastante peligroso, porque cualquiera que se diese cuenta de ello, podra descifrar todos los mensajes. Ah reside el problema fundamental de esta clase de algoritmos, necesitan que tanto el emisor del mensaje como el receptor conozcan la clave que se ha utilizado. Por esto mismo se los conoce como algoritmos simtricos o de secreto compartido (el secreto es la clave utilizada). La seguridad total no existe sin embargo podemos mejorar la seguridad de nuestros ordenadores, archivos y datos fcilmente, sin mucho esfuerzo y aplicando algn algoritmo simtrico o asimtrico. Para demostracin didctica se ha credo conveniente aplicar AES que es mucho ms seguro que su predecesor DES, adems es uno de los algoritmos ms populares usados en criptografa simtrica, fue adoptado como un estndar de cifrado por el gobierno de los Estados Unidos y fue anunciado como el mejor por el Instituto Nacional de Estndares y Tecnologa (NIST) como FIPS PUB 197 de los Estados Unidos (FIPS 197) el 26 de noviembre de 2001 despus de un proceso de estandarizacin que dur 5 aos, AES es rpido tanto en software como en hardware, es relativamente fcil de implementar, y requiere poca memoria. Todo lo antes mencionado despert nuestra curiosidad y nos motivo para llevar a cabo la implementacin del mismo

2. MARCO REFERENCIAL

CRIPTOSISTEMAS SIMTRICOS

Son aquellos donde existe una clave (secreta) que deben compartir emisor y receptor. Con la misma clave se cifra y se descifra, la seguridad reside en mantener la clave en secreto. ALGORITMOS DE CIFRADO SIMTRICO Dentro de estos algoritmos distinguimos dos tipos de algoritmos en funcin de la cantidad de datos de entrada que manejan a la vez: algoritmos de cifrado por bloques y algoritmos de cifrado de flujo. Cifrado por bloques Los algoritmos de cifrado por bloques toman bloques de tamao fijo del texto en claro y producen un bloque de tamao fijo de texto cifrado, generalmente del mismo tamao que la entrada. El tamao del bloque debe ser lo suficientemente grande como para evitar

ataques de texto cifrado. La asignacin de bloques de entrada a bloques de salida debe


ser uno a uno para hacer el proceso reversible y parecer aleatoria. Para la asignacin de bloques los algoritmos de cifrado simtrico realizan sustituciones y

permutaciones en el texto en claro hasta obtener el texto cifrado.

La sustitucin es el reemplazo de un valor de entrada por otro de los posibles valores de salida, en general, si usamos un tamao de bloque k, el bloque de entrada puede ser sustituido por cualquiera de los 2k bloques posibles. La permutacin es un tipo especial de sustitucin en el que los bits de un bloque de entrada son reordenados para producir el bloque cifrado, de este modo se preservan las estadsticas del bloque de entrada (el nmero de unos y ceros). Los algoritmos de cifrado por bloques iterativos funcionan aplicando en sucesivas rotaciones una transformacin (funcin de rotacin) a un bloque de texto en claro. La misma funcin es aplicada a los datos usando una subclave obtenida de la clave secreta proporcionada por el usuario. El nmero de rotaciones en un algoritmo de cifrado por bloques iterativo depende del nivel de seguridad deseado. Un tipo especial de algoritmos de cifrado por bloques iterativos son los denominados

algoritmos de cifrado de Feistel. En estos algoritmos el texto cifrado se obtiene del


texto en claro aplicando repetidamente la misma transformacin o funcin de rotacin. El funcionamiento es como sigue: el texto a encriptar se divide en dos mitades, la funcin de rotacin se aplica a una mitad usando una subclave y la salida de la funcin se emplea para hacer una o-exclusiva con la otra mitad, entonces se intercambian las mitades y se repite la misma operacin hasta la ltima rotacin, en la que no hay intercambio. Una caracterstica interesante de estos algoritmos es que la encriptacin y desencriptacin son idnticas estructuralmente, aunque las subclaves empleadas en la encriptacin se toman en orden inverso en la desencriptacin. Para aplicar un algoritmo por bloques es necesario descomponer el texto de entrada en bloques de tamao fijo. Esto se puede hacer de varias maneras: 1. ECB (Electronic Code Book). Se parte el mensaje en bloques de k bits, rellenando el ultimo si es necesario y se encripta cada bloque. Para desencriptar se trocea el texto cifrado en bloques de k bits y se desencripta cada bloque. Este sistema es vulnerable a ataques ya que dos bloques idnticos de la entrada generan el mismo bloque de salida. En la prctica no se utiliza. 2. CBC (Cipher Block Chaining). Este mtodo soluciona el problema del ECB haciendo una o-exclusiva de cada bloque de texto en claro con el bloque anterior cifrado antes de encriptar. Para el primer bloque se usa un vector de inicializacin. Este es uno de los esquemas ms empleados en la prctica. 3. OFB (Output Feedback Mode). Este sistema emplea la clave de la sesin para crear un bloque pseudoaleatorio grande (pad) que se aplica en o-exclusiva al texto en claro para generar el texto cifrado. Este mtodo tiene la ventaja de que el pad puede ser generado independientemente del texto en claro, lo que incrementa la velocidad de encriptacin y desencriptacin.

4. CFB (Cipher Feedback Mode). Variante del mtodo anterior para mensajes muy largos. Cifrado de flujo de datos Generalmente operan sobre 1 bit (o sobre bytes o palabras de 16 32 bits) de los datos de entrada cada vez. El algoritmo genera una secuencia ( secuencia cifrante o keystream en ingls) de bits que se emplea como clave. La encriptacin se realiza combinando la secuencia cifrante con el texto en claro. El paradigma de este tipo de algoritmos es el One Time Pad, que funciona aplicando una XOR (o-exclusiva) a cada bit de la entrada junto con otro generado aleatoriamente para obtener cada bit de la salida. La secuencia de bits aleatorios es la clave de la sesin, secuencia de cifrado o el pad, que es del mismo tamao que la entrada y la salida. Para recuperar el texto original el texto cifrado debe pasar por el mismo proceso empleado para encriptar usando el mismo pad. Este algoritmo es conocido por ser el nico incondicionalmente seguro, aunque, como las claves son del mismo tamao que la entrada, es de poca utilidad prctica. Los algoritmos de este tipo son intentos de conseguir algoritmos prcticos que se aproximen al funcionamiento del one time pad. Dentro de los algoritmos de cifrado simtrico tenemos los siguientes: DES Triple-DES AES RC2 RC4 RC5 IDEA SAFER Blowfish

ADVANCED ENCRYPTION STANDARD (AES) Tambin conocido como Rijndael, es un esquema de cifrado por bloques adoptado como un estndar de cifrado por el gobierno de los Estados Unidos. Se espera que sea usado en el mundo entero y analizado exhaustivamente, como fue el caso de su predecesor, el Data Encryption Standard (DES). El AES fue anunciado por el Instituto Nacional de Estndares y Tecnologa (NIST) como FIPS PUB 197 de los Estados Unidos (FIPS 197) el 26 de noviembre de 2001 despus de un proceso de estandarizacin que dur 5 aos (vase proceso de Advanced Encryption Standard para ms detalles). Se transform en un estndar efectivo el 26 de mayo de 2002. Desde 2006, el AES es uno de los algoritmos ms populares usados en criptografa simtrica.

El cifrador fue desarrollado por dos criptlogos belgas, Joan Daemen y Vincent Rijmen, ambos estudiantes de la Katholieke Universiteit Leuven, y enviado al proceso de seleccin AES bajo el nombre "Rijndael", un portmanteau empaquetado de los nombres de los inventores. Rijndael puede ser pronunciado "Raindael", (IPA: [?aindael]). Rijndael fue un refinamiento de un diseo anterior de Daemen y Rijmen, Square; Square fue a su vez un desarrollo de Shark. Al contrario que su predecesor DES, Rijndael es una red de sustitucin-permutacin, no una red de Feistel. AES es rpido tanto en software como en hardware, es relativamente fcil de implementar, y requiere poca memoria. Como nuevo estndar de cifrado, se est utilizando actualmente a gran escala. Descripcin del cifrado Estrictamente hablando, AES no es precisamente Rijndael (aunque en la prctica se los llama de manera indistinta) ya que Rijndael permite un mayor rango de tamao de bloques y longitud de claves; AES tiene un tamao de bloque fijo de 128 bits y tamaos de llave de 128, 192 256 bits, mientras que Rijndael puede ser especificado por una clave que sea mltiplo de 32 bits, con un mnimo de 128 bits y un mximo de 256 bits. La clave se expande usando el esquema de claves de Rijndael. La mayora de los clculos del algoritmo AES se hacen en un campo finito determinado. AES opera en una matriz de 44 bytes, llamada state (algunas versiones de Rijndael con un tamao de bloque mayor tienen columnas adicionales en el state). Para el cifrado, cada ronda de la aplicacin del algoritmo AES (excepto la ltima) consiste en cuatro pasos: 1. SubBytes en este paso se realiza una sustitucin no lineal donde cada byte es reemplazado con otro de acuerdo a una tabla de bsqueda. 2. ShiftRows en este paso se realiza una transposicin donde cada fila del state es rotada de manera cclica un nmero determinado de veces. 3. MixColumns operacin de mezclado que opera en las columnas del state, combinando los cuatro bytes en cada columna usando una transformacin lineal. 4. AddRoundKey cada byte del state es combinado con la clave round; cada clave round se deriva de la clave de cifrado usando una iteracin de la clave. La ronda final reemplaza la fase MixColumns por otra instancia de AddRoundKey.

Etapa SubBytes- Substitucin de bits En la etapa SubBytes, cada byte en la matriz es actualizado usando la caja-S de Rijndael de 8 bits. Esta operacin provee la no linealidad en el cifrado. La caja-S utilizada proviene de la funcin inversa alrededor del GF(28), conocido por tener grandes propiedades de no linealidad.

Para evitar ataques basados en simples propiedades algebraicas, la caja-S se construye por la combinacin de la funcin inversa con una transformacin afn inversible. La cajaS tambin se elige para evitar puntos estables (y es por lo tanto un derangement), y tambin cualesquiera puntos estables opuestos.

En la fase de SubBytes, cada byte en el state es reemplazado con su entrada en una tabla de bsqueda fija de 8 bits, S; bij = S(aij).

Etapa ShiftRows-Desplazar filas El paso ShiftRows opera en las filas del state; rota de manera cclica los bytes en cada fila por un determinado offset. En AES, la primera fila queda en la misma posicin. Cada byte de la segunda fila es rotado una posicin a la izquierda. De manera similar, la tercera y cuarta filas son rotadas por los offsets de dos y tres respectivamente. De esta manera, cada columna del state resultante del paso ShiftRows est compuesta por bytes de cada columna del state inicial. (variantes de Rijndael con mayor tamao de bloque tienen offsets distintos).

En el paso ShiftRows, los bytes en cada fila del state son rotados de manera cclica hacia la izquierda. El nmero de lugares que cada byte es rotado difiere para cada fila. Etapa MixColumns- Mezclar columnas En el paso MixColumns, los cuatro bytes de cada columna del state se combinan usando una transformacin lineal inversible. La funcin MixColumns toma cuatro bytes como entrada y devuelve cuatro bytes, donde cada byte de entrada influye todas las salidas de cuatro bytes. Junto con ShiftRows, MixColumns implica difusin en el cifrado.

Cada columna se trata como un polinomio GF(28) y luego se multiplica el mdulo x4 + 1 con un polinomio fijo c(x). El paso MixColumns puede verse como una multiplicacin matricial en el campo finito de Rijndael.

En el paso MixColumns, cada columna del state es multiplicada por un polinomio constante c(x). Etapa AddRoundKey- Clculo de las subclaves En el paso AddRoundKey, la subclave se combina con el state. En cada ronda se obtiene una subclave de la clave principal, usando la iteracin de la clave; cada subclave es del mismo tamao del state. La subclave se agrega combinando cada byte del state con el correspondiente byte de la subclave usando XOR.

En el paso AddRoundKey, cada byte del state se combina con un byte de la subclave usando la operacin XOR .

Optimizacin del cifrado En sistemas de 32 bits o de mayor tamao de palabra, es posible acelerar la ejecucin de este algoritmo mediante la conversin de las transformaciones SubBytes, ShiftRows y MixColumn en tablas.

Se tienen cuatro tablas de 256 entradas de 32 bits que utilizan un total de 4 kilobytes (4096 bytes) de memoria, un Kb cada tabla. De esta manera, una ronda del algoritmo consiste en 16 bsquedas en una tabla seguida de 16 operaciones XOR de 32 bits en el paso AddRoundKey. Si el tamao de 4 kilobytes de la tabla es demasiado grande para una plataforma determinada, la operacin de bsqueda en la tabla se puede realizar mediante una sola tabla de 256 entradas de 32 bits mediante el uso de rotaciones circulares. Seguridad Hasta Mayo del 2009, no se ha encontrado ningn ataque exitoso contra el AES. La Agencia de Seguridad Nacional de los Estados Unidos (NSA) revis todos los finalistas candidatos al AES, incluyendo el Rijndael, y declar que todos ellos eran suficientemente seguros para su empleo en informacin no clasificada del gobierno de los Estados Unidos. En junio de 2003, el gobierno de los Estados Unidos anunci que el AES poda ser usado para informacin clasificada. Este hecho marca la primera vez que el pblico ha tenido acceso a un cifrador aprobado por la NSA para informacin super secreta (TOP SECRET). Es interesante notar que muchos productos pblicos usan llaves de 128 bits por defecto; es posible que la NSA sospeche de una debilidad fundamental en llaves de este tamao, o simplemente prefieren tener un margen de seguridad para documentos super secretos (que deberan conservar la seguridad durante dcadas en el futuro). El mtodo ms comn de ataque hacia un cifrador por bloques consiste en intentar varios ataques sobre versiones del cifrador con un nmero menor de rondas. El AES tiene 10 rondas para llaves de 128 bits, 12 rondas para llaves de 192 bits, y 14 rondas para llaves de 256 bits. Hasta 2005, los mejores ataques conocidos son sobre versiones reducidas a 7 rondas para llaves de 128 bits, 8 rondas para llaves de 192 bits, y 9 rondas para llaves de 256 bits (Ferguson et al, 2000). Algunos criptgrafos muestran preocupacin sobre la seguridad del AES. Ellos sienten que el margen entre el nmero de rondas especificado en el cifrador y los mejores ataques conocidos es muy pequeo. El riesgo es que se puede encontrar alguna manera de mejorar los ataques y de ser as, el cifrado podra ser roto. En el contexto criptogrfico se considera "roto" un algoritmo si existe algn ataque ms rpido que una bsqueda exhaustiva (ataque por fuerza bruta). De modo que un ataque contra el AES de llave de 128 bits que requiera 'slo' 2120 operaciones sera considerado como un ataque que "rompe" el AES aun tomando en cuenta que por ahora sera un ataque irrealizable. Hasta el momento, tales preocupaciones pueden ser ignoradas. El ataque de fuerza bruta ms largamente publicitado y conocido ha sido contra una clave de 64 bits RC5 por distributed.net.

3. DESCRIPCIN DE LA SOLUCIN

Pseudocdigo AES Expansin de la clave usando el esquema de claves de Rijndael. Etapa inicial: 1. AddRoundKey Rondas: 1. SubBytes en este paso se realiza una sustitucin no lineal donde cada byte es reemplazado con otro de acuerdo a una tabla de bsqueda. 2. ShiftRows en este paso se realiza una transposicin donde cada fila del state es rotada de manera cclica un nmero determinado de veces. 3. MixColumns operacin de mezclado que opera en las columnas del state, combinando los cuatro bytes en cada columna usando una transformacin lineal. 4. AddRoundKey cada byte del state es combinado con la clave round; cada clave round se deriva de la clave de cifrado usando una iteracin de la clave. Etapa final: 1. SubBytes 2. ShiftRows 3. AddRoundKey

Prototipado: Al iniciar el programa se presenta la siguiente ventana:

Fig. 1.

Luego aparece la ventana ( Fig. 2. ) Para encriptar el texto primero se lo escribe como en el siguiente ejemplo:

Fig. 2.

Luego se escribe la contrasea de 16 caracteres como mnimo para que sea bien segura, se presiona el botn encriptar y en la parte inferor aparecer el texto cifrado:

Fig. 3.

Para descifrar se escribe el texto cifrado como en el siguiente ejemplo:

Fig. 4.

Luego se escribe la contrasea se presiona el botn desencriptar y en la parte inferor aparecer el texto descifrado:

Fig. 5.

Si se selecciona el men Ayuda aparecer Acerca de.., donde se seala el nombre de los desarrolladores.

Fig. 6.

4. HERRAMIENTAS INFORMTICAS Se utilizo el lenguaje de programacin Java y el IDE NetBeans.

5. CONCLUSIONES

La forma segura de mantener la informacin es mediante el cifrado, pero se debe escoger el algoritmo adecuado ya que es de nuestro conocimiento que algunas personas pueden infringir los mismos (hackers), inclusive existen programas para romper la seguridad y ver la informacin. El algoritmo AES es uno de los ms seguros ya que hasta Mayo del 2009, no se ha logrado quebrantarlo. Para trabajos futuros trabajos, se recomienda implementarlo en un lenguaje diferente.

6. WEBGRAFA

GARAIZAR Pablo, Manual de supervivencia en Internet (I): Cifrar el correo electrnico, [en lnea], vase en: http://blog.txipinet.com/2006/08/08/16manual-de-supervivencia-en-internet-i-cifrar-el-correo-electronico/ [Fecha de consulta: 2010-12-16] ANF AC , Algoritmos de Cifrado Simtrico, [en lnea], vase en: http://www.anf.es/anf/doc/sime.doc, [Fecha de consulta: 2010-12-16] Evolsystem Community Tecnology Preview, AES Rijndael [en lnea], vase en: http://aes.evolsystem.cl/default.aspx, [Fecha de consulta: 2010-12-16]

También podría gustarte