SlideShare una empresa de Scribd logo
Hash                                                                                                                        1



   Hash
   En informática, Hash se refiere a una
   función o método para generar claves o
   llaves que representen de manera casi
   unívoca a un documento, registro,
   archivo, etc., resumir o identificar un
   dato 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 de hash es una función
   para      resumir      o      identificar
   probabilísticamente un gran conjunto
   de información, dando como resultado
   un      conjunto     imagen        finito                      Una función de hash en funcionamiento.
   generalmente menor (un subconjunto
   de los números naturales por ejemplo). Varían en los conjuntos de partida y de llegada y en cómo afectan a la salida
   similitudes o patrones de la entrada. Una propiedad fundamental del hashing es que si dos resultados de una misma
   función son diferentes, entonces las dos entradas que generaron dichos resultados también 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 tamaño límite).
   Son usadas en múltiples aplicaciones, como los arrays asociativos, criptografía, procesamiento de datos y firmas
   digitales, entre otros. Una buena función de hash es una que experimenta pocas colisiones en el conjunto esperado
   de entrada; es decir que se podrán identificar unívocamente las entradas (ver función inyectiva).
   Muchos sistemas relacionados con la seguridad informática usan funciones o tablas hash.


   Orígenes del término
   El término hash proviene, aparentemente, de la analogía con el significado estándar (en inglés) 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 memorándum datado en enero de 1953. Su utilización masiva no fue hasta después de 10 años.
   En el algoritmo SHA-1, por ejemplo, el conjunto de partida de la función es dividido en palabras que son mezcladas
   entre sí utilizando funciones matemáticas seleccionadas especialmente. Se hace que el rango de valores que puede
   devolver la función sea de longitud fija: 160 bits utilizando la adición modular.
