You are on page 1of 39

INSTITUTO TECNOLGICO DE CD.

VICTORIA

TEORA DE LAS TELECOMUNICACIONES

CSAR IVN MORALES MRQUEZ


07-380-001

CD. VICTORIA, TAM. A 05 DE FEBRERO DE 2009

SEGURIDAD INFORMTICA
La seguridad informtica consiste en asegurar que los recursos del sistema de informacin
(material informtico o programas) de una organizacin sean utilizados de la manera que se
decidi y que el acceso a la informacin all contenida as como su modificacin slo sea posible
a las personas que se encuentren acreditadas y dentro de los lmites de su autorizacin.

Introduccin
Podemos entender como seguridad un estado de cualquier tipo de informacin (informtico o no)
que nos indica que ese sistema est libre de peligro, dao o riesgo. Se entiende como peligro o
dao todo aquello que pueda afectar su funcionamiento directo o los resultados que se obtienen
del mismo. Para la mayora de los expertos el concepto de seguridad en la informtica es utpico
porque no existe un sistema 100% seguro. Para que un sistema se pueda definir como seguro
debe tener estas cuatro caractersticas:

Integridad: la informacin slo puede ser modificada por quien est autorizado y de
manera controlada.

Confidencialidad: la informacin slo debe ser legible para los autorizados.

Disponibilidad: debe estar disponible cuando se necesita.

Irrefutabilidad (no repudio): el uso y/o modificacin de la informacin por parte de un


usuario debe ser irrefutable, es decir, que el usuario no puede negar dicha accin.

Dependiendo de las fuentes de amenaza, la seguridad puede dividirse en seguridad fsica,


seguridad ambiental y seguridad lgica.
En estos momentos la seguridad informtica es un tema de dominio obligado por cualquier
usuario de la internet, para no permitir que su informacin sea comprometida.

Trminos relacionados con la seguridad informtica

Activo: recurso del sistema de informacin o relacionado con ste, necesario para que
la organizacin funcione correctamente y alcance los objetivos propuestos.

Amenaza: es un evento que puede desencadenar un incidente en la organizacin,


produciendo daos materiales o prdidas inmateriales en sus activos.

Impacto: medir la consecuencia al materializarse una amenaza.

Riesgo: posibilidad de que se produzca un impacto determinado en un activo, en un


dominio o en toda la organizacin.

Vulnerabilidad: posibilidad de ocurrencia de la materializacin de una amenaza sobre


un activo.

Ataque: evento, exitoso o no, que atenta sobre el buen funcionamiento del sistema.

Desastre o contingencia: interrupcin de la capacidad de acceso a informacin y


procesamiento de la misma a travs de computadoras necesarias para la operacin
normal de un negocio.

Aunque a simple vista se puede entender que un riesgo y una vulnerabilidad se podran englobar
un mismo concepto, una definicin ms informal denota la diferencia entre riesgo y
vulnerabilidad, de modo que se debe la vulnerabilidad est ligada a una amenaza y el riesgo a
un impacto.

Objetivos
Los activos son los elementos que la seguridad informtica tiene como objetivo proteger. Son
tres elementos que conforman los activos:
Informacin
Es el objeto de mayor valor para una organizacin, el objetivo es el resguardo de la
informacin, independientemente del lugar en donde se encuentre registrada, en algn
medio electrnico o fsico.
Equipos que la soportan.
Software, hardware y organizacin.
Usuarios
Individuos que utilizan la estructura tecnolgica y de comunicaciones que manejan la
informacin.

Anlisis de riesgos
El activo ms importante que se posee es la informacin y, por lo tanto, deben existir tcnicas
que la aseguren, ms all de la seguridad fsica que se establezca sobre los equipos en los
cuales se almacena. Estas tcnicas las brinda la seguridad lgica que consiste en la aplicacin
de barreras y procedimientos que resguardan el acceso a los datos y slo permiten acceder a
ellos a las personas autorizadas para hacerlo.
Existe un viejo dicho en la seguridad informtica que dicta: "lo que no est permitido debe estar
prohibido" y sta debe ser la meta perseguida.
Los medios para conseguirlo son:
1. Restringir el acceso (de personas de la organizacin y de las que no lo son) a los
programas y archivos.
2. Asegurar que los operadores puedan trabajar pero que no puedan modificar los
programas ni los archivos que no correspondan (sin una supervisin minuciosa).

3. Asegurar que se utilicen los datos, archivos y programas correctos en/y/por el


procedimiento elegido.
4. Asegurar que la informacin transmitida sea la misma que reciba el destinatario al cual
se ha enviado y que no le llegue a otro.
5. Asegurar que existan sistemas y pasos de emergencia alternativos de transmisin entre
diferentes puntos.
6. Organizar a cada uno de los empleados por jerarqua informtica, con claves distintas y
permisos bien establecidos, en todos y cada uno de los sistemas o aplicaciones
empleadas.
7. Actualizar constantemente las contraseas de accesos a los sistemas de cmputo.

Las amenazas
Una vez que la programacin y el funcionamiento de un dispositivo de almacenamiento (o
transmisin) de la informacin se consideran seguras, todava deben ser tenidos en cuenta las
circunstancias "no informticas" que pueden afectar a los datos, las cuales son a menudo
imprevisibles o inevitables, de modo que la nica proteccin posible es la redundancia (en el
caso de los datos) y la descentralizacin -por ejemplo mediante estructura de redes- (en el caso
de las comunicaciones).
Estos fenmenos pueden ser causados por:

El usuario: causa del mayor problema ligado a la seguridad de un sistema informtico


(porque no le importa, no se da cuenta o a propsito).

Programas maliciosos: programas destinados a perjudicar o a hacer un uso ilcito de los


recursos del sistema. Es instalado (por inatencin o maldad) en el ordenador abriendo
una puerta a intrusos o bien modificando los datos. Estos programas pueden ser un virus
informtico, un gusano informtico, un troyano, una bomba lgica o un programa espa o
spyware.

Un intruso: persona que consigue acceder a los datos o programas de los cuales no
tiene acceso permitido (cracker, defacer, script kiddie o script boy, viruxer, etc.).

Un siniestro (robo, incendio, por agua): una mala manipulacin o una mal intencin
derivan a la prdida del material o de los archivos.

El personal interno de sistemas. Las pujas de poder que llevan a disociaciones entre los
sectores y soluciones incompatibles para la seguridad informtica.

Tcnicas de aseguramiento del sistema

Codificar la informacin: criptologa, criptografa y criptociencia, contraseas difciles de


averiguar a partir de datos personales del individuo.

Vigilancia de red. Zona desmilitarizada

Tecnologas repelentes o protectoras: cortafuegos, sistema de deteccin de intrusos antispyware, antivirus, llaves para proteccin de software, etc. Mantener los sistemas de
informacin con las actualizaciones que ms impacten en la seguridad.

Consideraciones de software
Tener instalado en la mquina nicamente el software necesario reduce riesgos. As mismo tener
controlado el software asegura la calidad de la procedencia del mismo (el software obtenido de
forma ilegal o sin garantas aumenta los riesgos). En todo caso un inventario de software
proporciona un mtodo correcto de asegurar la reinstalacin en caso de desastre. El software
con mtodos de instalacin rpidos facilita tambin la reinstalacin en caso de contingencia.
Existe software que es conocido por la cantidad de agujeros de seguridad que introduce. Se
pueden buscar alternativas que proporcionen iguales funcionalidades pero permitiendo una
seguridad extra.

Consideraciones de una red


Los puntos de entrada en la red son generalmente el correo, las pginas web y la entrada de
ficheros desde discos, o de ordenadores ajenos, como porttiles.
Mantener al mximo el nmero de recursos de red slo en modo lectura, impide que
ordenadores infectados propaguen virus. En el mismo sentido se pueden reducir los permisos de
los usuarios al mnimo.
Se pueden centralizar los datos de forma que detectores de virus en modo batch puedan trabajar
durante el tiempo inactivo de las mquinas.
Controlar y monitorizar el acceso a internet puede detectar, en fases de recuperacin, cmo se
ha introducido el virus.

Cmo implementar una poltica de seguridad


Generalmente, la seguridad de los sistemas informticos se concentra en garantizar el derecho a
acceder a datos y recursos del sistema configurando los mecanismos de autentificacin y control
que aseguran que los usuarios de estos recursos slo posean los derechos que se les han
otorgado.

Los mecanismos de seguridad pueden sin embargo, causar inconvenientes a los usuarios. Con
frecuencia, las instrucciones y las reglas se vuelven cada vez ms complicadas a medida que la
red crece. Por consiguiente, la seguridad informtica debe estudiarse de modo que no evite que
los usuarios desarrollen usos necesarios y as puedan utilizar los sistemas de informacin en
forma segura.
Por esta razn, uno de los primeros pasos que debe dar una compaa es definir una poltica de
seguridad que pueda implementar en funcin a las siguientes cuatro etapas:

Identificar las necesidades de seguridad y los riesgos informticos que enfrenta la


compaa as como sus posibles consecuencias

Proporcionar una perspectiva general de las reglas y los procedimientos que deben
implementarse para afrontar los riesgos identificados en los diferentes departamentos de
la organizacin

Controlar y detectar las vulnerabilidades del sistema de informacin, y mantenerse


informado acerca de las falencias en las aplicaciones y en los materiales que se usan

Definir las acciones a realizar y las personas a contactar en caso de detectar una
amenaza

La poltica de seguridad comprende todas las reglas de seguridad que sigue una organizacin
(en el sentido general de la palabra). Por lo tanto, la administracin de la organizacin en
cuestin debe encargarse de definirla, ya que afecta a todos los usuarios del sistema.
En este sentido, no son slo los administradores de informtica los encargados de definir los
derechos de acceso sino sus superiores. El rol de un administrador de informtica es el de
asegurar que los recursos de informtica y los derechos de acceso a estos recursos coincidan
con la poltica de seguridad definida por la organizacin.
Es ms, dado que el/la administrador/a es la nica persona que conoce perfectamente el
sistema, deber proporcionar informacin acerca de la seguridad a sus superiores,
eventualmente aconsejar a quienes toman las decisiones con respecto a las estrategias que
deben implementarse, y constituir el punto de entrada de las comunicaciones destinadas a los
usuarios en relacin con los problemas y las recomendaciones de seguridad.
La seguridad informtica de una compaa depende de que los empleados (usuarios) aprendan
las reglas a travs de sesiones de capacitacin y de concientizacin. Sin embargo, la seguridad
debe ir ms all del conocimiento de los empleados y cubrir las siguientes reas:

Un mecanismo de seguridad fsica y lgica que se adapte a las necesidades de la


compaa y al uso de los empleados

Un procedimiento para administrar las actualizaciones

Una estrategia de realizacin de copias de seguridad (backup) planificada


adecuadamente

Un plan de recuperacin luego de un incidente

Un sistema documentado actualizado

Las causas de inseguridad


Generalmente, la inseguridad se puede dividir en dos categoras:

Un estado de inseguridad activo; es decir, la falta de conocimiento del usuario acerca


de las funciones del sistema, algunas de las cuales pueden ser dainas para el sistema
(por ejemplo, no desactivar los servicios de red que el usuario no necesita)

Un estado de inseguridad pasivo; es decir, la falta de conocimiento de las medidas de


