stringtranslate.com

Huella digital (informática)

En informática , un algoritmo de toma de huellas digitales es un procedimiento que asigna un elemento de datos arbitrariamente grande (como un archivo de computadora ) a una cadena de bits mucho más corta , su huella digital , que identifica de manera única los datos originales para todos los propósitos prácticos [1] tal como lo hace el ser humano. Las huellas dactilares identifican de forma única a las personas a efectos prácticos. Esta huella digital se puede utilizar con fines de deduplicación de datos . Esto también se conoce como huella digital de archivos , huella digital de datos o huella digital de datos estructurados .

Las huellas dactilares se suelen utilizar para evitar la comparación y transmisión de datos voluminosos. Por ejemplo, un navegador web o un servidor proxy puede verificar de manera eficiente si un archivo remoto ha sido modificado, obteniendo solo su huella digital y comparándola con la de la copia obtenida anteriormente. [2] [3] [4] [5] [6]

Las funciones de huellas dactilares pueden verse como funciones hash de alto rendimiento utilizadas para identificar de forma única bloques sustanciales de datos donde las funciones hash criptográficas pueden ser innecesarias.

Existen algoritmos especiales para la toma de huellas dactilares de audio y de vídeo .

Una función hash en funcionamiento

Propiedades

Unicidad virtual

Para cumplir los fines previstos, un algoritmo de toma de huellas digitales debe poder capturar la identidad de un archivo con virtual certeza. En otras palabras, la probabilidad de una colisión (dos archivos que arrojan la misma huella digital) debe ser insignificante, en comparación con la probabilidad de otras causas inevitables de errores fatales (como que el sistema sea destruido por una guerra o por un meteorito ): digamos, 10 −20 o menos.

Este requisito es algo similar al de una función de suma de comprobación , pero es mucho más estricto. Para detectar daños accidentales en los datos o errores de transmisión, es suficiente que las sumas de verificación del archivo original y cualquier versión dañada difieran con casi certeza, dado algún modelo estadístico para los errores. En situaciones típicas, este objetivo se logra fácilmente con sumas de comprobación de 16 o 32 bits. Por el contrario, las huellas digitales de los archivos deben tener al menos 64 bits de longitud para garantizar la unicidad virtual en sistemas de archivos grandes (consulte el ataque de cumpleaños ).

Al demostrar el requisito anterior, se debe tener en cuenta que los archivos se generan mediante procesos altamente no aleatorios que crean dependencias complicadas entre archivos. Por ejemplo, en una red empresarial típica, normalmente se encuentran muchos pares o grupos de documentos que se diferencian sólo por ediciones menores u otras modificaciones leves. Un buen algoritmo de toma de huellas dactilares debe garantizar que dichos procesos "naturales" generen huellas dactilares distintas, con el nivel deseado de certeza.

capitalización

