You are on page 1of 60

V 

 



| 
Objetivos Específicos de la Unidad

‡ Conocer las diferencias técnicas


criptográficas para asegurar la
información, algoritmos populares
y los métodos para romperlos de
manera de poder planificar mejor
las técnicas criptográficas a usar
en una organización.

| 
Contenidos

‡ Conceptos preliminares.
‡ Algoritmos criptográficos.
‡ Llaves publicas y privadas
‡ PKI
‡ Firmas Digitales
‡ Técnicas Hashing
‡ Algoritmo RSA y MD5. Detección de
colisiones.
‡ PGP

| 

‡ En la jerga de la criptografía, la información original que debe protegerse se
denomina .
‡ El  es el proceso de convertir el texto plano en un galimatías ilegible,
denominado  o .
‡ Por lo general, la aplicación concreta del  (también
llamado ) se basa en la existencia de una  : información secreta
que adapta el algoritmo de cifrado para cada uso distinto.
‡ Las dos técnicas básicas de cifrado en la criptografía clásica son:
± la !!", que supone el cambio de significado de los elementos básicos del
mensaje -las letras, los dígitos o los símbolos- y
± la ": que supone una reordenación de las mismas;
La gran mayoría de las cifras clásicas son combinaciones de estas dos
operaciones básicas.
‡ El  es el proceso inverso que recupera el texto plano a partir del
criptograma y la clave.
‡ El # especifica los detalles de cómo 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 gestión de
claves y actuaciones de los usuarios, en su globalidad es lo que constituyen
un , que es con lo que el usuario final trabaja e interactúa.

| 
$

‡ Texto original (plaintext): La información


se encuentra en su forma original.
Conocido también como texto simple
(cleartext).
‡ Texto cifrado (ciphertext): La información
después que ha sido ofuscada por el
algoritmo de encriptación.
‡ Algoritmo: Método de manipulación
utilizado para cambiar el texto original a
texto cifrado.
‡ Clave: Datos de entrada al algoritmo para
que transforme el texto original a cifrado.
| 
$%&'
‡ Encriptación: Proceso de realizar el cambio de texto
original al cifrado.
‡ Desciframiento: Proceso de efectuar el cambio del
texto cifrado al original.
‡ Criptografía: Arte de encubrir la información
mediante el uso de encriptación.
‡ Criptógrafo: Individuo que practica la Criptografía.
‡ Análisis criptográfico: Arte de analizar algoritmos
criptográficos con la intención de identificar
debilidades.
‡ Analista criptográfico: Individuo que utiliza análisis
criptográfico para identificar y utilizar las
debilidades en los algoritmos criptográficos.

| 
(!
"
Los sistemas de encriptación pueden
ser atacados de tres maneras:
1. A través de las debilidades en el
algoritmo.
2. Mediante la fuerza bruta en contra
de la clave.
3. Por medio de las debilidades en el
sistema de entorno.

| 
' !)* 
Existen dos grandes grupos de cifras:
1. Algoritmos que utilizan una única clave
tanto en el proceso de cifrado como en el
de descifrado: se denominan 
$ o de  $ y son la
base de los algoritmos de cifrado clásico.
2. Los que utilizan una clave para cifrar
mensajes y una clave distinta para
descifrarlos: se denominan 
$, de  $ o de
 +) y    y forman el
núcleo de las técnicas de cifrado modernas.

| 
"  
‡ Requiere que todas las partes que están autorizadas
para leer la información tengan la misma clave.
‡ El problema de proteger la información se reduce a
proteger la clave: Sólo quien la conoce puede
descifrar el mensaje.
‡ Es el tipo mas utilizado de encriptación.
‡ Proporciona confidencialidad de la información y
cierta garantía respecto a que no pueda ser
modificada mientras se encuentra en tránsito.
‡ No proporciona autentificación, ya que cualquiera
que conozca la clave puede descifrar el mensaje.
‡ También se conoce como encriptación de clave
simétrica: se usa la misma clave para cifrar y
descifrar la información.
‡ Es rápida y puede ser fácilmente implementada
tanto por hardware como en software.
| 
"!!"

‡ Reemplaza ó cambia elementos en el


texto por otros.
‡ Es simple, y funciona bien mientras
que el remitente y el receptor usen el
mismo esquema de sustitución: la
clave es el ³libro de códigos´ usado
para los reemplazos.
‡ Puede ser descifrado empleando
análisis de la frecuencia de los
códigos presentes en el mensaje
cifrado.
| 
')!+!
‡ Las libretas de un único uso (one-time pads - OTP)
constituyen el único sistema de encriptación teóricamente
indescifrable.
‡ Una OTP es una lista de números en orden completamente
aleatorio que se emplea para codificar un mensaje.
‡ Sólo debe utilizarse una vez.
‡ Si los números en la OTP son verdaderamente aleatorios y la
OTP es mas larga que el mensaje, el texto cifrado no
proporciona ningún mecanismo para recuperar la clave
original.
‡ Si las libretas no son verdaderamente aleatorias, surgen
patrones que pueden emplearse para realizar un análisis de
frecuencias.
‡ Si las OTP se utilizan mas de una vez, pueden ser analizadas y
descifradas.
‡ Su uso no es viable generalmente en entornos con abundante
tráfico.