Hash                                                                                                                        2


   Formal
   Más formalmente, la función de hash está definida por su dominio (cadenas de bytes de longitud variable), su
   imagen (secuencias de bytes de longitud fija) y por la función que relaciona dichos conjuntos (llamada función H).
   La característica deseada en una función Hash es:
   Primer criterio:
   Desafortunadamente esta idealización (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 condición
   para hacer la función útil. Por ejemplo:
   Segundo criterio (1): dado un         es complejo encontrar    tal que                  .
   Segundo criterio (2): dados     y            no es sencillo encontrar    .
   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 increíblemente grande (ver
   NP-C). Además, + puede ser cualquier operación válida sobre el conjunto de partida.
   En la práctica, para la mayoría de las aplicaciones sin contar la corrección de errores las funciones hash
   criptográficas son suficientemente útiles. Los algoritmos MD5 y SHA-1 son dos de los más populares.


   Funciones Resumen
   Estos métodos son muy variados, pueden llegar a tomar en cuenta diversos parámetros tales como el nombre de un
   archivo, su longitud, hora de creación, datos que contenga, etc. aplicándole diversas transformaciones y operaciones
   matemáticas. Algunas aplicaciones de las funciones resumen son las siguientes:
   • Identificar algún archivo de computadora independientemente de su nombre o ubicación, 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 algún 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 comúnmente empleado para corroborar la integridad de un archivo bajado de
     internet, usualmente en la misma página 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 práctica común
     dentro del ambiente del software libre, donde después de bajar el archivo se puede comprobar su integridad
     ejecutando el comando md5sum e indicándole el archivo a analizar.
   • Identificar un registro en una base de datos y permitir con ello un acceso más rápido a los registros (incluso más
     rápido que teniendo índices).


   Tablas hash
   Las tablas hash, una de las aplicaciones más extendidas de las funciones de 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 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 de hash que evitará colisiones de hash.
   Si asumimos que la clave es una cadena de bytes, entonces la función de 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
Hash                                                                                                                         3


   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.
   Para una comparación de velocidad y calidad de varias funciones de hash, referirse a los enlaces externos.


   Corrección de errores
   Para la corrección de errores, se asume una proximidad de la distribución de perturbaciones altamente probables. Las
   perturbaciones son clasificadas en: errores grandes (improbables) y pequeños (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 pequeño.

   Las funciones que se guían según estos criterios son conocidas como "códigos de corrección de errores". Las
   derivaciones más importantes de este tipo de códigos de corrección son los chequeos redundancia cíclica y los
   códigos Reed-Solomon.


   Identificación de audio
   Para la identificación de audio, como verificar si un archivo MP3 coincide con alguno de una lista conocida, uno
   podría utilizar una función hash conocida como MD5. Sin embargo, esto sería extremadamente sensible a
   perturbaciones extremadamente probables como variación de ritmo, errores de lectura, cambios en el algoritmo de
   compresión o diferencias en el volumen del sonido. El utilizar MD5 es útil como un primer paso para encontrar
   archivos idénticos, pero se requiere un algoritmo más sofisticado para encontrar los elementos coincidentes.
   Contrariamente a lo que se cree, existen algoritmos robustos para funciones hash con estas características. La
   mayoría de los que se encuentran disponibles no son extremadamente precisos con respecto a estos cambios, pero
   algunos son lo suficientemente precisos como para identificar la música que proviene de los altavoces en una sala
   ruidosa.


   Algoritmo Rabin-Karp
   Este algoritmo es relativamente rápido para la búsqueda de cadena de caracteres. En promedio, el tiempo de
   ejecución es lineal con respecto a la longitud de la entrada. Se basa en la utilización de funciones hash para comparar
   cadenas.
   Un modelo simple (e ineficiente) de función de hash es

           f(x) = 0 para todo entero x.

   Obviamente, la colisión hash en esta función es total. Una un poco más interesante es:

           f(x) = x mod 1021

   Esto es devuelve el resto de la división x entre 1021. Obviamente, la colisión es menor siempre que el conjunto del
   cual toma valores x no sea muy grande o lo suficientemente aleatorio. Además, nótese que el hecho de que 1021 sea
   un número primo no es algo azaroso sino que fue cuidadosamente elegido ya que mecanismos que utilizan este tipo
   de funciones con números primos como base son muy comunes en criptografía.
Hash                                                                                                         4


   Véase también
   • MD5
   • SHA


   Enlaces externos
   • Funciones hash para búsqueda en tablas hash [1] (en inglés).
   • Generador de Hashes [2] Generador Online de Hashes (CRCs, MD2, MD4, MD5, SHA1, Tiger, Snefru, RipeMD,
     Whirlpool, Haval, entre otros) Aproximadamente 123 algoritmos, y 200 modos (Hex, Base64)
   • Documentación sobre hashing [3] (en castellano).


   Referencias
   [1] http:/ / burtleburtle. net/ bob/ hash/ evahash. html
   [2] http:/ / www. sinfocol. org/ herramientas/ hashes. php
   [3] http:/ / www. peiper. com. ar/ edicion04/ hashing. pdf
Fuentes y contribuyentes del artículo                                                                                                                                                         5



     Fuentes y contribuyentes del artículo
     Hash  Fuente: http://es.wikipedia.org/w/index.php?oldid=35305479  Contribuyentes: Aalvarez12, Airunp, Alexav8, Antur, Bernard77, ColdWind, Cybercrank, Dodo, Elwikipedista, Fmariluis,
     Hardcoded, Isha, Itz37, Jane Doe, KnightRider, Maose, Miguelo on the road, Moleculax, Netito777, Qwertyytrewqqwerty, Rayearth, Shooke, Swatnio, Taichi, Telemonica, Vitamine, Zam, 67
     ediciones anónimas




     Fuentes de imagen, Licencias y contribuyentes
     Archivo:Hash function.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Hash_function.svg  Licencia: Public Domain  Contribuyentes: Helix84, Joanjoc, Mdd, Nguyễn Thanh
     Quang, 3 ediciones anónimas




     Licencia
     Creative Commons Attribution-Share Alike 3.0 Unported
     http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

Más contenido relacionado

PDF
Encriptacion hash
PPTX
Método de Búsqueda Hash
PPTX
Tablas Hash
PPT
EXPOSICION HASH
PDF
15 Tablas Hash
 
PPT
Tablas Hash Fash Vmaa
ODP
Método por plegamiento Hash
PPT
Algoritmo De Hash
Encriptacion hash
Método de Búsqueda Hash
Tablas Hash
EXPOSICION HASH
15 Tablas Hash
 
Tablas Hash Fash Vmaa
Método por plegamiento Hash
Algoritmo De Hash

Similar a Funcion resumen (20)

DOCX
Ejercicios funciones de hash
PDF
Funcion hash
PPTX
Identificando el tipo de hash
PPTX
2.3.3 Busqueda Hash.pptx
PPTX
Tablas Hash.pptx estructura de datos
PPTX
Johntheripper
PPTX
Johntheripper
PPT
tablas hash
PPT
tablas hash
PPT
Tablas Hash
PPTX
hashing y colisiones
PDF
Quasi - Ficheros, Organizacion, Procesamiento, Acceso
PPTX
Hashtable
PDF
Informe analisis de algoritmos (mitad de cuadrado)
PPTX
Estructura de datos - Tecnologias de la Informacion y Comunicacion.pptx
PPTX
Criptografía - Funciones Resumen
PPTX
Busqueda por HASH
PPTX
Tabladesmbolos 101103230525-phpapp02
PPTX
Presentación1.pptx
PPTX
John-the-Ripper-Una-Interpretacion-Profunda.pptx
Ejercicios funciones de hash
Funcion hash
Identificando el tipo de hash
2.3.3 Busqueda Hash.pptx
Tablas Hash.pptx estructura de datos
Johntheripper
Johntheripper
tablas hash
tablas hash
Tablas Hash
hashing y colisiones
Quasi - Ficheros, Organizacion, Procesamiento, Acceso
Hashtable
Informe analisis de algoritmos (mitad de cuadrado)
Estructura de datos - Tecnologias de la Informacion y Comunicacion.pptx
Criptografía - Funciones Resumen
Busqueda por HASH
Tabladesmbolos 101103230525-phpapp02
Presentación1.pptx
John-the-Ripper-Una-Interpretacion-Profunda.pptx
Publicidad

Más de G Hoyos A (20)

PPT
curvas elipticas
PPT
correo seguro
PPT
cifra flujo
PPT
composicion de algoritmos
PPT
gestion seguridad informatica
PPT
calidad de la informacion
DOC
Cripto clasica
PDF
Presentacion cripto transp_manuel_lucena
PDF
S box
PDF
PDF
Unixsec
PDF
Transposicion
PDF
Sellado de tiempo_timestamp
PDF
Protocolo gestor claves
PDF
Problema rsa
PDF
PDF
Número primo fuerte
PDF
Metodo kasiski
PDF
Modos de operación_de_una_unidad_de_cifrado_por_bloques
RTF
curvas elipticas
correo seguro
cifra flujo
composicion de algoritmos
gestion seguridad informatica
calidad de la informacion
Cripto clasica
Presentacion cripto transp_manuel_lucena
S box
Unixsec
Transposicion
Sellado de tiempo_timestamp
Protocolo gestor claves
Problema rsa
Número primo fuerte
Metodo kasiski
Modos de operación_de_una_unidad_de_cifrado_por_bloques
Publicidad

Funcion resumen

  • 1. Hash 1 Hash En informática, Hash se refiere a una función o método para generar claves o llaves que representen de manera casi unívoca a un documento, registro, archivo, etc., resumir o identificar un dato 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 de hash es una función para resumir o identificar probabilísticamente un gran conjunto de información, dando como resultado un conjunto imagen finito Una función de hash en funcionamiento. generalmente menor (un subconjunto de los números naturales por ejemplo). Varían en los conjuntos de partida y de llegada y en cómo afectan a la salida similitudes o patrones de la entrada. Una propiedad fundamental del hashing es que si dos resultados de una misma función son diferentes, entonces las dos entradas que generaron dichos resultados también 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 tamaño límite). Son usadas en múltiples aplicaciones, como los arrays asociativos, criptografía, procesamiento de datos y firmas digitales, entre otros. Una buena función de hash es una que experimenta pocas colisiones en el conjunto esperado de entrada; es decir que se podrán identificar unívocamente las entradas (ver función inyectiva). Muchos sistemas relacionados con la seguridad informática usan funciones o tablas hash. Orígenes del término El término hash proviene, aparentemente, de la analogía con el significado estándar (en inglés) 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 memorándum datado en enero de 1953. Su utilización masiva no fue hasta después de 10 años. En el algoritmo SHA-1, por ejemplo, el conjunto de partida de la función es dividido en palabras que son mezcladas entre sí utilizando funciones matemáticas seleccionadas especialmente. Se hace que el rango de valores que puede devolver la función sea de longitud fija: 160 bits utilizando la adición modular.
  • 2. Hash 2 Formal Más formalmente, la función de hash está definida por su dominio (cadenas de bytes de longitud variable), su imagen (secuencias de bytes de longitud fija) y por la función que relaciona dichos conjuntos (llamada función H). La característica deseada en una función Hash es: Primer criterio: Desafortunadamente esta idealización (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 condición para hacer la función útil. Por ejemplo: Segundo criterio (1): dado un es complejo encontrar tal que . Segundo criterio (2): dados y no es sencillo encontrar . 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 increíblemente grande (ver NP-C). Además, + puede ser cualquier operación válida sobre el conjunto de partida. En la práctica, para la mayoría de las aplicaciones sin contar la corrección de errores las funciones hash criptográficas son suficientemente útiles. Los algoritmos MD5 y SHA-1 son dos de los más populares. Funciones Resumen Estos métodos son muy variados, pueden llegar a tomar en cuenta diversos parámetros tales como el nombre de un archivo, su longitud, hora de creación, datos que contenga, etc. aplicándole diversas transformaciones y operaciones matemáticas. Algunas aplicaciones de las funciones resumen son las siguientes: • Identificar algún archivo de computadora independientemente de su nombre o ubicación, 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 algún 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 comúnmente empleado para corroborar la integridad de un archivo bajado de internet, usualmente en la misma página 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 práctica común dentro del ambiente del software libre, donde después de bajar el archivo se puede comprobar su integridad ejecutando el comando md5sum e indicándole el archivo a analizar. • Identificar un registro en una base de datos y permitir con ello un acceso más rápido a los registros (incluso más rápido que teniendo índices). Tablas hash Las tablas hash, una de las aplicaciones más extendidas de las funciones de 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 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 de hash que evitará colisiones de hash. Si asumimos que la clave es una cadena de bytes, entonces la función de 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
  • 3. Hash 3 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. Para una comparación de velocidad y calidad de varias funciones de hash, referirse a los enlaces externos. Corrección de errores Para la corrección de errores, se asume una proximidad de la distribución de perturbaciones altamente probables. Las perturbaciones son clasificadas en: errores grandes (improbables) y pequeños (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 pequeño. Las funciones que se guían según estos criterios son conocidas como "códigos de corrección de errores". Las derivaciones más importantes de este tipo de códigos de corrección son los chequeos redundancia cíclica y los códigos Reed-Solomon. Identificación de audio Para la identificación de audio, como verificar si un archivo MP3 coincide con alguno de una lista conocida, uno podría utilizar una función hash conocida como MD5. Sin embargo, esto sería extremadamente sensible a perturbaciones extremadamente probables como variación de ritmo, errores de lectura, cambios en el algoritmo de compresión o diferencias en el volumen del sonido. El utilizar MD5 es útil como un primer paso para encontrar archivos idénticos, pero se requiere un algoritmo más sofisticado para encontrar los elementos coincidentes. Contrariamente a lo que se cree, existen algoritmos robustos para funciones hash con estas características. La mayoría de los que se encuentran disponibles no son extremadamente precisos con respecto a estos cambios, pero algunos son lo suficientemente precisos como para identificar la música que proviene de los altavoces en una sala ruidosa. Algoritmo Rabin-Karp Este algoritmo es relativamente rápido para la búsqueda de cadena de caracteres. En promedio, el tiempo de ejecución es lineal con respecto a la longitud de la entrada. Se basa en la utilización de funciones hash para comparar cadenas. Un modelo simple (e ineficiente) de función de hash es f(x) = 0 para todo entero x. Obviamente, la colisión hash en esta función es total. Una un poco más interesante es: f(x) = x mod 1021 Esto es devuelve el resto de la división x entre 1021. Obviamente, la colisión es menor siempre que el conjunto del cual toma valores x no sea muy grande o lo suficientemente aleatorio. Además, nótese que el hecho de que 1021 sea un número primo no es algo azaroso sino que fue cuidadosamente elegido ya que mecanismos que utilizan este tipo de funciones con números primos como base son muy comunes en criptografía.
  • 4. Hash 4 Véase también • MD5 • SHA Enlaces externos • Funciones hash para búsqueda en tablas hash [1] (en inglés). • Generador de Hashes [2] Generador Online de Hashes (CRCs, MD2, MD4, MD5, SHA1, Tiger, Snefru, RipeMD, Whirlpool, Haval, entre otros) Aproximadamente 123 algoritmos, y 200 modos (Hex, Base64) • Documentación sobre hashing [3] (en castellano). Referencias [1] http:/ / burtleburtle. net/ bob/ hash/ evahash. html [2] http:/ / www. sinfocol. org/ herramientas/ hashes. php [3] http:/ / www. peiper. com. ar/ edicion04/ hashing. pdf
  • 5. Fuentes y contribuyentes del artículo 5 Fuentes y contribuyentes del artículo Hash  Fuente: http://es.wikipedia.org/w/index.php?oldid=35305479  Contribuyentes: Aalvarez12, Airunp, Alexav8, Antur, Bernard77, ColdWind, Cybercrank, Dodo, Elwikipedista, Fmariluis, Hardcoded, Isha, Itz37, Jane Doe, KnightRider, Maose, Miguelo on the road, Moleculax, Netito777, Qwertyytrewqqwerty, Rayearth, Shooke, Swatnio, Taichi, Telemonica, Vitamine, Zam, 67 ediciones anónimas Fuentes de imagen, Licencias y contribuyentes Archivo:Hash function.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Hash_function.svg  Licencia: Public Domain  Contribuyentes: Helix84, Joanjoc, Mdd, Nguyễn Thanh Quang, 3 ediciones anónimas Licencia Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/