2.2 Oil Analysis
2.2.1 Sampling
El protocolo de autenticación que se desarrollará utilizará el cifrado de llave secreta. Este cifrado es el de implementación más eficiente para la mayoría de las computadoras actuales, ya que las operaciones, permutaciones en su mayoría, que se realizan para cifrar la información se pueden llevar a cabo en pocos ciclos del microprocesador en comparación con el cifrado de llave pública en donde se utilizan operaciones aritméticas complejas, como factorización de números primos, que ocupan varios ciclos de procesador para llevarse a cabo.
De igual manera, el número de bits de los bloques de información y de las llaves que se ocupan en los algoritmos de cifrado son distintos dependiendo del tipo de algoritmo que se implementa. El número de bits es de 128 a 256, comúnmente, en los algoritmos de llave secreta tanto para los bloques de información como para la llave utilizada, mientras que en los algoritmos de llave pública el tamaño de la llave es de 1024 a 2048 para la llave utilizada.
El protocolo de autenticación propuesto utilizará bloques múltiplos de 128 ya que la información que se transmite no es mucha. Si se utilizaran los bloques de 1024 bits, como es el caso de la criptografía de llave pública, habrá un desperdicio de ancho de banda que no es recomendable ya que no se conoce el estado de las líneas de comunicaciones en donde serán ejecutados los programas cliente.
2.5.1 ALGORITMOS DE CIFRADO ACTUALES.
Entre los algoritmos simétricos más comunes actualmente se encuentran Blowfish [32], IDEA8 [33] y Rijndael (AES9) [20].
2.5.1.1 Blowfish
Es un cifrado simétrico desarrollado por Bruce Schneier, que tiene las siguientes características [32].
• Rapidez. Cifra datos en procesadores de 32 bits a una velocidad de 18 ciclos de reloj por
byte.
• Compacto. Puede ser ejecutado en un entorno con muy poca memoria (5K).
• Simple. Tiene una estructura simple y fácil de implementar lo que facilita la tarea de
determinar la solidez del algoritmo.
• Seguridad variable. El tamaño de la llave es variable con un tamaño máximo de 448 bits.
Esto permite que se pueda realizar una implementación del algoritmo en donde se complementen la velocidad y la seguridad en la transmisión.
Blowfish fue desarrollado para ser el sustituto de DES, el cuál se ha demostrado que puede ser descifrado aunque se necesita una máquina muy potente.
2.5.1.2 IDEA
IDEA es un algoritmo simétrico desarrollado por Xuejia y James Massey del Swiss Federal Institute of Technology [33]. Este es otro algoritmo que ha sido propuesto para reemplazar a DES como estándar, es una de las propuestas más viables que existen junto con Blowfish.
El diseño del algoritmo consiste de los siguientes elementos.
• Tamaño del bloque. El bloque de datos debe ser lo suficientemente grande para evitar el
análisis estadístico (esto es, evitar que un intruso tenga la ventaja de que algunos bloques aparezcan más que otros). El uso de un bloque de 64 bits se considera lo suficientemente robusto para realizar el cifrado y evitar dificultar el criptoanálisis.
• Tamaño de la llave. Debe ser lo suficientemente largo para prevenir una búsqueda
exhaustiva de la llave, como ocurre en el ataque de fuerza bruta. Por lo que se sugiere un tamaño de llave de 128 bits.
• Complicación. El texto cifrado debe depender del texto sin cifrar y la llave en una manera
compleja. El objetivo es complicar la manera en que el texto cifrado es obtenido del texto sin cifrar sin importar la llave que se este utilizando, esto es, que no se pueda hacer un
8 Internacional Data Encryption Algorithm 9 Advanced Encryption Standard
análisis estadístico de cómo es obtenido el texto cifrado aplicando diferentes llaves al texto sin cifrar.
• Difusión. Cada uno de los bits en el texto sin cifrar debe de influir en cada bit del texto
cifrado. El cambio de un bit en el texto en claro debe difundirse en varios bits en el texto cifrado, de esta manera oculta la estructura estadística del texto plano.
Este algoritmo ha tenido mucha aceptación debido a la facilidad de implementación y que no está sujeto a las leyes de exportación de EUA. El programa más conocido en el que se encuentra es en PGP (Pretty Good Privacy), programa utilizado para cifrar la información que se intercambia sin necesidad de un servidor central.
2.5.1.3 Rijndael
Es un algoritmo criptográfico desarrollado por Joan Daemen y Vicent Rijmen en el año 1999 [20]. Fue unos de los algoritmos propuestos y el que resultó ganador para ser el nuevo estándar de cifrado en sustitución del algoritmo DES que sería usado por la agencia norteamericana NIST (National Institute of Standard and Technology). El algoritmo al ser aprobado por la NIST se le llamó AES (Advanced Encryption Standard) El algoritmo cuenta con el siguiente diseño para su realización:
• Tamaño de la llave. La llave puede ser definida en bloques de 128, 192 y 256 bits. Siendo
utilizado cualquiera de los tamaños como estándar AES.
• Tamaño del bloque de la información. El tamaño del bloque en el que se dividirá la
información es de 128, 192 y 256 bits. La definición original del algoritmo hecho por Daemen y Rijmen indica que se puede usar cualquier tamaño del bloque de información con cualquier tamaño del bloque de la llave, pero la implementación propuesta por la agencia NIST indica que se debe de usar el bloque de 128 bits para la información que se cifrará.
• Otras consideraciones. El algoritmo fue diseñado para ser rápido y con un programa
compilado que fue pequeño para poder ser almacenado en los ambientes donde operará el algoritmo criptográfico, como en las tarjetas inteligentes.
El algoritmo fue diseñado para trabajar en una amplia variedad de procesadores, tanto para PC como otros dispositivos, pero enfocado principalmente a los procesadores de 8 bits como los usados en las tarjetas inteligentes y en los procesadores de 32 bits que se utilizan en las PC’s.
2.5.2 ELECCIÓN DEL ALGORITMO DE CIFRADO.
El algoritmo que se utilizará para cifrar parte de la información que se transmitirá durante la ejecución de protocolo de autenticación es el Rijndael. La elección de este algoritmo se basa en que es un estándar oficial propuesto por la NIST por lo que se puede suponer con la suficiente confiabilidad en que es lo suficientemente seguro y rápido para ser ejecutado en cualquier computadora en donde pueda ser implementado el protocolo de autenticación que se desarrollará
en esta tesis. Las validaciones de seguridad realizadas al protocolo por NIST se pueden verificar en el artículo Hardware performance of the AES finalists – survey and analisys of results [34], de esta manera cumplimos uno de los objetivos planteados al principio de la tesis: “2.2.2.3 Seleccionar el algoritmo criptográfico a utilizar.”
3 ESTADO DEL ARTE
Iniciaremos este capítulo revisando algunas técnicas y algoritmos utilizados actualmente para realizar la autenticación de usuarios en una red de computadoras, en donde los usuarios que se autentican pueden estar ubicados dentro de la misma red de computadoras o en redes de computadoras distintas.