| 
#"
% V'
‡ Data Encryption Standard ± DES, fue
desarrollado por IBM a principios de lo 70¶s.
Adoptado por NIST en 1977 y reafirmado
en 83, 88, 93 y 99
‡ Utiliza una clave de 56 bits: 7 bits de 8
bytes, quedando el octavo bit para paridad.
‡ Es un cifrado en bloque que funciona sobre
un bloque de 64 bits del texto original.
‡ Existen 16 rondas de encriptación, cada una
con una subclave diferente.
‡ La clave pasa a través de su propio
algoritmo para derivar las 16 subclaves.
Ver en el manual Linux: 
| 
!! 
 V
La estructura básica del algoritmo aparece
representada en la figura.
Hay 16 fases idénticas de proceso, denominadas
rondas.
También hay una permutación inicial y final
denominadas PI y PF, que son funciones inversas
entre sí (PI "deshace" la acción de PF, y viceversa).
PI y PF no son criptográficamente significativas, pero
se incluyeron presuntamente para facilitar la carga y
descarga de bloques sobre el hardware de mediados
de los 70.
Antes de las rondas, el bloque es dividido en dos
mitades de 32 bits y procesadas alternativamente.
Este entrecruzamiento se conoce como esquema
Feistel.

| 
!! 
 V%&'
La estructura de Feistel asegura que el cifrado y el
descifrado sean procesos muy similares ² la única
diferencia es que las subclaves se aplican en orden
inverso cuando desciframos.
El resto del algoritmo es idéntico. Esto simplifica
enormemente la implementación, en especial sobre
hardware, al no haber necesidad de algoritmos
distintos para el cifrado y el descifrado.
El símbolo rojo "ß" representa la operación OR
exclusivo (XOR). La función-F mezcla la mitad del
bloque con parte de la clave.
La salida de la función-F se combina entonces con la
otra mitad del bloque, y los bloques son
intercambiados antes de la siguiente ronda.
Tras la última ronda, las mitades no se intercambian;
ésta es una característica de la estructura de Feistel
que hace que el cifrado y el descifrado sean procesos
parecidos.
| 
'!"% ' 
Opera sobre medio bloque (32 bits) cada vez y
consta de cuatro pasos:
X xpansión ² la mitad del bloque de 32 bits se expande a 48 bits
mediante la permutación de expansión, denominada  en el
diagrama, duplicando algunos de los bits.
 ezcla ² el resultado se combina con una subclave utilizando
una operación XOR. Dieciséis subclaves ² una para cada ronda
² se derivan de la clave inicial mediante la generación de
subclaves descrita más abajo.
3 ustitución ² tras mezclarlo con la subclave, el bloque es
dividido en ocho trozos de 6 bits antes de ser procesados por las
S-cajas, o cajas de sustitución. Cada una de las ocho S-cajas
reemplaza sus seis bits de entrada con cuatro bits de salida, de
acuerdo con una trasformación no lineal, especificada por una
tabla de búsqueda Las S-cajas constituyen el núcleo de la
seguridad de DES ² sin ellas, el cifrado sería lineal, y fácil de
romper.
4 Permutación ² finalmente, las 32 salidas de las S-cajas se
reordenan de acuerdo a una permutación fija; la P-caja
Alternando la sustitución de las S-cajas, y la permutación de bits
de la P-caja y la expansión-E proporcionan las llamadas
"confusión y difusión" respectivamente, un concepto identificado
por Claude Shannon en los 40 como una condición necesaria
para un cifrado seguro pero práctico.

| 
"!) 
‡ La figura representa la generación de claves para el
cifrado ² el algoritmo que se encarga de proporcionar las
subclaves.
‡ Primero, se seleccionan 56 bits de la clave de los 64
iniciales mediante la lección Permutada X (P-X) ² los
ocho bits restantes pueden descartarse o utilizarse como
bits de comprobación de paridad.
‡ Los 56 bits se dividen entonces en dos mitades de 28 bits;
a continuación cada mitad se trata independientemente.
‡ En rondas sucesivas, ambas mitades se desplazan hacia la
izquierda uno o dos bits (dependiendo de cada ronda), y
entonces se seleccionan 48 bits de subclave mediante la
lección Permutada  (PC-) ² 24 bits de la mitad
izquierda y 24 de la derecha.
‡ Los desplazamientos (indicados por "<<<" en el
diagrama) implican que se utiliza un conjunto diferente de
bits en cada subclave; cada bit se usa aproximadamente
en 14 de las 16 subclaves.
‡ La generación de claves para descifrado es similar ² debe
generar las claves en orden inverso. Por tanto los
desplazamientos se hacen hacia la derecha, en lugar de
hacia la izquierda.

