43
Criptosistemas Informáticos #hackxcrack @ irc.irc-chatpolis.com presenta... Criptosistemas Informáticos Autor: Death Master Death Master, 2004 (GPL) Página 1

Criptosis

Embed Size (px)

Citation preview

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    presenta...

    CriptosistemasInformticos

    Autor:

    Death Master

    Death Master, 2004 (GPL) Pgina 1

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    ndice de contenidos

    ndice de contenidos..........................................................................................................................2

    Introduccin.............................................................................................................................................4

    Conceptos bsicos..............................................................................................................................5

    Criptologa.....................................................................................................................................5 Texto en claro y criptogramas.................................................................................................5 Flujo de informacin...................................................................................................................6 Criptosistemas.............................................................................................................................6 Algoritmo criptogrfico...............................................................................................................7 Clave criptogrfica......................................................................................................................7 Longitud de clave........................................................................................................................8

    Algoritmos simtricos......................................................................................................................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 asimtricos..................................................................................................................15

    RSA...............................................................................................................................................16 DH/DSS........................................................................................................................................18 RW.................................................................................................................................................20 Otros sistemas asimtricos....................................................................................................21

    Death Master, 2004 (GPL) Pgina 2

  • Criptosistemas Informticos #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 pblica.....................................................................................................27 Exportar una clave privada....................................................................................................28 Exportar una clave pblica 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 pblica (firma exportable).....................................................................30 Firmar una clave pblica (firma NO exportable)..............................................................31 Establecer el grado de confianza en el usuario..............................................................32 Borrar una clave........................................................................................................................32 Encriptacin con el sistema openPGP...............................................................................33 Desencriptacin con el sistema openPGP........................................................................35 Firma MIME/PGP con el sistema openPGP.....................................................................36 Firma ASCII con el sistema openPGP...............................................................................36 Verificacin 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 criptogrfico.........................................................................................39 Integridad del sistema.............................................................................................................39 Informacin residual.................................................................................................................40 Medios no convencionales.....................................................................................................41

    Distribucin de este documento.............................................................................................42

    Licencia......................................................................................................................................................43

    Death Master, 2004 (GPL) Pgina 3

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Introduccin

    -Cunto tiempo quieres que sean secretos esos mensajes? -le pregunt Randyen el ltimo mensaje antes de abandonar San Francisco-. Cinco aos? Diezaos? Veinticinco aos?

    Despus de llegar al hotel esa tarde, Randy descifr y ley la respuesta de Avi.Todava 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, Criptonomicn

    Desde los tiempos del Antiguo Egipto hasta hoy en da ha pasado mucho tiempo, pero hay algo que no hacambiado: el anhelo del ser humano por esconder sus secretos. Criptografa.

    Personajes como Cleopatra o El Csar ya aprendieron a valorar la importancia de esconder de ojosindiscretos sus mensajes. La Scilata que los espartanos usaban all por el ao 400 a.C., o el propio cdigoCsar (un simple desplazamiento alfabtico) fueron los inicios. Con el desarrollo de las ciencias, y msconcretamente de las matemticas, la criptografa creci como un hermano menor, de la mano. En la EdadMedia comenz a adquirir una gran importancia cuando un siervo del Papa Clemente VII escribi el primermanual sobre el tema de la historia en el viejo continente. En 1466 Len Battista Alberti ide el sistemapolialfabtico basado en la rotacin de unos rodillos. Un siglo ms tarde, Giovan Battista Belaso invent laclave criptogrfica basada en una palabra o texto que se transcriba letra a letra sobre el mensaje original...

    Pero si un punto ha marcado un antes y un despus en la criptografa, ese ha sido la Segunda GuerraMundial. Ya a principios del pasado siglo XX se idearon los denominados traductores mecnicos, basadosen el concepto ideado en el siglo XV por Alberti de las ruedas concntricas, y el sistema comenz a tornarsesumamente complejo, ya no bastaba con analizarlo concienzudamente para comprenderlo. Y eso nos llev ala Segunda Guerra Mundial, a los aos 30 y 40 y a la mquina Enigma. Aunque mucha gente no lo sepa, lacriptografa fue uno de los principales motivos para que los aliados ganaran la guerra, pues los alemanescrean el cdigo de su mquina Enigma inviolable, y de hecho s que era extremadamente complejo. Pero aligual que antes comentaba que el anhelo humano de esconder secretos es eterno, tambin lo es su anhelopor desenterrar secretos ajenos. Un equipo de criptoanalistas, matemticos y dems mentes privilegiadas(entre ellos Alan Turing, uno de los padres de la informtica) logr en 1942 lo que pareca imposible: romperel cifrado de Enigma. Para ello disearon las llamadas bombas navales (las bombes), aparatos de clculomecnicos que se encargaban de romper el cifrado alemn y entregar todos los secretos a los aliados.Igualmente, el Purple (versin japonesa de Enigma) fue roto en Midway por un equipo dirigido por elcomandante Joseph J. Rochefort. El hecho de conocer los secretos, de tener todas las llaves (nunca mejordicho), 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 informtica y de los criptosistemas informtico supuso un cambio radical del concepto decriptografa, y tambin del criptoanlisis. Los criptosistemas y los algoritmos aumentaron repentinamente yde forma descomunal su complejidad. Desde el DES hace ya mucho, hasta los criptosistemas asimtricosde curvas elpticas actuales todo ha cambiado tambin mucho, pero uno de esos cambios ha supuesto elsegundo gran punto de inflexin de la criptografa: PGP. Hasta entonces el privilegio de guardar secretosestaba exclusivamente en manos de los gobiernos o los poderosos, y hoy da, seguramente gracias a PGP,es un derecho de cualquier ciudadano por humilde que sea (aunque en algunos pases no sea as).Arriesgando mucho, Philip Zimmermann nos abri las puertas a la criptografa, y a la libertad decomunicarnos de forma segura.

    Por supuesto hay otros nombres que son capitales en el desarrollo de los criptosistemas informticos, apartede Zimmermann: Rivest, Shamir, Adleman, Diffie, Hellman, ElGamal, Rijmen, Daemen, Massey, Miller,Goldwaser... Todos ellos son padres de lo que hoy se llama criptografa. Gracias a todos.

    Death Master

    Death Master, 2004 (GPL) Pgina 4

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Conceptos bsicos

    Criptologa

    Criptografa, el arte de ocultar. La palabra tiene su origen en el griego: kryptos (oculto, escondido) ygraphein (escribir). El arte de ocultar un mensaje mediante signos convencionales es muy antiguo, casitanto como la escritura. Y efectivamente siempre ha sido considerado un arte hasta hace relativamentepoco, cuando Claude E. Shannon public en dos aos dos documentos que supusieron la fundacin de lamoderna Teora de la Informacin. 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 computacin moderna, el desarrollo de la criptografaalcanz nuevos horizontes.

    Antes de entrar en ms detalles, hay que comprender que la criptografa se complementa con otra rama deestudio, el criptoanlisis, que estudia el camino inverso de la criptografa, dedicando sus esfuerzos adesentraar los secretos que la criptografa se empea en mantener ocultos. Ambas ramas conforman loque entendemos como criptologa.

    criptografa(Del gr. , oculto, y -grafa).1. f. Arte de escribir con clave secreta o de un modo enigmtico.* FUENTE: Real Academia Espaola (http://www.rae.es/)

    criptoanlisis(Del gr. , oculto, y anlisis).1. m. Arte de descifrar criptogramas.* FUENTE: Real Academia Espaola (http://www.rae.es/)

    Texto en claro y criptogramas

    En el mbito criptogrfico, entendemos por Texto en claro cualquier informacin que resulta legible ycomprensible per se. Un texto en claro sera cualquier informacin antes de ser encriptada o despus de serdesencriptada. Se considera que cualquier informacin es vulnerable si se encuentra en este estado.

    As mismo, denominamos criptograma a cualquier informacin que se encuentre convenientemente cifraday no resulte legible ni comprensible ms que para el destinatario legtimo de la misma.

    El mecanismo de transformar un texto en claro en un criptograma lo denominamos encriptacin o cifrado,y al proceso de recuperacin de la informacin a partir de un criptograma lo denominamos desencriptacino descifrado.

    Es muy importante no confundir estos trminos con codificacin o decodificacin, pues codificacin es elacto de representar la informacin de distintas formas, pero no necesariamente encriptadas. Por ejemplo, unnmero decimal puede codificarse como hexadecimal, y no por ello se convierte en un criptograma.

    Death Master, 2004 (GPL) Pgina 5

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Flujo de informacin

    En un criptosistema la informacin sigue un flujo siempre fijo:

    Emisor Cifrado CANAL RUIDOSO Descifrado ReceptorTexto en claro Criptograma Texto en claro

    El emisor cifra el texto en claro para obtener el criptograma, que viaja por un canal ruidoso. El receptordescifra el criptograma y obtiene de nuevo el texto en claro que el emisor le envi. Durante toda latransmisin, el mensaje es ilegible.

    Criptosistemas

    Antes de nada, es conveniente definir qu entendemos -matemticamente- por criptosistema. Uncriptosistema es una cuaterna de elementos formada por:

    Un conjunto finito llamado alfabeto, que segn unas normas sintcticas y semnticas, permiteemitir un mensaje en claro as como su correspondiente criptograma.

    Un conjunto finito denominado espacio de claves formado por todas las posibles claves, tantode encriptacin como de desencriptacin, del criptosistema.

    Una familia de aplicaciones del alfabeto en s mismo que denominamos transformaciones decifrado.

    Una familia de aplicaciones del alfabeto en s mismo que denominamos transformaciones dedescifrado.

    Ya sabemos qu es un criptosistema, pero qu es un criptosistema informtico? Un criptosistemainformtico se definira por los siguientes cuatro elementos:

    Un conjunto finito denominado alfabeto, que permite representar tanto el texto en claro como elcriptograma. A bajo nivel hablaramos de bits, y a ms alto nivel podramos hablar de caracteresASCII o MIME.

    Un conjunto finito denominado espacio de claves. Estara constituido por la totalidad de lasclaves posibles del criptosistema.

    Una familia de transformaciones aritmtico-lgicas que denominamos transformaciones decifrado.

    Una familia de transformaciones aritmtico-lgicas que denominamos transformaciones dedescifrado.

    Se trata simplemente de un criptosistema adaptado a las posibilidades y limitaciones de una computadora.El alfabeto o espacio de caracteres suele ser un estndar de representacin de informacin (tpicamenteMIME o UNICODE por motivos de compatibilidad) y a ms bajo nivel, por bits. Las transformaciones decifrado y descifrado se cien a las normas de computacin de los ordenadores actuales. En realidad, aefectos prcticos no existe mucha diferencia entre criptosistema matemtico e informtico, pues losmatemticos suelen disearse pensando en representaciones computacionales (pues solamente losordenadores tienen la potencia necesaria para soportar los complejos algoritmos), y los informticos sedesarrollan siempre con una base matemtica.

    Death Master, 2004 (GPL) Pgina 6

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Algoritmo criptogrfico

    Comenzaremos definiendo el trmino algoritmo por si algn despistado no sabe qu es.

    algoritmo(Quiz del lat. tardo *algobarismus, y este abrev. del r. cls. hisbu lgubr, clculo mediante cifras arbigas).1. m. Conjunto ordenado y finito de operaciones que permite hallar la solucin de un problema.2. m. Mtodo y notacin en las distintas formas del clculo.* FUENTE: Real Academia Espaola (http://www.rae.es/)

    Ahora veamos la definicin de algoritmo que da un manual de programacin algortmica:

    algoritmoDescripcin precisa de una sucesin de instrucciones que permiten llevar a cabo un trabajo

    en un nmero finito de pasos.* FUENTE: J. Castro, F. Cucker, X. Messeguer, A. Rublo, L. Solano, B. Valles, Curso de Programacin, McGraw Hill. (1993), 2. ISBN 84-481-1959-2

    As pues, un algoritmo debe describir de forma unvoca y sin dar lugar a interpretaciones, la solucin a unproblema en un numero de pasos concreto. Ya podemos deducir qu es un algoritmo de encriptacin: unadescripcin unvoca y concreta de cmo funciona un criptosistema determinado.

    Clave criptogrfica

    El concepto de clave criptogrfica surge con el propio concepto de la criptografa, y es el alma de unalgoritmo de encriptacin.

    Obviamente un algoritmo tiene que poseer la capacidad de ser usado muchas veces sin que su mecanismosea idntico, pues de lo contrario cada persona debera tener su propio algoritmo de encriptacin. Paraimplementar esta funcionalidad, se usan las claves. La clave es un dato que interviene de forma activa en laejecucin del algoritmo y lo personaliza.

    Atendiendo nicamente al tipo de clave, podemos distinguir dos criptosistemas:

    Sistemas de clave nica o criptosistemas simtricos: Son aquellos en los que los procesos de cifrado ydescifrado son llevados a cabo por una nica clave.

    Sistemas de clave pblica o criptosistemas asimtricos: Son aquellos en los que los procesos de cifradoy descifrado son llevados a cabo por dos claves distintas y complementarias.

    Ejemplo:

    Si usamos un sistema de criptografa simtrica por sustitucin, 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 ZD 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

    Pasara a ser:

    dcarxucedvhcduhcehrpjcwrcxv

    Death Master, 2004 (GPL) Pgina 7

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Longitud de clave

    A da de hoy, gracias a los ordenadores y los superordenadores (tpicamente clusters) es posible realizarcomplejos cmputos matemticos en un espacio de tiempo relativamente corto. As pues, el campo delcriptoanlisis est ntimamente ligado a esta potencia de clculo.

    Para que un algoritmo se considere seguro, su criptoanlisis sin la clave necesaria debe sercomputacionalmente imposible de resolver. Consideramos imposible de resolver un sistema cuyavulneracin necesite mayores recursos (econmicos o en tiempo) que el beneficio reportado. Por ejemplo,ser considerara seguro un criptosistema que requisiera miles de aos para ser descifrado.

    Para lograr semejante complejidad, se tratan nmeros o conjuntos de nmeros enormes. Es obvio que amayor tamao de estos nmeros, existe un mayor nmero de claves posibles, y la posibilidad de xito delcriptoanlisis es menor.

    Hoy en da este tamao se denomina longitud de clave, y se mide tpicamente en los bits que ocupa laclave. As, una clave de un nmero de 1024 bits sera un nmero 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 larelacin 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 da de hoy se usan claves que oscilan entre los 512 bits y los 4096 bits de longitud.

    Death Master, 2004 (GPL) Pgina 8

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Algoritmos simtricos

    Son los criptosistemas ms sencillos. Se trata de algoritmos que trabajan con una nica clave de doblefuncin (cifrado y descifrado). Dentro de los sistemas simtricos distinguimos dos tipos de algoritmos: los decifrado de bloque, que dividen el texto en claro en bloques de tamao prefijado (por ejemplo 64 bits) y loscifran bloque a bloque; y los de cifrado de flujo, que cifran bit a bit o byte a byte.

    A continuacin vemos algunos de los principales algoritmos criptogrficos simtricos:

    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

    Descripcin

    Algoritmo simtrico 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. Setrata de un algoritmo de 64 bits de clave de los cuales 56 bits componen la clave de cifrado propiamentedicha, mientras los 8 restantes son de paridad y se usan para correccin de errores.

    DES actualmente ya no es estndar criptogrfico y fue roto en Enero de 1999 con un sistema de cmputoque analizaba 250.000.000.000 claves por segundo.

    Su principal ventaja es la rapidez de clculo y la sencillez de su implementacin.

    Sus principales defectos son la poca longitud de clave que maneja, unido a la incapacidad de manejar clavesde longitud variable; y su debilidad en un uso continuado de la misma clave, pues si se disponen desuficientes criptogramas, mediante criptoanlisis 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

    Descripcin

    Dada la capacidad de cmputo actual y la relativa facilidad que supone romper el algoritmo DES, sedesarroll un sistema de triple aplicacin al algoritmo DES, con tres claves diferentes para aplicarsucesivamente (en realidad se usa una clave externa dividida para aplicacin intermedia dado que DESmatemticamente no es grupo, y su aplicacin repetida ocasionara un aumento efectivo de tamao).

    Mediante este sistema se obtiene un cifrado de 192 bits (168 efectivos y 24 de paridad) con tres claves queresulta mucho ms complejo de vulnerar.

    Death Master, 2004 (GPL) Pgina 9

  • Criptosistemas Informticos #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

    Descripcin

    En 1977 el NIST organiz un concurso a nivel mundial para crear un sistema que cumpliera los requisitos deseguridad necesarios para convertirse en estndar a nivel mundial. Este estndar 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 simtrico que puedefuncionar mediante cifrado en bloques de longitud variable o en flujo y que se sirve de claves de longitudvariable (128, 192 256 bits).

    Su algoritmo puede resumirse de la siguiente forma:

    A Toma el texto en claro y lo cifra en bloques para obtener el punto intermedio llamado Estado, quese representa como una matriz de bytes de cuatro filas.

    B A partir del Estado, se realizan las siguientes operaciones en forma de bucle durante un nmerodeterminado de iteraciones.

    b1 Sustitucin de bytes no lineal, operando independientemente sobre cada uno de los bytes delEstado.

    b2 Desplazamiento de las filas del Estado cclicamente con offsets diferentes.

    b3 Mezcla de columnas, que se realiza multiplicando las columnas del Estado mdulo x*4+1,consideradas como polinomios en GF(28), por un polinomio fijo c(x).

    b4 Adicin de la clave de vuelta, en la que se aplica al Estado por medio de un simple XOR. La clavede cada vuelta se deriva de la clave de cifrado mediante el esquema de clave.

    C El esquema de clave consiste en dos operaciones, expansin de clave y seleccin de clave devuelta de cifrado, y el proceso de cifrado consta de tres pasos: una adicin inicial de la clave devuelta, n-1 vueltas de cifrado y una vuelta final.

    * FUENTE: HTML Web, Seguridad, Criptografa (http://www.htmlweb.net/)

    Se puede encontrar informacin mucho ms detallada de la descripcin algortmica de AES en el siguienteenlace: http://home.ecn.ab.ca/~jsavard/crypto/co040401.htm.

    Hoy en da AES es, efectivamente, el estndar en cifrado simtrico, siendo usado por sistemas tanpopulares como Pretty Good Privacy (PGP).

    Death Master, 2004 (GPL) Pgina 10

  • Criptosistemas Informticos #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

    Descripcin

    IDEA fue creado en 1990 por Xuejia Lai y L. Massey. Se trata de un algoritmo simtrico de cifrado enbloques 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 resear que IDEA es un algoritmo que si bien es de uso libre para fines no comerciales, s queest 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, Espaa, Suecia, Suiza, Reino Unido. Japn - Patente JP3225440B2 - No hay informacin de la fecha de expiracin.

    Precisamente a causa de esta patente, el sistema gnuPG no lo incluye como algoritmo de cifrado simtrico(a pesar de que PGP s lo hace), siendo necesario aadirlo 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

    Descripcin

    RC6 fue uno de los finalistas del concurso AES del NIST. Fue ideado por el matemtico Ron Rivest (autor demuchos y famosos algoritmos criptogrficos) en 1998. El algoritmo es propiedad de la empresa RSASecurity.

    RC6 supone la evolucin de los algoritmos RC, RC2, RC4 y RC5. Concretamente, se trata de unaadaptacin del sistema RC5 para cumplir los requisitos del concurso AES. Se trata de un algoritmo simtricode 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 puedeencontrar una amplia descripcin, as como un ejemplo de su implementacin en el siguiente enlace:http://www.codeproject.com/cpp/hexenc.asp?print=true.

    Death Master, 2004 (GPL) Pgina 11

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Twofish:

    Twofish (1998)

    Descripcin

    Twofish es un algoritmo simtrico de cifrado en bloques de 64 bits. Supone la evolucin natural de supredecesor, Blowfish, y fue otro de los cinco finalistas del concurso AES del NIST. El algoritmo estotalmente 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 deimplementar y rpido (18 ciclos por byte en una arquitectura Pentium I, ms rpido que RC5, IDEA, DES,Triple DES, Serpent, Square, Cast-128, Feal-32, etc). Estas caractersticas le han llevado a ser incluido en elestndar SSH (Secure Shell).

    Una descripcin precisa del algoritmo y su implementacin puede ser encontrada en el siguiente enlace:http://home.ecn.ab.ca/~jsavard/crypto/co040402.htm.

    MARS:

    MARS (1998)

    Descripcin

    MARS es otro de los finalistas del concurso del NIST. Fue ideado por IBM como un algoritmo simtrico decifrado 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 lavez que es mucho ms rpido de ejecutar (65 Mbit/s en un Pentium-Pro).

    Despus de no haber sido elegido como ganador del concurso AES, IBM liber el algoritmo MARS para usopblico, 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 descripcin 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

    Descripcin

    CAST-256 fue desarrollado a partir del algoritmo CAST-128. Se trata de un algoritmo simtrico de cifrado enbloques de 128 bits que maneja claves de 128, 160, 192, 224, 256 bits. Su funcionamiento es muycomplejo, combinando el sistema de permutacin-rotacin similar al utilizado por DES con otros sistemasms 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 descripcin detallada de su funcionamiento eimplementacin.

    Death Master, 2004 (GPL) Pgina 12

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Algoritmos hash

    Los criptosistemas de resumen, conocidos familiarmente como funciones o algoritmos hash, constituyen untipo especial de criptosistemas. Muchos manuales de criptografa los sitan como un subgrupo de loscriptosistemas simtricos, pero a m me gusta considerarlos como un grupo independiente debido a suscaractersticas especiales.

    Para empezar, en los algoritmos hash no existe el concepto de clave criptogrfica, ni tampoco el conceptode descifrado; el concepto de algoritmo criptogrfico se mantiene; y surge un nuevo concepto denominadofingerprint, huella digital, resumen hash.

    As pues, un algoritmo tipo hash acepta como entrada un mensaje de longitud arbitraria, y tras efectuarsobre l los clculos determinados por el algoritmo, devuelve una cadena de caracteres que representa elhash del mensaje al que aplicamos el algoritmo. Este hash NO puede ser denominado criptograma dadoque no es posible el proceso de descifrado que nos devolvera el mensaje original.

    Para que quede ms claro, vamos a ver las caractersticas que definen a los criptosistemas de tipo hash:

    Unidireccional: Conocido un hash, es computacionalmente imposible la reconstruccin delmensaje original.

    Compresin: A partir de un mensaje de cualquier longitud se obtiene un hash de un tamao fijo,normalmente menor que el del mensaje original.

    Difusin: El resumen es una funcin compleja de todos los bits del mensaje. Colisin simple: Se conoce como resistencia dbil a las colisiones el hecho de que dado un

    mensaje cualquiera, es computacionalmente imposible encontrar otro mensaje cuyo hash seaigual.

    Colisin fuerte: Se conoce como resistencia fuerte a las colisiones el hecho de que seacomputacionalmente difcil encontrar dos mensajes cuyo hash sea idntico.

    Estas caractersticas hacen de los criptosistemas hash el medio perfecto para autentificacin de todo tipo deinformacin, con usos que van desde la autentificacin de ficheros descargados a travs de Internet, hastachecksum de paquetes TCP/IP. Es tan sencillo como conocer el hash de la informacin y una vez obtenidarealizar de nuevo la funcin hash para comparar las cadenas de salida.

    A continuacin vemos algunos de los principales algoritmos criptogrficos 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

    Descripcin

    MD5 fue ideado por el matemtico Ron Rivest, y supone la evolucin de los algoritmos MD2 y MD4. Se tratade una funcin criptogrfica de tipo hash que acepta como entrada un mensaje de cualquier longitud ydevuelve como salida una cadena de 128 bits (usualmente una cadena de 32 caracteres hexadecimales).

    Su fcil implementacin y su gran popularidad le hacen uno de los principales algoritmos hash de la red,usado principalmente en comprobacin de ficheros en Internet.

    Death Master, 2004 (GPL) Pgina 13

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    SHA-1:

    Secure Hash Algorithm - 1 (1994)

    RFC's relacionados

    #2841 - IP Authentication using Keyed SHA1 with Interleaved Padding (IP-MAC) - ftp://ftp.rfc-editor.org/in-notes/pdfrfc/rfc2841.txt.pdf

    #3174 - US Secure Hash Algorithm 1 (SHA1) - ftp://ftp.rfc-editor.org/in-notes/pdfrfc/rfc3174.txt.pdf

    Descripcin

    SHA-1 fue ideado por el NIST en 1994 como ampliacin al algoritmo SHA. Se trata de una funcincriptogrfica de tipo hash que acepta una entrada de 2^64 bits como mximo (2048 Terabytes) y devuelvecomo salida una cadena de 160 bits.

    SHA-1 es ligeramente ms lento que MD5, pero tambin es computacionalmente ms complejo y su salidaes de mayor longitud, por lo que se considera de forma global ms seguro.

    RIPEMD-160:

    RACE Integrity Primitives Evaluation Message Digest - 160 (1996)

    RFC's relacionados

    #2286 - Test Cases for HMAC-RIPEMD160 and HMAC-RIPEMD128 - ftp://ftp.rfc-editor.org/in-notes/rfc2286.txt

    #2857 - The Use of HMAC-RIPEMD-160-96 within ESP and AH - ftp://ftp.rfc-editor.org/in-notes/rfc2857.txt

    Descripcin

    RIPEMD-160 fue ideado por Hans Dobbertin, Antoon Bosselaers, y Bart Preneel como ampliacin delalgoritmo RIPEMD. Se trata de una funcin criptogrfica de tipo hash que acepta una entrada un mensajede cualquier longitud y devuelve como salida una cadena de 160 bits.

    A pesar de haberse desarrollado mucho ms libre que SHA-1, no es muy popular y tampoco ha sido muyestudiado por criptlogos. No obstante existen dos extensiones de este algoritmo (que son menos usadasan) denominadas RIPEMD-256 y RIPEMD-320. Las longitudes de sus salidas son respectivamente 256 y320 bits, con lo que se reduce significativamente las colisiones dbiles y fuertes.

    Death Master, 2004 (GPL) Pgina 14

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Algoritmos asimtricos

    Se trata de criptosistemas ms modernos y complejos que los simtricos, a la vez que mucho ms seguros.Se fundamentan en la existencia de un par de claves complementarias que denominamos clave pblica yclave privada respectivamente (aunque ambas pueden actuar como pblica o privada, su funcin la da elusuario mediante su utilizacin). Un criptograma generado por una de las claves puede ser descifradonicamente por la otra clave, y viceversa.

    A pesar de ser computacionalmente mucho ms complejos, son el estndar hoy en da, usados en sistemasque combinan cifrado asimtrico y simtrico (Pretty Good Privacy y Secure Socket Layer entre ellos).

    Estos sistemas duales aunan las ventajas de ambos sistemas, pues un cifrado continuado en claveasimtrica requiere mucho esfuerzo computacional, y un sistema de clave simtrica no es seguro per se,pues necesita un canal seguro de traspaso de informacin para la clave. El cifrado asimtrico proporcionaese canal seguro de traspaso de informacin, y el uso de claves nicas en cifrado simtrico garantiza laseguridad a la vez que se reduce sensiblemente el nivel de recursos necesarios.

    Existen principalmente tres familias de algoritmos asimtricos, segn el principio matemtico en el quebasan su potencia y seguridad:

    Problema de la factorizacin entera :Estos algoritmos basan su seguridad en una debilidad de las mquinas de cmputoactuales. Para un computador es relativamente trivial el clculo de enormes productos opotencias, pero el proceso contrario resulta muy costoso.As pues, la potencia de estos algoritmos reside en que no existe un mtodo eficiente parafactorizar nmeros enteros muy grandes.A esta familia pertenecen RSA (Rivest-Shamir-Adleman) y RW (Rabin-Williams) entre otros.

    Problema del logaritmo discreto del grupo multiplicativo de un campo finito :La potencia de los algoritmos basados en el problema del logaritmo discreto se basan enque no existe un mtodo eficiente de calcular x a partir de la expresin y = ax (mod p) dondep es un nmero primo.Matemticamente se trata de un mtodo bastante ms complejo, pero computacionalmentees igual de complicado que el problema de la factorizacin entera.A esta familia pertenecen DH (Diffie-Hellman), DSA (Digital Signature Algorithm), ElGamal yNyberg-Rueppel entre otros.

    Problema del logaritmo discreto sobre el grupo de puntos racionales de una curva elptica sobre un campo finito:

    Este grupo es un derivado del problema del logaritmo discreto, solo que en lugar deestudiarlo en un grupo multiplicativo, lo estudia en curvas elpticas (no obstante este grupoes conocido tambin como mtodo de curvas elpticas). Este mtodo es relativamentemoderno (surgi en 1986 de la mano de Miller).Estos algoritmos basan su potencia en que el clculo de logaritmos sobre un sistema decurvas elpticas es computacionalmente an ms costoso que su clculo sobre cuerposfinitos.No hay muchos algoritmos de curvas elpticas definidos, pero no obstante existen versioneselpticas de los algoritmos DH (Diffie-Hellman) y ElGamal.

    Existe un cuarto grupo de criptografa asimtrica, los criptosistemas probabilsticos, que fundamentan supotencia en el hecho de que un mismo texto en claro puede dar lugar a un gran nmero de criptogramasdistintos. Estos sistemas evitan la fuga de informacin que supone el cifrado asimtrico tradicional (PKCS)(C = E k (M)), pero no han sido muy estudiados an, y mucho menos trasladados a criptosistemasinformticos.

    El concepto de firma digital, derivado de la combinacin de criptografa asimtrica y algoritmos hash estambin de capital importancia, pero lo trataremos en el apartado de PGP.

    A continuacin vemos algunos de los principales algoritmos criptogrficos asimtricos:

    Death Master, 2004 (GPL) Pgina 15

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    RSA:

    Rivest - Shamir - Adleman (1978)

    RFC's relacionados

    #2792 - DSA and RSA Key and Signature Encoding for the KeyNote Trust Management System - ftp://ftp.rfc-editor.org/in-notes/rfc2792.txt

    #3110 - RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS) - ftp://ftp.rfc-editor.org/in-notes/rfc3110.txt

    #3447 - Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1 - ftp://ftp.rfc-editor.org/in-notes/rfc3447.txt

    Documentos relacionados

    [COCK73] Clifford Cocks, A Note on 'Non-Secret Encryption', CESG Research Report, 20Noviembre 1973, .

    [RIVE78] R. Rivest, A. Shamir and L. Adleman, A Method for Obtaining Digital Signaturesand Public-Key Cryptosystems. Communications of the ACM, 21 (2), pp. 120-126, Febrero1978.

    [RSA78] R.L. Rivest, A. Shamir, and L.M. Adleman, Communications of the ACM (2) 21,(1978), 120-126.

    [KALI93] Burton Kalinski, Some Examples of the PKCS Standards, RSA Laboratories,Noviembre 1993, .

    [PKCS1] RSA Laboratories, PKCS #1 v2.1: RSA Encryption Standard, Junio 2002,.

    Descripcin

    El algoritmo RSA naci en 1978 de la mano de Ron Rivest, Adi Shamir y Leonard Adleman [RSA78]. Setrata de un algoritmo de cifrado asimtrico basado en el problema de la factorizacin entera, y aunque ladescripcin de este algoritmo fue propuesta en 1973 por Clifford Cocks [COCK73], fue secreta hasta 1978cuando se public RSA. Aunque el algoritmo fue patentado, la patente expir en el ao 2000 y actualmentese trata de un algoritmo libre.

    Echemos un vistazo al algoritmo RSA:

    1Escoger dos nmeros primos muy grandes p y q (secretos) y calcular el nmero n (pblico)correspondiente a su producto, n = p * q

    2Escoger la clave de descifrado constituida por un gran nmero entero d (secreto), que es primo conel nmero (n) (secreto) obtenido mediante: (n) = (p-1) * (q-1)

    3 Calcular el entero e (pblico) tal que 1 e (n) , mediante la frmula: e * d = 1 (mod (n))

    4 Hacer pblica la clave de cifado (e, n)

    5Para cifrar texto, es necesario previamente codificar el texto en un sistema numrico en base bdividindolo en bloques de tamao j-1 de forma que b j-1 < n < b j

    6Cifrar cada bloque M i transformndolo en un nuevo bloque de tamao j C i de acuerdo con laexpresin C i M i e (mod n)

    7 Para descifrar el bloque C i , se usa la clave privada d segn la expresin: M i C i d (mod n)* FUENTE: Pino Caballero Gil, Introduccin a la Criptografa2 Edicin actualizada, Ra-Ma. (2002), 55. ISBN 84-7897-520-9

    Death Master, 2004 (GPL) Pgina 16

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Veamos un ejemplo eminentemente prctico de cmo generar un criptosistema RSA:

    1. Seleccionamos dos nmeros primos p = 11 y q = 3.2. Calculamos N = p * q y = (p-1) * (q-1) = 10 * 2 = 203. Elegimos el exponente e = 3 comprobando mcd (e, p-1) = mcd (3, 10) = 1 y...

    mcd (e, q-1) = mcd (3, 2) = 1 , lo que implica que... mcd (e, ) = mcd (e, (p-1) (q-1)) = mcd (3, 10, 2) = 1

    4. Calcular d tal que e * d = 1 (mod (n) ) , por ejemplo d = 7 (comprobamos e * d-1 = 3 * 7-1 = 20que es divisible por )

    5. Clave Pblica = (n, e) = (33, 3)Clave Privada = (n, d) = (33, 7)

    Ahora podemos ver un ejemplo de cmo generar un mensaje cifrado con RSA:

    1. Queremos encriptar el mensaje m = 72. Calculamos el cifrado c = me mod n = 73 mod 33 = 343 mod 33 = 133. Nuestro texto cifrado es c = 134. Calculamos el descifrado m' = cd mod n = 137 mod 33 = 75. El mensaje descifrado es m' = 7

    Hoy en da RSA es el algoritmo asimtrico de cifrado ms usado, tanto en conexiones de Internet yprotocolos seguros, como en cifrado de datos (por ejemplo en el sistema PGP). Las longitudes de claveusadas hoy en da varan desde los 512 hasta los 4096 bits, aunque se suelen tomar de forma habitualclaves de 1024 puesto que las de 512 no se consideran suficientemente seguras. Este tamao puedeparecer pequeo, pero permite la generacin de claves de longitudes de hasta 1233 cifras con 4096 bits(concretamente hasta 1,0443888814131525066917527107166 * 10^1233).

    No obstante, RSA no es infalible, y como ya dijimos la enorme complejidad computacional del problema dela factorizacin entera se debe a una limitacin de los computadores actuales. Sin embargo, en el momentoen el que se puedan construir computadores cunticos (que trabajen con lgica ternaria en lugar de lgicabinaria) suficientemente potentes, mediante la debida implementacin del algoritmo de Shor (ideado porPeter Shor en 1994) este trabajo sera trivial y permitira resolver criptosistemas basados en el problema defactorizacin entera en un tiempo polinomial. De hecho en el ao 2001, IBM demostr el algoritmo deShor mediante su implementacin en un computador cuntico de 7 qubits, factorizando 15 en 3 y 5.

    Podemos encontrar ms informacin sobre el algoritmo de Shor, as como el propio algoritmo en:http://en.wikipedia.org/wiki/Shor's_algorithm.

    Death Master, 2004 (GPL) Pgina 17

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    DH/DSS:

    Diffie - Hellman / Digital Standard Signature (1976 / 1991)

    RFC's relacionados

    #2539 - Storage of Diffie-Hellman Keys in the Domain Name System (DNS) - ftp://ftp.rfc-editor.org/in-notes/rfc2539.txt

    #2631 - Diffie-Hellman Key Agreement Method - ftp://ftp.rfc-editor.org/in-notes/rfc2631.txt#2785 - Methods for Avoiding the "Small-Subgroup" Attacks on the Diffie-Hellman Key Agreement

    Method for S/MIME - ftp://ftp.rfc-editor.org/in-notes/rfc2785.txt#2875 - Diffie-Hellman Proof-of-Possession Algorithms - ftp://ftp.rfc-editor.org/in-notes/rfc2875.txt#3526 - More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE) -

    ftp://ftp.rfc-editor.org/in-notes/rfc3526.txt

    Documentos relacionados

    [DIH76] W. Diffie and M.E. Hellman, IEEE Transactions on Information Theory 22, (1976),644-654.

    [ELG85] T. ElGamal, IEEE Transactions on Information Theory 31, (1985), 469-472. [DVW92] W. Diffie, P.C. van Oorschot, and M.J. Wiener, Designs, Codes and Cryptography

    2, (1992), 107-125. [PKCS3] RSA Laboratories, PKCS #3 1.4: Diffie-Hellman Key-Agreement Standard,

    Noviembre 1993, . [MAU94] U. Maurer, Advances in Cryptology, Crypto '94, Springer-Verlag (1994), 271-281.

    Descripcin

    La historia del nacimiento del algoritmo DH/DSS es bastante compleja. En 1976, Dres. W. Diffie y M.E.Hellman publicaron el documento [DIH76] en el que naci el sistema Diffie-Hellman como algoritmo deintercambio de claves. En aquella poca, Diffie y Hellman crean que su algoritmo no poda constituir uncriptosistema asimtrico completo para cifrado de clave pblica. Tuvieron que pasar muchos aos hasta queen 1985 ElGamal publicara [ELG85] y demostrara que se poda desarrollar un criptosistema asimtricocompleto a partir del sistema Diffie-Hellman, lo que supuso el nacimiento del algoritmo DH.

    Pero an haba un problema, pues el sistema de firma ideado por ElGamal ocasionaba que la firma de unmensaje ocupara el doble que el mensaje original, lo cual representaba un problema grave de eficiencia.Este problema fue corregido en 1991, cuando el NIST propuso un sistema de firma nuevo para el sistemaDiffie-Hellman, que denominaron DSS (Digital Standard Signature). As, en 1991 naci el algoritmocompleto que hoy conocemos como DH/DSS.

    DH/DSS es un algoritmo de cifrado asimtrico basado en el problema del logaritmo discreto del grupomultiplicativo de un campo finito. Aunque matemticamente es mucho ms complejo con diferencia que elproblema de la factorizacin entera, se ha demostrado que ambos son computacionalmente de unacomplejidad muy similar. Hay que decir, eso s, que DH/DSS y los dems algoritmos basados en el problemadel logaritmo discreto no tiene sobre su cabeza la espada de Damocles que supone el algoritmo de Shorpara los criptosistemas basados en el problema de la factorizacin entera.

    Ahora echemos un vistazo al algoritmo DH/DSS:

    Death Master, 2004 (GPL) Pgina 18

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    1Sern de informacin pblica un nmero primo grande p y a, una raz primitiva de 1 mdulo p (esdecir, tal que a p-1 (mod p) y a d-1 (mod p) para todo d tal que 1 < d < p )

    2 La clave privada del usuario B es un entero k B escogido dentro del intervalo [1 , p-1]

    3 La clave pblica de B es el entero K B a k B (mod p)

    4 Se supone que el emisor A quiere enviar un mensaje M (1 M p-1) al receptor B

    Proceso de Cifrado (e)1e Escoger aleatoriamente un entero k A tal que 1 k A p-1 , que constitye su clave secreta

    2e Calcular la clave de cifrado a partir de su propia clave privada y la clave pblica de B, Q K kB A (mod p)

    3e Cifrar el mensaje M segn la expresin C Q * M (mod p)

    Proceso de Descifrado (d)1d Obtener Q gracias a la clave pblica de A, K A , y a su propia clave secreta mediante la frmula

    Q K kA B (mod p)

    2d Recuperar M a partir de M (Q -1) p * C (mod p) donde (Q -1) p denota el inverso de Q en mdulo p* FUENTE: Pino Caballero Gil, Introduccin a la Criptografa2 Edicin actualizada, Ra-Ma. (2002), 65. ISBN 84-7897-520-9

    Es importante sealar que aunque el sistema Diffie-Hellman siempre ha sido libre, la patente que lo cubra(US 4.200.770) expir el 6 de Septiembre de 1997.

    Death Master, 2004 (GPL) Pgina 19

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    RW:

    Rabin - Williams (1980)

    Documentos relacionados

    [RAB79] M.O. Rabin, Digitalized signatures and public-key functions as intractable asfactorization, Technical Report MIT/LCS/TR-212, MIT, 1979.

    [WEL88] D. Welsh, Codes and Cryptography, Claredon Press, 1988.

    Descripcin

    En 1979 M.O. Rabin ide un sistema a partir de las bases sentadas por RSA. Sin embargo, hay una sutildiferencia, pues en el sistema RSA, resolver el problema general de la factorizacin implica romperlo, perono de forma inversa. En el sistema de Rabin, ambos preceptos se cumplen. Este defecto de base fuecorregido en 1980 por H.C. Williams, dando lugar al algoritmo RW.

    RW es un algoritmo de cifrado asimtrico basado en el problema de la factorizacin entera (al igual queRSA). No obstante, este algoritmo no ha sido prcticamente estudiado ni usado por la comunidadcriptogrfica moderna.

    Echemos un vistazo al algoritmo RW:

    1Escoger dos grandes primos p y q (secretos) y definir n (pblico) mediante su producto, n = p * q(pblico)

    2 Escoger un entero B < n que ser parte de la clave pblica (B,n)

    3Para cifrar un texto, es necesario previamente codificar el texto en un sistema de base bdividindola previamente en bloques de tamao j-1 de forma que cumpla b j-1 < n < b j

    4 Cifrar el bloque M i segn la expresin C i M i (M i + B) (mod n)

    5Para descifrar el criptograma C i , hay que construir el mensaje M i = a * u + b * v a partir de lassoluciones de las ecuaciones u 2 + B * u C i (mod p) y v 2 + B * v C i (mod q) , y los enteros a yb tales que a 1 (mod p) , a 0 (mod q) , b 0 (mod p) y b 1 (mod q)

    * FUENTE: Pino Caballero Gil, Introduccin a la Criptografa2 Edicin actualizada, Ra-Ma. (2002), 62. ISBN 84-7897-520-9

    Por descontado, al estar basado este algoritmo en el mismo problema que RSA, posee igualmente susmismas debilidades, y es tambin extremadamente vulnerable al criptoanlisis cuntico.

    Death Master, 2004 (GPL) Pgina 20

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Otros sistemas asimtricos:

    El ltimo gran grupo de criptografa asimtrica es el mtodo de las curvas elpticas. ste surgi en 1986 dela mano de Miller con la publicacin del documento:

    [MIL86] V.S. Miller, Use of Elliptic Curves in Cryptography, Advances in Cryptology-CRYPTO'85, Lecture Notes in Computer Science, Springer-Verlag, 1986.

    El sistema de curvas elpticas se inspira en el sistema de ElGamal, con el grupo aditivo de puntos de lacurva representando el papel del grupo multiplicativo.

    Se trata de un sistema mucho ms complejo, tanto matemtica como computacionalmente, que los mtodostradicionales (factorizacin y logaritmo nico), pero proporciona un nivel de seguridad mucho mayor. As, seha evaluado que una clave de un sistema de curvas elpticas de 210 bits es igual de segura que una claveRSA de 2048 bits.

    Aunque existen versiones elpticas de sistemas como DH ElGamal, y a pesar de ser uno de los camposms estudiados por la criptografa moderna, no han sido implementados de una manera efectiva an, y nogozan de mucha importancia. No obstante, se trata de un campo de estudio relativamente moderno y pordesarrollar.

    Existen otros dos sistemas importantes no mencionados anteriormente:

    Problema de la mochila :Se trata de un sistema ideado en 1978 por Merkle y Hellman en el algoritmo Merkle-Hellman [MEH78] y que toma su nombre de una metfora del algoritmo, puesto que sepresenta como una mochila de tamao N donde queremos meter n objetos pero rellenandoel espacio sobrante hasta completar N.Aunque el problema general de la mochila es muy complejo y constituye un problema NP-completo, todas las versiones de este sistema han sido rotas y no es usado salvo con finesdidcticos

    Teora de la codificacin algebraica :Este sistema fue ideado por McEliece en 1978 y dio lugar al algoritmo McEliece [MCE78].Basa su potencia en el hecho de que la decodificacin de un cdigo lineal general es unproblema NP-completo. En este algoritmo juega un papel crucial la teora de la codificacin.Un punto importante a la hora de entender la complejidad computacional de este algoritmoes el hecho de que no trabaje con cifras enteras, sino con matrices. Adems, se introduceun gran factor de expansin de datos, en funcin de las palabras del cdigo de Goppa, y seproduce un desorden intencionado mediante la adicin de ruido.Por desgracia su aplicacin de momento no pasa del mbito terico, y no se handesarrollado criptosistemas de clave pblica sobre este algoritmo, aunque est siendoinvestigado hoy en da.

    El ltimo grupo del que hablaremos brevemente es el de los criptosistemas probabilsticos. Este sistemase basa en las nociones que Micali y Goldwaser publicaron en el documento [GOM82]:

    [GOM82] S. Goldwasser, S. Micali, Probabilistic Encryption and How to Play Mental PokerKeeping Secret all Partial Information, Proceedings of the 14th ACM Symposium on Theory ofComputing, 365, 1982.

    Basa su potencia en que no existe un clculo factible para obtener informacin del texto en claro a partir delcriptograma. Esto se logra mediante la virtual existencia de un gran nmero de criptogramas distintos paraun mismo texto en claro de partida.

    Se puede considerar, de hecho, un Sistema de Secreto Perfecto de Shannon, pero con la ventaja aadidadel uso personalizado de claves criptogrficas. Por desgracia an no se han podido desarrollarcriptosistemas informticos completos a partir de este sistema.

    Death Master, 2004 (GPL) Pgina 21

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    El sistema PGP

    Corra el ao 1991 y en Estados Unidos comenzaba a tomar forma el rumor de que el Gobierno pretendaprohibir el uso de la criptografa en las lneas de comunicacin. La criptografa haba alcanzado un nivel dedesarrollo que haba escapado al control de gobiernos y servicios de inteligencia, y por ello se comenz apensar en controlarla. Mucha gente comenz a preocuparse por el incipiente rumor, y un programadorllamado Philip Zimmermann decidi poner remedio, haba que hacer que no fuera posible prohibir lacriptografa.

    Zimmermann escogi los mejores algoritmos del momento de cifado simtrico (IDEA), asimtrico (RSA) yhash (MD5) y cre el programa llamado Pretty Good Privacy (PGP), un software de cifrado al nivel ms altoy totalmente libre de puertas traseras o control alguno. Comenz a distribuirlo por BBSs de forma gratuita(freeware) y la gente respondi distribuyndolo por todo el pas. De repente no era posible prohibir lacriptografa porque estaba demasiado extendida y se haba convertido en el estndar de cifrado y firma decorreo electrnico.

    Los problemas no tardaron en llegar. En ese mismo ao (1991) alguien distribuy el programa en USENET yste comenz a distribuirse y usarse fuera de Estados Unidos. No tardaron en acusar a Zimmermann deviolar la legislacin ITAR del Departamento de Estado Americano sobre exportacin de armas. S, enEstados Unidos la criptografa se considera un arma equiparable al armamento pesado, los carros decombate o las armas qumicas. Adems, RSA Data le acus de violar el copyright del algoritmo RSA (quepor aquel entonces an estaba patentado). As, se formaron dos frentes de problemas legales contra Philip.

    Para intentar paliar el problema con RSA Data, se lleg a la determinacin de desarrollar dos versionesparalelas de PGP: el propio PGP en Estados Unidos y Canad, usando la librera RSAREF; y la versinPGPi (de International) que se desarrollo para el resto del mundo en Europa, usando la librera MPILIBdesarrollada por el propio Zimmermann. An as, el proceso con RSA Data continu.

    Ambos problemas se terminaron solucionando en 1996. Respecto a la supuesta violacin de la legislacinITAR, el 11 de Enero de 1996 el abogado de Zimmermann recibi una escueta carta con el siguiente texto:

    "La Oficina del Fiscal del Distrito Norte de California ha decidido que su cliente, Philip Zimmermann,no ser juzgado por el envo a USENET en junio de 1991 del programa de encriptacin Pretty GoodPrivacy. El caso queda cerrado".

    Tambin fue publicada un no menos escueto comunicado a la prensa:

    "Michael J. Yamaguchi, Fiscal del Distrito Norte de California, ha anunciado que su Oficina hadecidido abandonar la causa contra cualquier individuo supuestamente implicado en el envo aUSENET en junio de 1991 del programa de encriptacin Pretty Good Privacy. El caso quedacerrado, y la Oficina no har ms declaraciones".

    Y de ese problema no volvi a saberse nada, ni se hicieron ms declaraciones.

    El proceso que RSA Data inici contra Zimmermann tambin termin en 1996, siendo declarado inocente yabsuelto. Ese mismo ao cre su propia compaa, Pretty Good Privacy Inc., y comenz a desarrollarsoftware (por supuesto entre ese software se encontraba PGP) dentro de Estados Unidos. Las versionesinternacionales de PGP siguieron desarrollndose en Europa.

    El ao siguiente, 1997, supuso un cambio radical para PGP. Pretty Good Privacy Inc. fue absorbida porNetwork Associates, y Zimmermann qued relegado a un puesto de asesor. As mismo, se public laprimera versin para Windows, la 5, que cambiaba la lnea de comandos DOS por un entorno grfico. Apartir de esta versin comenzaron a incorporarse nuevos algoritmos.

    Aunque durante un tiempo PGP perdi mucho de su espritu original, hoy en da por fortuna vuelve a ser loque era. An as mucha gente sigue prefiriendo la ltima versin de DOS que se public antes del cambio demanos de PGP, la 2.6.3 bajo lnea de comandos, con soporte nico para RSA-IDEA-MD5.

    Death Master, 2004 (GPL) Pgina 22

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    La versin actual de PGP es la 8.03. Existen dos versiones de PGP: una de pago, y otra freeware (conciertas limitaciones) que puede descargarse desde http://www.pgp.com/products/freeware.html. AunquePGP NO es software libre, su cdigo fuente vuelve a estar disponible para ser descargado y consultado porel pblico general en http://www.pgp.com/products/sourcecode.html.

    Hoy en da PGP trabaja con los siguientes algoritmos:

    Encriptacin simtrica: AES (Rijndael), CAST, TripleDES, IDEA, Twofish. Encriptacin asimtrica: RSA, RSA Legacy, DH/DSS. Hash: MD5, SHA-1, RipeMD (slo para claves RSA).

    Es importante hablar tambin de openPGP. A partir de la idea de PGP, se desarroll en Noviembre de 1998el estndar openPGP, gracias al cual cualquiera puede integrar en una aplicacin compatibilidad con elsistema PGP a travs de una implementacin de openPGP (ciertos clientes de correo electrnico incluyenesta funcionalidad). Es conveniente leer los siguientes RFC's referidos a openPGP:

    #2440 - OpenPGP Message Format - ftp://ftp.rfc-editor.org/in-notes/rfc2440.txt#3156 - MIME Security with OpenPGP - ftp://ftp.rfc-editor.org/in-notes/rfc3156.txt

    Por ltimo (pero no menos importante) hay que hablar de la implementacin openPGP ms famosa y usada:GNU Privacy Guard (GnuPG, GPG). GnuPG es un reemplazo libre y completo del sistema PGP,cumpliendo los estndares de openPGP. Trabaja con los mismos algoritmos que las versiones actuales dePGP excepto IDEA, pues se encuentra patentado an y no es libre en el territorio de Estados Unidos yCanad. No obstante se puede aadir el algoritmo IDEA a GnuPG mediante un parche, pero slo debemoshacerlo en caso de residir en pases donde IDEA est libre de patentes (Espaa por ejemplo).

    GPG es completamente software libre, bajo los trminos de la licencia GNU General Public License (GPL)y hoy da est muy extendido, contando incluso con apoyo econmico del Ministerio de Economa yTecnologa de la Repblica Federal de Alemania para su desarrollo.

    La primera versin de GnuPG (1.0.0) fue liberada el 7 de Septiembre de 1999, y la ltima versin disponiblea da de hoy es la 1.2.4 que podemos descargar desde su sitio web http://www.gnupg.org/. GnuPG tieneactualmente soporte para gran cantidad de sistemas, entre ellos: GNU/Linux, GNU/Hurd, FreeBSD,OpenBSD, NetBSD, Microsoft Windows, PocketConsole, MacOS X, AIX, BSDI, HPUX, IRIX, MP-RAS,OSF1, OS/2, SCO UnixWare, SunOS, Solaris, USL UnixWare.

    GnuPG es una aplicacin de lnea de comandos, pero existen muchas Interfaces Grficas de Usuario (GUI,Graphic User Interface) para integrarlo en un escritorio Unix e incluso Windows. Las ms famosas son GPA,GnomePGP, KGpg y TkPGP. No obstante, la ms recomendada (yo la uso personalmente) es GPA (GNUPrivacy Assistant), que adems es mantenido por el propio equipo de GnuPG. GPA es una aplicacingrfica que utiliza GTK (El Gimp Tool Kit). La ltima versin de GPA es la 0.70, que puede ser encontradaen http://www.gnupg.org/(es)/download/index.html#gpa.

    Ya conocemos los algoritmos criptogrficos, conocemos la historia de PGP y sus implementaciones. Es elmomento de empezar a comprender el funcionamiento de PGP. Vamos a ver algunas de las principalesfunciones de los sistemas openPGP, explicando la teora de su funcionamiento, y cmo realizarlas en lossistemas openPGP ms usados: PGP (versin 8.03), GnuPG (versin 1.2.4) y GPA (versin 0.70).

    Es importante recomendar tambin la lectura de los manuales de PGP (Help > Contents and Index) GnuPG (man gpg) detalladamente para poder aprovechar todo el potencial que estos programas nosbrindan.

    Death Master, 2004 (GPL) Pgina 23

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    El anillo de claves

    Qu?

    Ya sabemos lo que es una clave criptogrfica. Antes de ver cmo generar nuestra propia clave, esimportante saber cmo se manejan y almacenan en nuestro PC. En el sistema openPGP existe un conceptomuy importante, el concepto de armadura. Una armadura es un elemento openPGP (clave, criptograma,firma, anillo de claves...) representado en caracteres ASCII y con unas cadenas de inicio y final predefinidas.Veamos algunos ejemplos:

    -----BEGIN PGP SIGNED MESSAGE-----Hash: {algoritmo de hash}

    {mensaje firmado}

    -----BEGIN PGP SIGNATURE-----Version: {versin}

    {firma}-----END PGP SIGNATURE-----

    ******************************************************

    -----BEGIN PGP MESSAGE-----Version: {versin}

    {mensaje cifrado}-----END PGP MESSAGE-----

    ******************************************************

    -----BEGIN PGP PUBLIC KEY BLOCK-----Version: {versin}

    {clave pblica}-----END PGP PUBLIC KEY BLOCK-----

    Estas estructuras son lo que denominamos armaduras ASCII o ASCII armor. Mediante ese sistema, y entexto plano (que normalmente se representa en ficheros *.asc) podemos transportar fcilmente cualquierelemento openPGP. Hay que saber tambin que existe otro formato denominado MIME/PGP.

    A partir de estas armaduras (que pueden combinarse para obtener, por ejemplo, mensajes encriptados yfirmados) se constituye el anillo de claves o keyring. Existen dos anillos, el de claves pblicas (publickeyring) que contiene, adems de nuestras propias claves pblicas, todas las claves pblicas de otraspersonas que importemos para usar; y el de claves privadas (secret keyring) que contendr nuestras clavesprivadas. En el anillo podemos ver la clave, el nombre, el correo, el ID de clave (KeyID)...

    Cmo?

    PGP1. Abrir el programa PGPkeys

    GPG1. Anillo de claves pblicas: gpg --list-keys2. Anillo de claves privadas: gpg --list-secret-keys

    GPA1. Abrir el programa GPA (Editor del anillo)

    Death Master, 2004 (GPL) Pgina 24

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Generar un par de claves

    Qu?

    Es el momento de generar un par de claves pblica/privada (public/private key pair). Es importanteentender que se trata de un par de claves complementarias a las que se les asigna una utilidad en elcriptosistema. Una vez generado nuestro par de claves, pasar a formar parte de nuestro anillo de claves ypodremos usarlas, exportarlas y modificarlas.

    Hay que mencionar el concepto de passphrase. Al igual que un password es una palabra que protege elacceso a un sistema (contrasea), un passphrase es una frase que protege el uso de la clave privada.Tambin la llamamos contrasea en castellano. Se almacena en formato de hash criptogrfico dentro de lapropia clave.

    A la hora de crear un par de claves, debemos elegir si queremos usar el algoritmo RSA o DH/DSS. Esa esuna eleccin personal y ya conocemos los detalles de cada algoritmo. Yo personalmente eleg RSA, pero lamayora de la gente prefiere DH/DSS (tambin es cierto que se trata del sistema por defecto y poca gente semolesta en personalizar el proceso de generacin).

    Tambin debemos decidir si queremos que nuestra clave sea imperecedera o que caduque en x tiempo.

    Cmo?

    PGP1. Abrir el programa PGPkeys2. Men Keys >> New Key3. Elegimos la opcin Expert Mode4. Introducimos nombre, correo electrnico, y elegimos algoritmo, tamao y fecha de expiracin5. Introducimos por duplicado el passphrase a usar

    GPG1. Ejecutamos el comando gpg --gen-key2. Elegimos el tipo de clave (1-DSA y ELGamal (por defecto); 2-DSA (firmar), 4-RSA (firmar))3. Elegimos el tamao (1024-4096) y confirmamos4. Elegimos la caducidad (nunca, n das, n semanas, n meses, n aos) y confirmamos5. Introducimos nombre y apellidos6. Introducimos la direccin de correo electrnico7. Introducimos un comentario para la clave (opcional)8. Podemos cambiar algn dato o confirmar de forma general la clave9. Introducimos por duplicado el passphrase a usar10.Esperamos a que termine la generacin de entropa para la clave11.*Si es necesario generar una clave de cifrado, ejecutamos el comando gpg --edit-key 12.*Ejecutamos el comando addkey y nos autentificamos mediante el passphrase13.*Elegimos el tipo de clave (2-DSA (firmar); 3-ElGamal (cifrar); 4-RSA (firmar); 5-RSA (cifrar))14.*Elegimos el tamao (1024-4096) y confirmamos15.*Elegimos la caducidad (nunca, n das, n semanas, n meses, n aos) y confirmamos

    GPA1. Abrir el programa GPA (Editor del anillo)2. Men Claves >> Nueva Clave3. Elegimos el algoritmo y el tamao, introducimos el nombre, correo electrnico, comentario

    (opcional), caducidad y el passphrase de la clave por duplicado

    Death Master, 2004 (GPL) Pgina 25

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Cambiar el passphrase

    Qu?

    Quiz en algn momento deseemos poder cambiar el passphrase que seleccionamos en la creacin denuestro par de claves. Con cualquier software compatible con openPGP es posible.

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Key Properties3. Seleccionamos Change Passphrase...4. Nos autentificamos mediante el passphrase e introducimos por duplicado el nuevo passphrase

    GPG1. Ejecutamos el comando gpg --edit-key 2. Ejecutamos el comando passwd y nos autentificamos mediante el passphrase3. Introducimos por duplicado el nuevo passphrase

    GPA1. Abrir el programa GPA (Editor del anillo)2. BDR sobre la clave >> Editar Clave Privada3. Seleccionamos Cambiar Contrasea4. Nos autentificamos mediante el passphrase e introducimos por duplicado el nuevo passphrase

    Consultar el fingerprint

    Qu?

    Cuando queremos aadir a nuestro anillo de claves una clave pblica ajena para ser usada encomunicaciones seguras, debemos poder cerciorarnos de que esa clave pertenece de hecho a esa persona.Para ello existe el fingerprint o huella digital. El fingerprint es el hash de la clave pblica. As, cuandoqueremos obtener la clave pblica de una persona, debemos obtener de esa persona por un medio seguro(preferentemente en persona) el fingerprint hexadecimal de su clave pblica. Luego bajamos su clave de unservidor de claves (ms adelante hablaremos de ello) y comprobamos que el fingerprint coincide (yaconocemos los algoritmos hash y sabemos en qu se basa su seguridad).

    Por ejemplo, este sera el fingerprint de mi clave pblica (KeyID 0xAF9593E1):

    6FAB 9799 C61A A7D2 A409 8A53 6F6F 3938 AF95 93E1

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Key Properties3. Campo Fingerprint (seleccionamos la opcin hexadecimal si no est activada)

    GPG1. Ejecutamos el comando gpg --fingerprint

    GPA1. Abrir el programa GPA (Editor del anillo)2. BID sobre la clave3. Campo detalles, huella dactilar

    Death Master, 2004 (GPL) Pgina 26

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Importar una clave

    Qu?

    Tanto si se trata de una copia de seguridad de nuestras claves privadas como de claves pblicas quedeseamos tener en nuestro anillo de claves, una opcin muy importante es la de poder importar claves dearmaduras ASCII. Existe otro mtodo de importacin de claves, a travs de un servidor de claves, pero lotrataremos ms adelante. Este mtodo es vlido nicamente para importar ficheros *.asc de armadura ASCIIque contenga una o ms clave/s pblica/s y/o privada/s.

    Cmo?

    PGP1. Abrir el programa PGPkeys2. Men Keys >> Import...3. Seleccionamos la opcin Import

    GPG1. Ejecutamos el comando gpg --import

    GPA1. Abrir el programa GPA (Editor del anillo)2. Men Claves >> Importar Claves

    Exportar una clave pblica

    Qu?

    Para poder distribuir nuestra clave pblica y que la gente pueda comunicarse de forma segura con nosotros,debemos poder exportar nuestra clave pblica. Existe otro mtodo de exportacin de claves, a travs de unservidor de claves, pero lo trataremos ms adelante. Este mtodo es vlido nicamente para generar unfichero de armadura ASCII que contenga una o varias claves pblicas.

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Export

    GPG1. Ejecutamos el comando gpg --armor --export

    GPA1. Abrir el programa GPA (Editor del anillo)2. BDR sobre la clave >> Exportar Claves

    Death Master, 2004 (GPL) Pgina 27

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Exportar una clave privada

    Qu?

    Un punto muy importante es la realizacin de copias de seguridad de nuestras claves privadas, de forma queuna eventual prdida de datos importante en nuestro sistema no nos ocasione la prdida total de nuestrasclaves criptogrficas. Supongo que est claro que el perder una clave privada supone perder cualquierfichero o mensaje encriptado a ella... Es importante sealar que ste es el nico mtodo de exportacin declaves privadas. NO es posible exportar claves privadas a un servidor de claves. Este mtodo genera unfichero de armadura ASCII que contiene una o varias claves privadas (segn en qu implementaciones deopenPGP, la exportacin de una clave privada conlleva tambin la pblica).

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Export3. Marcamos la casilla Include Private Key(s)

    GPG1. Ejecutamos el comando gpg --armor --export-secret-keys

    GPA1. Abrir el programa GPA (Editor del anillo)2. BDR sobre la clave >> Copia de Seguridad

    Exportar una clave pblica al Servidor de Claves

    Qu?

    Existen servidores especiales que contienen miles (me atrevera a afirmar que millones) de claves pblicaspara que cualquier persona pueda buscar y descargar a su anillo de claves. Este mtodo facilitaenormemente el intercambio de claves, as como la distribucin de firmas mediante la actualizacin declaves (alguien firma nuestra clave y la sube al servidor, y despus nosotros la actualizamos en nuestroanillo).

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Send To >> Domain Server

    GPG1. Ejecutamos el comando gpg --keyserver --send-key

    GPA1. Abrir el programa GPA (Editor del anillo)2. Men Servidor >> Enviar Claves

    Death Master, 2004 (GPL) Pgina 28

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Buscar una clave en el Servidor de Claves

    Qu?

    Ya sabemos para qu sirve un servidor de claves y cul es su funcionamiento. Igual que podemos colgarnuestra clave pblica para que cualquier usuario la descargue, podemos buscar la clave pblica de cualquierusuario.

    Cmo?

    PGP1. Abrir el programa PGPkeys2. Men Server >> Search...3. Seleccionamos el servidor de claves y las opciones de bsqueda para realizar la query

    GPG1. Ejecutamos el comando gpg --keyserver --search-key

    GPA1. NO soporta la bsqueda de claves

    Importar una clave del Servidor de Claves

    Qu?

    Una vez localizada la clave, podemos descargarla desde el servidor de claves a nuestro anillo de clavespersonal.

    Cmo?

    PGP1. Una vez realizados los pasos de bsqueda del apartado anterior...2. BDR sobre la clave >> Import to Local Keyring

    GPG1. Ejecutamos el comando gpg --keyserver --recv-key

    GPA1. Abrir el programa GPA (Editor del anillo)2. Men Servidor >> Descargar Claves

    Death Master, 2004 (GPL) Pgina 29

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Firmar una clave pblica (firma exportable)

    Qu?

    Es el momento de introducir y explicar un concepto muy importante: la firma digital del sistema PGP. Yahemos comentado y sabemos que en los sistemas openPGP se utiliza un sistema criptogrfico asimtricoque se sirve de dos claves complementarias (pblica y privada). Mucha gente piensa -errneamente- que laclave pblica sirve para encriptar y la privada para desencriptar. NO. Ambas claves son complementarias, ycomo tal ambas pueden ser usadas -y de hecho son usadas- para ambas funciones, de forma que lo queuna encripta, la otra lo desencripta. Qu utilidad nos reporta esto? Pues la firma digital.

    Ms adelante trataremos el problema del cifrado de informacin, pero efectivamente en ese caso el cifradose realiza a la clave pblica para que el destinatario pueda descifrarlo con su clave privada. En el caso de lafirma digital es al revs. Una firma digital (es indiferente si se trata de una clave, un fichero o un correo) es elhash del objeto a firmar encriptado a la clave privada del firmante. As, cualquier persona con la clavepblica del firmante (que debera ser accesible desde un servidor de claves) puede descifrar esecriptograma para obtener el hash, realizar por su cuenta un hash del objeto firmado (obviamente usando elmismo algoritmo hash) y compararlos: si ambos hashes son idnticos, la firma es vlida, en caso contrario lafirma o el objeto han sido manipulados.

    Proceso de firma:

    Men. original

    Mensaje(XyZ) hash Hash Firma Unin

    Men.firmado

    Mensaje(XyZ)

    Hash_Firm(D43A F345)

    Cifrar

    Cl. PrivadaFirma

    (&%$@#)

    Firma(&%$@#)

    Proceso de verificacin:

    Men. firmado

    Mensaje(XyZ)

    Hasheshash Hash_Verif

    (D43A F345)

    Comparacin=

    ConclusinVlida!

    Firma(&%$@#)

    Descifrar

    Cl. PblicaHash_Firm(D43A F345)

    No vlida!

    Este mecanismo de firma digital permite que cualquier persona con nuestra clave pblica (accesible acualquiera) y un sistema openPGP capaz de descifrar el criptograma con ella, realice una comparacin delhash realizado por el firmante y el suyo propio, de forma que pueda autentificar la firma o no.

    Al firmar una clave pblica con nuestra propia clave privada estamos otorgando al usuario de esa clavepblica nuestra confianza a todos los efectos. Este tipo de firmas son exportables, es decir, al exportar (tantoa un fichero como a un servidor de claves) la clave pblica, nuestra firma ir incluida en ella.

    Un sistema de firma digital cumple los siguientes preceptos:

    1. Integridad de la informacin: La informacin firmada no puede ser modificada sin alterar lavalidez de la firma.

    2. Autenticidad del origen del mensaje: Solamente el propietario de la clave privada (y lacapacidad de activarlo mediante el passphrase correcto) es capaz de firmar una informacin.

    3. No repudio del origen: El usuario que ha generado la firma no puede repudiar el mensaje.

    Death Master, 2004 (GPL) Pgina 30

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Sign3. Marcamos la casilla Allow signature to be exported4. Nos autentificamos mediante el passphrase

    GPG1. Ejecutamos el comando gpg --sign-key 2. Seleccionamos la confianza en la clave a firmar (0, 1, 2 3)3. Confirmamos y nos autentificamos mediante el passphrase

    GPA1. Abrir el programa GPA (Editor del anillo)2. BDR sobre la clave >> Firmar Claves3. Nos autentificamos mediante el passphrase

    Firmar una clave pblica (firma NO exportable)

    Qu?

    En esencia se trata del mismo proceso que la firma exportable, con la evidente diferencia de la imposibilidadde exportar estas firmas. Estas firmas son solamente locales, y NO se conservarn al exportar la clavepblica firmada a un fichero o un servidor de claves.

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Sign3. Nos autentificamos mediante el passphrase

    GPG1. Ejecutamos el comando gpg --lsign-key 2. Seleccionamos la confianza en la clave a firmar (0...3)3. Confirmamos y nos autentificamos mediante el passphrase

    GPA1. Abrir el programa GPA (Editor del anillo)2. BDR sobre la clave >> Firmar Claves3. Marcamos la casilla Firmar solo localmente4. Nos autentificamos mediante el passphrase

    Death Master, 2004 (GPL) Pgina 31

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Establecer el grado de confianza en el usuario

    Qu?

    El concepto de confianza funciona localmente, y es un dato que nos sirve para, en procesos de descifrado ocomprobacin de firmas digitales, comprobar en un vistazo el grado de validez de los datos. Existen variosgrados segn la implementacin openPGP. En PGP tenemos tres grados adems de la confianza implcita(slo disponible para pares de claves pblica/privada). En GPG/GPA tenemos cinco grados (desconocida,sin confianza, poca confianza, confianza total, confianza por completo).

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Key Properties3. Graduar el medidor del apartado Trust Model4. *Marcar la casilla Implicit Trust

    GPG1. Ejecutamos el comando gpg --edit-key 2. Ejecutamos el comando trust3. Seleccionamos el nivel de confianza (1...5)

    GPA1. Abrir el programa GPA (Editor del anillo)2. BDR sobre la clave >> Establecer confianza en el usuario3. Seleccionamos el nivel de confianza (1...5)

    Borrar una clave

    Qu?

    Puede que en algn momento queramos borrar una o varias claves pblicas o privadas (porque hayancaducado, porque ya no nos sean tiles...). En tal caso podemos simplemente eliminarlas de nuestro anillode claves local.

    Cmo?

    PGP1. Abrir el programa PGPkeys2. BDR sobre la clave >> Delete3. Confirmamos el proceso

    GPG1. Claves pblicas: gpg --delete-key 2. Claves privadas: gpg --delete-secret-key 3. Pares de claves: gpg --delete-secret-and-public-key 4. Confirmamos el proceso

    GPA1. Abrir el programa GPA (Editor del anillo)2. BDR sobre la clave >> Borrar Claves3. Confirmamos el proceso

    Death Master, 2004 (GPL) Pgina 32

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Encriptacin con el sistema openPGP

    Qu?

    Llegamos a una de las partes ms importantes del sistema PGP. Ya hemos visto durante todos los procesosrelacionados con la clave la importancia de la criptografa asimtrica en PGP, al igual que hemos visto laimportancia de los algoritmos hash en la parte de firmas digitales. Ahora ha llegado el turno de analizar laimportancia de la criptografa simtrica en el sistema PGP.

    Otro de los conceptos errneos ms extendidos sobre PGP es que toda el peso del cifrado y descifradorecae sobre los algoritmos asimtricos (RSA o DH/DSS). Esto es falso, pues en realidad la encriptacin aclaves asimtricas de semejante tamao (1024-4096 bits) es un trabajo computacionalmente pesado, y laencriptacin de grandes ficheros consumira gran cantidad de tiempo. Por otro lado, con lo que sabemossobre criptografa simtrica, es fcil darse cuenta que el principal mtodo de criptoanlisis es la estadsticapor comparacin, y que cuantos ms criptogramas tengamos cifrados a un mismo cdigo, ste ser msvulnerable. As pues, un criptosistema simtrico solamente es seguro cuando adems de usar una clavesuficientemente segura (256 bits), sta es usada una nica vez. Este principio es aplicado a los protocolosinformticos seguros (SHTTP, SSL, SSH...) y tambin al sistema PGP. Veamos cmo:

    Men. original

    Mensaje(ZyX)

    Cifrar

    Cl. K

    Mensaje Cifrado(&!) Men. cifrado

    Generacin de clave simtrica aleatoria

    Mensaje Cifrado(&!)

    Clave Sim. K

    (aleatoria)(aA==)

    Cifrar

    Cl. Pblica #1Clave K Cifradadestinatario #1

    (i{*|)

    Clave K Cifradadestinatario #1

    (i{*|)

    Cifrar

    Cl. Pblica #2

    Destruccin

    Clave K Cifradadestinatario #2

    (@\)

    Clave K Cifradadestinatario #2

    (@\)

    ...

    En primer lugar, se genera una clave simtrica aleatoria (K). Esta clave ha de ser lo ms aleatoria posible,y para ello se genera entropa (capturando datos tan banales como flujo de datos entre dispositivos, red,perifricos...). El algoritmo y tamao de la clave normalmente puede ser elegido por el usuario (tpicamentese usa AES de 256 bits). Usando esta clave K se cifra el mensaje original.

    En segundo lugar se cifra la clave K a la clave pblica de cada uno de los destinatarios del mensaje cifrado,de forma que cada uno de ellos pueda usar su propia clave privada para descifrar la clave de cifrado delmensaje y poder as obtener el mensaje original. Esta parte constituida por la clave K cifrada a distintasclaves pblicas se adjunta al mensaje cifrado y constituye el criptograma.

    Por ltimo, la clave K es destruida de forma segura.

    El mensaje puede estar, adems de encriptado, firmado. Un mensaje cifrado y firmado incluir en elcriptograma adems una parte de firma, constituida por el hash del mensaje original (NO del cifrado)encriptado a la clave privada del firmante.

    Death Master, 2004 (GPL) Pgina 33

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Mensaje Cifrado(&!)

    Clave K Cifradadestinatario #1

    (i{*|)

    Clave K Cifradadestinatario #2

    (@\)

    ...

    Firma($@%#&)

    Al tratarse K de una clave aleatoria de un solo uso, el sistema se considera seguro, y la existencia de lacombinacin de tres tipos de criptosistemas combinados permite una distribucin segura de claves a la vezque una enorme seguridad a la hora de cifrar y firmar mensajes mediante el mtodo descrito.

    Cmo?

    PGP1. Abrir el programa PGPmail2. Seleccionar la opcin Encrypt (segunda empezando por la izquierda)3. Seleccionar el fichero a encriptar4. Arrastrar a la ventana de Recipients los destinatarios del fichero.5. *Podemos opcionalmente marcar alguna casilla si deseamos opciones extra (Text Output, Input

    Is Text, Wipe Original (borra de forma segura el original), Secure Viewer, ConventionalEncryption (encriptacin exclusivamente simtrica), Self Decrypting Archive)

    6. *En caso de firmar adems de cifrar, debemos autentificarnos mediante el passphrase

    GPG1. Ejecutamos el comando gpg --encrypt-files 2. Introducimos los a los que destinamos el fichero

    GPA1. Abrir el programa GPA (Gestor de Archivos)2. Men Abrir >> Archivo3. Seleccionamos la opcin Cifrar4. Seleccionar el fichero a encriptar5. Seleccionamos los destinatarios del fichero

    Death Master, 2004 (GPL) Pgina 34

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Desencriptacin con el sistema openPGP

    Qu?

    Conocido el proceso de cifrado, el proceso de descifrado es el inverso:

    Men. cifrado Men. original

    Mensaje Cifrado(&!)

    Descifrar

    Cl. K

    Mensaje(ZyX)

    Clave K Cifradadestinatario #1

    (i{*|)

    Clave K

    Descifrar

    Cl. Privada #1Clave Sim. K

    (aA==)

    Uno de los destinatarios del mensaje cifrado recibe el criptograma completo y de l extrae el mensaje cifradoy la clave K cifrada a su clave pblica (si no estuviera, ese mensaje no se habra cifrado para l). Mediantesu clave privada -previa autentificacin mediante passphrase- descifra la clave simtrica K. Con la clave K yapuede desencriptar el mensaje cifrado para obtener el mensaje original.

    Cmo?

    PGP1. Abrir el programa PGPmail2. Seleccionar la opcin Decrypt/Verify (tercera empezando por la derecha)3. Seleccionar el fichero a desencriptar4. Nos autentificamos mediante el passphrase

    GPG1. Ejecutamos el comando gpg --decrypt-files 2. Nos autentificamos mediante el passphrase

    GPA1. Abrir el programa GPA (Gestor de Archivos)2. Men Abrir >> Archivo3. Seleccionamos la opcin Descifrar4. Seleccionar el fichero a desencriptar5. Nos autentificamos mediante el passphrase

    Death Master, 2004 (GPL) Pgina 35

  • Criptosistemas Informticos #hackxcrack @ irc.irc-chatpolis.com

    Firma MIME/PGP con el sistema openPGP

    Qu?

    Ya hemos visto cmo funciona el sistema de firmas en openPGP cuando hablamos de la firma de claves. Elproceso para firmar cualquier tipo de mensaje es idntico. Este tipo de firma (MIME/PGP) es usadaprincipalmente para firma y autentificacin de ficheros.

    Cmo?

    PGP1. Abrir el programa PGPmail2. Seleccionar la opcin Sign (tercera empezando por