ES2850365T3 - Proceso de verificación de la integridad del bloque de datos numéricos - Google Patents

Proceso de verificación de la integridad del bloque de datos numéricos Download PDF

Info

Publication number
ES2850365T3
ES2850365T3 ES14703151T ES14703151T ES2850365T3 ES 2850365 T3 ES2850365 T3 ES 2850365T3 ES 14703151 T ES14703151 T ES 14703151T ES 14703151 T ES14703151 T ES 14703151T ES 2850365 T3 ES2850365 T3 ES 2850365T3
Authority
ES
Spain
Prior art keywords
data block
fingerprint
identification
data
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14703151T
Other languages
English (en)
Inventor
Laurent Henocque
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aix Marseille Universite
Centre National de la Recherche Scientifique CNRS
Original Assignee
Aix Marseille Universite
Centre National de la Recherche Scientifique CNRS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aix Marseille Universite, Centre National de la Recherche Scientifique CNRS filed Critical Aix Marseille Universite
Application granted granted Critical
Publication of ES2850365T3 publication Critical patent/ES2850365T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/68Special signature format, e.g. XML format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

El método para verificar la integridad de un bloque de datos digitales, el método comprende los pasos de: buscar, en un primer bloque de datos (4), una huella dactilar de identificación digital del primer bloque de datos (4), por medio de un primer marcador (7), si la huella dactilar de identificación (2) del primer bloque de datos se encuentra en el primer bloque de datos, calcular una huella dactilar del primer bloque de datos aplicando una función de cálculo de huella dactilar al primer bloque de datos, teniendo la huella dactilar calculada del primer bloque de datos un valor que depende de cada uno de los bits del primer bloque de datos que excluye los bits de la huella dactilar de identificación (2) encontrada en el primer bloque de datos, y verificar la huella dactilar de identificación encontrada en el primer bloque de datos comparándola con la huella dactilar calculada del primer bloque de datos, una comparación falsa que revela que el primer bloque de datos ha cambiado ya que la huella dactilar de identificación se insertó en el primer bloque de datos, o que la huella dactilar de identificación se calculó aplicando una función de cálculo de huella dactilar diferente al primer bloque de datos.

Description