| 
" V
1. Libro de código electrónico: Encriptación básica. El
texto y la clave combinados formando el cifrado.
Una entrada idéntica produce salida idéntica.
2. Encadenamiento de bloques cifrados: Cada bloque
es cifrado como un libro de código electrónico,
pero se agrega un tercer factor derivado de la
entrada anterior. Una entrada idéntica no produce
una salida idéntica.
3. Retroalimentación del cifrado: Usa un texto cifrado
y previamente generado como entrada para DES.
4. Retroalimentación de salida: Semejante al
anterior, pero empleando la propia salida previa.

| 
(! V
‡ Aunque se ha publicado más información sobre el criptoanálisis de
DES que de ningún otro cifrado de bloque, el ataque más práctico
a día de hoy sigue siendo por fuerza bruta.
‡ Se conocen varias propiedades criptoanalíticas menores, y son
posibles tres tipos de ataques teóricos que, aún requiriendo una
complejidad teórica menor que un ataque por fuerza bruta,
requieren una cantidad irreal de textos planos conocidos o
escogidos para llevarse a cabo, y no se tienen en cuenta en la
práctica.
‡ Se han descubierto dos ataques que requieren menos cálculos que
una búsqueda exhaustiva:
1. Análisis criptográfico diferencial
2. Análisis criptográfico lineal
‡ Ver: RSA Laboratories' Frequently Asked Questions About Today's
Cryptography, Version 4.1
‡ La clave de 56 bits es un problema: proporciona solamente 255
claves potenciales, lo que puede examinarse por fuerza bruta en
un breve período.
‡ NIST ha reconocido este hecho, por lo que actualmente sólo se
autoriza DES simple para sistemas heredados.

| 
 V,
V,  V"- V

‡ Consiste en aplicar DES tres veces


consecutivas con dos ó tres claves.
‡ Si sólo se usan dos claves, las claves 1 y 2
son diferentes.
‡ TDES es un algoritmo relativamente
rápido. Puede implementarse en hardware.
‡ Se han propuesto ataques contra TDES,
pero los requisitos en datos necesarios son
muy elevados, por lo que es prácticamente
inviable.

| 
".

‡ La función de encriptación de
contraseñas es en un único sentido.
‡ El estándar utilizado en UNIX es una
variación del DES. (*)
‡ Las contraseñas encriptadas son
fáciles de descifrar por fuerza bruta,
por lo que se utilizan archivos de
contraseña ocultos.
‡ La debilidad principal del sistema
reside en la selección de contraseñas.
| 
"#
 /% V'
‡ Con el fin de reemplazar a DES, el NIST propuso el
Advanced Encryptation Standard ± AES desde
2000.
‡ Rijndael es un cifrado en bloque que utiliza claves
y bloques de 128, 192 ó 256 bits.
‡ El algoritmo se compone de 10 a 14 rondas o
series en dependencia del tamaño del texto original
y de las dimensiones de la clave.
‡ Hasta 2005, no se ha encontrado ningún ataque
exitoso contra el AES. La Agencia de Seguridad
Nacional de los Estados Unidos (NSA) revisó todos
los finalistas candidatos al AES, incluyendo el
Rijndael, y declaró que todos ellos eran
suficientemente seguros para su empleo en
información no clasificada del gobierno de los
Estados Unidos.
| 
 *
0 1  
‡ En criptografía el 
 (IDEA) es un cifrado de
bloque descrito por primera vez en 1991.
‡ Fue una revisión menor a PES (Estándar de
Encriptamiento Propuesto), un algoritmo de cifrado
anterior.
‡ Originalmente IDEA fue llamado IPES, (PES
Mejorado).
‡ Fue utilizado como el cifrador simétrico en las
primeras versiones de PGP.
‡ Es libre para uso no comercial aunque fue patentado
y sus patentes se vencerán en 2010 y 2011.
‡ Utiliza clave de 128 bits.
‡ Empleado en PGP ()

| 

"  
‡ Opera con bloques de 64 bits usando
una clave de 128 bits y consiste en
ocho transformaciones idénticas y una
transformación de salida (media
ronda).
‡ El proceso para encriptar y
desencriptar es similar.
‡ Las tres operaciones en su proceso,
con las cuales logra la confusión, se
realizan con grupos de 16 bits y son:
1. suma y aplica módulo 216 (cuadrado con
un más +)
2. multiplica y aplica módulo 216+1, que
es un número primo (círculo con punto
·)
3. operación O exclusiva (XOR) (círculo
con un más +)

| 
ƒ2 
Este algoritmo presenta, a primera vista, diferencias
notables con el DES que le hacen mas atractivo:
‡ El espacio de claves es mucho mas grande:
2128=3.4 x 1038
‡ Todas las operaciones son algebraicas.
‡ No hay operaciones a nivel de bit, facilitando su
programación en alto nivel
‡ Es mas eficiente que los algoritmos de tipo Feistel,
porque a cada vuelta se modifican todos los bits de
bloque y no solamente la mitad.
‡ Se pueden utilizar todos los modos de operación
definidos para el DES.

| 
V! 
‡ En primer lugar, el ataque por fuerza bruta resulta
impracticable, ya que seria necesario probar 1038
claves, cantidad imposible de manejar con los
medios informáticos actuales.
Los diseñadores analizaron IDEA para medir su
fortaleza frente al criptoanálisis diferencial y
concluyeron que lo es bajo ciertos supuestos.
‡ No se han reportado debilidades frente
criptoanálisis lineal o algebraico.
‡ Se han encontrado algunas claves débiles las cuales
en la práctica son poco usadas siendo necesario
evitarlas explícitamente.
‡ Es considerado por muchos como uno de los
cifrados en bloque mas seguros que existen

| 

 
 
‡ RC5: Permite claves de longitud variable
‡ Skipjack: Usa clave de 80 bits
‡ Blowfish: Clave de longitud variable hasta 448
bits ()30)
‡ Twofish: Usa bloques de 128 bits y puede
emplear claves de 128, 192 ó 256 bits
‡ CAST-128: Usa clave de 128 bits. Empleado en
versiones recientes de PGP
‡ GOST: Estándar ruso en respuesta a DES. Usa
clave de 256 bits