Los archivos de computadora a menudo se combinan de varias maneras, como la concatenación (como en los archivos de almacenamiento ) o la inclusión simbólica (como con la directiva #include del preprocesador C ). Algunos algoritmos de huellas dactilares permiten calcular la huella digital de un archivo compuesto a partir de las huellas dactilares de sus partes constituyentes. Esta propiedad de "composición" puede resultar útil en algunas aplicaciones, como detectar cuándo es necesario volver a compilar un programa.

Algoritmos

algoritmo de rabin

El algoritmo de huellas dactilares de Rabin [7] es el prototipo de la clase. Es rápido y fácil de implementar, permite la capitalización y viene con un análisis matemáticamente preciso de la probabilidad de colisión. Es decir, la probabilidad de que dos cadenas r y s produzcan la misma huella digital de w bits no excede max(| r |,| s |)/2 w -1 , donde | r | denota la longitud de r en bits. El algoritmo requiere la elección previa de una "clave" interna de w bits, y esta garantía se mantiene siempre que las cadenas r y s se elijan sin conocimiento de la clave.

El método de Rabin no es seguro contra ataques maliciosos. Un agente adversario puede descubrir fácilmente la clave y usarla para modificar archivos sin cambiar su huella digital.

Funciones hash criptográficas

Las funciones hash de grado criptográfico convencionales generalmente pueden servir como funciones de huellas dactilares de alta calidad, están sujetas a un intenso escrutinio por parte de los criptoanalistas y tienen la ventaja de que se cree que son seguras contra ataques maliciosos.

Una desventaja de los algoritmos hash criptográficos como MD5 y SHA es que tardan mucho más en ejecutarse que el algoritmo de huellas dactilares de Rabin. También carecen de garantías probadas sobre la probabilidad de colisión. Algunos de estos algoritmos, en particular MD5 , ya no se recomiendan para la toma de huellas dactilares segura. Siguen siendo útiles para la verificación de errores, donde la manipulación intencionada de datos no es una preocupación principal.

hash perceptual

El hash perceptual es el uso de un algoritmo de huellas dactilares que produce un fragmento, hash o huella digital de varias formas de multimedia . [8] [9] Un hash perceptual es un tipo de hash sensible a la localidad , que es análogo si las características del multimedia son similares. Esto contrasta con el hash criptográfico , que se basa en el efecto de avalancha de un pequeño cambio en el valor de entrada que crea un cambio drástico en el valor de salida. Las funciones hash de percepción se utilizan ampliamente para encontrar casos de infracción de derechos de autor en línea , así como en análisis forense digital debido a la capacidad de tener una correlación entre hashes para que se puedan encontrar datos similares (por ejemplo, con una marca de agua diferente ).

Ejemplos de aplicación

NIST distribuye una biblioteca de referencia de software, la Biblioteca Nacional Estadounidense de Referencia de Software , que utiliza funciones hash criptográficas para tomar huellas dactilares de archivos y asignarlos a productos de software. La base de datos HashKeeper , mantenida por el Centro Nacional de Inteligencia sobre Drogas , es un depósito de huellas dactilares de archivos informáticos "conocidos como buenos" y "conocidos como malos", para su uso en aplicaciones policiales (por ejemplo, análisis del contenido de unidades de disco incautadas). .

Detección de similitud de contenido

La toma de huellas dactilares es actualmente el enfoque más aplicado para la detección de similitudes de contenido. Este método forma resúmenes representativos de documentos seleccionando un conjunto de múltiples subcadenas ( n-gramas ) de ellos. Los conjuntos representan las huellas dactilares y sus elementos se denominan minucias. [10] [11]

Se comprueba que un documento sospechoso no sea plagio calculando su huella digital y consultando minucias con un índice de huellas dactilares precalculado para todos los documentos de una colección de referencia. Las minucias que coinciden con las de otros documentos indican segmentos de texto compartidos y sugieren un posible plagio si superan un umbral de similitud elegido. [12] Los recursos computacionales y el tiempo son factores limitantes para la toma de huellas dactilares, razón por la cual este método generalmente solo compara un subconjunto de minucias para acelerar el cálculo y permitir controles en colecciones muy grandes, como Internet. [10]

Ver también

Referencias

  1. ^ AZ Broder. Algunas aplicaciones del método dactiloscópico de Rabin. En Secuencias II: Métodos en comunicaciones, seguridad e informática, páginas 143-152. Springer-Verlag, 1993
  2. ^ Detección de archivos duplicados y casi duplicados. Patente estadounidense 6658423 expedida el 2 de diciembre de 2003
  3. ^ AZ Broder (1998). "Sobre la semejanza y contención de los documentos". Actas. Compresión y Complejidad de SECUENCIAS 1997 (Cat. No.97TB100171) . Sociedad de Computación IEEE. págs. 21-27. CiteSeerX  10.1.1.24.779 . doi :10.1109/SEQUEN.1997.666900. ISBN 978-0-8186-8132-5. S2CID  11748509.{{cite book}}: Mantenimiento CS1: fecha y año ( enlace )
  4. ^ Brin, S. y Davis, J. y García-Molina, H. (1995) Mecanismos de detección de copias para documentos digitales. En: Conferencia internacional ACM sobre gestión de datos (SIGMOD 1995), 22 al 25 de mayo de 1995, San José, California, de stanford.edu. Archivado el 18/08/2016. Consultado el 01/11/2019.
  5. ^ L. Fan, P. Cao, J. Almeida y A. Broder, Caché resumida: un protocolo escalable para compartir caché web de área amplia, IEEE/ACM Transactions on Networking, vol. 8, núm. 3 (2000)
  6. ^ U. Manber, Búsqueda de archivos similares en un sistema de archivos grande. Actas de la Conferencia Técnica de Invierno de USENIX. (1994)
  7. ^ MO Rabin Toma de huellas dactilares mediante polinomios aleatorios. Centro de Investigación en Tecnología Informática Informe de la Universidad de Harvard TR-15-81 (1981)
  8. ^ Buldas, Ahto; Kroonmaa, Andrés; Laanoja, Risto (2013). "Infraestructura de firmas sin llave: cómo construir árboles hash distribuidos globalmente". En Riis, Nielson H.; Gollmann, D. (eds.). Sistemas TI seguros. NordSec 2013 . Apuntes de conferencias sobre informática. vol. 8208. Berlín, Heidelberg: Springer. doi :10.1007/978-3-642-41488-6_21. ISBN 978-3-642-41487-9. ISSN  0302-9743. Keyless Signatures Infrastructure (KSI) es un sistema distribuido globalmente para proporcionar servicios de firma digital respaldados por servidor y sellado de tiempo. Se crean árboles hash globales por segundo y se publican sus valores hash raíz. Discutimos algunos problemas de calidad del servicio que surgen en la implementación práctica del servicio y presentamos soluciones para evitar puntos únicos de falla y garantizar un servicio con demoras razonables y estables. Guardtime AS opera una infraestructura KSI desde hace 5 años. Resumimos cómo se construye la infraestructura KSI y las lecciones aprendidas durante el período operativo del servicio.
  9. ^ Klinger, Evan; Starkweather, David. "pHash.org: hogar de pHash, la biblioteca de hash perceptual de código abierto". pHash.org . Consultado el 5 de julio de 2018 . pHash es una biblioteca de software de código abierto publicada bajo la licencia GPLv3 que implementa varios algoritmos de hash de percepción y proporciona una API similar a C para usar esas funciones en sus propios programas. El propio pHash está escrito en C++.
  10. ^ ab Hoad, Timoteo; Zobel, Justin (2003), "Métodos para identificar documentos versionados y plagiados" (PDF) , Revista de la Sociedad Estadounidense de Ciencia y Tecnología de la Información , 54 (3): 203–215, CiteSeerX 10.1.1.18.2680 , doi :10.1002 /asi.10170, archivado desde el original (PDF) el 30 de abril de 2015 , consultado el 14 de octubre de 2014 
  11. ^ Stein, Benno (julio de 2005), "Fuzzy-Fingerprints for Text-Based Information Retrieval", Actas de I-KNOW '05, Quinta Conferencia Internacional sobre Gestión del Conocimiento, Graz, Austria (PDF), Springer , Know-Center, págs. 572–579, archivado desde el original (PDF) el 2 de abril de 2012 , consultado el 7 de octubre de 2011
  12. ^ Brin, Sergey; Davis, James; García-Molina, Hector (1995), "Mecanismos de detección de copias para documentos digitales", Actas de la Conferencia internacional ACM SIGMOD sobre gestión de datos (PDF) de 1995 , ACM, págs. 398–409, CiteSeerX 10.1.1.49.1567 , doi :10.1145/223784.223855, ISBN  978-1-59593-060-6, S2CID  8652205, archivado desde el original (PDF) el 18 de agosto de 2016 , consultado el 7 de octubre de 2011