DESCRIPCIÓN
Proceso de verificación de la integridad del bloque de datos numéricos
Campo técnico general
La presente invención se refiere en general a métodos para verificar la integridad y autenticidad de bloques de datos digitales y el acceso a estos bloques de datos, ya sean distribuidos en una red o almacenados en un medio de almacenamiento.
Definiciones
En la presente divulgación, los términos y expresiones siguientes deben entenderse como sigue.
“Bloque de datos” se refiere a cualquier archivo o documento digital o cualquier parte de dicho archivo o documento; el término “archivo” no debe entenderse como limitado a un archivo de un sistema de gestión de archivos.
Los “metadatos” de un bloque de datos no se refieren a los datos de contenido del bloque, sino a los datos relacionados con este contenido o con otra parte de los metadatos. Por lo tanto, se refiere al metacontenido y no a los datos estructurales en particular que especifican la ubicación, la naturaleza de cada parte de los metadatos y cualquier estructura de los mismos.
“Huella dactilar digital” de un bloque de datos se refiere a una parte de los datos producida por una función que permite garantizar la integridad del bloque de datos, de manera que si se modifica un bit del bloque de datos, se modificará la huella dactilar. Esta función puede ser, pero no necesariamente, una función hash. Una huella dactilar a veces se denomina clave hash, suma de control, huella dactilar, hash, resumen de mensajes, compendio de mensajes, compendio o incluso huella dactilar criptográfica.
“Firma digital” se refiere a una huella dactilar cifrada usando una clave privada de un par de claves públicas/privadas y un programa criptográfico asimétrico como “pgp” (Privacidad Bastante Buena) o su contraparte gratuita “gpg” (Protección de Privacidad Gnu). Una firma digital permite garantizar la integridad del bloque de datos y autenticar al firmante del mismo, por analogía con la firma manuscrita de un documento en papel. Cabe señalar que puede obtenerse una firma digital que tenga las propiedades de una huella dactilar aplicando un programa de cifrado asimétrico directamente al bloque de datos.
“Inserción controlada” se refiere a una inserción de datos de cualquier tipo en un bloque de datos, en una ubicación que el usuario puede elegir tan libremente como lo permita el tipo de bloque de datos en cuestión. Sin embargo, esto no excluye que la elección de esta ubicación sea realizada por un programa o esté estandarizada.
La “inserción no destructiva” se refiere a la inserción de una parte de los datos de cualquier tipo en un bloque de datos, sin afectar las propiedades del bloque de datos, es decir, puede ser abierto, visualizado, impreso, ejecutado, etc. por las mismas herramientas que antes de esta inserción.
Antecedentes de la invención
El estado de la técnica enseña los siguientes documentos:
El documento US2009171878, que divulga un método de verificación capaz de probar la integridad de los datos en el que los datos son primero tatuados por un cliente y luego enviados con los datos a un sistema de archivo.
El documento XP055387899 Bitcoin A Peer-to-Peer Electronic Cash System divulga un sistema para encadenar bloques de datos y verificar su integridad.
En el contexto de la integridad y autenticidad de los bloques de datos, surge una doble cuestión, que consiste en determinar:
- cómo llegar a estos bloques de datos, y
- cómo estar seguro de que un bloque de datos encontrado es efectivamente el buscado.
Actualmente, este problema dual se resuelve usando varios modos. De acuerdo con un primer modo, se conoce la ubicación exacta esperada del bloque de datos, ubicación que llamamos la dirección del bloque de datos. Esta dirección es una ruta para acceder a un archivo en los directorios de un sistema de gestión de archivos (por ejemplo: C:\Mis documentos\test.txt) o una dirección URL (para el localizador uniforme de recursos) que indica una ruta para acceder a una página en la red (por ejemplo: html://a-site.com/documentos/test.txt), esta ruta de acceso en particular puede proporcionarse en forma de enlace de hipertexto en una página web. De acuerdo con este primer modo, aparecen varios casos, incluidos los dos casos siguientes.
De acuerdo con un primer caso, el bloque de datos se ubica en la dirección conocida como se esperaba. Por lo tanto, es importante asegurarse de que el bloque de datos ubicado sea efectivamente el buscado; por ejemplo, es importante asegurarse de que el bloque de datos ubicado sea fiel a una versión de este bloque que se recuerde, o que haya sido usada y referenciada en el pasado, o una versión consultada por cualquier remitente de la dirección.
De acuerdo con un segundo caso, el bloque de datos buscado no se encuentra en la dirección conocida; este segundo caso se refiere al segundo modo que se presenta a continuación.
De acuerdo con un segundo modo, no se conoce la ubicación exacta esperada del bloque de datos. Por el contrario, se conocen una o varias palabras clave o fragmentos de frases, que se usan en el nombre, la dirección o el contenido del bloque de datos, que pueden haber sido indexados por un motor de indexación para ser usados para encontrar este bloque de datos mediante un motor de búsqueda (en un disco duro o en Internet). De hecho, la búsqueda de bloques de datos a través de un motor de búsqueda o indexación se ha convertido en una herramienta y un modo preferido para trabajar y acceder a la información. Una parte importante de la actividad cognitiva moderna se basa en la capacidad de identificar y agregar documentos descubiertos en la red o en un disco duro sin saber su nombre o su ubicación exacta. Por lo tanto, la indexación de documentos es el núcleo de cómo se usa la información en la actualidad, tanto en Internet como en un ordenador. Esta indexación se realiza con mayor frecuencia usando palabras clave derivadas del lenguaje natural usado en el documento (por ejemplo, palabras en inglés: “car rental Marseille”; palabras de un lenguaje de programación: “getImage"). Además, los ordenadores, tabletas digitales y teléfonos móviles ofrecen hoy en día motores de indexación internos que permiten encontrar documentos, notas, contactos, mensajes, etc. mediante búsquedas por palabras clave. Asimismo, los dispositivos de almacenamiento de documentos virtualizados (“Nube”) ofrecen mecanismos de búsqueda de documentos por palabras clave y por indexación de contenido (Wuala, iCloud, etc.).
De acuerdo con este segundo modo, se usa por lo tanto una base de datos para almacenar las correspondencias entre los índices y las direcciones de los bloques de datos, de modo que una búsqueda proporciona una lista de direcciones de bloques de datos como resultado.
Nuevamente, surgen varios casos, incluidos los siguientes cuatro casos. De acuerdo con un primer caso, la lista de direcciones está vacía. Aún puede iniciarse una nueva búsqueda con un criterio de búsqueda diferente. Sin embargo, si el nombre o la dirección del bloque de datos original ha cambiado, es posible que la dirección para acceder al bloque de datos a través de una búsqueda de los índices conocidos originales se pierda permanentemente. Como resultado, el bloque de datos no puede encontrarse, aunque todavía exista.
De acuerdo con un segundo caso, la lista comprende un conjunto sustancial de direcciones de bloques de datos, y la búsqueda puede refinarse agregando índices obtenidos, por ejemplo, analizando algunos de los bloques de datos encontrados.
De acuerdo con un tercer caso, se selecciona una dirección para la que se encuentra un bloque de datos. Entonces es importante asegurarse de que el bloque de datos encontrado sea efectivamente el que se busca. Garantizar la autenticidad del documento o bloque de datos encontrado basándose únicamente en su dirección y contenido sigue siendo imposible.
De acuerdo con un cuarto caso, se selecciona una dirección de la lista, pero no se encuentra ningún bloque de datos allí, por ejemplo debido a que se ha producido un cambio entre las actualizaciones de la base de datos y un cambio en el sistema de almacenamiento. Entonces puede seleccionarse la siguiente dirección de la lista, pero no hay forma de saber si el bloque de datos que falta en la primera dirección seleccionada era la única copia del bloque de datos que se ajustaba exactamente al que se buscó.
Aparte de las pocas deficiencias de los motores de búsqueda o indexación señaladas anteriormente, el hecho es que, en el estado actual, los índices no son suficientes para identificar los bloques de datos relativos a actividades o conceptos muy específicos, lo que requiere el uso de bases de datos y servicios especializados. Por ejemplo, publicar un anuncio de automóvil, un tweet o una publicación de blog, información relativa a un vuelo en avión, un comentario sobre una fotografía, un artículo de prensa, información bursátil, un artículo de investigación, etc. no puede hacerse en el crisol global de datos accesibles para indexación y motores de búsqueda. Para cada uno de estos usos, es necesario un sitio web dedicado (por ejemplo, topannonces, twitter, facebook, flickr, boursorama, citeseer, etc.). Por lo tanto, la semántica exacta de los bloques de datos actualmente solo puede ser definida por sitios Web dedicados a campos o servicios específicos (por ejemplo, un sitio de alquiler de automóviles, un sitio que identifica asistencia en línea para herramientas de programación, un sitio de “diccionario” que identifica ontologías para la Web semántica).
Además, los motores de búsqueda ofrecen una presentación de resultados que se ordena de acuerdo con algoritmos de preferencia basados en particular en un cálculo de popularidad. En este contexto, puede ser imposible alcanzar resultados relevantes para una búsqueda determinada si se proponen en rangos bastante alejados de los de los primeros resultados.
Para verificar la identidad o autenticidad cuasi-cierta de un bloque de datos, se sabe asociar una o más huellas dactilares y/o firmas con él. Sin embargo, esto tiene muchos inconvenientes porque estas operaciones de verificación requieren descargar, además del bloque de datos estrictamente hablando, varias huellas dactilares como, en particular, “crc”, “md5”, “shal”, etc., o varias firmas digitales (“pgp”,“gpg”), luego usando tantas herramientas (por ejemplo,“shasum”,“md5sum”,“gpg”, openssl, etc.) con varios parámetros, para realizar estas verificaciones, que a menudo son manuales. Para ello, la solución actual consiste en publicar archivos de huellas dactilares y/o firmas independientes de los bloques de datos que certifican o en crear páginas Web que contengan las firmas en texto legible, debiendo ser este último copiado por el usuario, luego pegado mediante un comando de software complejo. Debido a la diversidad de herramientas y parámetros, este proceso no puede automatizarse universalmente.
La búsqueda de bloques de datos no es solo un problema de uso humano, sino que también se relaciona con la automatización que la situación actual dificulta en gran medida. Por ejemplo, en el contexto de la Web semántica, es importante proporcionar una determinada caracterización de una ontología y sus instancias que necesitan ser transformadas, transmitidas entre servicios Web, etc.
En algunos casos, las herramientas de generación automática de código (compiladores, archivos MAKE) están diseñadas para verificar automáticamente que los bloques de datos usados son realmente lo que dicen ser. El enfoque actual consiste en crear un archivo que contenga las huellas dactilares de los ficheros y archivos del programa fuente, luego en asegurar que la herramienta generadora de código verifique la validez de las huellas dactilares con una herramienta criptográfica estándar (“md5sum”, “shasum”). Este proceso no puede generalizarse a Internet y solo es posible en un rango muy limitado de casos, por ejemplo, para la validación y compilación de bloques (o paquetes) de programa Unix.
Además, las herramientas “gpg” o “pgp” comprenden un modo de firma llamado “clearsign”, de acuerdo con el cual un bloque de datos se inserta o enmarca entre dos zonas de texto que contienen etiquetas o entre dos secciones de metadatos, junto con una firma. En este caso, la firma se inserta en el bloque de datos. Por tanto, el bloque de datos se modifica de forma destructiva. De hecho, las zonas de texto o las secciones de metadatos crean una interferencia con las herramientas típicas de uso del bloque de datos, haciendo imposible o significativamente alterado este uso. Por ejemplo, si el bloque de datos original es un archivo binario, un programa o un código fuente, la inserción de una firma lo hace inutilizable, no ejecutable o no compilable. Si el bloque de datos original (antes de la inserción de la firma) es un archivo de texto o una página HTML, su visualización se modifica significativamente. Como resultado, la tecnología actual para insertar firmas “pgp” en texto claro con la opción “clearsign” no respeta la semántica de los documentos, que luego pueden volverse inutilizables a través de sus herramientas habituales.
Por tanto, la situación actual plantea un gran número de problemas, que la invención intenta resolver de forma unificada. Se propone más particularmente una solución que en particular permita:
- garantizar que un bloque de datos encontrado es efectivamente el que se buscó,
- identificar al autor de un bloque de datos con certeza,
- proteger contra la pérdida de acceso a un bloque de datos debido al cambio de su nombre o dirección,
- acceder a un conjunto de bloques de datos relativos a un concepto preciso, este conjunto se limita solo a los resultados relevantes, sin necesidad de un sitio web dedicado,
- notar un concepto idéntico de bloques de datos escritos en diferentes idiomas,
- caracterizar las ontologías y sus instancias usadas en el contexto de la Web semántica con certeza, y/o - automatizar la verificación de huellas dactilares y firmas adjuntas a un bloque de datos.
Actualmente, una huella dactilar o una firma no puede insertarse en un bloque de datos sin que su valor se modifique como resultado. Por lo tanto, un bloque de datos no puede contener sus propias huellas dactilares o firmas válidas. Por tanto, una huella dactilar o firma o una parte de la misma no puede usarse como elemento de identificación o autenticación y como criterio de búsqueda de un bloque de datos indexado por los motores de búsqueda. De hecho, si bien una búsqueda a partir de una huella dactilar o una firma puede permitir encontrar la dirección de una página web que ofrece enlaces a bloques de datos, nada permite determinar inmediatamente el bloque de datos que puede corresponder a esta firma. Además, una vez que se ha encontrado un bloque de datos, verificar que este bloque se ajusta a la firma es una operación tediosa.
Estas dificultades provienen del hecho de que la información necesaria para identificar o autenticar un bloque de datos debe permanecer fuera de este bloque. Cada dato de identificación o autenticación debe proporcionarse por separado (en un archivo independiente o en una base de datos), y sin esta información, nada más permite certificar que el bloque de datos es realmente lo que reivindica ser. Además, la información proporcionada, si es aplicable, en archivos digitales separados del propio bloque de datos puede, como resultado, ser corrompida por un tercero o ser accesible de manera fraudulenta usando artificios.
Aparte de la necesidad expresada anteriormente de una solución para insertar una huella dactilar o una firma en un bloque de datos de forma controlada y potencialmente no destructiva, existe por tanto una necesidad real de desarrollar un programa de software capaz de verificar y/o actualizar automáticamente esta huella dactilar o firma y más generalmente metadatos de un bloque de datos. Puede ser conveniente que este software sea capaz de usar automáticamente estos metadatos para realizar validaciones en cascada (o recursivas) de una pluralidad de bloques de datos, o que sea capaz de usar, a través de su propio código fuente, sus propios metadatos y/o aquellos de programas asociados.
Descripción de la invención
Las modalidades se refieren a un método para verificar la integridad de un bloque de datos digitales, donde el método comprende los pasos de: buscar, en un primer bloque de datos, una huella dactilar de identificación del primer bloque de datos, por medio de un primer marcador, si la huella dactilar de identificación del primer bloque de datos se encuentra en el primer bloque de datos, calculando una huella dactilar del primer bloque de datos aplicando la función de cálculo de la huella dactilar al primer bloque de datos, teniendo la huella dactilar calculada del primer bloque de datos un valor que depende de cada uno de los bits del primer bloque de datos que excluye los bits de la huella dactilar de identificación encontrados en el primer bloque de datos, y verificando la huella dactilar de identificación encontrada en el primer bloque de datos comparándola con la huella dactilar calculada del primer bloque de datos, una comparación falsa que revela que el primer bloque de datos ha cambiado desde que se insertó la huella dactilar de identificación en el primer bloque de datos, o que la huella dactilar de identificación se calculó aplicando una función de cálculo de huellas dactilares diferente al primer bloque de datos.
De acuerdo con una modalidad, el primer bloque de datos comprende un enlace de referencia formado a partir de una huella dactilar de identificación diferente presente en un segundo bloque de datos, y que tiene un valor que depende de cada uno de los bits del segundo bloque de datos que excluye los bits de la huella dactilar de identificación diferente.
De acuerdo con una modalidad, el método comprende las etapas de: buscar, en un tercer bloque de datos, una huella dactilar de identificación del tercer bloque de datos, por medio de un segundo marcador, si la huella dactilar de identificación del tercer bloque de datos se encuentra en el tercer bloque de datos, calcular una huella dactilar del tercer bloque de datos aplicando la función de cálculo de huella dactilar al tercer bloque de datos, teniendo la huella dactilar calculada del tercer bloque de datos un valor que depende de cada uno de los bits del tercer bloque de datos que excluye los bits de la huella dactilar de identificación encontrada en el tercer bloque de datos, e ingresar la huella dactilar calculada del tercer bloque de datos en el tercer bloque de datos en una ubicación determinada por el segundo marcador en el tercer bloque de datos.
De acuerdo con una modalidad, el método comprende pasos para generar un bloque de datos verificables, que consisten en: buscar una ubicación de inserción de huella dactilar en un bloque de datos inicial, calcular una tercera huella dactilar digital del bloque de datos verificable aplicando la función de cálculo de huella dactilar al bloque de datos inicial, teniendo la tercera huella dactilar calculada del bloque de datos verificables un valor que depende de cada uno de los bits del bloque de datos inicial, y generando el bloque de datos verificables ingresando la tercera huella dactilar calculada del bloque de datos verificables como la huella dactilar de identificación del bloque de datos verificable en la ubicación de inserción que se encuentra en el bloque de datos inicial.
De acuerdo con una modalidad, el cálculo de cada huella dactilar comprende un paso de insertar una parte de los datos predefinida en el bloque de datos antes de aplicar la función de cálculo de huella dactilar al bloque de datos.
De acuerdo con una modalidad, un bloque de datos comprende una entrada de huella dactilar de identificación en una pluralidad de ubicaciones en el bloque de datos, la huella dactilar de identificación del bloque de datos se calcula excluyendo los bits de la huella dactilar de identificación en todas las ubicaciones de la huella dactilar de identificación en el bloque de datos.
De acuerdo con una modalidad, el método comprende varios pasos para calcular una huella dactilar de un bloque de datos y para introducir la huella dactilar calculada en el bloque de datos mientras se mantienen las huellas dactilares ya insertadas en el bloque de datos.
De acuerdo con una modalidad, el método comprende un paso de lectura de información útil para localizar y/o calcular una huella dactilar de identificación, cuya información está contenida en un bloque de datos que contiene la huella dactilar de identificación.
De acuerdo con una modalidad, el enlace de referencia formado a partir de la huella dactilar de identificación presente en el segundo bloque de datos permite construir al menos parte de la huella dactilar de identificación presente en el segundo bloque de datos.
De acuerdo con una modalidad, uno de los bloques de datos comprende un fragmento de metadatos que comprende una parte variable excluida del cálculo de huella dactilar aplicada al bloque de datos para calcular la huella dactilar de identificación del bloque de datos.
De acuerdo con una modalidad, la huella dactilar de identificación del bloque de datos se ubica en la parte variable de una parte de los metadatos de identificación.
De acuerdo con una modalidad, al menos parte de la entrada de la huella dactilar de identificación en cada bloque de datos es usada por un motor de indexación o como una palabra clave de búsqueda por un motor de búsqueda.
De acuerdo con una modalidad, uno de los bloques de datos es al menos parte de un archivo de código ejecutable de un programa, y la huella dactilar de identificación del bloque de datos, calculada en el bloque de datos, se introduce en el bloque de datos en una ubicación que permite al programa usar la huella dactilar de identificación del bloque de datos.
De acuerdo con una modalidad, cada huella dactilar de identificación se introduce en un bloque de datos en una ubicación en el bloque de datos que se selecciona para no modificar las condiciones de uso esperadas del bloque de datos por un programa de software.
De acuerdo con una modalidad, la huella dactilar de identificación insertada en un bloque de datos es una firma digital generada por un cálculo criptográfico asimétrico usando una clave privada de un par de claves públicas/privadas, y la verificación de la huella dactilar comprende un paso de descifrar la firma digital que se encuentra en el bloque de datos con la clave pública del par de claves públicas/privadas, estando posiblemente la clave pública ubicada en un fragmento de metadatos del bloque de datos.
Las modalidades también se refieren a un producto de programa informático que comprende porciones de un archivo de programa registrado en un medio legible por ordenador, para llevar a cabo las etapas del método previamente definido.
De acuerdo con una modalidad, al menos parte del programa se incluye en uno de los bloques de datos.
Las modalidades también se refieren a un conjunto de archivos, cada uno registrado en un medio legible por ordenador, en donde cada archivo contiene una huella dactilar de identificación del archivo, la huella dactilar de identificación del archivo puede localizarse en el archivo por medio de un marcador, la huella dactilar de identificación del archivo tiene un valor calculado aplicando una función de cálculo de huella dactilar al archivo, el valor de la huella dactilar de identificación depende de cada uno de los bits del archivo que excluye los bits de la huella dactilar de identificación del archivo, que está presente en el archivo, y siendo verificable la integridad de cada archivo del conjunto de archivos usando el método previamente definido, considerándose cada archivo como un bloque de datos.
De acuerdo con una modalidad, al menos uno de los archivos comprende un enlace de referencia formado a partir de una huella dactilar de identificación de otro archivo del conjunto, estando el enlace de referencia en uno de los archivos del conjunto y que se obtiene modificando reversiblemente una de las huellas dactilares de identificación de los archivos del conjunto para distinguir el enlace de referencia de las huellas dactilares de identificación.
De acuerdo con una modalidad, el conjunto de archivos comprende un archivo de enlace que contiene dos enlaces de referencia formados a partir de huellas dactilares de identificación de otros dos archivos del conjunto para establecer un enlace entre los otros dos archivos.
A los expertos en la técnica le pueden parecer otras ventajas al leer los ejemplos siguientes, ilustrados por las figuras adjuntas, que se proporcionan como ilustración.
Breve descripción de las figuras
La Figura 1 ilustra los pasos de un método que comprende, si es aplicable, una fase de inserción (a), una fase de verificación (b) y una fase de actualización (c) de una huella dactilar en un bloque de datos digitales, de acuerdo con una modalidad.
- La Figura 2 muestra esquemáticamente un bloque de datos en diferentes pasos de la fase de inserción (a). - La Figura 3 muestra esquemáticamente el bloque de datos en diferentes pasos de la fase de verificación (b). - La Figura 4 muestra esquemáticamente el bloque de datos en diferentes pasos de la fase de actualización (c). - La Figura 5 muestra las etapas de un método que comprende, en su caso, una fase de inserción (a'), una fase de verificación (b') y una fase de actualización (c') de una huella dactilar en un bloque de datos digitales, de acuerdo con otra modalidad.
- La Figura 6 muestra esquemáticamente un bloque de datos en diferentes pasos de la fase de inserción (a'). - La Figura 7 muestra esquemáticamente el bloque de datos en diferentes pasos de la fase de verificación (b'). - La Figura 8 muestra esquemáticamente el bloque de datos en diferentes pasos de la fase de actualización (c'). - Las Figuras 9 y 10 muestran ejemplos de conjuntos estructurados de bloques de datos.
La Figura 1 muestra los pasos de un método 1 que comprende, si corresponde, una fase (a) 110, 114, 116 para insertar una huella dactilar en un bloque de datos digitales, una fase (b) 100, 102, 103 para verificar esta huella dactilar, y una fase (c) 104, 105, 106, 108 para actualizar esta huella dactilar, de acuerdo con una modalidad.
La Figura 2 muestra un bloque de datos 3, 4 antes, durante y después de la inserción de una huella dactilar en el bloque. La inserción de una huella dactilar 2 en un bloque de datos comprende los siguientes pasos:
• buscar 110, usando un marcador 7, una ubicación en el bloque de datos 3, donde puede insertarse una huella dactilar de forma no destructiva,
• calcular 114 la huella dactilar del bloque de datos 3, teniendo la huella dactilar calculada un valor que depende de cada uno de los bits del bloque de datos 3, y
• insertar 116 la huella dactilar 2 (igual a “5351220” en el ejemplo de la Figura 2) calculada en el paso 114 en el bloque de datos 3 para obtener un bloque de datos 4 identificable por su huella dactilar 2.
La huella dactilar puede insertarse, por ejemplo, en un comentario de programa, en una sección del bloque de datos destinada a recibir metadatos en texto sin cifrar (pdf, jpg) o al final de un archivo binario (zip, exe). Al permitir que se coloque una huella dactilar en el bloque de datos bajo el control del programador/usuario, el método 1 permite preservar la semántica del bloque de datos.
Por tanto, la huella dactilar 2 está incluida en el bloque de datos 4. Ahora, la tecnología actual no permite insertar o modificar una huella dactilar en un bloque de datos sin provocar un cambio de valor de la huella dactilar calculada a partir del bloque de datos. En este contexto, el método de acuerdo con sus pasos de inserción 110, 114 y 116 permite ventajosamente insertar una huella dactilar en el bloque de datos en cuestión, al tiempo que define una norma de modificación estable y, por lo tanto, reproducible del bloque de datos que permite encontrar el valor original del bloque de datos mediante un paso para eliminar la huella dactilar. Así, mediante esta modificación, es posible encontrar el valor del bloque de datos a partir del cual se supone que se ha calculado la huella dactilar. Cabe señalar que esta modificación es independiente de un formato del bloque de datos o de la elección de técnicas realizadas por los diseñadores de un formato digital.
Además, el usuario del bloque de datos 4 puede elegir libremente el punto de inserción de la huella dactilar 2, lo que le da un control total sobre la integridad del bloque de datos 4 así instrumentado, y le permite elegir la función que jugará esta huella dactilar 2 en el bloque de datos 4. Por ejemplo, si el bloque de datos 4 es un programa, la huella dactilar puede ser una cadena de caracteres asignados a una variable del programa, o insertados en forma de comentario de programa, etc.
Cabe señalar también que para algunos formatos de documentos binarios, la inserción (a) puede realizarse en una zona de texto presente en claro en el documento final si es conveniente aprovechar los beneficios de la invención relacionados con la indexación.
La Figura 3 muestra el bloque de datos antes y durante una verificación de huellas dactilares de un bloque de datos. Como se ilustra en las Figuras 1 y 3, la verificación del bloque de datos comprende los siguientes pasos:
• buscar 100 una huella dactilar 2 en el bloque de datos, usando un marcador 7,
• generar 101 un bloque de datos modificado 6 eliminando, del bloque de datos, la huella dactilar 2 que se encuentra en el bloque de datos,
• calcular 102 una huella dactilar aplicando la función de cálculo de huella dactilar al bloque de datos modificado 6, teniendo la huella dactilar calculada un valor que depende de cada uno de los bits del bloque de datos modificado 6, y
• verificar 103 la huella dactilar 2 encontrada (igual a “5351220” en el ejemplo de la Figura 3) en el bloque de datos comparándola con la huella dactilar calculada.
Así, la verificación del bloque de datos consiste más particularmente en eliminar 101 la huella dactilar 2 en el bloque de datos 4, para obtener primero un bloque de datos 6 modificado. Este bloque de datos modificado 6 es opcionalmente solo temporal. Efectivamente, basta con que se conserve sólo para realizar el siguiente paso del método 1, que consiste en calcular 102 la huella dactilar del bloque 6 de datos modificado durante el paso 101 de eliminación. El paso de verificación 103 consiste en comparar la huella dactilar encontrada en el bloque de datos en el paso 100 con la huella dactilar calculada en el paso 102.
La Figura 4 muestra el bloque de datos antes y durante una actualización de la huella dactilar de un bloque de datos. Como se ilustra en las Figuras 1 y 4, el método de verificación 1 puede comprender además los siguientes pasos:
• buscar 104 una huella dactilar 2 en el bloque de datos 4, usando el marcador 7,
• generar 105 un bloque de datos modificado 6 eliminando, del bloque de datos 4, la huella dactilar 2 (igual a “5351220” en el ejemplo de la Figura 4) encontrada en el paso 104,
• calcular 106 una huella dactilar 2' aplicando la función de cálculo de huella dactilar al bloque de datos modificado 6, teniendo la huella dactilar calculada un valor que depende de cada uno de los bits del bloque de datos modificado, e
• insertar 108 la huella dactilar calculada 2' (igual a “6161220” en el ejemplo de la Figura 4) en el bloque de datos modificado 6 en la ubicación de la huella dactilar eliminada del bloque de datos.
Por tanto, el método permite actualizar la huella dactilar (2 sustituida por 2') de un bloque de datos en particular cuando se ha modificado el contenido del bloque de datos.
El paso de verificación 103 del método 1 permite al usuario protegerse contra cualquier modificación de un bloque de datos 4, o al menos detectar cualquier modificación de un bloque de datos 4 comparando la huella dactilar 2 que aparece en el bloque de datos con la huella dactilar calculada a partir del bloque de datos modificado 6. Por tanto, el método 1 corresponde a un método para la identificación, verificación de la integridad y autenticación de un bloque de datos dentro del cual se ha insertado una huella dactilar de forma controlada y potencialmente no destructiva. El método permite encontrar, eliminando la huella dactilar contenida en el bloque de datos, el valor del bloque de datos a partir del cual se supone que se ha calculado la huella dactilar, y luego verificar si esta suposición es verdadera o si es falsa comparando la huella dactilar eliminada con la huella dactilar calculada a partir del bloque de datos modificado 6 después de la eliminación. Si la comparación es cierta, el bloque de datos 4 no se ha modificado desde la inserción de la huella dactilar 2. Si la comparación es falsa, el bloque de datos 4 está dañado o simplemente se ha modificado.
Cabe señalar que los pasos 102, 106, 114 para el cálculo de huellas dactilares pueden ir precedidos de un paso para insertar una parte de los datos predefinida en la ubicación de inserción de huellas dactilares que se encuentra en los pasos 100, 104 y 110. Por tanto, las Figuras 5 a 8 se diferencian respectivamente de las Figuras 1 a 4 en que dicha parte de los datos 8 predefinida se inserta en el bloque de datos antes del cálculo de la huella dactilar. El método 1' de la Figura 5 difiere del método 1 de la Figura 1 en que los pasos de eliminación de huellas dactilares 101, 105 se reemplazan por los pasos 101', 105' para reemplazar la huella dactilar 2 encontrada con la parte de los datos 8 (o son seguidos de un paso para insertar el dato 8), el paso 114 para calcular una huella dactilar está precedido por un paso 112 para insertar el dato 8 en la ubicación encontrada en el paso 110, y los pasos 108, 116 para insertar la huella dactilar calculada se reemplazan por los pasos 108', 116' para reemplazar el dato 8 en el bloque de datos modificado 6' con la huella dactilar calculada 2, 2'. Por tanto, el bloque de datos modificado 6' se diferencia del bloque de datos 6 en que comprende la parte de los datos 8 en la ubicación de la huella dactilar 2. Los pasos 101, 105' y 111' generan el bloque de datos 6' que contiene la parte de los datos 8 en la ubicación de inserción de la huella dactilar. Cabe señalar que la eliminación de la huella dactilar, como se hizo en los pasos 101 y 105, puede realizarse reemplazando la parte de los datos eliminada por otro parte de los datos. También debe tenerse en cuenta que la parte de los datos 8 no se inserta necesariamente en el bloque de datos en lugar de la huella dactilar, sino que puede insertarse en otra ubicación del bloque de datos.
También puede considerarse insertar varias veces la misma huella dactilar de identificación de un bloque de datos en este último. En este caso, el marcador 7 puede usarse para encontrar una de las huellas dactilares de identificación del bloque de datos, y la huella dactilar encontrada puede usarse a continuación para buscar las otras huellas dactilares de identificación del bloque de datos. A continuación, se realizan los pasos de eliminación 101, 105 o sustitución 101', 105' para todas las huellas dactilares de identificación insertadas en el bloque de datos.
La huella dactilar, de acuerdo con su tipo, puede constituir por sí misma el marcador 7 que permite ubicarla en el bloque de datos 4. Este es, por ejemplo, el caso cuando la parte de los metadatos tiene un formato suficientemente específico para poder ubicarse en el bloque de datos usando una expresión regular. Por ejemplo, cuando el fragmento de metadatos es una huella dactilar “shal” que asume un formato hexadecimal con 40 caracteres (por ejemplo, “313579888a840dec517a3908d57427299eclf5f7”), puede ubicarse en el bloque de datos con la expresión regular “[0-9a-f]{40}”.
La huella dactilar 2 puede insertarse en el bloque de datos 4 en la forma o en un fragmento de metadatos usados para identificar el bloque de datos. Cuando la huella dactilar 2 o el fragmento de metadatos que la contiene no permiten por sí mismos ubicar la huella dactilar, como ocurre en particular cuando la huella dactilar o el fragmento de metadatos pueden confundirse con el contenido normal del bloque de datos, el marcador 7 puede insertarse en el bloque de datos 4 o en el fragmento de metadatos. Así, el marcador 7 puede tener un formato específico, una cadena específica de caracteres que se sabe que aparecen en la parte de los metadatos de identificación de un bloque de datos, separadores regulares, etc. El formato puede conocerse implícitamente ya que está definido por defecto, por ejemplo, una parte de los metadatos compuesta por los primeros 20 caracteres de una huella dactilar “shal”, con un guión separador cada 5 caracteres. El marcador 7 no está necesariamente en la ubicación de la huella dactilar, pero puede indicar esta ubicación, por ejemplo, con respecto al principio o al final del bloque de datos, o con respecto a la posición del marcador en el bloque de datos. Por tanto, el marcador puede asociarse con información útil para ubicar la huella dactilar, tal como una posición definida con respecto al marcador 7, o con respecto al principio o al final del bloque de datos.
Más específicamente, puede insertarse un elemento de lenguaje elegido o estandarizado en el bloque de datos 4 para designar, dentro del propio bloque de datos, zonas llamadas secciones protegidas, destinadas a recibir la huella dactilar 2 o una parte de los metadatos que contenga la huella dactilar. Por ejemplo, es posible usar un lenguaje de etiquetas de apertura y cierre: el comienzo de la sección protegida se identifica con un signo específico como “<<<” y el final con otro signo específico como “>>>”.
Así, el lenguaje que permite identificar la ubicación de una sección protegida puede ser un lenguaje de marcas y rótulos, como “<<<...>>>”, reconocido y usado, por ejemplo, por medio de herramientas informáticas estándar, en particular expresiones regulares (regexp), los programas grep y sed de Unix, etc. Este lenguaje de etiquetado puede ser un dialecto de XML, como un lenguaje de etiquetado estandarizado: por ejemplo, “<protectedsection>...</protected-section>.”
La posición de una sección protegida también puede determinarse, por ejemplo, en función del tipo de bloque de datos (documento) en cuestión, al principio o al final del bloque de datos. En este caso, la huella dactilar 2 no se inserta al principio de un bloque de datos, o después del final del bloque, sino después de una etiqueta de apertura o antes de una etiqueta de cierre. El método 1, 1' puede comprender etapas de inicialización que incluyen marcar el bloque de datos insertando etiquetas en una o varias ubicaciones elegidas libremente.
Cabe señalar que los datos que indican la ubicación y con una longitud y/o los parámetros de presentación de una sección protegida pueden aparecer en el bloque de datos 4 fuera de la sección protegida. También debe tenerse en cuenta que, para ciertos tipos de documentos binarios, la inserción de una sección protegida en el bloque de datos 4 puede hacerse de manera que la longitud de la zona de texto que lo contiene permanezca sin cambios después de la inserción y reemplazo de la huella dactilar 2. Además, los pasos de eliminación 101, 105 o sustitución 101', 105' también pueden consistir en reemplazar toda la zona protegida, incluidas las etiquetas, o sólo el contenido entre las etiquetas.
Además, la huella dactilar 2, dependiendo de su tipo, puede por sí misma proporcionar información sobre el cálculo o algoritmo de cálculo o codificación habiendo permitido su generación. La huella dactilar también puede asociarse con el nombre del algoritmo de cálculo que se usó para generar la huella dactilar, como “md5” o “shal”, o el nombre de la codificación, como “hex” (para hexadecimal), “b64” (para la base 64), o “bubble babble”. Además, el algoritmo o la codificación puede conocerse implícitamente ya que está definido por defecto.
Cuando la propia huella dactilar 2 no indica el tipo de cálculo o algoritmo de cálculo que ha permitido su generación, esta información puede proporcionarse en una parte de los metadatos insertada en el bloque de datos 4. Si la huella dactilar 2 se inserta en un fragmento de metadatos, esta información del tipo de cálculo de huella dactilar puede insertarse en el mismo fragmento de metadatos que la huella dactilar 2. El fragmento de metadatos que contiene la información del tipo de cálculo de la huella dactilar también puede insertarse en una sección protegida como se describió anteriormente.
En una primera modalidad del método 1, 1', la huella dactilar es producida por una función irreversible tal como una función hash.
En una segunda modalidad del método 1, 1', la huella dactilar 2 se inserta en el bloque de datos 4 en forma de una firma digital generada cifrando la huella dactilar del bloque de datos usando una clave privada de un par de claves públicas/privadas. La verificación 102 de la firma digital puede consistir en descifrar la firma con la clave pública del par de claves públicas/privadas, con el fin de obtener una huella descifrada del bloque de datos, y en verificar que la huella descifrada corresponde a la calculada a partir del bloque de datos modificado 6 del que se eliminó la huella dactilar 2 en el paso de eliminación 101 o de sustitución 101'. Cabe señalar que la huella dactilar 2 también puede ser una firma calculada cifrando no una huella dactilar del bloque de datos, sino el bloque de datos directamente, con la clave privada. En este caso, la verificación de la firma puede realizarse descifrando la firma usando la clave pública correspondiente y comparando el bloque de datos descifrado así obtenido con el bloque de datos modificado.
En una u otra de estas dos modalidades, una o varias piezas de metadatos 2 que aparecen en el bloque de datos 4 pueden proporcionar los parámetros necesarios para la verificación. Estos parámetros pueden indicar el tipo de algoritmo usado para generar la huella dactilar y/o la firma. En la segunda modalidad, estos parámetros pueden proporcionar la dirección de correo electrónico de un firmante “gpg” y la clave pública correspondiente. De acuerdo con una modalidad, una de estas piezas de metadatos puede contener información no eliminada durante los pasos de eliminación 101, 105 o de reemplazo 101', 105'. Por ejemplo, puede especificarse que no se elimine la dirección de correo electrónico de un firmante de un bloque de datos, lo que permite evitar que el bloque de datos sea firmado por otra persona si el bloque de datos es referenciado por su firma por otros bloques de datos, sin modificación de estos otros bloques de datos.
De acuerdo con una modalidad, una parte de los metadatos de referencia insertada en el bloque de datos contiene la huella dactilar o la firma de otro bloque de datos, con el fin de establecer un enlace de referencia con este otro bloque de datos. Si la parte de los metadatos de referencia se inserta en el bloque de datos antes del cálculo y la inserción de la huella dactilar en el bloque de datos realizado en los pasos 108, 108', 116, 116', el enlace de referencia así establecido no puede modificarse sin dañar el bloque de datos que contiene la parte de los metadatos de referencia. Este enlace de referencia puede usarse, por ejemplo, para establecer enlaces fiables entre un bloque de datos y versiones anteriores de este bloque de datos.
De acuerdo con una modalidad, ciertos fragmentos de metadatos son elegibles para la eliminación (o sustitución) realizada en los pasos 101, 101', 105, 105', y otros no son elegibles para la eliminación. Por lo tanto, la parte de los metadatos de identificación que contiene la huella dactilar del bloque es elegible para su eliminación. Las piezas de metadatos de referencia que no deben modificarse o cuya autenticidad debe garantizarse no son elegibles para su eliminación. Por lo tanto, se tienen en cuenta en el cálculo de huellas dactilares realizado en los pasos 102 y 114. Además, al proporcionar piezas de metadatos de referencia que pueden eliminarse, es posible en un bloque de datos hacer referencia a versiones futuras del bloque de datos o bloques de datos que contienen información adicional, sin tener que actualizar la huella dactilar de identificación del bloque de datos.
En general, tales piezas de metadatos de referencia que son o no elegibles para su eliminación hacen posible generar relaciones o referencias entre bloques de datos. En particular, este medio permite definir relaciones entre versiones de un mismo bloque de datos o entre diferentes bloques de datos, pudiendo ser usadas estas relaciones por un programa.
También se entenderá que ciertas piezas de metadatos no pueden justificar una verificación debido a su naturaleza meramente informativa (una fecha, referencias a documentos externos que no están controlados como fuentes de documentación externas). Estos fragmentos de metadatos pueden configurarse para que sean elegibles para su eliminación. Por ejemplo, puede ser beneficioso insertar una referencia a documentación particularmente útil, una fecha de lectura, un nombre de lector, etc., en un bloque de datos, sin tener que actualizar la huella dactilar del bloque de datos 4. Por tanto, es posible insertar información arbitraria (es decir, no calculada a partir del contenido) en un bloque de datos sin modificar el valor de la huella dactilar de identificación del bloque de datos 4, en función del contenido de este último.
Más particularmente, la tecnología actual no permite gestionar las relaciones de bloques de datos, en particular al hacer que un bloque de datos o archivo digital haga referencia indiscutiblemente a sus versiones anteriores, ni al hacer referencia a sus versiones futuras o documentación adicional sin que se modifique su huella dactilar como un resultado. El método 1, 1' permite hacer referencia a las versiones anteriores de un archivo digital mediante la incorporación de piezas de metadatos de referencia que contienen o hacen posible determinar la huella dactilar de identificación de otro archivo. Si una parte de los metadatos de referencia es elegible para la eliminación, es posible modificarla sin tener que actualizar la huella dactilar del bloque de datos que contiene esta parte de los metadatos de referencia.
Así, de acuerdo con una modalidad, el método 1, 1' comprende un paso adicional realizado entre el paso 105, 105' y el paso 106, o después del paso 108, 108', para insertar la huella dactilar que se eliminó en el paso 105, 105' en el bloque de datos 2 como referencia. Si la huella dactilar de referencia se inserta así antes del paso 106 para calcular la nueva huella dactilar de identificación, la huella dactilar de referencia no es elegible para su eliminación y, por lo tanto, indiscutiblemente hace referencia a la versión anterior del bloque de datos (identificado por la huella dactilar eliminada en el paso 105, 105'). Si, por el contrario, la huella dactilar de referencia se inserta en el bloque de datos después del paso de cálculo 106, es elegible para su eliminación para poder verificar la integridad del bloque de datos (pasos 100-103). Como resultado, esta huella dactilar de referencia puede modificarse sin introducir una inconsistencia entre la huella dactilar del bloque de datos y la huella dactilar de identificación del bloque de datos insertado en el paso 108, 108'.
Asimismo, la tecnología actual no permite distinguir entre un bloque de datos que tiene una huella dactilar de identificación de datos y los que se refieren al mismo. De acuerdo con una modalidad, el método 1, 1' implementa varias codificaciones diferentes de la misma huella dactilar para distinguir, en el mismo bloque de datos, entre una huella dactilar de identificación que identifica el bloque de datos y una huella dactilar de referencia que se refiere a otro bloque de datos. De esta manera, la huella dactilar de un bloque de datos puede usarse como palabra clave para buscar un bloque de datos identificado por la huella dactilar o para buscar bloques de datos que se refieran al bloque de datos identificado por la huella dactilar. Así, un bloque de datos encontrado a partir de su huella dactilar o de una huella dactilar de referencia que hace referencia a otro bloque de datos se identifica de manera definida en los resultados de una búsqueda.
De acuerdo con el ejemplo presentado anteriormente, en el que la parte de los metadatos de identificación 2 de un bloque de datos 4 incluye una huella dactilar “shal” de formato hexadecimal con 40 caracteres, los bloques de datos referentes a este bloque de datos identificados por esta huella incorporan una parte de los metadatos, por ejemplo, que incluyen la siguiente variación de la huella dactilar:
“3_13579888a840dec517a3908d57427299ec1f5f7”, donde la inserción del carácter “_ ” en la posición 1 indica que es una huella dactilar de referencia que se refiere a otro bloque de datos y no una huella dactilar de identificación que identifica el bloque de datos. Por lo tanto, las ocurrencias de este tipo de variación no serán identificadas por la expresión de búsqueda regular de la huella dactilar de identificación “no modificada” y, por lo tanto, no pueden entrar en conflicto con las huellas dactilares de identificación que no están en piezas de metadatos de referencia.
La huella dactilar 2 puede depender además de información contextual y/o información fuera del bloque de datos 4, de modo que no es posible modificar esta información contextual o externa sin cambiar la huella dactilar 2 del bloque de datos. Por ejemplo, el cálculo de la huella dactilar puede dar cuenta de un nombre de archivo que comprende el bloque de datos o parte de este nombre de archivo, de modo que no es posible modificarlo.
Además, los motores de indexación y búsqueda no tienen actualmente la posibilidad de identificar bloques de datos por su contenido de una manera determinada e inequívoca, en particular prescindiendo de diccionarios u otros servicios de archivo específicos. De hecho, a través de los motores de búsqueda e indexación actuales, no es posible encontrar información precisa de forma rápida y sin ambigüedades, ya que no se proporciona para encontrar un bloque de datos directamente desde su huella dactilar. La naturaleza ambigua de las palabras clave derivadas de un lenguaje natural o técnico como se usa actualmente, y su uso en un ruido de fondo creciente, hacen que las búsquedas directas de documentos precisos sean complejas y, a menudo, se vean frustradas por los criterios de prioridad de los motores de búsqueda. Por supuesto, actualmente es posible insertar una huella dactilar en el nombre de un archivo para indexarlo y encontrar este archivo durante una búsqueda. Sin embargo, este enfoque adolece de varios inconvenientes, en particular la imposibilidad de prohibir cualquier cambio de este nombre por parte de un tercero y/o la dificultad de gestionar documentos cuyo nombre contenga su propia huella dactilar.
En relación con estos problemas, el método 1, 1' prevé ventajosamente que la totalidad o parte de una huella dactilar 2 se utilice como palabra clave para un motor de búsqueda, de modo que sea posible buscar un bloque de datos 4 a partir de la huella dactilar 2 que contiene. Esta huella dactilar puede, por ejemplo, asumir la forma de una larga cadena de caracteres no naturales, que es muy difícil de falsificar (tal intento de falsificación se denomina ataque de “preimagen”). Además, esta cadena de caracteres no puede producirse al azar, o si es así, solo de acuerdo con probabilidades infinitesimales. Por lo tanto, una búsqueda de este tipo solo puede devolver copias idénticas de un bloque de datos dado.
De acuerdo con una modalidad, el método 1, 1' (pasos 110 a 116 o 116') se ejecutan varias veces para insertar, en un bloque de datos 4, no sólo una, sino tantas huellas dactilares o firmas como se desee. La adición de una nueva huella dactilar puede, bajo ciertas condiciones, no cambiar los valores de las huellas dactilares 2 previamente integradas en el bloque de datos. Este es, por ejemplo, el caso al insertar la nueva huella dactilar en una nueva sección protegida yuxtapuesta con una sección protegida previamente insertada en el bloque de datos, y si todas las secciones protegidas que contienen una huella dactilar están sujetas a eliminación 101, 101', 105, 105' durante la verificación y la inserción de una huella dactilar, pudiendo cada huella corresponder a la huella dactilar del bloque de datos inicial, es decir, libre de estas adiciones de secciones protegidas. Las huellas dactilares así insertadas en el bloque de datos pueden haberse calculado mediante diferentes tipos de cálculo.
De acuerdo con otra modalidad, las etapas (a) (110, 114, 116 o 110, 112, 114, 116') se llevan a cabo varias veces en cascada sobre un bloque de datos. Así, cada ejecución de los pasos (a) introduce, en el bloque de datos, una nueva huella dactilar de identificación del bloque de datos, calculada sobre el bloque de datos en el estado en el que se encuentra al comienzo de cada nueva ejecución de los pasos (a).
Al permitir así insertar varias huellas dactilares de identificación en un bloque de datos, en cascada, el método 1, 1' hace posible, además de la posibilidad de usar algoritmos de cálculo que ya se sabe que son fuertes, proteger robustamente contra ataques de preimagen combinando varias huellas dactilares o firmas en un mismo bloque de datos 4. De hecho, para tener éxito, un ataque de preimagen no solo debe producir un bloque de datos que tenga exactamente todas las huellas dactilares, sino que además pueda pasar válidamente por el bloque de datos original (un archivo zip, una fuente Java ejecutable, etc.). Este ataque ya es muy difícil de llevar a cabo cuando solo hay una huella dactilar para falsificar, y se vuelve completamente imposible con las tecnologías conocidas cuando se combinan varias huellas dactilares.
La elección de formatos (número de caracteres, por ejemplo) y codificaciones (hexadecimal, b64, bubble babble, por ejemplo) de las huellas dactilares en particular permite definir cómo se podrá realizar la indexación del documento usando huellas dactilares o firmas. Por ejemplo, en el formato de “bubble babble”, una huella dactilar asume la forma de palabras independientes de 5 letras, que son comprensibles y pueden ser memorizadas por un ser humano. En el formato hexadecimal, las huellas dactilares son más largas, usando todos los números y letras de la A a la F. El formato “b64” usa todos los caracteres, mayúsculas y minúsculas.
De acuerdo con una modalidad, los fragmentos de metadatos comprenden una parte invariable y una parte variable, y solo la parte variable del fragmento de metadatos elegible para su eliminación puede eliminarse durante los pasos de eliminación 101, 101', 105, 105'. Al indicar el modo de cálculo de la huella dactilar 2 en la parte invariable de la parte de los metadatos de identificación, es posible imponer el modo de cálculo de la huella dactilar y, por lo tanto, prohibir la creación de otros bloques de datos idénticos al final del paso de eliminación 101, 101', 105, 105' y con huellas dactilares diferentes.
La tecnología actual no permite que un programa use, a través de su propio código, sus diversas claves de certificación o las de programas asociados. De hecho, esta información se proporciona, si corresponde, en archivos separados de los archivos de origen del programa, y por lo tanto, un tercero puede dañarla, y acceder a ella mediante engaños. Así, una modalidad se refiere a un producto de programa informático que comprende porciones de un archivo de programa registradas en un medio legible por ordenador, con el fin de llevar a cabo las etapas del método 1, 1', el programa informático que constituye todo o parte del bloque de datos 4 o está siendo distribuido en varios bloques de datos. Al permitir que las huellas dactilares del bloque de datos se coloquen bajo el control del programador, es posible, por ejemplo, inicializar una variable del tipo de cadena de caracteres del programa al valor de la huella dactilar de un bloque de datos que pertenece a un archivo que contiene todos o parte del programa. Por tanto, el método 1, 1' puede ofrecer a un programa acceso inmediato a su huella dactilar de identificación.
El programa informático así modificado está, él mismo, firmado y autenticado y, sobre todo, es capaz de verificarse a sí mismo. El método 1, 1' permite así certificar que los bloques de datos no están corruptos, permite la búsqueda e indexación de estos bloques de datos en función de su huella (por ejemplo, “shal”) por los motores de búsqueda habituales, y permite que los bloques de datos sean vinculados entre sí por referencias a las huellas dactilares, permitiendo a los motores de búsqueda distinguir entre las copias de un bloque de datos que se identifican por su huella dactilar y las que se refieren a él.
Respecto a los posibles despliegues del método 1, 1':
- puede proporcionarse a los usuarios finales para cada plataforma de hardware, de modo que pueda usarse, por ejemplo, de forma muy sencilla mediante una operación de arrastrar/soltar,
- puede integrarse o invocarse por software existente (navegadores de Internet, compiladores) para automatizar la validación y la búsqueda de documentos,
- puede proporcionarse a los usuarios a través de un sitio Web o un servicio Web.
Una modalidad se refiere a un programa informático diseñado para procesar bloques de datos que contienen múltiples ocurrencias de huellas dactilares y/o firmas calculadas por algoritmos variados y presentados de acuerdo con codificaciones variadas, por ejemplo en el orden: i) una huella dactilar “md5” con 32 caracteres hexadecimales, ii) una huella dactilar “shal” con 40 caracteres hexadecimales, iii) la misma huella dactilar en “bubble babble”, iv) una firma “gpg”, o:
i. 11a3e229084349bc25d97e29393ced1d,
ii. 313579888a840dec517a3908d57427299ec1f5f7,
iii. xesef-havem-midim-gafuv-sugul-piveb-mahul-ginad-nilys-catuz-loxix, y
iv. 88460400110200060502503e355e000a0910205d6dcf987el8306913009f6524a79b328f506a8bb6228a09a1 a3c3b19713f6009f6a17805128a2919a65459047f32357493 eb0a913.
El programa localiza estas huellas dactilares, por ejemplo, mediante expresiones regulares como “[0-9a-f]{40}”, y realiza el mismo procesamiento que antes, es decir, la eliminación de las huellas dactilares de identificación y metadatos que pueden eliminarse 101, 101' o 105, 105', cálculo de huellas dactilares 102, 106, 114, verificación de huellas dactilares 103 o inserción de huellas dactilares 108, 108', 116, 116'. Pueden considerarse otros métodos para distinguir entre un bloque de datos que tiene una huella dactilar y los que se refieren a él. De hecho, es posible calcular, a partir de la codificación hexadecimal, la versión de “bubble babble” de la misma huella dactilar. Por lo tanto, es posible hacer referencia al bloque de datos usando la huella dactilar “shal” y realizar las búsquedas del bloque de datos usando la huella dactilar en “bubble babble”. La inserción de una firma en el bloque de datos permite identificar al autor de la firma y la fecha de la firma. La robustez de la protección que ofrece la huella dactilar contra ataques de preimagen puede multiplicarse por la inserción en cascada en el bloque de datos de varias huellas dactilares calculadas por algoritmos separados.
También es posible considerar cualquier otra modalidad basada en un lenguaje que defina las piezas de metadatos o secciones protegidas y que caracterice su contenido. Por ejemplo, y sin limitación, puede considerarse otro conjunto de piezas de metadatos:
i. #11a3e229084349bc25d97e29393cedld#,
ii. <zp shal hex 40 11a3e229084349bc25d97e29393ced1d/zp>, o una huella dactilar “shal” con 40 caracteres hexadecimales,
iii. {MTV5iIqEDex shal hex 811a3e229}, o una huella dactilar “shal” truncada en 8 caracteres hexadecimales, iv. [zp signer abc.defgh@gmail.com], o el firmante del bloque de datos,
v. &zp 200 end&, o la definición de una zona protegida en los últimos 200 caracteres del bloque de datos del cual puede extraerse la información que describe el contenido y la ubicación de la zona protegida, y vi. <zp freemeta next version is dcf987e18306913009f6524a79b3/zp>, o una zona protegida (elegible para la eliminación (101, 101', 105, 105') que contiene texto editado libremente por un usuario, por ejemplo, para hacer referencia a un documento producido en el futuro, sin cambiar el valor de las huellas dactilares.
De acuerdo con una modalidad, los bloques de datos de enlace específicos se generan exclusivamente para establecer un enlace entre otros dos bloques de datos, sin tener que modificar uno u otro de estos dos bloques de datos para insertar, como referencia, la huella dactilar de otro de estos dos bloques de datos en él. Cada bloque de datos de enlace contiene, además de su propia huella dactilar de identificación, las huellas dactilares de identificación de varios otros bloques de datos como huellas dactilares de referencia. Los bloques de datos de enlace permiten establecer enlaces entre bloques de datos sin tener que modificar estos últimos y, por tanto, sin modificar sus huellas dactilares de identificación. Las huellas dactilares de referencia y los bloques de datos de enlace constituyen elementos de estructura que permiten estructurar un conjunto de bloques de datos, en el que cada bloque de datos está vinculado directa o indirectamente con varios otros bloques de datos. Por tanto, si uno de los bloques de datos se modifica y los enlaces de referencia pertenecen a datos que no pueden eliminarse, pierde todos sus enlaces directos e indirectos (por medio de un bloque de enlaces) con los otros bloques de datos.
La Figura 9 muestra un conjunto de ejemplo de bloques de datos B1 a B8, cada uno vinculado a uno o varios otros bloques de datos, y en donde las flechas simbolizan un enlace de referencia en un bloque de datos (bloque original de la flecha) con otro bloque (bloque de destino de la flecha). En el ejemplo de la Figura 9, los bloques B2, B3 y B4 contienen la huella dactilar del bloque B1 como referencia y los bloques B6, B7 y B8 contienen la huella dactilar del bloque B5 como referencia. Además, el conjunto de bloques de datos comprende bloques de datos de enlace BL1, BL2 que establecen respectivamente un enlace entre los bloques de datos B1 y B5 y un enlace entre los bloques de datos B3 y B8.
La Figura 10 muestra un conjunto de archivos F1 a F5 vinculados entre sí por enlaces de referencia. El Apéndice I proporciona el contenido de las piezas de metadatos de cada uno de los archivos F1 a F5. En cada uno de los archivos F1 a F5, los fragmentos de metadatos se insertan en una sección protegida delimitada por las etiquetas de apertura “/*’’ y de cierre “*/”. Cada parte de los metadatos se identifica y delimita entre las palabras clave “keeex” y “xeeek”. Las huellas dactilares están codificadas en el formato de “bubble babble”. Las huellas dactilares de identificación comienzan y terminan con la letra “x” y se introducen con la palabra clave “self” . Las huellas dactilares de referencia comienzan y terminan con la letra “r” y se introducen con la palabra clave “ref” . Por tanto, una huella dactilar de identificación puede deducirse de una huella dactilar de referencia simplemente cambiando la primera y la última letra “r” de la huella dactilar por la letra “x” y viceversa. Los enlaces de referencia que asocian dos huellas dactilares de referencia (archivo F5) se introducen mediante la palabra clave “ref2.” Los archivos F1 y F2 se refieren al archivo F3 y a otro archivo identificado por la huella dactilar: “xuhen-zakid-kakas-mased-hedot-faded-tamap-rulem-porib-cihitvicif-fazuh-kisit-tycat-gypaf-dymag-raxux.” El archivo F3 se refiere a otro archivo identificado por la huella dactilar: “xisiz-kynov-mogec-tycas-livaf-hytov-cyzar-hofed-nobyl-zuvyz-mifav-kiteb-nodun-mipyr-bilac-ceheh-zyxyx” el archivo F4 se refiere a otro archivo identificado por la huella dactilar: “xebor-movab-vyzif-tisaz-hurev-vuzys-vohyk-kyfaz-pehihdygik-zukuv-zulek-fobyk-vedug-banal-sylin-muxax” el archivo F5 es un bloque de enlaces que establece un enlace de referencia entre los archivos F3 y F4. Durante el paso de eliminación 101, 101' durante una verificación de uno de los archivos F1 a F5, solo se elimina del archivo la huella dactilar de identificación identificada por la palabra clave “self” . Los archivos F1 a F5 comprenden otra pieza de “nombre” de metadatos que permite asignar un nombre al archivo y especificarlo en el cuerpo del archivo. El archivo F3 comprende una pieza de “prop” de metadatos que permite definir una propiedad del archivo, del tipo “descripción” en el ejemplo proporcionado.
Debería ser obvio para el experto en la materia que la presente invención permite modalidades en muchas otras formas específicas sin apartarse del campo de aplicación de la invención según se reivindica. Como resultado, la presente modalidad debe considerarse como una ilustración, pero puede modificarse en el campo definido por el alcance de las reivindicaciones adjuntas.
Para las operaciones de verificación y actualización de un bloque de datos, por supuesto, no es necesario generar un bloque de datos modificado en el que se haya eliminado la huella dactilar de identificación. De hecho, el cálculo de la huella dactilar puede realizarse en el bloque de datos excluyendo, sobre la marcha, los bits de la huella dactilar de identificación que aparecen en el bloque de datos.
Además, pueden considerarse modos de cálculo de huellas dactilares diferentes a los descritos. Por ejemplo, los cálculos de huellas dactilares pueden realizarse mediante una función de compresión de datos sin pérdidas, de modo que el cálculo de huellas dactilares sea una operación reversible. Los cálculos de huellas dactilares también pueden realizarse mediante una función de compresión de datos con pérdida, pero haciendo posible reconstituir un bloque de datos a partir de su huella dactilar. La función de cálculo puede, por ejemplo, combinar una función de transformación en una imagen de mapa de bits y una función de compresión de imagen de mapa de bits con pérdida. Un bloque de datos puede reconstituirse a partir de su huella dactilar descomprimiendo la imagen y convirtiéndola en caracteres alfanuméricos mediante una función de reconocimiento de caracteres.
APÉNDICE I (parte integral de la divulgación)
Archivo F1
/ *
kcccx sclf xebaf-zuzat-zocut-telyc-bycyn-talyd-nukak-senom-lufyr-mipazgulab-kacep-kilid-pobin-bekub-tyvib-koxix xeeek keeex ñame "Nom l" xeeek
kcccx re f "ruhen-zakid-kakas-mased-hedot-faded-tamap-rulem-porib-ciMtvicif-fazuh-kisit-tycat-gypaf-dymag-raxur" xccck kcccx ref "rucod-pibev-mehog-puhiic-vypiz-donom-bocet-vymyc-retyzgyfam-damul-hanud-dikav-fulyg-cuvez-ligyb-hexor" xccck * /
Archivo F2
/*
kcccx sclf xozah-lydeg-vymap-nopop-decec-zuvod-zufof-pikav-halut-dycytmogit-kofer-bipaf-nimib-benef-mefeh-nyxux xccck kcccx ñame "Nom2" xccck
kcccx rcf "ruhen-zakid-kakas-mased-liedot-faded-tamap-nilem-porib-cihitvicif-fazuh-kisit-tycat-gypaf-dymag-raxur" xccck kcccx rcf "rucod-pibev-mehog-puhuc-vypiz-donom-bocet-vymyc-retyzgyfam-damul-hanud-dikav-fulyg-cuvez-ligyb-hexor" xccck * /
Archivo F3
/*
kcccx sclf xucod-pibev-mehog-puhuc-vypiz-donom-bocet-vymyc-retyzgyfam-damul-hanud-dikav-fulyg-cuvez-ligyb-hexox xccck kcccx ñame "Nom3" xccck
kcccx rcf "risiz-kynov-mogcc-tycas-livaf-hytov-cyzar-hofcd-nobyl-zuvyzmifav-kitcb-nodun-mipyr-bilac-cchch-zyxyr" xccck kcccx prop "dcscription", "xx xxxxx xx xx xxxx" xccck
* /
Archivo F4
/ *
lceeex self xofoh-hafuf-mybyg-fagas-fídec-cufov-malaf-lalof-bizyk-kapignyben-bymyb-ditug-zarud-hobaf-hikud-zixox xeeek keeex ñame "nom4" xeeek
kcccx rcf "rebor-movab-vyzif-tisaz-hurev-vuzys-vohyk-kyfaz-pehih-dygikzukuv-zulek-fobyk-vedug-banal-sylin-muxar" xccck * /
Archivo F5
/ *
keeex selfxedaz-harov-tifav-biguf-cobuh-pivyz-punyg-duguk-sisek-lohazgikot-rymoc-kirac-pytim-pimip-suhin-maxux xeeek kcccx ñame "nom5" xccck
kcccx ref "ruriv-kypeh-sycir-rysyl-cadab-sapon-dynoz-fahan-zafiz-leneccamym-tyrat-nihor-rugek-ryfüf-luged-hexyr" xccck kcccx rcf2 rucod-pibev-mehog-puhuc-vypiz-donom-bocet-vymyc-retyzgyfam-damul-hanud-dikav-ñilyg-cuvez-ligyb-hexor, "rofoh-hafuf-mybyg-fagas-fidec-cufov-malaf-lalof-bizyk-kapig-nybenbymyb-ditug-zarud-hobaf-hikud-zixor" xeeek * /

Claims (20)

REIVINDICACIONES
1. El método para verificar la integridad de un bloque de datos digitales, el método comprende los pasos de: buscar, en un primer bloque de datos (4), una huella dactilar de identificación digital del primer bloque de datos (4), por medio de un primer marcador (7), si la huella dactilar de identificación (2) del primer bloque de datos se encuentra en el primer bloque de datos, calcular una huella dactilar del primer bloque de datos aplicando una función de cálculo de huella dactilar al primer bloque de datos, teniendo la huella dactilar calculada del primer bloque de datos un valor que depende de cada uno de los bits del primer bloque de datos que excluye los bits de la huella dactilar de identificación (2) encontrada en el primer bloque de datos, y verificar la huella dactilar de identificación encontrada en el primer bloque de datos comparándola con la huella dactilar calculada del primer bloque de datos, una comparación falsa que revela que el primer bloque de datos ha cambiado ya que la huella dactilar de identificación se insertó en el primer bloque de datos, o que la huella dactilar de identificación se calculó aplicando una función de cálculo de huella dactilar diferente al primer bloque de datos.
2. El método de acuerdo con la reivindicación 1, en donde el primer bloque de datos comprende un enlace de referencia formado a partir de una huella dactilar de identificación diferente presente en un segundo bloque de datos, y que tiene un valor dependiente de cada uno de los bits del segundo bloque de datos que excluye los bits de la identificación de diferente huella dactilar.
3. El método de acuerdo con la reivindicación 1 o la reivindicación 2, que comprende los pasos de:
buscar, en un tercer bloque de datos, una huella dactilar de identificación digital (2) del tercer bloque de datos (4), por medio de un segundo marcador (7), si la huella dactilar de identificación del tercer bloque de datos se encuentra en el tercer bloque de datos, calcular una huella dactilar (2) del tercer bloque de datos aplicando la función de cálculo de la huella dactilar al tercer bloque de datos, teniendo la huella dactilar calculada del tercer bloque de datos un valor que depende de cada uno de los bits del tercer bloque de datos que excluye los bits de la huella dactilar de identificación que se encuentran en el tercer bloque de datos, e ingresar la huella dactilar calculada del tercer bloque de datos en el tercer bloque de datos en una ubicación determinada por el segundo marcador en el tercer bloque de datos.
4. El método de acuerdo con cualquiera de las reivindicaciones 1 a 3, que comprende los pasos para generar un bloque de datos verificables, que consiste de:
buscar una ubicación de inserción de huella dactilar en un bloque de datos inicial (3), por medio de un tercer marcador, calcular una tercera huella dactilar digital (2) del bloque de datos verificables aplicando la función de cálculo de huella dactilar al bloque de datos inicial, la tercera huella dactilar calculada del bloque de datos verificables que tiene un valor que depende de cada uno de los bits del bloque de datos inicial, y generar el bloque de datos verificables ingresando la tercera huella dactilar calculada del bloque de datos verificables como la huella dactilar de identificación del bloque de datos verificables en la ubicación de inserción que se encuentra en el bloque de datos inicial.
5. El método de acuerdo con cualquiera de las reivindicaciones 1 a 4, en donde el cálculo de cada huella dactilar (2) comprende un paso de insertar una parte de los datos predefinida (8) en el bloque de datos antes de aplicar la función de cálculo de huella dactilar al bloque de datos.
6. El método de acuerdo con cualquiera de las reivindicaciones 1 a 5, en donde un bloque de datos comprende una entrada de huella dactilar de identificación en una pluralidad de ubicaciones en el bloque de datos, la huella dactilar de identificación del bloque de datos se calcula excluyendo los bits de la huella dactilar de identificación en todas las ubicaciones de la huella dactilar de identificación en el bloque de datos.
7. El método de acuerdo con cualquiera de las reivindicaciones 3 a 5, que comprende varios pasos de calcular una huella dactilar de un bloque de datos y de introducir la huella dactilar calculada en el bloque de datos mientras se mantienen las huellas dactilares ya insertadas en el bloque de datos.
8. El método de acuerdo con cualquiera de las reivindicaciones 1 a 7, que comprende un paso de lectura de información útil para localizar y/o calcular una huella dactilar de identificación (2), cuya información está contenida en un bloque de datos (4) que contiene la huella dactilar de identificación.
9. El método de acuerdo con cualquiera de las reivindicaciones 2 a 8, en donde el enlace de referencia formado a partir de la huella dactilar de identificación presente en el segundo bloque de datos permite construir al menos parte de la huella dactilar de identificación presente en el segundo bloque de datos.
10. El método de acuerdo con cualquiera de las reivindicaciones 1 a 9, en donde uno de los bloques de datos comprende una parte de los metadatos que comprende una parte variable excluida del cálculo de la huella dactilar aplicada al bloque de datos para calcular la huella dactilar de identificación del bloque de datos.
11. El método de acuerdo con la reivindicación 10, en donde la huella dactilar de identificación del bloque de datos se ubica en la parte variable de una parte de los metadatos de identificación.
12. El método de acuerdo con cualquiera de las reivindicaciones 1 a 11, en donde al menos parte de la entrada de la huella dactilar de identificación en cada bloque de datos es usada por un motor de indexación o como palabra clave de búsqueda por un motor de búsqueda.
13. El método de acuerdo con cualquiera de las reivindicaciones 1 a 12, en donde uno de los bloques de datos (4) es al menos parte de un archivo de código ejecutable de un programa, y la huella dactilar de identificación (2) del bloque de datos, calculada sobre el bloque de datos, se introduce en el bloque de datos en una ubicación que permite al programa usar la huella dactilar de identificación del bloque de datos.
14. El método de acuerdo con cualquiera de las reivindicaciones 1 a 13, en donde cada huella dactilar de identificación (2) se introduce en un bloque de datos (4) en una ubicación en el bloque de datos que se selecciona para no modificar las condiciones de uso esperadas del bloque de datos (4) mediante un programa informático.
15. El método de acuerdo con cualquiera de las reivindicaciones 1 a 14, en donde la huella dactilar de identificación (2) insertada en un bloque de datos es una firma digital generada por un cálculo criptográfico asimétrico usando una clave privada de un par de claves públicas/privadas, y la verificación de huella (102) comprende un paso de descifrar la firma digital que se encuentra en el bloque de datos con la clave pública del par de claves públicas/privadas, pudiendo ubicarse la clave pública en una parte de los metadatos del bloque de datos.
16. Producto de programa informático que comprende porciones de un archivo de programa registrado en un medio legible por ordenador, para realizar las etapas del método de acuerdo con cualquiera de las reivindicaciones 1 a 15.
17. Producto de programa informático de acuerdo con la reivindicación 16, en donde al menos parte del programa está incluida en uno de los bloques de datos (4).
18. Conjunto de archivos, cada uno registrado en un medio legible por ordenador, en donde cada archivo contiene una huella dactilar de identificación del archivo, la huella dactilar de identificación del archivo puede ubicarse en el archivo por medio de un marcador, la huella dactilar de identificación del archivo tiene un valor calculado aplicando una función de cálculo de huella dactilar al archivo, el valor de la huella dactilar de identificación depende de cada uno de los bits del archivo que excluye los bits de la huella dactilar de identificación del archivo, que está presente en el archivo, y la integridad de cada archivo del conjunto de archivos es verificable usando el método de acuerdo con cualquiera de las reivindicaciones 1 a 15, y cada archivo se considera un bloque de datos.
19. Conjunto de acuerdo con la reivindicación 18, en donde al menos uno de los archivos comprende un enlace de referencia formado a partir de una huella dactilar de identificación de otro archivo del conjunto, estando el enlace de referencia en uno de los archivos del conjunto y que se obtiene modificando reversiblemente una de los huellas dactilares de identificación de los archivos del conjunto para distinguir el enlace de referencia de las huellas dactilares de identificación.
20. Conjunto de acuerdo con la reivindicación 18 o la reivindicación 19, que comprende un archivo de enlace que contiene dos enlaces de referencia formados a partir de huellas dactilares de identificación de otros dos archivos del conjunto para establecer un enlace entre los otros dos archivos.
ES14703151T 2013-01-22 2014-01-15 Proceso de verificación de la integridad del bloque de datos numéricos Active ES2850365T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1350549A FR3001313B1 (fr) 2013-01-22 2013-01-22 Procede de verification d'au moins une metadonnee d'un bloc de donnees numeriques
PCT/FR2014/050073 WO2014114861A1 (fr) 2013-01-22 2014-01-15 Procédé de vérification de l'intégrité d'un bloc de données numériques

Publications (1)

Publication Number Publication Date
ES2850365T3 true ES2850365T3 (es) 2021-08-27

Family

ID=48613741

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14703151T Active ES2850365T3 (es) 2013-01-22 2014-01-15 Proceso de verificación de la integridad del bloque de datos numéricos

Country Status (7)

Country Link
US (1) US10218714B2 (es)
EP (1) EP2949070B1 (es)
DK (1) DK2949070T3 (es)
ES (1) ES2850365T3 (es)
FR (1) FR3001313B1 (es)
PL (1) PL2949070T3 (es)
WO (1) WO2014114861A1 (es)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417247B2 (en) 2014-09-25 2019-09-17 Oracle International Corporation Techniques for semantic searching
US10516980B2 (en) 2015-10-24 2019-12-24 Oracle International Corporation Automatic redisplay of a user interface including a visualization
US10664488B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation Semantic searches in a business intelligence system
US10191826B2 (en) * 2016-03-23 2019-01-29 Keysight Technologies Singapore (Holdings) Pte. Ltd. Methods, systems, and computer readable media for providing an anticipated data integrity check
US10176068B2 (en) 2016-11-29 2019-01-08 Keysight Technologies Singapore (Holdings) Pte. Ltd. Methods, systems, and computer readable media for token based message capture
US10956237B2 (en) * 2017-06-02 2021-03-23 Oracle International Corporation Inter-application sharing of business intelligence data
US11614857B2 (en) 2017-06-02 2023-03-28 Oracle International Corporation Importing, interpreting, and presenting data
US10917587B2 (en) 2017-06-02 2021-02-09 Oracle International Corporation Importing and presenting data
CN110059475A (zh) * 2018-01-18 2019-07-26 伊姆西Ip控股有限责任公司 用于数据保护的方法、设备和计算机程序产品
FR3080204B1 (fr) 2018-04-16 2020-04-24 Thales Procede de mise en oeuvre d'algorithmes d'analyse statistique de donnees caracterisant le comportement d'un ensemble d'elements et systeme associe
KR102337677B1 (ko) * 2020-07-16 2021-12-09 (주)휴먼스케이프 디지털 검증 지문 삽입 시스템 및 그 방법
US20230224166A1 (en) * 2021-12-03 2023-07-13 Snektech, Inc. Systems and Methods for Associating Digital Media Files with External Commodities

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638446A (en) * 1995-08-28 1997-06-10 Bell Communications Research, Inc. Method for the secure distribution of electronic files in a distributed environment
US6785815B1 (en) * 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
US7043637B2 (en) * 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US6751627B2 (en) * 2001-07-23 2004-06-15 Networks Associates Technology, Inc. Method and apparatus to facilitate accessing data in network management protocol tables
JP4315876B2 (ja) * 2004-08-17 2009-08-19 富士通株式会社 ファイル管理プログラム、ファイル管理方法、及びファイル管理装置
US20060047967A1 (en) * 2004-08-31 2006-03-02 Akhan Mehmet B Method and system for data authentication for use with computer systems
US7774320B1 (en) * 2005-04-01 2010-08-10 Apple Inc. Verifying integrity of file system data structures
US8131998B2 (en) * 2007-03-05 2012-03-06 George Mason Intellectual Properties, Inc. Transparent authentication of continuous data streams
US9081987B2 (en) * 2007-03-28 2015-07-14 Ricoh Co., Ltd. Document image authenticating server
US8254569B2 (en) 2007-12-29 2012-08-28 Nec (China) Co., Ltd. Provable data integrity verifying method, apparatuses and system
US8214646B2 (en) * 2008-05-06 2012-07-03 Research In Motion Limited Bundle verification
KR100889026B1 (ko) * 2008-07-22 2009-03-17 김정태 이미지를 이용한 검색 시스템

Also Published As

Publication number Publication date
US20150365426A1 (en) 2015-12-17
PL2949070T3 (pl) 2021-07-05
EP2949070B1 (fr) 2020-11-25
FR3001313B1 (fr) 2016-02-12
EP2949070A1 (fr) 2015-12-02
WO2014114861A1 (fr) 2014-07-31
US10218714B2 (en) 2019-02-26
FR3001313A1 (fr) 2014-07-25
DK2949070T3 (da) 2021-02-15

Similar Documents

Publication Publication Date Title
ES2850365T3 (es) Proceso de verificación de la integridad del bloque de datos numéricos
US20190372769A1 (en) Blockchain-universal document identification
KR101466527B1 (ko) 개인 메타데이터를 처리하기 위한 방법
JP5867875B2 (ja) 署名検証プログラム
US7874013B2 (en) Secure and granular index for information retrieval
EP2355001A2 (en) Document authentication data embedding method and apparatus
US20240031406A1 (en) Methods and systems for honeyfile creation, deployment and management
US8976003B2 (en) Large-scale document authentication and identification system
CN107819748B (zh) 一种抗破解的验证码实现方法及装置
US10262026B2 (en) Relational file database and graphic interface for managing such a database
US9292698B1 (en) Method and system for remote forensic data collection
US7958363B2 (en) Toolbar signature
Boyar et al. Quotable signatures for authenticating shared quotes
Elliott et al. Signing data citations enables data verification and citation persistence
Milon Islam et al. A novel approach towards tamper detection of digital holy quran generation
WO2022029444A1 (en) A device and a method for performing a cryptographic algorithm
US9646171B2 (en) Method and apparatus for correctly binding form objects to encrypted XML data
US8576049B2 (en) Document authentication and identification
US8166306B2 (en) Semantic digital signatures
Kiertscher et al. Automated forensic fingerprint analysis: A novel generic process model and container format
CN117675870B (zh) 一种基于区块链的电子病历分布式共享方法及装置
Edmunds Securing PHP Apps
Nugis Forensic Data Properties of Digital Signature BDOC and ASiC-E Files on Classic Disk Drives
Alsmadi Techniques to Preserve the Integrity of the Electronic Versions of the Nobel Quran
Alsmadi et al. Online integrity and authentication