| 
" +)
‡ Utiliza dos claves: una para cifrar y otra diferente para
descifrar.
‡ Es mas reciente que la clave privada.
‡ Tanto el remitente como el receptor deben tener una clave.
‡ La relación entre claves es tal que lo encriptado por K1 sólo
puede ser descifrado por K2 y viceversa. Si se tiene
solamente una de las claves no puede calcularse la otra del
par.
‡ En la práctica, una clave del par se conoce como clave
privada y se mantiene en secreto por el propietario del par,
mientras que la otra se conoce como clave pública, y se
divulga con información respecto a quien es el propietario.
‡ Si se desea confidencialidad, la encriptación se realiza con
clave pública.
‡ Si se desea autentificación, el propietario del par de claves
encripta la información con la clave privada.
‡ La integridad de la información en tránsito es protegida en
cualquiera de las dos operaciones anteriores.

| 
) 
11 4

‡ Permite el intercambio secreto de claves entre dos partes que no han
tenido contacto previo, utilizando un canal inseguro, y de manera
anónima (no autenticada).
‡ Se emplea generalmente como medio para acordar claves simétricas
que serán empleadas para el cifrado de una sesión.
‡ Siendo no autenticado, sin embargo provee las bases para varios
protocolos autenticados.
‡ Su seguridad radica en la extrema dificultad (conjeturada, no
demostrada) de calcular logaritmos discretos en un campo finito.

| 
V
%!!'

‡ Algoritmo asimétrico cifrador de bloques, que utiliza una clave


pública, que se distribuye en forma autenticada
preferentemente, y otra privada, la cual es guardada en secreto
por su propietario.
‡ Una clave es un número de gran tamaño, que una persona
puede conceptualizar como un mensaje digital, como un archivo
binario o como una cadena de bits o bytes.
‡ Cuando se envía un mensaje, el emisor busca la clave pública
de cifrado del receptor y una vez que dicho mensaje llega al
receptor, éste se ocupa de descifrarlo usando su clave oculta.
‡ Los mensajes enviados usando el algoritmo RSA se representan
mediante números y el funcionamiento se basa en el producto
de dos números primos grandes (mayores que 10100) elegidos
al azar para conformar la clave de descifrado.
‡ Emplea expresiones exponenciales en aritmética modular.
‡ La seguridad de este algoritmo radica en que no hay maneras
rápidas conocidas de factorizar un número grande en sus
factores primos utilizando computadoras tradicionales.

| 
±!)115*!!
±!) 5*!!11 ±5
‡ La infraestructura de clave pública PKI es un
término relativamente reciente que consiste de
protocolos, servicios y estándares que soportan
aplicaciones de Criptografía de clave pública.
‡ Entre los servicios comúnmente encontrados en una
PKI se encuentran:
± Key registration: El registro de claves permite emitir un
nuevo certificado para una clave pública.
± Certificate revocation: Cancelación de un certificado
previamente emitido.
± Key selection: Obtención de una clave pública para trabajo.
± Trust evaluation: La evaluación de confianza determina si
un certificado es válido y a cuales operaciones autoriza.
‡ La recuperación de clave también ha sido sugerida
como posible elemento de una PKI.
| 
±5

‡ PKI es una combinación de hw y sw, políticas