seguridad disponibles (por ejemplo, cuando el administrador o usuario de un sistema no
conocen los dispositivos de seguridad con los que cuentan)

Algunas afirmaciones errneas comunes acerca de la seguridad

Mi sistema no es importante para un cracker. Esta afirmacin se basa en la idea de que


no introducir contraseas seguras en una empresa no entraa riesgos pues quin va a
querer obtener informacin ma?. Sin embargo, dado que los mtodos de contagio se
realizan por medio de programas automticos, desde unas mquinas a otras, estos no
distinguen buenos de malos, interesantes de no interesantes, etc. Por tanto abrir
sistemas y dejarlos sin claves es facilitar la vida a los virus.

Estoy protegido pues no abro archivos que no conozco. Esto es falso, pues existen
mltiples formas de contagio, adems los programas realizan acciones sin la supervisin
del usuario poniendo en riesgo los sistemas.

Como tengo antivirus estoy protegido. En general los programas antivirus no son
capaces de detectar todas las posibles formas de contagio existentes, ni las nuevas que
pudieran aparecer conforme los ordenadores aumenten las capacidades de
comunicacin, adems los antivirus son vulnerables a desbordamientos de bfer que
hacen que la seguridad del sistema operativo se vea ms afectada an.

Como dispongo de un firewall no me contagio. Esto nicamente proporciona una limitada


capacidad de respuesta. Las formas de infectarse en una red son mltiples. Unas
provienen directamente de accesos al sistema (de lo que protege un firewall) y otras de
conexiones que se realizan (de las que no me protege). Emplear usuarios con altos
privilegios para realizar conexiones puede entraar riesgos, adems los firewalls de
aplicacin (los ms usados) no brindan proteccin suficiente contra el spoofing.

Tengo un servidor web cuyo sistema operativo es un unix actualizado a la fecha: puede
que este protegido contra ataques directamente hacia el ncleo, pero si alguna de las
aplicaciones web (php, perl, cpanel, etc.) Est desactualizada, un ataque sobre algn
script de dicha aplicacin puede permitir que el atacante abra una shell y por ende
ejecutar comandos en el unix.

Organismos oficiales de seguridad informtica


Existen organismos oficiales encargados de asegurar servicios de prevencin de riesgos y
asistencia a los tratamientos de incidencias, tales como el cert/cc (computer emergency
response team coordination center) del sei (software engineering institute) de la carnegie mellon
university el cual es un centro de alerta y reaccin frente a los ataques informticos, destinados a
las empresas o administradores, pero generalmente estas informaciones son accesibles a todo
el mundo.

CARACTERSTICAS DE LA SEGURIDAD INFORMTICA


Integridad: se refiere a la validez y consistencia de los elementos de informacin
almacenados y procesados en un sistema informtico.
Basndose en este principio, las herramientas de seguridad informtica deben asegurar que
los procesos de actualizacin estn sincronizados y no se dupliquen, de forma que todos los
elementos del sistema manipulen adecuadamente los mismos datos.
Este principio es particularmente importante en sistemas descentralizados, es decir, aquellos
en los que diferentes usuarios, computadores y procesos comparten la misma informacin.
Confidencialidad: se refiere a la privacidad de los elementos de informacin almacenados y
procesados en un sistema informtico.
Basndose en este principio, las herramientas de seguridad informtica deben proteger al
sistema de invasiones, intrusiones y accesos, por parte de personas o programas no
autorizados.
Este principio es particularmente importante en sistemas distribuidos, es decir, aquellos en
los que usuarios, computadores y datos residen en localidades diferentes, pero estn fsica y
lgicamente interconectados.
Disponibilidad: se refiere a la continuidad de acceso a los elementos de informacin
almacenados y procesados en un sistema informtico.

Basndose en este principio, las herramientas de seguridad informtica deben reforzar la


permanencia del sistema informtico, en condiciones de actividad adecuadas para que los
usuarios accedan a los datos con la frecuencia y dedicacin que requieran.
Este principio es particularmente importante en sistemas informticos cuyo compromiso con
el usuario, es prestar servicio permanente.
Irrefutabilidad (no repudio): el no repudio ofrece proteccin a un usuario o entidad frente a
que otro usuario niegue posteriormente que en realidad se realiz cierta transaccin.

CRIPTOGRAFA
La criptografa (del griego krypto, oculto, y graphos, escribir, literalmente
escritura oculta) es el arte o ciencia de cifrar y descifrar informacin mediante tcnicas
especiales y se emplea frecuentemente para permitir un intercambio de mensajes que slo
puedan ser leidos por personas a las que van dirigidos y que poseen los medios para
descifrarlos.
Con ms precisin, cuando se habla de esta rea de conocimiento como ciencia, se debera
hablar de criptologa, que a su vez engloba tanto las tcnicas de cifrado, es decir, la criptografa
propiamente dicha, como sus tcnicas complementarias, entre las cuales se incluye el
criptoanlisis, que estudia mtodos empleados para romper textos cifrados con objeto de
recuperar la informacin original en ausencia de las claves.

Finalidad
La finalidad de la criptografa es, en primer lugar, garantizar el secreto en la comunicacin entre
dos entidades (personas, organizaciones, etc.) y, en segundo lugar, asegurar que la informacin
que se enva es autntica en un doble sentido: que el remitente sea realmente quien dice ser y
que el contenido del mensaje enviado, habitualmente denominado criptograma, no haya sido
modificado en su trnsito.
Otro mtodo utilizado para ocultar el contenido de un mensaje es ocultar el propio mensaje en un
canal de informacin, pero en puridad, esta tcnica no se considera criptografa, sino
esteganografa. Por ejemplo, mediante la esteganografa se puede ocultar un mensaje en un
canal de sonido, una imagen o incluso en reparto de los espacios en blanco usados para
justificar un texto. La esteganografa no tiene por qu ser un mtodo alternativo a la criptografa,

siendo comn que ambos mtodos se empleen de forma simultnea para dificultar an ms la
labor del criptoanalista.
En la actualidad, la criptografa no slo se usa para comunicar informacin de forma segura
ocultando su contenido a posibles fisgones. Una de las ramas de la criptografa que ms ha
revolucionado el panorama actual de las tecnologas informticas es el de la firma digital:
tecnologa que busca asociar al emisor de un mensaje con su contenido de forma que aquel no
pueda repudiarlo posteriormente.

Conceptos
En la jerga de la criptografa, la informacin original que debe protegerse se denomina texto en
claro o texto plano. El cifrado es el proceso de convertir el texto plano en un galimatas ilegible,
denominado texto cifrado o criptograma. Por lo general, la aplicacin concreta del algoritmo de
cifrado (tambin llamado cifra) se basa en la existencia de una clave: informacin secreta que
adapta el algoritmo de cifrado para cada uso distinto. Cifra es una antigua palabra arbiga para
designar el nmero cero; en la Antigedad, cuando Europa empezaba a cambiar del sistema de
numeracin romano al arbigo, se desconoca el cero, por lo que este resultaba misterioso, de
ah probablemente que cifrado signifique misterioso.
Las dos tcnicas ms sencillas de cifrado, en la criptografa clsica, son la sustitucin (que
supone el cambio de significado de los elementos bsicos del mensaje -las letras, los dgitos o
los smbolos-) y la trasposicin (que supone una reordenacin de los mismos); la gran mayora
de las cifras clsicas son combinaciones de estas dos operaciones bsicas.
El descifrado es el proceso inverso que recupera el texto plano a partir del criptograma y la clave.
El protocolo criptogrfico especifica los detalles de cmo se utilizan los algoritmos y las claves (y
otras operaciones primitivas) para conseguir el efecto deseado. El conjunto de protocolos,
algoritmos de cifrado, procesos de gestin de claves y actuaciones de los usuarios, es lo que
constituyen en conjunto un criptosistema, que es con lo que el usuario final trabaja e interacta.
Existen dos grandes grupos de cifras: los algoritmos que usan una nica clave tanto en el
proceso de cifrado como en el de descifrado, y los que emplean una clave para cifrar mensajes y
una clave distinta para descifrarlos. Los primeros se denominan cifras simtricas, de clave
simtrica o de clave privada, y son la base de los algoritmos de cifrado clsico. Los segundos se
denominan cifras asimtricas, de clave asimtrica o de clave pblica y forman el ncleo de las
tcnicas de cifrado modernas.
En el lenguaje cotidiano, la palabra cdigo se usa de forma indistinta con cifra. En la jerga de la
criptografa, sin embargo, el trmino tiene un uso tcnico especializado: los cdigos son un

mtodo de criptografa clsica que consiste en sustituir unidades textuales ms o menos largas o
complejas, habitualmente palabras o frases, para ocultar el mensaje; por ejemplo, "cielo azul"
podra significar "atacar al amanecer". Por el contrario, las cifras clsicas normalmente sustituyen
o reordenan los elementos bsicos del mensaje -letras, dgitos o smbolos-; en el ejemplo
anterior, "rcnm arcteeaal aaa" sera un criptograma obtenido por transposicin. Cuando se usa
una tcnica de cdigos, la informacin secreta suele recopilarse en un libro de cdigos.
Con frecuencia los procesos de cifrado y descifrado se encuentran en la literatura como
encriptado y desencriptado, aunque ambos son neologismos errneos -anglicismos de los
trminos ingleses encrypt y decrypt- todava sin reconocimiento acadmico. Hay quien hace
distincin entre cifrado/descifrado y encriptado/desencriptado segn estn hablando de
criptografa simtrica o asimtrica, pero la realidad es que la mayora de los expertos
hispanohablantes prefieren evitar ambos neologismos hasta el punto de que el uso de los
mismos llega incluso a discernir a los aficionados y novatos en la materia de aquellos que han
adquirido ms experiencia y profundidad en la misma.

Historia de la criptografa
La historia de la criptografa se remonta a miles de aos. Hasta dcadas recientes, ha sido la
historia de la criptografa clsica - los mtodos de cifrado que usan papel y lpiz, o quizs ayuda
mecnica sencilla. A principios del siglo XX, la invencin de mquinas mecnicas y
electromecnicas complejas, como la mquina de rotores Enigma, proporcionaron mtodos de
cifrado ms sofisticados y eficientes; y la posterior introduccin de la electrnica y la
computacin ha permitido sistemas elaborados que siguen teniendo gran complejidad.
La evolucin de la criptografa ha ido de la mano de la evolucin del criptoanlisis - el arte de
"romper" los cdigos y los cifrados. Al principio, el descubrimiento y aplicacin del anlisis de
frecuencias a la lectura de las comunicaciones cifradas ha cambiado en ocasiones el curso de la
historia. De esta manera, el telegrama Zimmermann provoc que Estados Unidos entrara en la
Primera Guerra Mundial; y la lectura, por parte de los Aliados, de los mensajes cifrados de la
Alemania nazi, puede haber acortado la Segunda Guerra Mundial hasta dos aos.
Hasta los aos 70, la criptografa segura era dominio casi exclusivo de los gobiernos. Desde
entonces, dos sucesos la han colocado de lleno en el dominio pblico: la creacin de un
estndar de cifrado pblico (DES); y la invencin de la criptografa asimtrica.

Criptografa clsica
El uso ms antiguo conocido de la criptografa se halla en jeroglficos no estndares tallados en
monumentos del Antiguo Egipto (hace ms de 4500 aos). Sin embargo, no se piensa que sean

