Death Master Criptosistemas Informaticos User Manual

Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
presenta...
Criptosistemas
Informáticos
Autor:
Death Master
Death Master, 2004 (GPL) Página 1
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Índice de contenidos
Introducción.............................................................................................................................................4
Conceptos básicos..............................................................................................................................5
Criptología.....................................................................................................................................5
Texto en claro y criptogramas.................................................................................................5
Flujo de información...................................................................................................................6
Criptosistemas.............................................................................................................................6
Algoritmo criptográfico...............................................................................................................7
Clave criptográfica......................................................................................................................7
Longitud de clave........................................................................................................................8
Algoritmos simétricos......................................................................................................................9
DES.................................................................................................................................................9
Triple-DES.....................................................................................................................................9
AES (Rijndael)............................................................................................................................10
IDEA..............................................................................................................................................11
RC6...............................................................................................................................................11
Twofish.........................................................................................................................................12
MARS............................................................................................................................................12
CAST-256....................................................................................................................................12
Algoritmos hash..................................................................................................................................13
MD5...............................................................................................................................................13
SHA-1...........................................................................................................................................14
RIPEMD-160..............................................................................................................................14
Algoritmos asimétricos..................................................................................................................15
RSA...............................................................................................................................................16
DH/DSS........................................................................................................................................18
RW.................................................................................................................................................20
Otros sistemas asimétricos....................................................................................................21
Death Master, 2004 (GPL) Página 2
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
El sistema PGP.....................................................................................................................................22
El anillo de claves.....................................................................................................................24
Generar un par de claves.......................................................................................................25
Cambiar el passphrase...........................................................................................................26
Consultar el fingerprint............................................................................................................26
Importar una clave....................................................................................................................27
Exportar una clave pública.....................................................................................................27
Exportar una clave privada....................................................................................................28
Exportar una clave pública al Servidor de Claves..........................................................28
Buscar una clave en el Servidor de Claves......................................................................29
Importar una clave del Servidor de Claves.......................................................................29
Firmar una clave pública (firma exportable).....................................................................30
Firmar una clave pública (firma NO exportable)..............................................................31
Establecer el grado de confianza en el usuario..............................................................32
Borrar una clave........................................................................................................................32
Encriptación con el sistema openPGP...............................................................................33
Desencriptación con el sistema openPGP........................................................................35
Firma MIME/PGP con el sistema openPGP.....................................................................36
Firma ASCII con el sistema openPGP...............................................................................36
Verificación de firmas con el sistema openPGP.............................................................37
Otras funciones del sistema openPGP..............................................................................37
Seguridad en el sistema PGP....................................................................................................38
Ataques a la algoritmia............................................................................................................38
Ataques al software criptográfico.........................................................................................39
Integridad del sistema.............................................................................................................39
Información residual.................................................................................................................40
Medios no convencionales.....................................................................................................41
Distribución de este documento.............................................................................................42
Licencia......................................................................................................................................................43
Death Master, 2004 (GPL) Página 3
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Introducción
-¿Cuánto tiempo quieres que sean secretos esos mensajes? -le preguntó Randy en el último mensaje antes de abandonar San Francisco-. ¿Cinco años? ¿Diez años? ¿Veinticinco años?
Después de llegar al hotel esa tarde, Randy descifró y leyó la respuesta de Avi. Todavía la tiene colgada frente a los ojos, como la imagen remanente de un flash.
Quiero que sigan siendo secretos mientras los hombres sean capaces del mal.
Neal Stephenson, “Criptonomicón”
Desde los tiempos del Antiguo Egipto hasta hoy en día ha pasado mucho tiempo, pero hay algo que no ha cambiado: el anhelo del ser humano por esconder sus secretos. Criptografía.
Personajes como Cleopatra o El César ya aprendieron a valorar la importancia de esconder de ojos indiscretos sus mensajes. La Scilata que los espartanos usaban allá por el año 400 a.C., o el propio código César (un simple desplazamiento alfabético) fueron los inicios. Con el desarrollo de las ciencias, y más concretamente de las matemáticas, la criptografía creció como un hermano menor, de la mano. En la Edad Media comenzó a adquirir una gran importancia cuando un siervo del Papa Clemente VII escribió el primer manual sobre el tema de la historia en el viejo continente. En 1466 León Battista Alberti ideó el sistema polialfabético basado en la rotación de unos rodillos. Un siglo más tarde, Giovan Battista Belaso inventó la clave criptográfica basada en una palabra o texto que se transcribía letra a letra sobre el mensaje original...
Pero si un punto ha marcado un antes y un después en la criptografía, ese ha sido la Segunda Guerra Mundial. Ya a principios del pasado siglo XX se idearon los denominados “traductores mecánicos”, basados en el concepto ideado en el siglo XV por Alberti de las ruedas concéntricas, y el sistema comenzó a tornarse sumamente complejo, ya no bastaba con analizarlo concienzudamente para comprenderlo. Y eso nos llevó a la Segunda Guerra Mundial, a los años 30 y 40 y a la máquina Enigma. Aunque mucha gente no lo sepa, la criptografía fue uno de los principales motivos para que los aliados ganaran la guerra, pues los alemanes creían el código de su máquina Enigma inviolable, y de hecho sí que era extremadamente complejo. Pero al igual que antes comentaba que el anhelo humano de esconder secretos es eterno, también lo es su anhelo por desenterrar secretos ajenos. Un equipo de criptoanalistas, matemáticos y demás mentes privilegiadas (entre ellos Alan Turing, uno de los padres de la informática) logró en 1942 lo que parecía imposible: romper el cifrado de Enigma. Para ello diseñaron las llamadas “bombas navales” (las bombes), aparatos de cálculo mecánicos que se encargaban de romper el cifrado alemán y entregar todos los secretos a los aliados. Igualmente, el Purple (versión japonesa de Enigma) fue roto en Midway por un equipo dirigido por el comandante Joseph J. Rochefort. El hecho de conocer los secretos, de tener todas las llaves (nunca mejor dicho), dio la vuelta a la guerra y cambió el curso de la historia. Y el mundo nunca volvió a ser el mismo.
El nacimiento de la informática y de los criptosistemas informático supuso un cambio radical del concepto de criptografía, y también del criptoanálisis. Los criptosistemas y los algoritmos aumentaron repentinamente y de forma descomunal su complejidad. Desde el DES hace ya mucho, hasta los criptosistemas asimétricos de curvas elípticas actuales todo ha cambiado también mucho, pero uno de esos cambios ha supuesto el segundo gran punto de inflexión de la criptografía: PGP. Hasta entonces el privilegio de guardar secretos estaba exclusivamente en manos de los gobiernos o los poderosos, y hoy día, seguramente gracias a PGP, es un derecho de cualquier ciudadano por humilde que sea (aunque en algunos países no sea así). Arriesgando mucho, Philip Zimmermann nos abrió las puertas a la criptografía, y a la libertad de comunicarnos de forma segura.
Por supuesto hay otros nombres que son capitales en el desarrollo de los criptosistemas informáticos, aparte de Zimmermann: Rivest, Shamir, Adleman, Diffie, Hellman, ElGamal, Rijmen, Daemen, Massey, Miller, Goldwaser... Todos ellos son padres de lo que hoy se llama criptografía. Gracias a todos.
Death Master
Death Master, 2004 (GPL) Página 4
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Conceptos básicos
Criptología
Criptografía, el arte de ocultar. La palabra tiene su origen en el griego: kryptos (oculto, escondido) y graphein (escribir). El arte de ocultar un mensaje mediante signos convencionales es muy antiguo, casi
tanto como la escritura. Y efectivamente siempre ha sido considerado un arte hasta hace relativamente poco, cuando Claude E. Shannon publicó en dos años dos documentos que supusieron la fundación de la moderna Teoría de la Información. Esos documentos son:
[SHA48] C. E. Shannon, “A mathematical theory of communication”, Bell System Tech. J. 27
(1948), 379-423 y 623-656.
[SHA49] C. E. Shannon, “Communication theory of secrecy systems”, Bell System Tech. J.
28 (1949), 656-715.
A partir de entonces, y unido al desarrollo de la computación moderna, el desarrollo de la criptografía alcanzó nuevos horizontes.
Antes de entrar en más detalles, hay que comprender que la criptografía se complementa con otra rama de estudio, el criptoanálisis, que estudia el camino inverso de la criptografía, dedicando sus esfuerzos a desentrañar los secretos que la criptografía se empeña en mantener ocultos. Ambas ramas conforman lo que entendemos como criptología.
criptografía
(Del gr. κρυπτóς, oculto, y -grafía).
1. f. Arte de escribir con clave secreta o de un modo enigmático.
* FUENTE: Real Academia Española (http://www.rae.es/)
criptoanálisis
(Del gr. κρυπτóς, oculto, y análisis).
1. m. Arte de descifrar criptogramas.
* FUENTE: Real Academia Española (http://www.rae.es/)
Texto en claro y criptogramas
En el ámbito criptográfico, entendemos por Texto en claro cualquier información que resulta legible y comprensible per se. Un texto en claro sería cualquier información antes de ser encriptada o después de ser desencriptada. Se considera que cualquier información es vulnerable si se encuentra en este estado.
Así mismo, denominamos criptograma a cualquier información que se encuentre convenientemente cifrada y no resulte legible ni comprensible más que para el destinatario legítimo de la misma.
El mecanismo de transformar un texto en claro en un criptograma lo denominamos encriptación o cifrado, y al proceso de recuperación de la información a partir de un criptograma lo denominamos desencriptación o descifrado.
Es muy importante no confundir estos términos con codificación o decodificación, pues codificación es el acto de representar la información de distintas formas, pero no necesariamente encriptadas. Por ejemplo, un número decimal puede codificarse como hexadecimal, y no por ello se convierte en un criptograma.
Death Master, 2004 (GPL) Página 5
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Flujo de información
En un criptosistema la información sigue un flujo siempre fijo:
Emisor
Texto en claro Criptograma Texto en claro
El emisor cifra el texto en claro para obtener el criptograma, que viaja por un canal ruidoso. El receptor descifra el criptograma y obtiene de nuevo el texto en claro que el emisor le envió. Durante toda la transmisión, el mensaje es ilegible.
Cifrado
CANAL RUIDOSO
Descifrado
Receptor
Criptosistemas
Antes de nada, es conveniente definir qué entendemos -matemáticamente- por criptosistema. Un criptosistema es una cuaterna de elementos formada por:
Un conjunto finito llamado alfabeto, que según unas normas sintácticas y semánticas, permite
emitir un mensaje en claro así como su correspondiente criptograma.
Un conjunto finito denominado espacio de claves formado por todas las posibles claves, tanto
de encriptación como de desencriptación, del criptosistema.
Una familia de aplicaciones del alfabeto en sí mismo que denominamos transformaciones de
cifrado.
Una familia de aplicaciones del alfabeto en sí mismo que denominamos transformaciones de
descifrado.
Ya sabemos qué es un criptosistema, pero ¿qué es un criptosistema informático? Un criptosistema informático se definiría por los siguientes cuatro elementos:
Un conjunto finito denominado alfabeto, que permite representar tanto el texto en claro como el
criptograma. A bajo nivel hablaríamos de bits, y a más alto nivel podríamos hablar de caracteres ASCII o MIME.
Un conjunto finito denominado espacio de claves. Estaría constituido por la totalidad de las
claves posibles del criptosistema.
Una familia de transformaciones aritmético-lógicas que denominamos transformaciones de
cifrado.
Una familia de transformaciones aritmético-lógicas que denominamos transformaciones de
descifrado.
Se trata simplemente de un criptosistema adaptado a las posibilidades y limitaciones de una computadora. El alfabeto o espacio de caracteres suele ser un estándar de representación de información (típicamente MIME o UNICODE por motivos de compatibilidad) y a más bajo nivel, por bits. Las transformaciones de cifrado y descifrado se ciñen a las normas de computación de los ordenadores actuales. En realidad, a efectos prácticos no existe mucha diferencia entre criptosistema matemático e informático, pues los matemáticos suelen diseñarse pensando en representaciones computacionales (pues solamente los ordenadores tienen la potencia necesaria para soportar los complejos algoritmos), y los informáticos se desarrollan siempre con una base matemática.
Death Master, 2004 (GPL) Página 6
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Algoritmo criptográfico
Comenzaremos definiendo el término algoritmo por si algún despistado no sabe qué es.
algoritmo
(Quizá del lat. tardío *algobarismus, y este abrev. del ár. clás. hisābu lgubār, cálculo mediante cifras arábigas).
1. m. Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema.
2. m. Método y notación en las distintas formas del cálculo.
* FUENTE: Real Academia Española (http://www.rae.es/)
Ahora veamos la definición de algoritmo que da un manual de programación algorítmica:
algoritmo
Descripción precisa de una sucesión de instrucciones que permiten llevar a cabo un trabajo
en un número finito de pasos.
* FUENTE: J. Castro, F. Cucker, X. Messeguer, A. Rublo, L. Solano, B. Valles, “Curso de Programación”, McGraw Hill. (1993), 2. ISBN 84-481-1959-2
Así pues, un algoritmo debe describir de forma unívoca y sin dar lugar a interpretaciones, la solución a un problema en un numero de pasos concreto. Ya podemos deducir qué es un algoritmo de encriptación: una descripción unívoca y concreta de cómo funciona un criptosistema determinado.
Clave criptográfica
El concepto de clave criptográfica surge con el propio concepto de la criptografía, y es el alma de un algoritmo de encriptación.
Obviamente un algoritmo tiene que poseer la capacidad de ser usado muchas veces sin que su mecanismo sea idéntico, pues de lo contrario cada persona debería tener su propio algoritmo de encriptación. Para implementar esta funcionalidad, se usan las claves. La clave es un dato que interviene de forma activa en la ejecución del algoritmo y lo personaliza.
Atendiendo únicamente al tipo de clave, podemos distinguir dos criptosistemas:
Sistemas de clave única o criptosistemas simétricos: Son aquellos en los que los procesos de cifrado y descifrado son llevados a cabo por una única clave.
Sistemas de clave pública o criptosistemas asimétricos: Son aquellos en los que los procesos de cifrado y descifrado son llevados a cabo por dos claves distintas y complementarias.
Ejemplo:
Si usamos un sistema de criptografía simétrica por sustitución, con una clave x=3...
A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C
De esta forma la frase:
all your base are belong to us
Pasaría a ser:
dññcarxucedvhcduhcehñrpjcwrcxv
Death Master, 2004 (GPL) Página 7
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Longitud de clave
A día de hoy, gracias a los ordenadores y los superordenadores (típicamente clusters) es posible realizar complejos cómputos matemáticos en un espacio de tiempo relativamente corto. Así pues, el campo del criptoanálisis está íntimamente ligado a esta potencia de cálculo.
Para que un algoritmo se considere seguro, su criptoanálisis sin la clave necesaria debe ser computacionalmente imposible de resolver. Consideramos “imposible” de resolver un sistema cuya vulneración necesite mayores recursos (económicos o en tiempo) que el beneficio reportado. Por ejemplo, ser consideraría seguro un criptosistema que requisiera miles de años para ser descifrado.
Para lograr semejante complejidad, se tratan números o conjuntos de números enormes. Es obvio que a mayor tamaño de estos números, existe un mayor número de claves posibles, y la posibilidad de éxito del criptoanálisis es menor.
Hoy en día este tamaño se denomina longitud de clave, y se mide típicamente en los bits que ocupa la clave. Así, una clave de un número de 1024 bits sería un número cualquiera desde el 0 hasta el 1,8 * 10^308 (2^1024). Al representar las longitudes de clave como potencias de dos, es importante darse cuenta de la relación existente entre las longitudes de clave. Una clave de 1025 bits es el doble de larga que una de 1024 (2^1025 frente a 2^1024).
A día de hoy se usan claves que oscilan entre los 512 bits y los 4096 bits de longitud.
Death Master, 2004 (GPL) Página 8
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Algoritmos simétricos
Son los criptosistemas más sencillos. Se trata de algoritmos que trabajan con una única clave de doble función (cifrado y descifrado). Dentro de los sistemas simétricos distinguimos dos tipos de algoritmos: los de cifrado de bloque, que dividen el texto en claro en bloques de tamaño prefijado (por ejemplo 64 bits) y los cifran bloque a bloque; y los de cifrado de flujo, que cifran bit a bit o byte a byte.
A continuación vemos algunos de los principales algoritmos criptográficos simétricos:
DES:
Data Encryption Standard (1976)
RFC's relacionados
#1829 - “The ESP DES-CBC Transform” - ftp://ftp.rfc-editor.org/in-notes/rfc1829.txt #2952 - “Telnet Encryption: DES 64 bit Cipher Feedback” - ftp://ftp.rfc-editor.org/in-notes/rfc2952.txt #2953 - “Telnet Encryption: DES 64 bit Output Feedback” - ftp://ftp.rfc-editor.org/in-notes/rfc2953.txt
Descripción
Algoritmo simétrico de cifrado en bloques de 64 bits basado en LUCIFER (criptosistema interno de IBM). Fue ideado por IBM y aceptado por el NIST (National Institute of Standars and Technology) en 1976. Se trata de un algoritmo de 64 bits de clave de los cuales 56 bits componen la clave de cifrado propiamente dicha, mientras los 8 restantes son de paridad y se usan para corrección de errores.
DES actualmente ya no es estándar criptográfico y fue roto en Enero de 1999 con un sistema de cómputo que analizaba 250.000.000.000 claves por segundo.
Su principal ventaja es la rapidez de cálculo y la sencillez de su implementación.
Sus principales defectos son la poca longitud de clave que maneja, unido a la incapacidad de manejar claves de longitud variable; y su debilidad en un uso continuado de la misma clave, pues si se disponen de suficientes criptogramas, mediante criptoanálisis diferencial es posible romper la clave en 2^47 iteraciones.
Triple-DES:
Triple - Data Encryption Standard (1995)
RFC's relacionados
#3217 - “Triple-DES and RC2 Key Wrapping” - ftp://ftp.rfc-editor.org/in-notes/rfc3217.txt #3537 - “Wrapping a Hashed Message Authentication Code (HMAC) key with a Triple-Data
Encryption Standard (DES) Key or an Advanced Encryption Standard (AES) Key” -
ftp://ftp.rfc-editor.org/in-notes/rfc3537.txt
Descripción
Dada la capacidad de cómputo actual y la relativa facilidad que supone romper el algoritmo DES, se desarrolló un sistema de triple aplicación al algoritmo DES, con tres claves diferentes para aplicar sucesivamente (en realidad se usa una clave externa dividida para aplicación intermedia dado que DES matemáticamente no es grupo, y su aplicación repetida ocasionaría un aumento efectivo de tamaño).
Mediante este sistema se obtiene un cifrado de 192 bits (168 efectivos y 24 de paridad) con tres claves que resulta mucho más complejo de vulnerar.
Death Master, 2004 (GPL) Página 9
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
AES (Rijndael):
Advanced Encryption Standard (2000)
RFC's relacionados
#3268 - “Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS)” -
ftp://ftp.rfc-editor.org/in-notes/rfc3268.txt
#3394 - “Advanced Encryption Standard (AES) Key Wrap Algorithm” -
ftp://ftp.rfc-editor.org/in-notes/rfc3394.txt
#3565 - “Use of the Advanced Encryption Standard (AES) Encryption Algorithm in Cryptographic
Message Syntax (CMS)” - ftp://ftp.rfc-editor.org/in-notes/rfc3565.txt
#3686 - “Using Advanced Encryption Standard (AES) Counter Mode With IPsec Encapsulating
Security Payload (ESP)” - ftp://ftp.rfc-editor.org/in-notes/rfc3686.txt
Descripción
En 1977 el NIST organizó un concurso a nivel mundial para crear un sistema que cumpliera los requisitos de seguridad necesarios para convertirse en estándar a nivel mundial. Este estándar se denomina AES (Advanced Encryption Standard) y el algoritmo AEA (Advanced Encryption Algorithm).
Muchos expertos presentaron sus propuestas, pero el ganador fue el conocido como algoritmo Rijndael, creado por los belgas Vincent Rijmen y Joan Daemen. Se trata de un algoritmo simétrico que puede funcionar mediante cifrado en bloques de longitud variable o en flujo y que se sirve de claves de longitud variable (128, 192 ó 256 bits).
Su algoritmo puede resumirse de la siguiente forma:
Toma el texto en claro y lo cifra en bloques para obtener el punto intermedio llamado Estado, que
A
se representa como una matriz de bytes de cuatro filas.
A partir del Estado, se realizan las siguientes operaciones en forma de bucle durante un número
B
determinado de iteraciones.
Sustitución de bytes no lineal, operando independientemente sobre cada uno de los bytes del
b1
Estado.
Desplazamiento de las filas del Estado cíclicamente con offsets diferentes.
b2
Mezcla de columnas, que se realiza multiplicando las columnas del Estado módulo x*4+1,
b3
consideradas como polinomios en GF(28), por un polinomio fijo c(x).
Adición de la clave de vuelta, en la que se aplica al Estado por medio de un simple XOR. La clave
b4
de cada vuelta se deriva de la clave de cifrado mediante el esquema de clave.
El esquema de clave consiste en dos operaciones, expansión de clave y selección de clave de
C
vuelta de cifrado, y el proceso de cifrado consta de tres pasos: una adición inicial de la clave de vuelta, n-1 vueltas de cifrado y una vuelta final.
* FUENTE: HTML Web, Seguridad, Criptografía (http://www.htmlweb.net/)
Se puede encontrar información mucho más detallada de la descripción algorítmica de AES en el siguiente enlace: http://home.ecn.ab.ca/~jsavard/crypto/co040401.htm.
Hoy en día AES es, efectivamente, el estándar en cifrado simétrico, siendo usado por sistemas tan populares como Pretty Good Privacy (PGP).
Death Master, 2004 (GPL) Página 10
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
IDEA:
International Data Encryption Algorithm (1990)
RFC's relacionados
#3058 - “Use of the IDEA Encryption Algorithm in CMS“ - ftp://ftp.rfc-editor.org/in-notes/rfc3058.txt
Descripción
IDEA fue creado en 1990 por Xuejia Lai y L. Massey. Se trata de un algoritmo simétrico de cifrado en bloques de 64 bits. Su funcionamiento se basa en operaciones sencillas como multiplicaciones de enteros, sumas y XOR. IDEA trabaja con claves de 128 bits de longitud.
Es importante reseñar que IDEA es un algoritmo que si bien es de uso libre para fines no comerciales, sí que está cubierto por patentes, concretamente:
USA y Canadá - Patente 5.214.703 - Expira el 25 de Mayo de 2010.
Europa(*) - Patente 0482154 - Expira el 16 de Mayo de 2011.
(*): Austria, Francia, Alemania, Italia, Holanda, España, Suecia, Suiza, Reino Unido.
Japón - Patente JP3225440B2 - No hay información de la fecha de expiración.
Precisamente a causa de esta patente, el sistema gnuPG no lo incluye como algoritmo de cifrado simétrico (a pesar de que PGP sí lo hace), siendo necesario añadirlo mediante un parche al software.
RC6:
Rivest Cypher 6 (1998)
RFC's relacionados
#2040 - “The RC5, RC5-CBC, RC5-CBC-Pad, and RC5-CTS Algorithms” -
ftp://ftp.rfc-editor.org/in-notes/rfc2040.txt
Descripción
RC6 fue uno de los finalistas del concurso AES del NIST. Fue ideado por el matemático Ron Rivest (autor de muchos y famosos algoritmos criptográficos) en 1998. El algoritmo es propiedad de la empresa RSA Security.
RC6 supone la evolución de los algoritmos RC, RC2, RC4 y RC5. Concretamente, se trata de una adaptación del sistema RC5 para cumplir los requisitos del concurso AES. Se trata de un algoritmo simétrico de cifrado de flujo con claves de longitud variable entre 40 y 2040 bits, siendo por defecto 128.
Su algoritmo se basa en una mezcla de sumas, restas, multiplicaciones, XOR y rotaciones, y se puede encontrar una amplia descripción, así como un ejemplo de su implementación en el siguiente enlace:
http://www.codeproject.com/cpp/hexenc.asp?print=true.
Death Master, 2004 (GPL) Página 11
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Twofish:
Twofish (1998)
Descripción
Twofish es un algoritmo simétrico de cifrado en bloques de 64 bits. Supone la evolución natural de su predecesor, Blowfish, y fue otro de los cinco finalistas del concurso AES del NIST. El algoritmo es totalmente libre, tanto de patentes como de copyright.
Twofish maneja claves de 128, 192 ó 256 bits y es muy potente a la par que extremadamente sencillo de implementar y rápido (18 ciclos por byte en una arquitectura Pentium I, más rápido que RC5, IDEA, DES, Triple DES, Serpent, Square, Cast-128, Feal-32, etc). Estas características le han llevado a ser incluido en el estándar SSH (Secure Shell).
Una descripción precisa del algoritmo y su implementación puede ser encontrada en el siguiente enlace:
http://home.ecn.ab.ca/~jsavard/crypto/co040402.htm.
MARS:
MARS (1998)
Descripción
MARS es otro de los finalistas del concurso del NIST. Fue ideado por IBM como un algoritmo simétrico de cifrado en bloques de 128 bits. Su longitud de clave es variable, trabajando con claves de 128 a 448 bits.
Comparado con el anterior gran algoritmo de IBM, el DES-3, la complejidad y potencia es mucho mayor, a la vez que es mucho más rápido de ejecutar (65 Mbit/s en un Pentium-Pro).
Después de no haber sido elegido como ganador del concurso AES, IBM liberó el algoritmo MARS para uso público, aunque no es muy usado en la actualidad.
En el libro "MARS - a candidate cipher for AES", publicado por IBM Corporation en Septiembre de 1999, podemos encontrar una descripción completa del algoritmo y sus diversas implementaciones:
http://www.research.ibm.com/security/mars.pdf.
CAST-256:
Carlisle Adams - Stafford Tavares - 256 (1997)
RFC's relacionados
#2612 - “The CAST-256 Encryption Algorithm” - ftp://ftp.rfc-editor.org/in-notes/rfc2612.txt
Descripción
CAST-256 fue desarrollado a partir del algoritmo CAST-128. Se trata de un algoritmo simétrico de cifrado en bloques de 128 bits que maneja claves de 128, 160, 192, 224, ó 256 bits. Su funcionamiento es muy complejo, combinando el sistema de permutación-rotación similar al utilizado por DES con otros sistemas más complejos, como combinaciones de XOR o uso de f-funciones (de tres formas distintas y excluyentes).
En el RFC citado arriba se puede encontrar una descripción detallada de su funcionamiento e implementación.
Death Master, 2004 (GPL) Página 12
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com
Algoritmos hash
Los criptosistemas de resumen, conocidos familiarmente como funciones o algoritmos hash, constituyen un tipo especial de criptosistemas. Muchos manuales de criptografía los sitúan como un subgrupo de los criptosistemas simétricos, pero a mí me gusta considerarlos como un grupo independiente debido a sus características especiales.
Para empezar, en los algoritmos hash no existe el concepto de clave criptográfica, ni tampoco el concepto de descifrado; el concepto de algoritmo criptográfico se mantiene; y surge un nuevo concepto denominado fingerprint, huella digital, resumen ó hash.
Así pues, un algoritmo tipo hash acepta como entrada un mensaje de longitud arbitraria, y tras efectuar sobre él los cálculos determinados por el algoritmo, devuelve una cadena de caracteres que representa el hash del mensaje al que aplicamos el algoritmo. Este hash NO puede ser denominado criptograma dado que no es posible el proceso de descifrado que nos devolvería el mensaje original.
Para que quede más claro, vamos a ver las características que definen a los criptosistemas de tipo hash:
Unidireccional: Conocido un hash, es computacionalmente imposible la reconstrucción del
mensaje original.
Compresión: A partir de un mensaje de cualquier longitud se obtiene un hash de un tamaño fijo,
normalmente menor que el del mensaje original.
Difusión: El resumen es una función compleja de todos los bits del mensaje.
Colisión simple: Se conoce como resistencia débil a las colisiones el hecho de que dado un
mensaje cualquiera, es computacionalmente imposible encontrar otro mensaje cuyo hash sea igual.
Colisión fuerte: Se conoce como resistencia fuerte a las colisiones el hecho de que sea
computacionalmente difícil encontrar dos mensajes cuyo hash sea idéntico.
Estas características hacen de los criptosistemas hash el medio perfecto para autentificación de todo tipo de información, con usos que van desde la autentificación de ficheros descargados a través de Internet, hasta checksum de paquetes TCP/IP. Es tan sencillo como conocer el hash de la información y una vez obtenida realizar de nuevo la función hash para comparar las cadenas de salida.
A continuación vemos algunos de los principales algoritmos criptográficos de tipo hash:
MD5:
Message Digest 5 (1992)
RFC's relacionados
#1321 - “The MD5 Message-Digest Algorithm“ - ftp://ftp.rfc-editor.org/in-notes/rfc1321.txt #1810 - “Report on MD5 Performance“ - ftp://ftp.rfc-editor.org/in-notes/rfc1810.txt #1828 - “IP Authentication using Keyed MD5“ - ftp://ftp.rfc-editor.org/in-notes/rfc1828.txt #1864 - “The Content-MD5 Header Field“ - ftp://ftp.rfc-editor.org/in-notes/rfc1864.txt
Descripción
MD5 fue ideado por el matemático Ron Rivest, y supone la evolución de los algoritmos MD2 y MD4. Se trata de una función criptográfica de tipo hash que acepta como entrada un mensaje de cualquier longitud y devuelve como salida una cadena de 128 bits (usualmente una cadena de 32 caracteres hexadecimales).
Su fácil implementación y su gran popularidad le hacen uno de los principales algoritmos hash de la red, usado principalmente en comprobación de ficheros en Internet.
Death Master, 2004 (GPL) Página 13
Loading...
+ 30 hidden pages