y procedimientos que permiten asegurar la
identidad de los participantes en un
intercambio de datos usando criptografía
pública.
‡ El término PKI se utiliza para referirse tanto
a la autoridad de certificación y al resto de
componentes, como para referirse, de
manera más amplia y a veces confusa, al uso
de algoritmos de clave pública en
comunicación electrónicas.
‡ Este último significado es incorrecto, ya que
no se requieren métodos específicos de PKI
para usar algoritmos de clave pública.
| 
±511 ±"*!
±5
‡ Una PKI permite a los usuarios autenticarse frente a otros
usuarios y usar la información de los certificados de identidad
(por ejemplo, las claves públicas de otros usuarios) para
cifrar y descifrar mensajes.
‡ En general, una PKI consiste en un software para los clientes,
un software de servidor (como una autoridad de
certificación), hardware (por ejemplo, tarjetas inteligentes o
smart cards) y unos procedimientos operacionales.
‡ Un usuario puede firmar digitalmente mensajes usando su
clave privada, y otro usuario puede validar que dicha firma
pertenece al usuario anterior (usando la clave pública del
usuario contenida en el certificado que ha sido emitido por
una autoridad de certificación de la PKI).
‡ Esto permite a dos (o más) entidades establecer una
comunicación que garantiza la integridad del mensaje, la
autenticación de los usuarios y el no repudio del mensaje
enviado sin tener que intercambiar previamente ninguna
información secreta.

| 
±5
Los componentes más habituales de una infraestructura de
clave pública son:
‡ La autoridad de certificación (o, en inglés, CA, ertificate
uthority): Encargada de emitir y revocar certificados. Es la
entidad de confianza que da legitimidad a la relación de una
clave pública con la identidad de un usuario o servicio.
‡ La autoridad de registro (o, en inglés, RA, egistration
uthority): Responsable de verificar el enlace entre los
certificados (concretamente, entre la clave pública del
certificado) y la identidad de sus titulares.
‡ Los repositorios: Estructuras encargadas de almacenar la
información relativa a la PKI. Los dos repositorios más
importantes son el repositorio de certificados y el repositorio
de listas de revocación de certificados. En una lista de
revocación de certificados (o, en inglés, CRL, ertificate
evocation 'ist) se incluyen todos aquellos certificados que
por algún motivo han dejado de ser válidos antes de la fecha
establecido dentro del mismo certificado.

| 
±5%&'
‡ La autoridad de validación (o, en inglés, VA,
ƒalidation uthority): Encargada de comprobar la
validez de los certificados digitales.
‡ La autoridad de sellado de tiempo (o, en inglés,
TSA, imeVtamp uthority): Encargada de firmar
documentos con la finalidad de probar que existían
antes de un determinado instante de tiempo.
‡ Los usuarios y entidades finales son aquellos que
poseen un par de claves: pública y privada, y un
certificado asociada a su clave pública. Utilizan un
conjunto de aplicaciones que hacen uso de la
tecnología PKI para validar firmar digitales, cifrar
documentos para otros usuarios, etc.

| 
±5
‡ Comerciales:
± VeriSign http://www.verisign.com/
± Thawte http://www.thawte.com/
‡ Otras con software disponible:
± Computer Associates eTrust PKI
± Entrust
± Microsoft
± Netscape CMS
± Nexus
± OpenCA
± Open SSL Herramienta libre para crear CAs
± Red Hat Certificate Management System
± RSA Security
± Safelayer
± WISeKey

| 

 
+)

‡ Encriptación de curva elíptica


‡ ElGamal
‡ Algoritmo de firma digital (Digital
Signature Algorithm ± DSA)

| 
! 

‡ Variante de la criptografía asimétrica o de clave


pública basada en las matemáticas de las curvas
elípticas.
‡ Se argumenta que puede ser más rápida y usar
claves más cortas que otros métodos como RSA, al
tiempo que proporcionan un nivel de seguridad
equivalente.
‡ La utilización de curvas elípticas en criptografía fue
propuesta de forma independiente por varios
investigadores.
‡ Ha sido ampliamente reconocida como el algoritmo
más fuerte para una determinada longitud de clave,
por lo que podría resultar útil sobre enlaces que
tengan requisitos muy limitados de ancho de banda.

| 
 
‡ El protocolo "  provee
negociación en un solo paso y autenticación unilateral (del receptor
hacia el emisor) si la clave pública del receptor es conocida de
antemano por el emisor.
‡ Es un algoritmo para criptografía asimétrica basado en Diffie-
Hellman.
‡ Es usado en el software libre GNU Privacy Guard, versiones
recientes de PGP y otros sistemas.
‡ La seguridad del algoritmo depende en la dificultad de calcular
logaritmos discretos. Específicamente, si el problema discreto del
logaritmo se pudiera solucionar eficientemente, entonces ElGamal
estaría roto.
‡ Consiste de tres componentes: el generador de claves, el algoritmo
de encriptación, y el algoritmo de desencriptación.
‡ Es un ejemplo simple de un algoritmo dominante asimétrico
semántico seguro del cifrado (bajo asunciones razonables).
‡ Es probabilístico, significando que un solo texto plano se puede cifrar
a muchos textos cifrados posibles, con la consecuencia que un
cifrado de general ElGamal produce una extensión de 2:1 de tamaño
de texto plano al texto cifrado.

