En informática , un algoritmo de huella digital es un procedimiento que asigna a un elemento de datos arbitrariamente grande (como un archivo informático) una cadena de bits mucho más corta, su huella digital , que identifica de forma única los datos originales para todos los fines prácticos, del mismo modo que las huellas digitales humanas identifican de forma única a las personas para fines prácticos. Esta huella digital puede utilizarse para la deduplicación de datos. También se conoce como huella digital de archivos , huella digital de datos o huella digital de datos estructurados .
Las huellas digitales se utilizan habitualmente para evitar la comparación y transmisión de grandes cantidades de datos. Por ejemplo, un navegador web o un servidor proxy pueden comprobar eficazmente si un archivo remoto ha sido modificado obteniendo únicamente su huella digital y comparándola con la de la copia obtenida previamente.
Las funciones de huella digital pueden considerarse 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 identificación de audio y vídeo mediante huellas digitales.
Propiedades
Singularidad virtual
Para cumplir su función, un algoritmo de huella digital debe ser capaz de identificar un archivo con una certeza prácticamente absoluta. En otras palabras, la probabilidad de una colisión —que dos archivos tengan la misma huella digital— debe ser insignificante en comparación con la probabilidad de otras causas inevitables de errores fatales (como la destrucción del sistema por una guerra o un meteorito ): digamos, entre 10⁻²⁰ o menos.
Este requisito es similar al de una función de suma de verificación , pero mucho más estricto. Para detectar la corrupción accidental de datos o errores de transmisión, basta con que las sumas de verificación del archivo original y de cualquier versión corrupta difieran con casi total certeza, dado algún modelo estadístico para los errores. En situaciones típicas, este objetivo se logra fácilmente con sumas de verificación de 16 o 32 bits. En cambio, las huellas digitales de los archivos deben tener al menos 64 bits para garantizar la unicidad virtual en sistemas de archivos grandes (véase el ataque de cumpleaños ).
Para demostrar el requisito anterior, es necesario tener en cuenta que los archivos se generan mediante procesos altamente no aleatorios que crean dependencias complejas entre ellos. Por ejemplo, en una red empresarial típica, se suelen encontrar muchos pares o grupos de documentos que solo difieren en pequeñas ediciones u otras modificaciones leves. Un buen algoritmo de huella digital debe garantizar que estos procesos "naturales" generen huellas digitales distintivas, con el nivel de certeza deseado.
capitalización
Los archivos informáticos suelen combinarse de diversas maneras, como la concatenación (como en los archivos comprimidos ) o la inclusión simbólica (como con la directiva `#include` del preprocesador de C ). Algunos algoritmos de huella digital permiten calcular la huella digital de un archivo compuesto a partir de las huellas digitales de sus partes constituyentes. Esta propiedad de "composición" puede resultar útil en algunas aplicaciones, como para detectar cuándo es necesario recompilar un programa.
Algoritmos
El algoritmo de Rabin
El algoritmo de huella digital de Rabin es el prototipo de la clase. [ 1 ] Es rápido y fácil de implementar, permite la combinació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 conocer la clave.
El método de Rabin no es seguro frente a ataques maliciosos. Un agente adversario puede descubrir fácilmente la clave y usarla para modificar archivos sin alterar su huella digital.
funciones hash criptográficas
Las funciones hash criptográficas convencionales generalmente pueden servir como funciones de huella digital 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 huella digital de Rabin. Además, carecen de garantías comprobadas sobre la probabilidad de colisión. Algunos de estos algoritmos, en particular MD5 , ya no se recomiendan para la identificación segura mediante huella digital. Sin embargo, siguen siendo útiles para la verificación de errores, donde la manipulación intencionada de datos no es una preocupación principal.
Hashing perceptivo
El hash perceptual es el uso de un algoritmo de huella digital que produce un fragmento, hash o huella digital de varias formas de multimedia . [ 2 ] [ 3 ] Un hash perceptual es un tipo de hash sensible a la localidad , que es análogo si las características de la 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 de hash perceptual se utilizan ampliamente en la detección de casos de infracción de derechos de autor en línea , así como en la informática forense 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
El NIST distribuye una biblioteca de referencia de software, la Biblioteca Nacional de Referencia de Software Estadounidense , que utiliza funciones hash criptográficas para identificar archivos y vincularlos con productos de software. La base de datos HashKeeper , mantenida por el Centro Nacional de Inteligencia sobre Drogas , es un repositorio de huellas digitales de archivos informáticos "conocidos como legítimos" y "conocidos como maliciosos", para su uso en aplicaciones policiales (por ejemplo, el análisis del contenido de discos duros incautados).
detección de similitud de contenido
La huella digital es actualmente el enfoque más utilizado para la detección de similitud de contenido. Este método crea resúmenes representativos de documentos seleccionando un conjunto de múltiples subcadenas ( n-gramas ) de ellos. Los conjuntos representan las huellas digitales y sus elementos se denominan minucias. [ 4 ] [ 5 ] Un documento sospechoso se verifica para detectar plagio calculando su huella digital y consultando las minucias con un índice precalculado de huellas digitales 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. [ 6 ] Los recursos computacionales y el tiempo son factores limitantes para la huella digital, razón por la cual este método generalmente solo compara un subconjunto de minucias para acelerar el cálculo y permitir verificaciones en colecciones muy grandes, como Internet. [ 4 ]
Véase también
- Huella acústica
- Reconocimiento automático de contenido
- Huella dactilar del lienzo
- Huella digital de vídeo
- Identificación de la pila TCP/IP
- Huella digital del dispositivo
- Código de identificación de la máquina
- Código corrector de errores
- Huella digital de la clave pública
- Función de aleatorización
- Cuota de uso de navegadores web
Referencias
- ↑ Rabin, MO (1981). "Huella digital mediante polinomios aleatorios". Centro de Investigación en Tecnología Informática, Universidad de Harvard, Informe TR-15-81 .
- ↑ 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-9La infraestructura de firmas sin clave (KSI) es un sistema distribuido globalmente que proporciona servicios
de firma digital con soporte de servidor y sellado de tiempo. Se crean árboles hash globales por segundo y se publican sus valores hash raíz. Analizamos algunos problemas de calidad del servicio que surgen en la implementación práctica y presentamos soluciones para evitar puntos únicos de fallo y garantizar un servicio con una latencia razonable y estable. Guardtime AS lleva cinco años operando una infraestructura KSI. Resumimos cómo se construyó la infraestructura KSI y las lecciones aprendidas durante el período de operación del servicio.
- ↑ Klinger, Evan; Starkweather, David. "pHash.org: Página principal 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 perceptual y proporciona una API similar a C para usar esas funciones en sus propios programas. pHash está escrito en C++.
- 1 2 Hoad, Timothy; Zobel, Justin (2003), "Métodos para identificar documentos con versiones y plagiados" (PDF) , Journal of the American Society for Information Science and Technology , 54 (3): 203– 215, CiteSeerX 10.1.1.18.2680 , doi : 10.1002/asi.10170 , archivado del original (PDF) el 30 de abril de 2015 , recuperado el 14 de octubre de 2014
- ↑ Stein, Benno (julio de 2005), "Huellas digitales difusas para la recuperación de información basada en texto", Actas de I-KNOW '05, 5.ª Conferencia Internacional sobre Gestión del Conocimiento, Graz, Austria (PDF) , Springer, Know-Center, págs. 572–579 , archivado del original (PDF) el 2 de abril de 2012 , consultado el 7 de octubre de 2011.
- ↑ Brin, Sergey; Davis, James; Garcia-Molina, Hector (1995), "Copy Detection Mechanisms for Digital Documents", Actas de la Conferencia Internacional ACM SIGMOD de 1995 sobre Gestión de Datos (PDF) , 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 del original (PDF) el 18 de agosto de 2016 , recuperado el 7 de octubre de 2011
- Identificadores
- Algoritmos de huellas dactilares