intentos serios de comunicacin secreta, sino intentos de conseguir misterio, intriga o incluso
diversin para el espectador letrado. Son ejemplos de otros usos de la criptografa, o de algo que
se le parece. Ms tarde, eruditos hebreos hicieron uso de sencillos cifrados por sustitucin
monoalfabticos (como el cifrado Atbash), quizs desde el 500 al 600 adC. La criptografa tiene
una larga tradicin en las escrituras religiosas que podran ofender a la cultura dominante o a las
autoridades polticas. Quizs el caso ms famoso es el 'Nmero de la bestia', del libro del
Apocalipsis en el Nuevo Testamento cristiano. El '666' puede ser una forma criptogrfica (es
decir, cifrada) de ocultar una referencia peligrosa; muchos expertos creen que es una referencia
oculta al Imperio Romano, o ms probablemente al propio emperador Nern (y as a las polticas
persecutorias romanas), que sera entendida por los iniciados (los que 'tenan la clave del
entendimiento'), y sin embargo sera segura o al menos negable (y por tanto 'menos' peligrosa) si
atraa la atencin de las autoridades. Al menos para las escrituras ortodoxas cristianas, casi toda
esta necesidad de ocultacin desapareci con la conversin y adopcin del cristianismo como
religin oficial del Imperio por parte del emperador Constantino.
Se dice que los griegos de la poca clsica conocan el cifrado (por ejemplo, se dice que los
militares espartanos utilizaban el cifrado por transposicin de la escitala). Herdoto nos habla de
mensajes secretos ocultos fsicamente detrs de la cera en tablas de madera, o como tatuajes
en la cabeza de un esclavo, bajo el cabello, aunque esto no son ejemplos verdaderos de
criptografa, ya que el mensaje, una vez conocido, es legible directamente; esto se conoce como
esteganografa. Los romanos s saban algo de criptografa con toda seguridad (por ejemplo, el
cifrado Csar y sus variaciones). Hay una mencin antigua a un libro sobre criptografa militar
romana (especialmente la de Julio Csar); desafortunadamente, se ha perdido.
En India tambin se conoca la criptografa. El Kama Sutra la recomienda como tcnica para que
los

amantes

se

comuniquen

sin

ser

descubiertos.

Criptografa medieval
Fue probablemente el anlisis textual del Corn, de motivacin religiosa, lo que llev a la
invencin de la tcnica del anlisis de frecuencias para romper los cifrados por sustitucin
monoalfabticos, en algn momento alrededor del ao 1000. Fue el avance criptoanaltico ms
importante hasta la Segunda Guerra Mundial. Esencialmente, todos los cifrados quedaron
vulnerables a esta tcnica criptoanaltica hasta la invencin del cifrado polialfabtico por Leon
Battista Alberti (1465), y muchos lo siguieron siendo desde entonces.
La criptografa se hizo todava ms importante (secretamente) como consecuencia de la
competicin poltica y la revolucin religiosa. Por ejemplo, en Europa, durante el Renacimiento,

ciudadanos de varios estados italianos, incluidos los Estados Pontificios y la Iglesia Catlica,
fueron responsables de una rpida proliferacin de tcnicas criptoanalticas, de las cuales muy
pocas reflejaban un entendimiento (o siquiera el conocimiento) del avance de Alberti. Los
cifrados avanzados, incluso despus de Alberti, no eran tan avanzados como afirmaban sus
inventores/desarrolladores/usuarios (y probablemente ellos mismos crean); puede que este
sobre optimismo sea algo inherente a la criptografa, ya que entonces y hoy en da es
fundamentalmente difcil saber realmente cmo de vulnerable es un sistema. En ausencia del
conocimiento, son comunes las conjeturas y esperanzas, como es de esperar.
La criptografa, el criptoanlisis y la traicin cometida por agentes y mensajeros en la
conspiracin de Babington, durante el reinado de la reina Isabel I de Inglaterra, provocaron la
ejecucin de Mara, reina de los escoceses. Un mensaje cifrado de la poca de el hombre de la
mscara de hierro (descifrado poco antes del ao 1900 por tienne Bazeries) ha arrojado algo
de luz (no definitiva, lamentablemente) sobre la identidad real de ese prisionero legendario y
desafortunado. La criptografa y su mala utilizacin estuvieron implicadas en la conspiracin que
condujo a la ejecucin de Mata Hari y en la confabulacin que provoc la ridcula condena y
encarcelamiento de Dreyfus, ambos hechos acaecidos a principios del siglo XX.
Afortunadamente, los criptgrafos tambin jugaron su papel para exponer las maquinaciones que
provocaron los problemas de Dreyfus; Mata Hari, en cambio, fue fusilada.
Fuera del Medio Oriente y Europa, la criptografa permaneci comparativamente
subdesarrollada. En Japn no se utiliz la criptografa hasta 1510, y las tcnicas avanzadas no
se conocieron hasta la apertura del pas hacia occidente en los aos 1860.

Criptografa desde 1800 hasta la Segunda Guerra Mundial


Aunque la criptografa tiene una historia larga y compleja, hasta el siglo XIX no desarroll nada
ms que soluciones ad hoc para el cifrado y el criptoanlisis (la ciencia que busca debilidades en
los criptosistemas). Ejemplos de lo ltimo son el trabajo de Charles Babbage, en la poca de la
Guerra de Crimea, sobre el criptoanlisis matemtico de los cifrados polialfabticos,
redescubierto y publicado algo despus por el prusiano Fiedrich Kasiski. En esa poca, el
conocimiento de la criptografa consista normalmente en reglas generales averiguadas con
dificultad. Edgar Allan Poe desarroll mtodos sistemticos para resolver cifrados en los aos
1840. Concretamente, coloc un anuncio de sus capacidades en el peridico de Filadelfia
Alexander's Weekly (Express) Messenger, invitando al envo de cifrados, que l proceda a
resolver. Su xito cre excitacin entre el pblico durante unos meses. Ms tarde escribi un

ensayo sobre los mtodos criptogrficos que resultaron tiles para descifrar los cdigos
alemanes empleados durante la Primera Guerra Mundial.
Proliferaron mtodos matemticos en la poca justo anterior a la Segunda Guerra Mundial
(principalmente con la aplicacin, por parte de William F. Friedman, de las tcnicas estadsticas
al desarrollo del criptoanlisis y del cifrado, y la rotura inicial de Marian Rejewski de la versin del
Ejrcito Alemn del sistema Enigma). Tanto la criptografa como el criptoanlisis se han hecho
mucho ms matemticas desde la Segunda Guerra Mundial. Aun as, ha hecho falta la
popularizacin de los ordenadores y de Internet como medio de comunicacin para llevar la
criptografa efectiva al uso comn por alguien que no sea un gobierno nacional u organizaciones
de tamao similar.

Criptografa de la Segunda Guerra Mundial


En la Segunda Guerra Mundial, las mquinas de cifrado mecnicas y electromecnicas se
utilizaban extensamente, aunque all donde estas mquinas eran poco prcticas los
sistemas manuales continuaron en uso. Se hicieron grandes avances en la rotura de cifrados,
todos en secreto. La informacin acerca de esta poca ha empezado a desclasificarse al llegar a
su fin el periodo de secreto britnico de 50 aos, al abrirse lentamente los archivos
estadounidenses y al irse publicando diversas memorias y artculos.
Los alemanes hicieron gran uso de diversas variantes de una mquina de rotores
electromecnica llamada Enigma. El matemtico Marian Rejewski, de la Oficina de Cifrado
polaca, reconstruy en diciembre de 1932 la mquina Enigma del ejrcito alemn, utilizando la
matemtica y la limitada documentacin proporcionada por el capitn Gustave Bertrand, de la
inteligencia militar francesa. Este fue el mayor avance del criptoanlisis en ms de mil aos.
Rejewsky y sus colegas de la Oficina de Cifrado, Jerzy Rzycki y Henryk Zygalski, continuaron
desentraando la Enigma y siguiendo el ritmo de la evolucin de los componentes de la mquina
y los procedimientos de cifrado. Al irse deteriorando los recursos financieros de Polonia por los
cambios introducidos por los alemanes, y al irse avecinando la guerra, la Oficina de Cifrado, bajo
rdenes del estado mayor polaco, presentaron a representantes de la inteligencia francesa y
britnica los secretos del descifrado de la mquina Enigma, el 25 de julio de 1939, en Varsovia.
Poco despus de que estallara la Segunda Guerra Mundial el 1 de septiembre de 1939, el
personal clave de la Oficina de Cifrado fue evacuado hacia el sureste; el 17 de septiembre, tras
la entrada de la Unin Sovitica en el este de Polonia, cruzaron Rumana. Desde all alcanzaron
Pars, en Francia; en la estacin de inteligencia polaco-francesa PC Bruno, cerca de Pars,
continuaron rompiendo la Enigma, colaborando con los criptlogos britnicos de Bletchley Park,

que se haban puesto al da con el tema. Con el tiempo, los criptlogos britnicos en los que
se incluan lumbreras como Gordon Welchman y Alan Turing, el fundador conceptual de la
computacin moderna hicieron progresar sustancialmente la escala y tecnologa del descifrado
Enigma.
El 19 de abril de 1945 se orden a los oficiales superiores britnicos que nunca deban revelar
que se haba roto el cdigo de la mquina Enigma alemana, porque esto le dara la oportunidad
al enemigo de decir que "no fueron vencidos justa y satisfactoriamente".
Los criptgrafos de la Armada estadounidense (en cooperacin con criptgrafos britnicos y
holandeses a partir de 1940) rompieron varios sistemas criptogrficos de la Armada japonesa. La
rotura de uno de ellos, el JN-25, condujo a la clebre victoria estadounidense de la Batalla de
Midway. Un grupo del ejrcito estadounidense, el SIS, consigui romper el sistema criptogrfico
diplomtico japons de alta seguridad (una mquina electromecnica llamada Prpura por los
estadounidenses) antes incluso del comienzo de la Segunda Guerra Mundial. Los
estadounidenses llamaron a la inteligencia derivada del criptoanlisis, quizs en especial la
derivada de la mquina Prpura, como Magic (Magia). Finalmente los britnicos se decidieron
por Ultra para la inteligencia derivada del criptoanlisis, en especial la derivada del trfico de
mensajes cifrados con las diversas Enigmas. Un trmino britnico anterior fue para Ultra fue
Boniface.
Los militares alemanes tambin desarrollaron varios intentos de implementar mecnicamente la
libreta de un solo uso. Bletchley Park los llam cifrados Fish, y Max Newman y sus colegas
disearon e implementaron el primer ordenador electrnico digital programable del mundo,
Colossus, para ayudarles con el criptoanlisis. La Oficina de Asuntos Exteriores alemana
empez a usar la libreta de un solo uso en 1919; parte de este trfico fue ledo en la Segunda
Guerra Mundial como resultado de la recuperacin de material importante en Sudamrica que
fue desechado con poco cuidado por un mensajero alemn.
La Oficina de Asuntos Exteriores japonesa utiliz un sistema elctrico lgico basado en
uniselectores (llamado Prpura por EEUU), y tambin utiliz varias mquinas similares para los
agregados de algunas embajadas japonesas. Una de estas recibi el nombre de Mquina M
por EEUU, y otra fue apodada Red. Todas fueron rotas en mayor o menor grado por los
aliados.
Las mquinas de cifrado aliadas utilizadas en la Segunda Guerra Mundial incluan la Typex
britnica y la SIGABA estadounidense; ambos eran diseos de rotores electromecnicos
similares en espritu a la Enigma, aunque con mejoras importantes. No se tiene constancia de
que ninguna de ellas fuera rota durante la guerra. Los polacos utilizaron la mquina Lacida, pero

se demostr que era poco segura y se cancel su uso. Las tropas de campo utilizaron las
familias M-209 y M-94. Los agentes SOE utilizaron inicialmente cifrados de poema (las claves
eran poemas memorizados), pero ms avanzada la guerra empezaron a utilzar libretas de un
solo uso.

Criptografa moderna
Shannon
La era de la criptografa moderna comienza realmente con Claude Shannon, que podra decirse
que es el padre de la criptografa matemtica. En 1949 public el artculo Communication Theory
of Secrecy Systems en la Bell System Technical Journal, y poco despus el libro Mathematical
Theory of Communication, con Warren Weaver. Estos trabajos, junto con los otros que public
sobre la teora de la informacin y la comunicacin, establecieron una slida base terica para la
criptografa y el criptoanlisis. Y, a la vez, la criptografa desapareci de la escena para quedarse
dentro de las organizaciones gubernamentales secretas como la NSA. Muy pocos trabajos se
hicieron pblicos hasta mediados de los 70, cuando todo cambi.
Un estndar de cifrado
A mediados de los 70 se vivieron dos importantes avances pblicos (es decir, no secretos). El
primero fue la publicacin del borrador del Data Encryption Standard en el Registro Federal
estadounidense el 17 de marzo de 1975. La propuesta fue enviada por IBM, por invitacin de la
Oficina Nacional de Estndares (ahora NIST), en un esfuerzo por desarrollar sistemas de
comunicacin electrnica segura para las empresas como los bancos y otras organizaciones
financieras grandes. Tras asesoramiento y ciertas modificaciones por parte de la NSA, fue
adoptado y publicado como un Federal Information Processing Standard en 1977 (actualmente el
FIPS 46-3). El DES fue el primer cifrado accesible pblicamente que fue bendecido por una
agencia nacional como la NSA. La publicacin de sus especificaciones por la NBS estimul una
explosin del inters pblico y acadmico por la criptografa.
DES fue suplantado oficialmente por el Advanced Encryption Standard (AES) en 2001, cuando el
NIST anunci el FIPS 197. Tras una competicin abierta, el NIST seleccion el Rijndael, enviado
por dos criptgrafos belgas, para convertirse en el AES. El DES, y otras variantes ms seguras
(como el Triple DES; ver FIPS 46-3), todava se utilizan hoy en da, y se han incorporado en
muchos estndares nacionales y de organizaciones. Sin embargo, se ha demostrado que el
tamao de su clave, 56 bits, es insuficiente ante ataques de fuerza bruta (un ataque as, llevado
a cabo por el grupo pro libertades civiles digitales Electronic Frontier Foundation en 1997, tuvo
xito en 56 horas - la historia se cuenta en Cracking DES, publicado por O'Reilly Associates).

Como resultado, hoy en da el uso sin ms del cifrado DES es sin duda inseguro para los nuevos
diseos de criptosistemas, y los mensajes protegidos por viejos criptosistemas que utilizan el
DES, y de hecho todos los mensajes enviados desde 1976 que usan el DES, tambin estn en
riesgo. A pesar de su calidad inherente, el tamao de la clave DES (56 bits) fue considerado por
algunos como demasiado pequeo incluso en 1976; quizs la voz ms sonora fue la de Whitfield
Diffie. Haba sospechas de que las organizaciones gubernamentales tenan suficiente potencia
de clculo para romper los mensajes DES; ahora es evidente que otros han logrado esa
capacidad.
Clave pblica
El segundo desarrollo, en 1976, fue quizs ms importante todava, ya que cambi de manera
fundamental la forma en la que los criptosistemas pueden funcionar. Fue la publicacin del
artculo New Directions in Cryptography, de Whitfield Diffie y Martin Hellman. Introdujo un mtodo
radicalmente nuevo para distribuir las claves criptogrficas, dando gran un paso adelante para
resolver uno de los problemas fundamentales de la criptografa, la distribucin de claves, y ha
terminado llamndose intercambio de claves Diffie-Hellman. El artculo tambin estimul el
desarrollo pblico casi inmediato de un nuevo tipo de algoritmo de cifrado, los algoritmos de
cifrado asimtrico.
Antes de eso, todos los algoritmos de cifrado tiles eran algoritmos de cifrado simtrico, en los
que tanto el remitente como el destinatario utilizan la misma clave criptogrfica, que ambos
deben mantener en secreto. Todas las mquinas electromecnicas utilizadas en la Segunda
Guerra Mundial eran de esta clase lgica, al igual que los cifrados Csar y Atbash y en esencia
todos los cifrados y sistemas de cdigos de la historia. La clave de un cdigo es, por supuesto,
el libro de cdigos, que debe asimismo distribuirse y mantenerse en secreto.
En estos sistemas era necesario que la partes que se iban a comunicar intercambiaran las
claves de alguna forma segura antes del uso del sistema (el trmino que se sola utilizar era
mediante un canal seguro), como un mensajero de confianza con un maletn esposado a su
mueca, o un contacto cara a cara, o una paloma mensajera fiel. Este requisito nunca es trivial y
se hace inmantenible rpidamente al crecer el nmero de participantes, o cuando no hay canales
seguros disponibles para el intercambio de claves, o cuando las claves cambian con frecuencia
(una prctica criptogrfica sensata). En particular, si se pretende que los mensajes sean seguros
frente a otros usuarios, hace falta una clave distinta para cada par de usuarios. Un sistema de
este tipo se conoce como criptosistema de clave secreta o de clave simtrica. El intercambio de
claves D-H (y las posteriores mejoras y variantes) hizo que el manejo de estos sistemas fuera
mucho ms sencillo y seguro que nunca.

En contraste, el cifrado de clave asimtrica utiliza un par de claves relacionadas


matemticamente, en el que una de ellas descifra el cifrado que se realiza con la otra. Algunos
(pero no todos) de estos algoritmos poseen la propiedad adicional de que una de las claves del
par no se puede deducir de la otra por ningn mtodo conocido que no sea el ensayo y error.
Con un algoritmo de este tipo, cada usuario slo necesita un par de claves. Designando una de
las claves del par como privada (siempre secreta) y la otra como pblica (a menudo visible), no
se necesita ningn canal seguro para el intercambio de claves. Mientras la clave privada
permanezca en secreto, la clave pblica puede ser conocida pblicamente durante mucho
tiempo sin comprometer la seguridad, haciendo que sea seguro reutilizar el mismo par de claves
de

forma

indefinida.

Para que dos usuarios de un algoritmo de clave asimtrica puedan comunicarse de forma segura
a travs de un canal inseguro, cada usuario necesita conocer su clave pblica y privada y la
clave pblica del otro usuario. Vase este escenario bsico: Alicia y Roberto tienen cada uno un
par de claves que han utilizado durante aos con muchos otros usuarios. Al comienzo de su
mensaje, intercambian las claves pblicas sin cifrar por una lnea insegura. Luego Alicia cifra un
mensaje utilizando su clave privada, y luego re-cifra el resultado utilizando la clave pblica de
Roberto. Luego el mensaje cifrado doblemente se enva en forma de datos digitales mediante un
cable desde Alicia hasta Roberto. Roberto recibe el flujo de bits y lo descifra usando su clave
privada, y luego descifra el resultado utilizando la clave pblica de Alicia. Si el resultado final es
un mensaje reconocible, Roberto puede estar seguro de que el mensaje procede realmente de
alguien que conoce la clave privada de Alicia, y que cualquiera que haya pinchado el canal
necesitar las claves privadas de Alicia y Roberto para entender el mensaje.
La efectividad de los algoritmos asimtricos depende de una clase de problemas matemticos
conocidos como funciones de un solo sentido, que requieren relativamente poca potencia de
clculo para ejecutarse, pero muchsima potencia para calcular la inversa. Un ejemplo clsico de
funcin de un sentido es la multiplicacin de nmeros primos grandes. Es bastante rpido
multiplicar dos primos grandes, pero muy difcil factorizar el producto de dos primos grandes.
Debido a las propiedades matemticas de las funciones de un sentido, la mayor parte de las
claves posibles tienen poca calidad para su uso criptogrfico; solo una pequea parte de las
claves posibles de una cierta longitud son candidatas ideales, y por tanto los algoritmos
asimtricos requieren claves muy largas para alcanzar el mismo nivel de seguridad
proporcionado por las claves simtricas, relativamente ms cortas. Las exigencias de generar el
par de claves y realizar el cifrado/descifrado hacen que los algoritmos asimtricos sean costosos

computacionalmente. Como, a menudo, los algoritmos simtricos pueden usar como clave
cualquier serie seudoaleatoria de bits, se puede generar rpidamente una clave de sesin
desechable para uso a corto plazo. Por consiguiente, es una prctica comn utilizar una clave
asimtrica larga para intercambiar una clave simtrica desechable mucho ms corta (pero igual
de fuerte). El algoritmo asimtrico, ms lento, enva de forma segura una clave simtrica de
sesin, y entonces el algoritmo simtrico, ms rpido, toma el control para el resto del mensaje.
La criptografa de clave asimtrica, el intercambio de claves Diffie-Hellman y los famosos
algoritmos de clave pblica/clave privada (es decir, lo que se suele llamara algoritmo RSA),
parecen haber sido desarrollados de manera independiente en una agencia de inteligencia
britnica antes del anuncio pblico de Diffie y Hellman en el 76. El GCHQ ha publicado
documentos que afirman que ellos haban desarrollado la criptografa de clave pblica antes de
la publicacin del artculo de Diffie y Hellman. Varios artculos clasificados fueron escritos en el
GCHQ durante los aos 60 y 70, que finalmente llevaron a unos sistemas esencialmente
idnticos al cifrado RSA y al intercambio de claves Diffie-Hellman en 1973 y 1974. Algunos de
ellos se acaban de publicar, y los inventores (James H. Ellis, Clifford Cocks y Malcolm Williamson
han hecho pblico parte de su trabajo.
Poltica y criptografa
Esto acab con el monopolio sobre la criptografa que mantenan las organizaciones
gubernamentales en todo el mundo (Ver Crypto de Steven Levy, un relato periodstico sobre la
controversia poltica en EEUU). Por primera vez en la historia, la gente externa a las
organizaciones gubernamentales tena acceso a criptografa que el gobierno no poda romper
fcilmente. Se desat una considerable controversia tanto pblica como privada que todava no
ha amainado. En muchos pases, por ejemplo, la exportacin de criptografa est sujeta a
restricciones. En Estados Unidos, hasta 1996, la exportacin de criptografa con claves mayores
de 40 bits estaba duramente limitada. Recientemente, en 2004, el antiguo director del FBI Louis
Freeh, en su testificacin en la Comisin del 11S, pidi nuevas leyes contra el uso pblico de la
criptografa.
El actor ms notable en la defensa del cifrado fuerte para uso pblico fue Phil Zimmermann con
la publicacin de PGP (Pretty Good Privacy) en 1991. Distribuy una versin freeware de PGP
cuando previ la amenaza de una legislacin, por aquel entonces en consideracin por el
gobierno estadounidense, que requerira la creacin de puertas traseras en todas las soluciones
criptogrficas desarrolladas dentro de EEUU. Sus esfuerzos para publicar PGP en todo el mundo
le granjearon una larga batalla con el Departamento de Justicia por la supuesta violacin de las
restricciones de exportacin. Finalmente, el Departamento de Justicia abandon el caso contra

Zimmermann, y la distribucin freeware de PGP se hizo mundial y termin convirtindose en un


estndar abierto (RFC2440 u OpenPGP).
Criptoanlisis moderno
Aunque los cifrados modernos como el AES estn considerados irrompibles, todava siguen
adoptndose malos diseos, y en las dcadas recientes ha habido varias roturas criptoanalticas
notables. Ejemplos famosos de diseos criptogrficos que se han roto incluyen al DES, el primer
esquema de cifrado Wi-Fi, WEP, el sistema Content Scramble System utilizado para cifrar y
controlar el uso de los DVD, y los cifrados A5/1 y A5/2 utilizados en los telfonos mviles GSM.
Adems, no se ha demostrado que alguna de las ideas matemticas que subyacen a la
criptografa de clave pblica sean irrompibles, y por tanto es posible que algn descubrimiento
futuro haga inseguros todos los sitemas que dependen de ella. Aunque poca gente prev un
descubrimiento as, el tamao de clave recomendado sigue aumentando, al aumentar y hacerse
ms barata la potencia de clculo para romper cdigos.

Algoritmos ms importantes
Algoritmos de cifrado simtrico
DES
El DES (Data Encription Standard o Estndar de Encriptacin de Datos) es el nombre del
documento FIPS (Federal Information Processing Standard) 46-1 del Instituto Nacional de
Estndares y Tecnologa (NIST) del Departamento de Comercio de Estados Unidos. Fue
publicado en 1977. En este documento se describe el DEA (Data Encription Algorithm o
Algoritmo de Encriptacin de Datos. Es el algoritmo de cifrado simtrico ms estudiado, mejor
conocido y ms empleado del mundo.
El DEA (llamado con frecuencia DES) es un algoritmo de cifrado por bloques de 64 bits de
tamao. Emplea una clave de 56 bits durante la ejecucin (se eliminan 8 bits de paridad del
bloque de 64). El algoritmo fue diseado para ser implementado en hardware. Cuando se utiliza
en comunicaciones ambos participantes deben conocer la clave secreta (para intercambiarla se
suelen emplear algoritmos de clave pblica). El algoritmo se puede usar para encriptar y
desencriptar mensajes, generar y verificar cdigos de autentificacin de mensajes (MAC) y para
encriptacin de un slo usuario (p. ej para guardar un archivo en disco).
Aunque el DES era un algoritmo computacionalmente seguro, esto ha dejado de ser cierto, ya
que con hardware especfico es posible realizar ataques por fuerza bruta que descubran una
clave en pocos das. El problema principal es que el tamao de la clave (56 bits) es demasiado

pequeo para la potencia de clculo actual. De hecho, el DES dej de ser el algoritmo empleado
por el gobierno norteamericano en Noviembre de 1998 y de momento (hasta que el AES sea
elegido), emplean el Triple DES.
Triple-DES
Consiste en encriptar tres veces una clave DES. Esto se puede hacer de varias maneras:

DES-EEE3: Tres encriptaciones DES con tres claves distintas.

DES-EDE3: Tres operaciones DES con la secuencia encriptar-desencriptar-encriptar con


tres claves diferentes.

DES-EEE2 y DES-EDE2: Igual que los anteriores pero la primera y tercera operacin
emplean la misma clave.

Dependiendo del mtodo elegido, el grado de seguridad vara; el mtodo ms seguro es el DESEEE3.
AES
El AES (Advanced Encription Standard o Estndar Criptogrfico Avanzado) es un algoritmo de
cifrado por bloques destinado a reemplazar al DES como estndar.
En la actualidad se han aceptado 15 propuestas de estndar de las que saldrn 5 candidatos
para una revisin ms completa. El proceso no parece que vaya a terminar hasta pasado el ao
2000.
RC2
El RC2 es un algoritmo de cifrado por bloques de clave de tamao variable diseado por Ron
Rivest de RSA Data Security (la RC quiere decir Ron's Code o Rivest's Cipher).
El algoritmo trabaja con bloques de 64 bits y entre dos y tres veces ms rpido que el DES en
software. Se puede hacer ms o menos seguro que el DES contra algoritmos de fuerza bruta
eligiendo el tamao de clave apropiadamente.
El algoritmo est diseado para reemplazar al DES.
RC4
El RC4 es un algoritmo de cifrado de flujo diseado por Ron Rivest para RSA Data Security. Es
un algoritmo de tamao de clave variable con operaciones a nivel de byte. Se basa en el uso de
una permutacin aleatoria y tiene un periodo estimado de ms de 10 100. Adems, es un algoritmo
de ejecucin rpida en software.
El algoritmo se emplea para encriptacin de ficheros y para encriptar la comunicacin en
protocolos como el SSL (TLS).
RC5

El RC5 es un algoritmo parametrizable con tamao de bloque variable, tamao de clave variable
y nmero de rotaciones variable. Los valores ms comunes de los parmetros son 64 o 128 bits
para el tamao de bloque, de 0 a 255 rotaciones y claves de 0 a 2048 bits. Fue diseado en
1994 por Ron Rivest.
El RC5 tiene 3 rutinas: expansin de la clave, encriptacin y desencriptacin. En la primera rutina
la clave proporcionada por el usuario se expande para llenar una tabla de claves cuyo tamao
depende del nmero de rotaciones. La tabla se emplea en la encriptacin y desencriptacin.
Para la encriptacin slo se emplean tres operaciones: suma de enteros, o-exclusiva de bits y
rotacin de variables.
La mezcla de rotaciones dependientes de los datos y de distintas operaciones lo hace resistente
al criptoanlisis lineal y diferencial. El algoritmo RC5 es fcil de implementar y analizar y, de
momento, se considera que es seguro.
IDEA
El IDEA (International Data Encription Algorithm) es un algoritmo de cifrado por bloques de 64
bits iterativo. La clave es de 128 bits. La encriptacin precisa 8 rotaciones complejas. El
algoritmo funciona de la misma forma para encriptar que para desencriptar (excepto en el clculo
de las subclaves). El algoritmo es fcilmente implementable en hardware y software, aunque
algunas de las operaciones que realiza no son eficientes en software, por lo que su eficiencia es
similar a la del DES.
El algoritmo es considerado inmune al criptoanlisis diferencial y no se conocen ataques por
criptoanlisis lineal ni debilidades algebraicas. La nica debilidad conocida es un conjunto de 251
claves dbiles, pero dado que el algoritmo tiene 2

128

claves posibles no se considera un

problema serio.
SAFER
El SAFER (Secure And Fast Encription Routine) es un algoritmo de cifrado por bloques no
propietario. Est orientado a bytes y emplea un tamao de bloque de 64 bits y claves de 64
(SAFER K-64) o 128 bits (SAFER K-128). Tiene un nmero variable de rotaciones, pero es
recomendable emplear como mnimo 6.
El algoritmo original fue considerado inmune al criptoanlisis lineal y diferencial, pero Knudsen
descubri una debilidad en el generador de claves y el algoritmo fue modificado (SAFER SK-64 y
SAFER SK-128).
Blowfish
Es un algoritmo de cifrado por bloques de 64 bits desarrollado por Scheiner. Es un algoritmo de
tipo Feistel y cada rotacin consiste en una permutacin que depende de la clave y una

sustitucin que depende de la clave y los datos. Todas las operaciones se basan en o-exclusivas
sobre palabras de 32 bits. La clave tiene tamao variable (con un mximo de 448 bits) y se
emplea para generar varios vectores de subclaves.
Este algoritmo se diseo para mquinas de 32 bits y es considerablemente ms rpido que el
DES.
El algoritmo es considerado seguro aunque se han descubierto algunas claves dbiles, un
ataque contra una versin del algoritmo con tres rotaciones y un ataque diferencial contra una
variante del algoritmo.
Algoritmos de clave pblica
RSA
El RSA, llamado as por las siglas de sus creadores (Rivest, Shamir y Adelman), es el algoritmo
de clave pblica ms popular. El algoritmo se puede usar para encriptar comunicaciones, firmas
digitales e intercambio de claves.
La clave es de tamao variable, generalmente se usan claves entre 512 y 2048 bits. Las claves
ms grandes aumentan la seguridad del algoritmo pero disminuyen su eficiencia y generan ms
texto cifrado. Los bloques de texto en claro pueden ser de cualquier tamao, siempre que sea
menor que la longitud de la clave. Los bloques de texto cifrado generados son del tamao de la
clave.
La clave pblica del algoritmo tiene la forma (e, n), donde e es el exponente y n el mdulo. La
longitud de la clave es igual al nmero de bits de n. El mdulo se obtiene multiplicando dos
nmeros primos grandes, p y q. Los nmeros se seleccionan aleatoriamente y se guardan en
secreto. La clave privada tiene la forma (d, n), donde d es el producto inverso de emodulo(p-1)
(q-1) (es decir, (ed - 1) es divisible por (p-1)(q-1)).
El clculo de d a partir de p y q es sencillo, pero es computacionalmente imposible calcular d sin
conocer p y q para valores grandes de n, ya que obtener sus valores es equivalente a factorizar
n, que es un problema intratable computacionalmente.
El funcionamiento del algoritmo es como sigue:

Encriptacin.Para encriptar un mensaje un usuario calcula c=m emodulon, donde m es


el texto en claro, c es el texto cifrado y (e, n) es la clave pblica del destinatario.

Desencriptacin. Para desencriptar el mensaje el destinatario calcula c dmodulon =


(me)dmodulon = medmodulon = m, donde (d, n) es la clave privada del destinatario. Hay
que indicar que la ltima sustitucin es posible por el modo en que hemos escogido los
nmeros, ya que d es el producto inverso de emodulon, por lo que med= m.

Firmado. Si el emisor desea enviar el mensaje firmado usa su clave privada para
calcular c=mdmodulon y el destinatario lo valida calculando c emodulon = (md)emodulo
n = mdemodulon = m, donde (e, n) es la clave pblica del emisor.

El algoritmo es lento, ya que emplea operaciones matemticas que tienen un coste elevado y
trabaja con claves de gran tamao. Parte del problema est en la eleccin del exponente e, ya
que un exponente de 512 bits escogido aleatoriamente precisa 768 multiplicaciones en
promedio. Para solucionarlo se suelen escoger los valores 3 65537, que precisan 3 y 17
multiplicaciones respectivamente. La eleccin de un exponente fijo no disminuye la seguridad del
algoritmo si se emplean esquemas de criptografa de clave pblica adecuados, como por
ejemplo el relleno de mensajes con bits aleatorios.
Adicionalmente, el uso de exponentes fijos hace que la encriptacin sea ms rpida que la
desencriptacin y la verificacin ms rpida que la firma. Esta ltima caracterstica es incluso
deseable, ya que un usuario firma una vez un mensaje pero es posible que la firma se valide
muchas veces.
Comparado con los sistemas de cifrado simtrico como el DES, el algoritmo de RSA es 100
veces ms lento en software y de 1000 a 10000 veces ms lento en hardware.
Diffie-Hellman
El algoritmo de Diffie Hellman es un algoritmo de clave pblica que permite el intercambio seguro
de un secreto compartido. Generalmente se emplea junto con algoritmos de cifrado simtrico,
como mtodo para acordar una clave secreta. El algoritmo no se puede usar para encriptar
conversaciones o firmas digitales.
El funcionamiento del algoritmo es como sigue:

El emisor escoge un nmero primo grande p y un generador g (g<p) y se los enva al


destinatario. A continuacin escoge un nmero grande d A como clave privada y calcula la
clave pblica correspondiente eA = gdAmodulop.

De modo similar, el destinatario escoge una clave privada d B y una clave privada eB =
gdBmodulop.

Ambos participantes intercambian sus claves pblicas y calculan un secreto compartido.


El del emisor ser sA = eBdA = (gdB)dA = gdBdAmodulop. Y el del destinatario s B = eAdB =
(gdA)dB = gdAdB= gdBdAmodulop.

Con este sistema, aunque un tercero interceptara los nmeros p y g y las claves pblicas e A y eB,
no podra calcular el secreto compartido sin tener una de las claves privadas, lo que equivale a
calcular el logaritmo discreto de una de las claves pblicas, que es un problema intratable
computacionalmente.

El problema fundamental de este algoritmo es que es sensible a ataques activos del tipo hombre
en el medio. Si la comunicacin es interceptada por un tercero, este se puede hacer pasar por el
emisor cara al destinatario y viceversa, ya que no disponemos de ningn mecanismo para validar
la identidad de los participantes en la comunicacin. As, el hombre en el medio podra acordar
una clave con cada participante y retransmitir los datos entre ellos, escuchando la conversacin
en ambos sentidos.

HASH
En informtica, Hash se refiere a una funcin o mtodo para generar claves o llaves que
representen de manera casi unvoca a un documento, registro, archivo, etc., resumir o identificar
un dato a travs de la probabilidad, utilizando una funcin hash o algoritmo hash. Un hash es el
resultado de dicha funcin o algoritmo.
Una funcin de hash es una funcin para resumir o identificar probabilsticamente un gran
conjunto de informacin, dando como resultado un conjunto imagen finito generalmente menor
(un subconjunto de los nmeros naturales por ejemplo). Varan en los conjuntos de partida y de
llegada y en cmo afectan a la salida similitudes o patrones de la entrada. Una propiedad
fundamental del hashing es que si dos resultados de una misma funcin son diferentes,
entonces las dos entradas que generaron dichos resultados tambin lo son.
Es posible que existan claves resultantes iguales para objetos diferentes, ya que el rango de
posibles claves es mucho menor que el de posibles objetos a resumir (las claves suelen tener en
torno al centenar de bits, pero los ficheros no tienen un tamao lmite).
Son usadas en mltiples aplicaciones, como los arrays asociativos, criptografa, procesamiento
de datos y firmas digitales, entre otros. Una buena funcin de hash es una que experimenta
pocas colisiones en el conjunto esperado de entrada; es decir que se podrn identificar
unvocamente las entradas (ver funcin inyectiva).
Muchos sistemas relacionados con la seguridad informtica usan funciones o tablas hash.
Orgenes del trmino
El trmino hash proviene, aparentemente, de la analoga con el significado estndar (en ingls)
de dicha palabra en el mundo real: picar y mezclar. Donald Knuth cree que H. P. Luhn, empleado
de IBM, fue el primero en utilizar el concepto en un memorndum datado en enero de 1953. Su
utilizacin masiva no fue hasta despus de 10 aos.

En el algoritmo SHA-1, por ejemplo, el conjunto de partida de la funcin es dividido en palabras


que son mezcladas entre s utilizando funciones matemticas seleccionadas especialmente. Se
hace que el rango de valores que puede devolver la funcin sea de longitud fija: 160 bits
utilizando la adicin modular.
Formal
Ms formalmente, la funcin de hash est definida por su dominio (cadenas de bytes de longitud
variable), su imagen (secuencias de bytes de longitud fija) y por la funcin que relaciona dichos
conjuntos (llamada funcin H). La caracterstica deseada en una funcin Hash es:
Primer criterio:
Desafortunadamente esta idealizacin (denominada colisiones de hash) es precisa pero
indeterminada. Si el conjunto de valores que puede tomar H(x) es mucho menor que las
posibilidades de x, entonces esto no puede ser cierto siempre que todos los valores de x pueden
ser igualmente probables. Entonces, existe una segunda condicin para hacer la funcin til. Por
ejemplo:
Segundo criterio (1): dado un H(x) es complejo encontrar y tal que H(y) = H(x).
Segundo criterio (2): dados x y H(x + s) no es sencillo encontrar s.
En estos ejemplos anteriores, al referirse al grado de dificultad de una tarea se habla siempre en
un sentido puramente computacional. Esto es, que el tiempo necesario para ejecutar dicha tarea
sea increblemente grande (ver NP-C). Adems, + puede ser cualquier operacin vlida sobre el
conjunto de partida.
En la prctica, para la mayora de las aplicaciones sin contar la correccin de errores las
funciones hash criptogrficas son suficientemente tiles. Los algoritmos MD5 y SHA-1 son dos
de los ms populares.
Funciones Resumen
Estos mtodos son muy variados, pueden llegar a tomar en cuenta diversos parmetros tales
como el nombre de un archivo, su longitud, hora de creacin, datos que contenga, etc.
aplicndole diversas transformaciones y operaciones matemticas. Algunas aplicaciones de las
funciones resumen son las siguientes:

Identificar algn archivo de computadora independientemente de su nombre o ubicacin,


lo cual es ampliamente usado en redes P2P o Peer to peer (intercambio de archivos
punto a punto), tales como Kazaa, Ares Galaxy, Overnet, BitTorrent, entre otras.

Corroborar que el archivo no ha cambiado (que algn virus se haya agregado, se haya
copiado con errores, se haya transferido mal, se haya cambiado su comportamiento en

caso de ser un ejecutable, etc.), un ejemplo de esto es el algoritmo MD5, el cual es


comnmente empleado para corroborar la integridad de un archivo bajado de internet,
usualmente en la misma pgina que se publica el archivo, se encuentra su hash MD5
para que una vez bajado a nuestra computadora comprobemos que se haya bajado
correctamente. Esto es una prctica comn dentro del ambiente del software libre,
donde despus de bajar el archivo se puede comprobar su integridad ejecutando el
comando md5sum e indicndole el archivo a analizar.

Identificar un registro en una base de datos y permitir con ello un acceso ms rpido a
los registros (incluso ms rpido que teniendo ndices).

Tablas hash
Las tablas hash, una de las aplicaciones ms extendidas de las funciones de hash, aceleran el
proceso de bsqueda de un registro de informacin segn una clave (nota: este uso de la
palabra poco se relaciona con su significado habitual). Por ejemplo, una cadena alfanumrica
puede ser utilizada para buscar la informacin de un empleado en la base de datos de un
sistema.
La utilizacin de tablas hash provee de un acceso casi directo a dichos registros, lo que significa
que, en promedio, una bsqueda puede llegar a requerir slo uno o dos intentos en la memoria o
el archivo que contiene la informacin. Naturalmente, se prefiere una buena funcin de hash que
evitar colisiones de hash.
Si asumimos que la clave es una cadena de bytes, entonces la funcin de hash debera ser
como un ndice de los registros que tiene una distribucin aleatoria sobre las cadenas de entrada
esperadas. De otra forma, habra ms colisiones de hash degradando as el tiempo de
bsqueda. Si, por ejemplo, la clave es alfabtica, cada byte puede tener slo 26 de sus 256
valores posibles. Funciones tan simples no distribuirn los ndices de una forma pareja.
Para una comparacin de velocidad y calidad de varias funciones de hash, referirse a los
enlaces externos...
Correccin de errores
Para la correccin de errores, se asume una proximidad de la distribucin de perturbaciones
altamente probables. Las perturbaciones son clasificadas en: errores grandes (improbables) y
pequeos (probables). El segundo criterio de las funciones de hash se modifica como sigue:
Segundo criterio (3): dados H(x) y x + s, se puede conseguir x si s es lo suficientemente
pequeo.

Las funciones que se guan segn estos criterios son conocidas como "cdigos de correccin de
errores". Las derivaciones ms importantes de este tipo de cdigos de correccin son los
chequeos redundancia cclica y los cdigos Reed-Solomon.
Algoritmo Rabin-Karp
Este algoritmo es relativamente rpido para la bsqueda de cadena de caracteres. En promedio,
el tiempo de ejecucin es lineal con respecto a la longitud de la entrada. Se basa en la utilizacin
de funciones hash para comparar cadenas.
Un modelo simple (e ineficiente) de funcin de hash es
f(x) = 0 para todo entero x.
Obviamente, la colisin hash en esta funcin es total. Una un poco ms interesante es:
f(x) = x mod 1021
Esto es devuelve el resto de la divisin x entre 1021. Obviamente, la colisin es menor siempre
que el conjunto del cual toma valores x no sea muy grande o lo suficientemente aleatorio.
Adems, ntese que el hecho de que 1021 sea un nmero primo no es algo azaroso sino que
fue cuidadosamente elegido ya que mecanismos que utilizan este tipo de funciones con nmeros
primos como base son muy comunes en criptografa.

http://es.wikipedia.org/wiki/Hash
Que propiedades tienen que cumplir las funciones hash?
1- Sea cual sea la longitud del texto base A, la longitud de su hash resultante B siempre va
a ser la misma. Por ejemplo, si la longitud de la salida B esta defiinida en 128 bits, si aplicamos
una funcin hash a un A de 5 bits nos dar un B de 128 bits, y si se la aplicamos a un A de 380
millones de bits, nos dar un B de 128 bits igualmente.
2- Para cada entrada A, la funcin generar una salida B nica. O lo que es lo mismo, es
imposible que dos textos bases A y A' tengan un mismo hash B.
Segn estas dos primeras propiedades, nos damos cuenta enseguida de la utilidad de las
funciones de hash.
La ms inmediata es usarla para generar un resumen de algo. De hecho, estas funciones se
conocen tambin como funciones resumen. Un ejemplo real puede ser el del tpico repositorio de
documentos. Si alguien quiere almacenar digamos "Las_Aventuras_Del_Ingenioso.doc" cuyo
contenido es El Quijote enterito, el sistema lo primero que tiene que hacer es revisar que no est
previamente ya almacenado con el mismo o con otro nombre, por ejemplo "ElQuijote.doc". El

sistema puede comparar letra a letras el documento de entrada con todos los docs de su BBDD
para comprobar que no est, o puede comparar el resumen del documento de entrada con los
resmenes de los documentos de la BBDD, opcin mucho ms manejable y rpida.
Adems, como la salida B es nica para cada A, se puede usar tambin para verificar la
integridad de A. Podemos ver que muchos programas incluyen su hash junto con su descarga,
de esta forma, podemos verificar que el programa no ha sido modificado ni le han introducido un
virus o ha sido troyanizado. Si a los bytes de una aplicacin A les calculo el hash B y lo adjunto,
cuando alguien modifique la aplicacin A, al calcular de nuevo su hash su valor habr cambiado
y ser distinto de B.
3- Dado un texto base, es fcil y rpido (para un ordenador) calcular su nmero resumen.
4- Es imposible reconstruir el texto base a partir del nmero resumen.
Esto es lo que se conoce como One-Way hash functions. A partir del hash es imposible
reconstruir el texto base.
5. - No puede presentar Colisiones.
Que son las colisiones?
Segn la primera caracteristica que hemos visto de las funciones hash, que nos dice que el
tamao del hash B resultante de A es siempre el mismo, deducimos que no puede cumplirse la
segunda caracterisitca, que dice que el hash B tiene que ser nico para cada A.
Por ejemplo, la funcin MD5 nos devuelve un hash de 128 bits. Para que cada hash equivalga a
un unico texto base, tendra que existir solamente un texto por cada combinacin del hash
devuelto, o sea, tendra que haber solamente 2^128 textos distintos, lo cual no es cierto. Como
textos distintos hay infinitos, podemos decir que hay infinitas posibilidades de que dos textos
tengan el mismo hash.
Esto es lo que se conoce como colisiones.
Seguramente las hemos visto muchas veces sin darnos cuenta de que pasaba. Hay muchos
sistemas que requieren contraseas de uso, como pueden ser los sistemas de foros y dems,
donde lo que se almacena no es la contrasea, sino el hash de esa contrasea. Esto no se hace
con el propsito de resumir la contrasea, seguramente ser mas corta que el hash generado, se
hace con el propsito de que si alguien tiene acceso al almacn de contraseas, o si alguien
desensambla la aplicacin proteguida, etc, no pueda ver la contrasea en plano y siga sin
acceso.
La fortaleza de una funcin hash requiere que estas colisiones sean las mnimas posibles y que
encontrarlas sea lo ms dificil posible.
Propiedades de una funcin hash con respecto a las colisiones.

Las propiedades que deben de tener las primitivas hash son:


1. Resistencia a la preimagen: One Way Hash Function. Como hemos dicho antes, significa
que dada cualquier imagen, es computacionalmente imposible encontrar un mensaje x tal que
h(x)=y. Otra forma como se conoce esta propiedad es que h sea de un solo sentido.
2. Resistencia a 2 preimagen: OWHF: Weak One Way Hash Function. Significa que dado x,
es computacionalmente imposible encontrar una x tal que h(x)=h(x). Otra forma de conocer esta
propiedad es que h sea resistente a una colisin suave.
3. Resistencia a colisin: CRHF: Strong One Way Hash Function. Significa que es
computacionalmente imposible encontrar dos diferentes mensajes x, x tal que h(x)=h(x). Esta
propiedad tambin se conoce como resistencia a colisin fuerte.
Algoritmo MD5
El algoritmo MD5 realiza las siguientes operaciones
1. Adicin de bits de relleno:
El mensaje es rellenado o ampliado para que su longitud en bits sea congruente a 448 mdulo
512. Esto debe ser as puesto que hay que reservar 64 bits para la adicin de la longitud del
mensaje en el prximo paso. As pues, si no se llega a la anterior congruencia, se aadir el
relleno, consistente en un bit 1 seguido de tantos bits 0 como se precisen.
La razn de porqu un uno seguido de ceros se debe que si se emplea slo relleno con un valor
(por ejemplo todo ceros) el proceso no sera reversible a la hora de eliminar dicho relleno.
De todas maneras, siempre se realiza esta operacin de relleno, aunque la longitud del mensaje
ya sea congruente a 448 en mdulo 512. Por ello, se aadirn como mnimo 1 bit de relleno, y
como mximo 512 bits. Obsrvese la siguiente figura:

2. Adicin de representacin binaria de longitud del mensaje:

Posteriormente se aade al mensaje (con el relleno realizado) una representacin de la longitud


del mensaje antes de ser rellenado. Dicha representacin tendr una longitud de 64 bits (16
palabras de 32 bits, es decir, dos enteros de 4 octetos cada uno). En el caso de que el mensaje
sea mayor de bits, slo se tendrn en cuenta los 64 bits menos representativos, que es lo
mismo que decir que esta representacin de la longitud del mensaje est realizada en mdulo.
El mensaje tiene ahora un nmero de bits mltiplo de 512, por lo que habr un nmero entero de
palabras de 32 bits (enteros de 4 octetos), concretamente 512 / 32 = 16, de lo que se puede
concluir que si hay b bloques de 512 bits cada uno que forman el mensaje, entonces el mensaje
tendr n palabras de 32 bits: n = 16 * b
3. Inicializar buffer MD:
Para poder calcular el valor hash o resumen se necesita tener un buffer de 4 palabras de 32 bits
(A, B, C, D), pero antes de comenzar con el proceso se los ha de inicializar con algn valor
determinado, que Rivest establece:
Palabra

01

23

45

67

67

45

23

01

Palabra

89

ab

cd

ef

ef

cd

ab

89

Palabra

fe

dc

ba

98

98

ba

dc

fe

Palabra D = 76 54 32 10 10 32 54 76
En la primera columna los valores hexadecimales estn ordenados de modo que los valores
menos significativos aparecen en primer lugar (notacin empleada por Rivest en la
implementacin de este algoritmo), y en la segunda los valores ms significativos estn a la
izquierda (posiciones ms altas de la memoria en Intel 80xxx)
La razn de ver estas formas de representar los mismos valores se debe a intentar evitar
confusiones, pues en funcin del tipo y arquitectura de la mquina sobre la que ha de trabajar el
algoritmo, este sufrir adaptaciones en dichos valores al realizar la implementacin. Ello es
debido a las distintas formas en que se almacenan los datos en memoria en las distintas
arquitecturas (Intel, Sun, Sparc, ...)
Los algoritmos MD4 y MD5 estn pensados para facilitar su implementacin en arquitecturas
denominadas little-endian. Este formato asume que el byte menos significativo de una palabra se
almacena en la posicin ms baja, y el byte ms significativo en la parte ms alta. Es el formato
que emplean los procesadores Intel 80xxx que integran los PC domsticos.
4. Procesar el mensaje en bloques de 512 bits:
Esta es la parte central del algoritmo. Aqu se definen las cuatro funciones que se emplearn en
las cuatro vueltas que se aplicarn sobre cada bloque. Vase la siguiente figura:

Estas cuatro funciones reciben como parmetros de entrada tres palabras de 32 bits cada una
(tres enteros de 4 bytes de longitud) y devuelven como salida una. Son las siguientes:
F(X,

Y,

Z)

(X

and

Y)

or

((not

G(X,

Y,

Z)

(X

and

Z)

or

(Y

H(X,

Y,

Z)

X)

and

Z)

and

(not

Z))

I(X, Y, Z) = Y (X or (not Z))


Donde F funciona como una sentencia condicional if en programacin tradicional: S X = 1
entonces Y ser 1 de lo contrario Z ser 1.
G tambin funciona de manera condicional como F: Si Z = 1 entonces X ser 1 de lo contrario Y
ser
H

1.
simplemente

realiza

la

operacin

OR-Exclusiva

(XOR)

de

X,

Z.

I realiza la operacin XOR con X si es 1 o si Z es 0.


Por otro lado MD5 no utiliza las constantes (magic constants) que se empleaban en MD4. En su
lugar se emplea una tabla de 64 elementos construida a partir de la funcin trigonomtrica seno.
Sea T el elemento i-simo de dicha tabla, que ser igual a la parte entera de 4294967296 veces
abs(sen(i)), donde i est expresada en radianes. Puesto que hay que realizar 16 pasos en cada
una de las cuatro vueltas, es decir, 64 operaciones, la idea es usar una constante de la anterior
tabla para cada vuelta.

5. Recoger el valor hash de salida:


El valor hash de salida se obtiene de los registros A, B, C y D donde el octeto ms representativo
es D y el que menos A
Ataques
Ataque de Cumpleaos
El ataque ms conocido (de fuerza bruta) a una funcin hash es conocido como "birthday attack"
y se basa en la siguiente paradoja
Cul es la cantidad de personas que hay que poner en una habitacin para que la probabilidad
de que el cumpleaos de una de ellas sea el mismo da que el mio?
Debemos calcular un tal que n(1/365) > 0.5, luego n > 182.
Sin embargo, cual sera la cantidad de personas necesarias para que dos cualesquiera de ellas
cumplan aos el mismo dia?
Cada pareja tiene un probabilidad de 1/365, y en un grupo de n personas hay n(n-1)/2 parejas
diferentes, luego
(n(n-1)/2)(1/365) > 0.5
Esto se cumple si n>23, una cantidad sorprendente mas pequea que 182.
La consecuencia de esta paradoja es que aunque es muy dificil dado un x calcular un x' tal que
h(x) = h(x'), resulta mucho ms fcil buscar dos valores aleatorios x y x' tal que h(x) = h(x).
Esto en la prctica significa que un hash de n bits permitira una colisin de 2 preimagen o dbil
una vez de cada 2^n, pero producir una colisin fuerte una vez de cada 2^(n/2).
En el caso de un hash de 64 bits necesitaramos 2^64 mensajes dado un x para obtener el x',
pero bastara generar 2^32 mensajes aleatorios para que aparecieran dos con el mismo hash. El
primer ataque nos llevara 600.000 aos en un ordenador que generara un milln de mensajes
por segundo, mientras que el segundo apenas necesitara unas horas.
Ataque Wang-Yin-Yu o Ataque chino
Supongo que muchos habreis ledo actualmente que las funciones hash MD5 y SHA1 han sido
rotas por un grupo de matemticos chinos y que ya no sirven para nada y dems.
Vamos a tratar de explicar esto para que todo el mundo pueda evaluar el grado de ruptura de
estas funciones, porque se habla mucho de esto en los foros, pero no se evalua hasta que punto
nos afecta.
Como hemos visto en el Ataque de Cumpleaos, para encontrar dos mensajes X y X' aleatorios
que tengan el mismo SHA-1 (160 bits) por ejemplo, por fuerza bruta se necesitaran generar
2^(160/2) mensajes.

Pues bien, este grupo de matemticos ha descubierto un sistema que permite hacer esto con un
esfuerzo menor que por fuerza bruta.
En concreto para el SHA1, pueden encontrar una "colisin de cumpleaos" con un esfuerzo
equivalente a 2^69 operaciones hash, en vez de las 2^80 requeridas por fuerza bruta.
Como podemos ver, este es una ataque contra las colisiones fuertes, pero no contra las
colisiones de 2 preimagen, a las cuales no afecta. Si alguien quiere generar un mensaje x' que
tenga el mismo SHA1 que un mensaje x ya existente, tiene que seguir generando 2^160
mensajes para conseguirlo.
Y aunque el "ataque de cumpleaos" contra SHA1 se ha vuelto 2000 veces ms rpido, sigue
siendo del orden de 10.000 veces ms dificil que un ataque contra un DES, que no est al
alcance de todo el mundo.
Ahora bien, existen casos en que las implicaciones son importantes.
Imaginemos que redacto un contrato A de venta de un inmueble en word, al cual le adjunto
varios jpgs con fotografas del inmueble.
Al mismo tiempo genero un contrato alternativo A' con las mismas fotos pero modificando el
precio de venta a mi favor.
Es prcticamente imposible que el h(A) = h(A').
Sin embargo puedo crear mltiples versiones de A y de A', modificando aleatoriamente bits de
las fotografas (se podra hacer modificando el texto, aadiendo espacios, cambiando cosas no
significativas, etc, pero quedara un texto muy sucio y se notara la "trampa". Pero modificando
bits de las fotografas como mucho perder algo de calidad), hasta conseguir dos versiones que
tengan el mismo hash.
Le presento al comprador la versin de A, acepta las condiciones y lo firma electrnicamente.
Cambio la variante de A por la de A' y ya tengo un contrato legal de compraventa firmado con
unas condiciones distintas de lo establecido.
Si la funcin hash que se va a utilizar para realizar la firma es por ejemplo un SHA1, mediante el
ataque tri-chino tendr que generar 2^69 variantes de A y 2^69 variantes de A', que como hemos
visto antes, aunque no est al alcance de cualquiera, es factible.
Pero si la funcin hash es por ejemplo un MD5, solo tendr que generar 2^32 variantes de A y
2^32 variantes de A', que est al alcance de cualquier PC.
Ataque Multicolision de Joux-Wang.
Si nos fijamos en el funcionamiento del algoritmo MD5, vemos el mensaje se divide en bloques
de 512 bits. El primer bloque es "hasheado" usando como parmetro el vector de inicializacin y

dando como resultado otro vector de 128 bits, que sirve como inicializacin para el siguiente
bloque de 512 bits, y as sucesivamente.
Entonces se hace obvio que si tengo dos n*bloques A y B, siendo A != B, que cumplen que
MD5(A) = MD5(B), si les aado un "payload" Q, entonces MD5(A+Q) = MD5(B+Q).
Estado actual de las funciones Hash.
La funcin hash MD4 est totalmente rota y descatalogada, de hecho existen algoritmos que
encuentran colisiones en pocos segundos.
Para el uso del MD5 hay que tomar ciertas precauciones, pero cualquiera que se haya leido este
artculo est capacitado para tomarlas. Lo mejor es no usarlo, pero si no nos queda ms
remedio, usndolo con cuidado es perfectamente seguro. Por ejemplo no firmeis nada usando
MD5 si el que redacta el documento a firmar es parte interesada, o antes de firmarlo modificad
algo del documento, o guardad copia, etc.
Para SHA1, yo no dira como se dice en muchos sitios que el edificio est en llamas y que
estamos perdidos. Lo nico es que las alarmas suenan, aunque no veamos an el humo, y lo
prudente es ir hacia la salida de emergencia, pero no hace falta correr ni que cunda el pnico.
Pero tampoco hay que quedarse en el sitio, porque los ataques criptoanalticos cada da
mejoran, y cada ser ms fcil y rpido.
La solucin que se est dando a esta problemtica es ir incrementando el tamao de los hashes.
PGP ya usa SHA256, etc. Pero es solamente un parche. Estos algoritmos son todos
monocultivo, y dndoles mas bits solo incrementas el esfuerzo para encontrar colisiones. Pero
segn avancen los mtodos de criptoanlisis y la potencia de los ordenadores, se irn
recortando los tiempos, y estaremos en las mismas.
El punto ms crtico es el legal. Todo lo que se firme con un certificado legal o con el futuro DNI
electrnico, tiene el mismo valor que una firma manuscrita.
Esta consideracin legal se sustenta entre otras cosas en que el algoritmo de hash de la firma
funciona como tiene que ser y que el hash resultante es nico para el texto firmado.
Si un sistema no puede garantizar que es tal el documento que has firmado, y que no hay
posibilidad de que te hayan dado el cambiazo con otro documento que tiene el mismo hash,
todos los documentos firmados por esa aplicacin no sern legales.
Solucin?

Muy

simple.

Usando

dobles

hashes.

La gente no le da la importancia que tiene al problema de las colisiones, y si se la dan, por


ejemplo PHP, no lo solucionan como es debido.

Si para firmar algo en vez de cifrar el MD5 o el SHA1 o el SHA256 del documento, se cifrara una
concatenacin por ejemplo de MD5+SHA1, habra que buscar una colisin doble para conseguir
un documento alternativo, lo que actualmente es imposible.
Si teneis que usar las firmas electrnicas para vuestros documentos, y se van a firmar por
ejemplo usando MD5, aadidles un campo estilo fingerprint con el hash del documento en SHA1.

Diferentes algoritmos hash


Varias funciones hash han sido desarrolladas tratando de mejorar las versiones anteriores para
tener una mayor seguridad y evitar que se lleven a cabo ataques con xito.
MD4 (Message Digest, Mensajes Digitales). Fue Inventado por Ron Rivest de la Incorporacin de
Seguridad RSA (RSA Security, Inc.). Produce un valor hash de 128-bits. Se realiza una
manipulacin de bits para obtener el valor hash, obtenindolo de forma rpida, provocando que
sea ms riesgoso en un ataque. Se considera un estndar de Internet (RFC-1320) .
Ciertas debilidades en MD4 fueron demostradas por Den Boer y Bosselaers en un documento
publicado en 1991. Muchos de los diseos posteriores de resumen del mensaje basados en l
siguen siendo seguros, en el sentido que no se ha publicado ningn ataque eficaz contra ellos.
En agosto del ao 2004, unos investigadores divulgaron la generacin de colisiones de hash en
MD4 usando "clculo a mano".
MD5 Mensajes Digitales. Es una extensin de MD4. Produce como salida un valor hash de
longitud de 128-bits. MD5 tiene optimizaciones y sugerencias de varios revisores. La obtencin
del valor hash es lento pero considerado ms seguro. Est especificado como un estndar de
Internet (RFC-1321). Es usado por PGP (Pretty Good Privacy, Privacidad Considerada Buena).
A pesar de su amplia difusin actual, la sucesin de problemas de seguridad detectados desde
que, en 1996, Hans Dobbertin anunciase una colisin de hash plantea una serie de dudas
acerca de su uso futuro.
La codificacin del MD5 de 128 bits es representada tpicamente como un nmero de 32 dgitos
hexadecimal. El siguiente cdigo de 28 bytes ASCII ser tratado con MD5 y veremos su
correspondiente hash de salida.
Ej.
MD5("Esto s es una prueba de MD5") = e99008846853ff3b725c27315e469fbc

SHA (Secure Hash Algorithm, Algoritmo Hash Seguro). Diseado por NIST (National Institute of
Standards and Technology), produce un valor hash de 160-bits. Su diseo tiene mucha relacin
con MD5 pero con ciertas diferencias (ej. salida de 160-bits). Se considera ms seguro que MD4
y MD5 por su longitud de tamao. Tambin est considerado como un estndar (FIPS PUB 1801).
La familia SHA es un sistema de funciones hash criptogrficas relacionadas de la Agencia de
Seguridad Nacional de los Estados Unidos. El primer miembro de la familia fue publicado en
1993 es oficialmente llamado SHA. Sin embargo, hoy da, no oficialmente se le llama SHA-0
para evitar confusiones con sus sucesores. Dos aos ms tarde el primer sucesor de SHA fue
publicado con el nombre de SHA-1. Existen cuatro variantes ms que se han publicado desde
entonces cuyas diferencias se basan en un diseo algo modificado y rangos de salida
incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (llamndose SHA-2 a todos ellos).
En 1998, un ataque a SHA-0 fue encontrado pero no fue reconocido para SHA-1, se desconoce
si fue la NSA quien lo descubri pero aument la seguridad del SHA-1
SHA-1 ha sido examinado muy de cerca por la comunidad criptogrfica pblica, y no se ha
encontrado ningn ataque efectivo. No obstante, en el ao 2004, un nmero de ataques
significativos fueron divulgados sobre funciones criptogrficas de hash con una estructura similar
a SHA-1; lo que ha planteado dudas sobre la seguridad a largo plazo de SHA-1.
SHA-0 y SHA-1 producen una salida resumen de 160 bits de un mensaje que puede tener un
tamao mximo de 264 bits, y se basa en principios similares a los usados por el profesor Ronald
L. Rivest del MIT en el diseo de los algoritmos de resumen de mensaje MD4 y MD5.
La codificacin hash vaca para SHA-1 corresponde a:
SHA1(" ") = da39a3ee5e6b4b0d3255bfef95601890afd80709

RIPEMD-160 (acrnimo de RACE Integrity Primitives Evaluation Message Digest, primitivas de


integridad del resumen del mensaje) es un algoritmo del resumen del mensaje de 160 bits (y
funcin criptogrfica de hash) desarrollado en Europa por Hans Dobbertin, Antoon Bosselaers y
Bart Preneel, y publicados primeramente en 1996. Es una versin mejorada de RIPEMD, que
estaba basado sobre los principios del diseo del algoritmo MD4, y es similar en seguridad y
funcionamiento al ms popular SHA-1.
Tambin existen versiones de 128, 256 y 320 bits de este algoritmo, llamadas RIPEMD-128,
RIPEMD-256 y RIPEMD-320 respectivamente. La versin 128 bits fue pensada solamente como
un reemplazo para el RIPEMD original, que eran tambin de 128 bits, y en la que haban sido

encontradas razones para cuestionar su seguridad. Las versiones de 256 y 320 bits solamente
disminuyen la posibilidad de colisiones hash accidentales, y no tienen niveles ms altos de
seguridad con respecto a RIPEMD-128 y RIPEMD-160.
RIPEMD-160 fue diseado en la comunidad acadmica abierta, en contraste con el algoritmo
SHA-1, diseado por la Agencia de Seguridad Nacional estadounidense (NSA). Por otra parte,
RIPEMD-160 es un diseo menos popular y correspondientemente est peor estudiado.
Ninguna patente est asociada al RIPEMD-160.
En agosto del ao 2004, una colisin hash fue divulgada para el algoritmo RIPEMD original que
no afecta al resto de algoritmos.
Los hashes de 160 bits RIPEMD (tambin llamados resmenes RIPE del mensaje) se
representan tpicamente como nmeros en hexadecimal 40 dgitos. El resultado de usar
RIPEMD-160 con una cadena vaca es este:
RIPEMD-160(" ") = 9c1185a5c5e9fc54612808977ee8f548b2258d31

BIBLIOGRAFA
SEGURIDAD INFORMTICA
http://delta.cs.cinvestav.mx/~francisco/ssi/intro.ppt
http://www.tidap.gob.mx/Presentaciones/Encuentros/Presentaci%F3n%20Jos%E9%20Antonio
%20MorenoSegInf%20Tidap03.pps
http://www.authorstream.com/Presentation/jemarinoi-86620-seguridad-inform-tica-8-informaticaeducation-ppt-powerpoint/
http://es.kioskea.net/contents/secu/secuintro.php3
http://es.wikipedia.org/wiki/Seguridad_inform%C3%A1tica
ALGORITMOS DE CIFRADO
http://www.taringa.net/posts/info/1699913/Criptografia-%5BMuy-buena-Info%5D.html
http://www.loba.es/flossic/Contenidos/Manuales/Criptografia.pdf
http://www.uv.es/~sto/cursos/seguridad.java/html/sjava-12.html
http://csrc.nist.gov/archive/aes/index.html
FUNCIONES HASH
http://foro.elhacker.net/criptografia/funciones_de_hash-t100025.0.html
http://www.fismat.umich.mx/~emurguia/mipagina/tesis/node27.html
http://www.peiper.com.ar/edicion04/hashing.pdf
http://www.codeproject.com/dotnet/HackingMD5.asp
http://homes.esat.kuleuven.be/~bosselae/ripemd160.html
http://homes.esat.kuleuven.be/~cosicart/ps/AB-9601/

You might also like