| 

‡ El algoritmo de firma digital (Digital
Signature Algorithm ± DSA) fue propuesto
por el NIST para firmas digitales.
‡ Se hizo público en 1991.
‡ Sólo sirve para firmar y no para cifrar
información.
‡ Una desventaja de este algoritmo es que
requiere mucho más tiempo de cómputo
que RSA.
‡ Consta de tres partes: generación de llaves,
firma y verificación.

| 


‡ Método criptográfico que asegura su integridad así


como la identidad del remitente.
‡ La firma digital de un documento es el resultado de
aplicar cierto algoritmo matemático, denominado
función hash, al contenido.
‡ Esta función asocia un valor dentro de un conjunto
finito (generalmente subconjunto de los números
naturales) a su entrada.
‡ Cuando la entrada es un documento, el resultado
de la función es un número que identifica casi
unívocamente al texto.
‡ Si se adjunta este número al texto, el destinatario
puede aplicar de nuevo la función y comprobar su
resultado con el que ha recibido.
‡ No obstante esto presenta algunas dificultades.
| 
$40
‡ Es un método para resumir o identificar datos a
través de la probabilidad, utilizando una función
hash o algoritmo hash.
‡ Un hash es el resultado de dicha función o
algoritmo.
‡ Una función hash es una función para sumarizar o
identificar probabilísticamente un gran conjunto de
información (), dando como resultado un
conjunto imagen finito generalmente menor (un
subconjunto de los números naturales por
ejemplo).
‡ Varían en los conjunto de partida y de llegada y en
cómo afectan a la salida semejanzas o patrones de
la entrada.

| 
$40%&'
‡ Una propiedad fundamental del hashing es
que si dos hashes, utilizando la misma
función, son diferentes, entonces las dos
entradas que generaron dichos hashes
también lo son.
‡ Son usadas en múltiples aplicaciones, como
los arrays asociativos, criptografía,
procesamiento de datos y firmas digitales
entre otros.
‡ Una buena función hash es una que
experimenta pocas colisiones en el conjunto
esperado de entrada; es decir que se podrá
identificar unívocamente las entradas.

| 
2!"00

| 
(!
‡ Para que sea de utilidad, la función hash debe satisfacer dos
importantes requisitos:
1. Debe ser difícil encontrar dos documentos cuyo valor para la
función "hash" sea idéntico.
2. Dado uno de estos valores, debería ser difícil recuperar el
documento que lo produjo.
‡ Algunos sistemas de cifrado de clave pública se pueden usar
para firmar documentos. El firmante cifra el documento con
su clave privada y cualquiera que quiera comprobar la firma y
ver el documento, no tiene más que usar la clave pública del
firmante para descifrarla.
‡ Existen funciones "hash" específicamente designadas para
satisfacer estas dos importantes propiedades. SHA y MD5 son
dos ejemplos de este tipo de algoritmos. Para usarlos un
documento se firma con una función "hash", cuyo resultado
es la firma. Otra persona puede comprobar la firma aplicando
la misma función a su copia del documento y comparando el
resultado con el del documento original. Si concuerdan, es
casi seguro que los documentos son idénticos.

| 
)40
‡ Las tablas hash, una de las aplicaciones más extendidas de las
funciones hash, aceleran el proceso de búsqueda de un registro
de información según una clave (nota: este uso de la palabra
poco se relaciona con su significado habitual). Por ejemplo, una
cadena alfanumérica puede ser utilizada para buscar la
información de un empleado en la base de datos de un sistema.
‡ La utilización de tablas hash provee de un acceso casi directo a
dichos registros, lo que significa que, en promedio, una
búsqueda puede llegar a requerir sólo uno o dos intentos en la
memoria o el archivo que contiene la información.
Naturalmente, se prefiere una buena función hash que evitará
colisiones de hash.
‡ Si asumimos que la clave es una cadena de bytes, entonces la
función hash debería ser como un índice de los registros que
tiene una distribución aleatoria sobre las cadenas de entrada
esperadas. De otra forma, habría más colisiones de hash
degradando así el tiempo de búsqueda. Si, por ejemplo, la
clave es alfabética, cada byte puede tener sólo 26 de sus 256
valores posibles. Funciones tan simples no distribuirán los
índices de una forma pareja.
| 


‡ En informática y en especial en criptografía, una


"00 se produce cuando dos entradas
distintas producen la misma salida.
‡ Es matemáticamente imposible que una función de
hash carezca de colisiones, ya que el número
potencial de posibles entradas es menor que el
número de salidas que puede producir un hash. Sin
embargo, las colisiones se producen más
frecuentemente en los malos algoritmos.
‡ En ciertas aplicaciones especializadas con un
relativamente pequeño número de entradas que
son conocidas de antemano es posible construir una
función de hash perfecta, que se asegura que todas
las entradas tengan una salida diferente.

| 
%&'

‡ En una función en la cual se puede introducir datos


de longitud arbitraria y que devuelve un hash de
tamaño fijo (como MD5), siempre habrá colisiones,
dado que un hash dado puede pertenecer a un
infinito número de entradas.
‡ Una de las propiedades deseables de las funciones
de hash es que sea computacionalmente no factible
encontrar una colisión.
‡ El valor de una función hash puede ser usado para
certificar que un texto dado (o cualquier otro dato)
no está modificado publicando su valor de hash si
no es factible hallar una colisión.

| 
V4
‡ La familia V4 (ecure Hash Algorithm, Algoritmo de Hash
Seguro) es un sistema de funciones hash criptográficas
relacionadas de la Agencia de Seguridad Nacional de los
Estados Unidos (NSA) y publicadas por el National Institute
of tandards and Technology (NIST).
‡ El primer miembro de la familia fue publicado en 1993 es
oficialmente llamado V4. Dos años más tarde el primer
sucesor de SHA fue publicado con el nombre de V416.
‡ Existen cuatro variantes más que se han publicado desde
entonces cuyas diferencias se basan en un diseño algo
modificado y rangos de salida incrementados: V41&&7,
V41&89, V41-:7, y V4186& (todos ellos son referidos
como V41&).
‡ Ha sido examinado muy de cerca por la comunidad
criptográfica pública y no se ha encontrado ningún ataque
efectivo.

| 
 8

‡ En criptografía, 8 (acrónimo de
essage-Digest Algorithm 5, Algoritmo de
Resumen del Mensaje 5) es un algoritmo de
reducción criptográfico de 128 bits
ampliamente usado.
‡ Durante el año 2004 fueron divulgados
ciertos defectos de seguridad, lo que hará
que en un futuro cercano se cambie de este
sistema a otro más seguro.

Ejemplo de funcionamiento de SHA y MD5


| 
(!V4116
(!V4
‡ La resistencia de SHA-1 se vió comprometida en
2005.
‡ Después de que MD5, entre otros, quedara
seriamente comprometido en el 2004 por parte de
un equipo de investigadores chinos, el tiempo de
vida de SHA-1 quedó visto para sentencia.
‡ El mismo equipo de investigadores chinos ha
demostrado que son capaces de romper el SHA-1
en al menos 269 operaciones, unas 2000 veces
más rápido que un ataque de fuerza bruta (que
requeriría 280 operaciones).
‡ Los últimos ataques contra SHA-1 han logrado
debilitarlo hasta 263.

| 
(!V4116%&'
(!V4
‡ Según el NIST, ³este ataque es de particular
importancia para las aplicaciones que usan firmas
digitales tales como marcas de tiempo y notarías.
‡ Sin embargo, muchas aplicaciones que usan firmas
digitales incluyen información sobre el contexto
que hacen este ataque difícil de llevar a cabo en la
práctica.´
‡ La importancia de la rotura de una función hash se
debe comprender de la siguiente manera:
± Un hash permite crear una huella digital, en teoría única,
de un archivo.
± Si un hash fuese roto podría haber otro documento con la
misma huella.
± La similitud podría ser que hubiese personas que
compartiesen las mismas huellas digitales, o peor aún, el
mismo ADN: No habría manera de poder diferenciarlos
usando estos medios de discriminación.
| 
0)
‡ Método criptográfico que usa tanto un cifrado simétrico como uno asimétrico.
‡ Emplea el cifrado de clave pública para compartir una clave para el cifrado
simétrico.
‡ El mensaje que se esté enviando en el momento, se cifra usando la clave y
enviándolo al destinatario.
‡ Ya que compartir una clave simétrica no es seguro, la clave usada es diferente
para cada sesión.
‡ Tanto PGP como GnuPG usan sistemas de cifrado híbridos. La clave de sesión
es cifrada con la clave pública, y el mensaje saliente es cifrado con la clave
simétrica, todo combinado automáticamente en un sólo paquete. El
destinatario usa su clave privada para descifrar la clave de sesión y acto
seguido usa la clave de sesión para descifrar el mensaje.
‡ Un sistema de cifrado híbrido no es más fuerte que el de cifrado asimétrico o
el de cifrado simétrico de los que hace uso, independientemente de cuál sea
más débil.
‡ En PGP y GnuPG el sistema de clave pública es probablemente la parte más
débil de la combinación. Sin embargo, si un atacante pudiera descifrar una
clave de sesión, sólo sería útil para poder leer un mensaje, el cifrado con esa
clave de sesión. El atacante tendría que volver a empezar y descifrar otra
clave de sesión para poder leer cualquier otro mensaje.

| 
±*± *;1
*;1 ±±
‡ Privacidad bastante buena o ±± es un programa
cuya finalidad es proteger la información distribuida a
través de Internet mediante el uso de criptografía de
clave pública, así como facilitar la autenticación de
documentos gracias a firmas digitales.
‡ Puede proporcionar un gran nivel de seguridad. Es
más, observadores informados creen que ni siquiera
las agencias del gobierno estadounidense como la
NSA son capaces de descifrar directamente mensajes
generados adecuadamente con PGP.
‡ PGP es más fácil de utilizar que muchos otros
criptosistemas, pero como ocurre siempre en el
campo de la criptografía, su implementación y su
utilización influyen muchísimo en la seguridad
lograda.
| 
±±%&'
‡ Existe la posibilidad de que haya errores en la
implementación, y si se utiliza
descuidadamente es posible desproteger
fácilmente un archivo de texto protegido.
Cualquier criptosistema puede ser inseguro,
independientemente de lo bueno que sea su
diseño.
‡ A diferencia de protocolos de seguridad como
SSL, que sólo protege los datos en tránsito (es
decir, mientras se transmiten a través de la
red), PGP también puede utilizarse para
proteger datos almacenados en discos, copias
de seguridad, etc.
| 
!±

‡ Reemplazo libre y completo de PGP.


‡ Puede ser usado sin restricciones
debido a que no usa el algoritmo
patentado IDEA.
‡ GnuPG es una aplicación que cumple el
estándar RFC 2440 (OpenPGP).

| 

‡ Rama de la criptología que trata sobre la ocultación de
mensajes, para evitar que se perciba la existencia del mismo.
‡ Es el arte y ciencia de escribir mensajes secretos de tal forma
que nadie fuera de quien lo envía y quien lo recibe sabe de su
existencia; en contraste con la criptografía, en donde la
existencia del mensaje es clara, pero el contenido del mensaje
está oculto. Por lo general un mensaje de este tipo parece ser
otra cosa, como una lista de compras, un artículo, una foto,
etc.
‡ Los mensajes en la esteganografía muchas veces son cifrados
primero por medios tradicionales, para posteriormente ser
ocultados por ejemplo en un texto que pueda contener dicho
mensaje cifrado, resultando el mensaje esteganográfico.
‡ Un texto puede ser manipulado en el tamaño de letra,
espaciado, tipo y otras características para ocultar un mensaje,
sólo el que lo recibe, quien sabe la técnica usada, puede
extraer el mensaje y luego descifrarlo.

| 
‰00
‡ Programa que aplica fuerza bruta para descifrar
contraseñas.
‡ Capaz de romper varios algoritmos de encriptación,
como DES, SHA-1 y otros.
‡ Es una herramienta de seguridad muy popular, ya
que permite a los administradores de sistemas
comprobar que las contraseñas de los usuarios son
suficientemente buenas.
‡ ‰  es capaz de autodetectar el tipo de
cifrado de entre muchos disponibles, y se puede
personalizar su algoritmo de prueba de contraseñas,
lo que ha hecho que sea uno de los más usados en
este campo.

| 
±!
1. ¿Cuáles son las tres maneras de atacar un
esquema de encriptación?
2. Explique las diferencias entre cifrado por
clave pública y por clave privada.
3. ¿Cuáles son los componentes esenciales de
un cifrador simétrico?
4. ¿Cuántas claves se necesitan para que dos
personas se comuniquen usando un
cifrador simétrico?
5. ¿Cuál es la principal debilidad de DES?
6. ¿Qué es triple cifrado (TDES ó 3DES)?

| 
±!%&'

7. Explique las ventajas de IDEA.


8. ¿Qué es una firma digital?
9. ¿En qué consiste PKI?
10.¿En qué se diferencian la clave de sesión y
la clave maestra?
11.¿Qué propiedades debe cumplir una
función hash para que sea útil?
12.¿Cuáles son las componentes principales
de un criptosistema de clava pública?

| 
Ë)
Archivos:
‡ ³CRIPTOSISTEMAS CLÁSICOS´ (archivo CriptoClasica.ZIP)
‡ ³LIBRO ELECTRÓNICO DE SEGURIDAD INFORMÁTICA Y
CRIPTOGRAFÍA´ Jorge Ramió Aguirre (archivo SegInfoCrip_v41.ZIP):
http://www.criptored.upm.es/guiateoria/gt_m001a.htm
‡ Criptografía y Seguridad en Computadores:
http://wwwdi.ujaen.es/~mlucena/wiki/pmwiki.php?n=Main.LCripto
Textos:
‡ Eric Maiwald ³Fundamentos de Seguridad de Redes´ Parte III Módulo
12 ³Encriptación´ pp 247-276
‡ William Stalings ³Fundamentos de Seguridad en Redes: Aplicaciones y
Estándares´ Parte I ³Criptografía´ pp 25-88
Sitios Web:
‡ Taller de Criptografía
‡ Wikipedia: Criptografía
‡ Introducción a la Criptografía
‡ Openwall Project: bringing security into open environments

| 

You might also like