Brevet FR3001313A1 — publié le 20140725

PROCÉDÉ DE VÉRIFICATION D'AU MOINS UNE MÉTADONNÉE D'UN BLOC DE DONNÉES NUMÉRIQUES Domaine technique général La présente invention se rapporte de manière générale aux procédés de vérification de l'authenticité de blocs de données numériques et d'accès à ces blocs de données numériques, que ceux-ci soient distribués sur un réseau ou stockés sur un support de mémorisation. Etat de la technique Dans ce contexte technique général, une double problématique se pose qui consiste à savoir : - comment atteindre ces blocs de données numériques, et/ou - comment être certain qu'un bloc de données numériques trouvé est bien celui que l'on cherche. Actuellement, cette double problématique est résolue selon plusieurs 15 modes. Selon un premier mode, l'emplacement exact attendu du bloc de données numériques, emplacement que nous appelons l'adresse du bloc de données numériques, est connu. Cette adresse est soit un chemin d'accès dans les répertoires d'un système de gestion de fichiers (par 20 exemple : C:\Mes Documents\test.txt), soit une adresse URL (pour Uniform Resource Locator) indiquant un accès sur le réseau (par exemple : html://un-site.com/documents/test.txt), cet accès se présentant notamment sous forme d'un lien hypertexte dans une page Web. Selon ce premier mode, plusieurs cas apparaissent dont les deux cas 25 suivants. Selon un premier cas, le bloc de données numériques est trouvé à l'adresse connue comme attendu. Il importe alors de s'assurer de ce que le bloc de données numériques trouvé est bien celui recherché ; par exemple, il importe de s'assurer que le bloc de données numériques trouvé est fidèle à une version de ce bloc dont on se rappelle, ou que l'on a utilisée, et référencée dans le passé, ou une version consultée par l'émetteur éventuel de l'adresse. Selon un deuxième cas, le bloc de données numériques recherché n'est pas trouvé à l'adresse connue ; ce deuxième cas renvoie au deuxième mode présenté ci-après. Selon un deuxième mode, l'emplacement exact attendu du bloc de données numériques n'est pas connu. En revanche, on connait un ou plusieurs mots clé ou fragments de phrases, utilisés dans le nom, l'adresse ou le contenu du bloc de données numérique, qui peuvent avoir été indexés afin d'être utilisés pour retrouver ce bloc de données via un moteur d'indexation (sur disque dur) ou de recherche (sur internet). Effectivement, la recherche de blocs de données numériques via un moteur d'indexation ou de recherche est devenue un outil et un mode de travail et d'accès à l'information privilégiés. Une part importante de l'activité cognitive moderne repose sur la capacité à identifier et agréger des documents découverts sur le réseau ou sur un disque dur sans en connaître le nom, ni l'emplacement exact. L'indexation de documents est donc au coeur de l'utilisation actuelle 2 0 de l'information, aussi bien sur internet que dans un ordinateur. Cette indexation se fait le plus souvent par le biais de mots clé 'naturels' issus du langage utilisé dans le document (par exemples, mots du français : « location voiture Marseille » ; mots issus d'un langage de programmation : « getlmage »). Egalement, les ordinateurs, tablettes et téléphones mobiles 25 proposent aujourd'hui des moteurs d'indexation internes permettant de retrouver des documents, notes, contacts, mails, etc. au moyen de recherches par mots clé. De même, les dispositifs de stockage de documents virtualisés (le 'Cloud') offrent des mécanismes de recherche de documents par mots clé et par indexation de contenu (Wuala, iCloud...). 30 Selon ce deuxième mode, une base de données est donc nécessairement utilisée pour stocker les correspondances entre les index et les adresses des blocs de données numériques de sorte que, comme résultat d'une recherche, l'outil renvoie une liste d'adresses de blocs de données numériques. De nouveau, plusieurs cas se présentent dont les quatre cas suivants. Selon un premier cas, la liste est vide. Une nouvelle recherche peut toujours être lancée avec un critère de recherche amélioré. Toutefois, si le nom ou l'adresse du bloc de données numériques d'origine a changé, il est possible que l'accès au bloc de données numériques via une recherche des index d'origine connus soit définitivement perdu. Auquel cas, le bloc de données numériques est introuvable, bien qu'il puisse encore exister. Selon un deuxième cas, la liste comprend un ensemble conséquent d'adresses de blocs de données numériques, et la recherche peut être affinée par ajout d'index obtenus par exemple par analyse de certains des blocs de données numériques trouvés. Selon un troisième cas, une adresse est sélectionnée à laquelle un bloc de données numériques est trouvé. Il importe alors de s'assurer de ce que le bloc de données numériques trouvé est bien celui recherché. Garantir l'authenticité du document ou bloc de données numériques trouvé sur la base de ses seuls adresse et contenu reste alors impossible. Selon un quatrième cas, une adresse est sélectionnée parmi la liste, mais aucun bloc de données numériques ne s'y trouve, par exemple en raison d'un décalage survenu entre les mises à jour de la base de données et une évolution du système de stockage. L'adresse suivante dans la liste peut alors être sélectionnée, mais il n'existe aucun moyen de savoir si le bloc de données numériques manquant à la première adresse sélectionnée n'était pas l'unique exemplaire du bloc de données numériques exactement conforme à celui recherché. Outre les quelques insuffisances relevées ci-dessus des moteurs d'indexation ou de recherche, il demeure que, dans l'état actuel, les index ne suffisent pas à identifier les blocs de données numériques relatifs à des activités ou concepts très spécifiques, ce qui impose le recours à des bases de données et services spécialisés. Par exemple, publier une annonce de voiture, un tweet ou un billet de blog, une information relative à un vol d'avion, un commentaire sur une photographie, un article de presse, une information boursière, un article de recherche, etc. ne peut se faire dans le creuset global des données accessibles aux moteurs d'indexation et de recherche. Pour chacun de ces usages, un site Web dédié est nécessaire (par exemple topannonces, twitter, facebook, flickr, boursorama, citeseer, etc.). La sémantique précise des blocs de données numériques ne peut donc actuellement être définie que par des sites internet dédiés à des domaines ou services spécifiques (par exemple un site de location de voitures, un site recensant l'aide en ligne pour des outils de programmation, un site 'dictionnaire' recensant des ontologies pour le Web sémantique). En outre, les moteurs d'indexation et de recherche donnent une présentation des résultats qui est ordonnée selon des algorithmes de préférence basés sur un calcul de popularité. Dans ce contexte, il peut être impossible d'atteindre des résultats pertinents pour une recherche donnée car ils sont proposés à des rangs très défavorables, très éloignés de celui des premiers résultats. Un moyen de certifier/authentifier/ vérifier/identifier de façon quasi certaine un bloc de données numériques est de lui associer une ou plusieurs empreintes et/ou signatures numériques. Cela a cependant de nombreux inconvénients car cette certification nécessite alors de télécharger, outre le bloc de données numériques proprement dit, diverses empreintes ou signatures, telles que des clés de 'hashage' (notamment: crc, md5, shal , etc.) ou des signatures numériques (pgp, gpg), puis d'utiliser autant d'outils (par exemple, shasum, md5sum, gpg, openssl avec divers paramètres, etc.) que nécessaire pour effectuer, de façon souvent manuelle, les vérifications de certification. Pour ce faire, la solution actuelle consiste à publier des fichiers d'empreintes et/ou de signatures indépendants des blocs de données numériques qu'ils certifient ou à créer des pages Web contenant les signatures en texte lisible, ces dernières devant être copiées par l'utilisateur, puis collées via une commande logicielle complexe. Ce processus ne peut pas être automatisé de façon universelle. La recherche de blocs de données numériques n'est pas seulement un problème d'usage humain, mais relève également de l'automatisation à laquelle la situation actuelle fait largement obstacle. Par exemple, dans le cadre du Web sémantique, il importe de caractériser de manière certaine une ontologie et ses instances devant être transformées, transmises entre services Web, etc. Des outils automatiques de génération de code (compilateurs, makefiles) sont dans certains cas conçus de manière à vérifier automatiquement que les blocs de données numériques utilisés sont bien ce qu'ils prétendent être. L'approche actuelle consiste à créer un fichier décrivant les empreintes des fichiers programme sources et des archives, puis de faire en sorte que l'outil de génération de code vérifie la validité des empreintes avec un outil cryptographique standard (md5sum, shasum). Ce processus n'est pas généralisable à internet et n'est possible que dans un éventail de cas très limité, par exemple pour la validation et la compilation de bloc de programmes (ou packages) Unix. La situation actuelle pose donc un grand nombre de problèmes, auxquels l'invention tente de répondre de manière unifiée. Il est plus particulièrement proposé une solution qui permette notamment de : - garantir qu'un bloc de données numériques trouvé est bien celui que l'on cherchait, - identifier de façon certaine l'auteur d'un bloc de données numériques, - se prémunir de la perte d'accès à un bloc de données numériques du fait de son changement de nom ou d'adresse, par la possibilité d'indexer ledit bloc de données numériques sur ses propres empreintes, - accéder à un ensemble de blocs de données numériques relatifs à un concept précis, cet ensemble étant limité aux seuls résultats pertinents, sans nécessiter un site Web dédié, - faire relever d'un concept identique des blocs de données numériques rédigés dans des langues distinctes, - caractériser de manière certaine les ontologies et leurs instances utilisées dans le contexte du Web sémantique, et/ou - automatiser la vérification des signatures attachées à un bloc de données numériques. Actuellement, une empreinte ou signature ne peut pas être insérée dans un bloc de données numériques sans que sa valeur ne s'en trouve modifiée. Un bloc de données numérique ne peut donc contenir ses propres empreintes ou signatures valides. Une empreinte ou signature ou une partie de celle-ci ne peut donc pas être utilisée à la fois comme outil de validation et comme critère de recherche d'un bloc de données numériques indexé par les moteurs de recherche. En effet, même si une recherche à partir d'une empreinte ou signature peut permettre de trouver l'adresse d'une page Web proposant des liens vers des blocs de données numériques, rien ne permet de déterminer de manière immédiate le bloc de données numériques susceptible de correspondre à cette signature. De plus, une fois un bloc de données numériques trouvé, vérifier que ce bloc est conforme à la signature est une opération fastidieuse. Ces difficultés proviennent de ce que l'information nécessaire pour authentifier un bloc de données numériques doit rester extérieure à ce bloc. Chaque élément d'authentification doit être fourni séparément (dans un fichier indépendant ou dans une base de données), et en l'absence de cette information, plus rien ne permet de certifier que le bloc de données numériques est bien ce qu'il prétend être. En outre, les informations fournies le cas échéant dans des fichiers numériques séparés du bloc de données numériques lui-même peuvent de ce fait être corrompues par un tiers ou frauduleusement accessibles aux moyens d'artifices. Outre le besoin exprimé plus haut d'une solution pour l'insertion d'une signature dans un bloc de données numériques de manière contrôlée et éventuellement non-destructive, il existe donc un réel besoin de développer un programme logiciel unique capable de vérifier et/ou mettre à jour automatiquement la ou les métadonnées d'un bloc de données numériques, voire capable d'exploiter automatiquement ces métadonnées pour effectuer des validations en cascade (ou récursives) d'une pluralité de blocs de données numériques, ou encore capable d'exploiter, via son propre code source, ses propres métadonnées et/ou celles de programmes associés. Pour pallier à au moins un des inconvénients ci-dessus identifiés, l'invention consiste essentiellement en un procédé de vérification d'au moins une métadonnée d'un bloc de données numériques, ladite au moins une métadonnée étant comprise dans ledit bloc de données numériques, le procédé comprenant les étapes suivantes : - remplacement dans ledit bloc de données numériques de ladite au moins une métadonnée par des données prédéfinies selon un premier traitement reproductible, et - vérification selon un premier calcul prédéfini de ladite au moins une métadonnée à partir du bloc de données numériques modifié comme suite à l'étape de remplacement précédente. Par « métadonnée », on entend ici une donnée relative à des informations concernant le contenu du bloc de données numériques, en particulier, mais pas seulement, les informations qui peuvent être calculées à partir du bloc de données numériques. Il s'agit donc de méta-contenu, et non de données de structure. Il est à noter que la notion de métadonnée englobe celles d'empreinte numérique et de signature numérique telles que définies ci-dessous. Ainsi, l'invention concerne un procédé d'identification, d'authentification et/ou de certification d'un bloc de données numériques au sein duquel une métadonnée a été insérée de manière contrôlée et éventuellement non- destructive dudit bloc de données. Le procédé permet avantageusement de retrouver par remplacement de la métadonnée contenue dans le bloc de données numériques la valeur du bloc de données numériques à partir de laquelle la métadonnée est supposée avoir été générée, puis de vérifier si cette supposition est juste ou si elle est fausse par comparaison de la métadonnée remplacée à une métadonnée nouvellement calculée à partir du bloc de données numériques modifié suite audit remplacement. Par « une insertion réalisée de manière contrôlée », on entend ici le fait que l'utilisateur doit pouvoir choisir, aussi librement que le permet le type de bloc de données numériques concerné, l'emplacement et le rôle joué par chaque métadonnée. Toutefois, rien ne doit empêcher que le choix de cet emplacement soit réalisé par un programme, ou même normalisé. Par « une insertion réalisée de manière non-destructive », on entend ici que le bloc de données numériques considéré peut conserver, après insertion d'une métadonnée quelle qu'elle soit, ses propriétés habituelles ; il peut être ouvert, affiché, imprimé, exécuté, etc. par les mêmes outils qu'avant cette insertion. Le procédé est en outre tel qu'il comprend les étapes suivantes : - remplacement dans ledit bloc de données numériques de ladite au moins une métadonnée par les données prédéfinies selon le premier traitement reproductible, - calcul selon un deuxième calcul prédéfini d'au moins une métadonnée à partir du bloc de données numériques modifié comme suite à l'étape de remplacement précédente, et - remplacement dans ledit bloc de données numériques modifié des données prédéfinies par ladite au moins une métadonnée précédemment calculée. Le procédé permet ainsi avantageusement de mettre à jour les métadonnées d'un bloc de données numériques et de gérer des filiations 30 ou référencements de blocs de données numériques, notamment en faisant en sorte qu'un fichier numérique référence ses versions antérieures de manière indiscutable ou qu'il référence ses versions futures ou des documentations complémentaires. Le procédé permet de la même manière de définir les ontologies définissant les relations entre versions pouvant être exploitées par un programme et/ou de distinguer le fichier numérique qui possède une métadonnée et ceux qui y font référence. Le procédé est en outre tel qu'il comprend, préalablement à toute autre étape, les étapes suivantes : - détermination selon le premier traitement reproductible desdites données prédéfinies, - insertion desdites données prédéfinies dans le bloc de données numériques en un ou plusieurs emplacements librement choisis, - calcul d'au moins une métadonnée à partir du bloc de données numériques dans lequel sont insérées lesdites données prédéfinies, et - remplacement dans ledit bloc de données numériques desdites données prédéfinies par ladite au moins une métadonnée précédemment calculée. Le procédé permet ainsi avantageusement d'insérer dans un bloc de données numériques une métadonnée ou une pluralité de métadonnées sans interdire de retrouver la valeur originale du bloc de données numériques via l'étape de remplacement de la métadonnée par les données prédéfinies selon le premier traitement reproductible. Selon une particularité, la métadonnée dépend en outre d'informations contextuelles et/ou extérieures au bloc de données numériques. Le procédé permet ainsi avantageusement d'insérer dans un document des informations arbitraires (i.e. non calculées à partir du contenu du bloc de données numériques), et ce sans modifier la valeur des éventuelles autres métadonnées liées au bloc de données numériques. Selon une autre particularité, le bloc de données numériques et/ou la 3 0 métadonnée comportent une information utile à la localisation et/ou à la vérification de la métadonnée. Le procédé permet ainsi avantageusement d'atteindre les avantages précédemment évoqués lorsque la métadonnée n'est pas d'un format qui par lui-même la rende localisable et/ou renseigne sur sa méthode de génération. Selon une autre particularité, le premier traitement reproductible consiste à remplacer ladite au moins une métadonnée par un champ de longueur nulle. Le procédé permet ainsi avantageusement d'atteindre les avantages précédemment évoqués de la façon la plus simple qui soit, également de faire en sorte que, autant que possible, une empreinte calculée à partir du fichier d'origine (par exemple via l'outil shasum) soit identique à l'empreinte insérée dans le bloc de données numériques. Selon une autre particularité, la métadonnée comprend une partie invariable et une partie variable et seule la partie variable de la métadonnée doit être remplacée lors des étapes de remplacement desdites données prédéfinies par ladite au moins une métadonnée. Selon cette particularité, le procédé permet ainsi avantageusement d'intégrer aux métadonnées des informations utilisées lors de leur calcul, par exemple pour interdire le changement d'un algorithme de calcul de la métadonnée. Selon une autre particularité, tout ou partie de la métadonnée est utilisée comme index d'un moteur de recherche. Selon cette autre particularité, le procédé permet avantageusement d'indexer un bloc de données numériques avec une métadonnée, éventuellement unique et non naturelle, pour une identification hautement discriminante. Selon une autre particularité, le procédé est tel que : - le bloc de données numériques est au moins une partie d'un fichier de programme, et 3 0 - la métadonnée est exploitée ou exploitable par ledit fichier de programme. Selon une autre particularité, la métadonnée est insérée dans le bloc de données numériques de manière à ne pas modifier les conditions d'utilisation attendue dudit bloc de données numériques par un programme logiciel. Selon un premier mode de réalisation, le procédé est tel que : - la métadonnée comprend une empreinte numérique produite par une fonction de hachage, - le premier calcul prédéfini consiste en un calcul selon ladite fonction de hachage d'une nouvelle empreinte numérique au moins à partir dudit bloc de données numériques dans lequel la métadonnée a été remplacée selon l'étape de remplacement dans ledit bloc de données numériques de ladite au moins une métadonnée par les données prédéfinies selon le premier traitement reproductible, et - la vérification de ladite empreinte numérique consiste en une comparaison de la nouvelle empreinte numérique précédemment calculée avec l'empreinte numérique remplacée. Par « empreinte numérique », on entend ici le produit de fonctions de hachage, le plus souvent cryptographiques. Une empreinte numérique est parfois nommée clé de hachage, clé d'authentification, somme de contrôle, 2 0 empreinte, hash, résumé de message, condensé, condensat ou encore empreinte cryptographique. Nous utiliserons éventuellement, dans la suite du document, le terme de clé de hachage ou d'authentification pour désigner une empreinte numérique. Selon un deuxième mode de réalisation, le procédé est tel que : 25 - la métadonnée comprend une signature numérique générée à l'aide d'une clé privée d'une paire de clés publique/privée, et - la vérification de la signature numérique consiste à vérifier, avec la clé publique de la paire de clés publique/privée, que la signature numérique correspond au bloc de données numériques dans lequel 30 la métadonnée a été remplacée selon l'étape de remplacement dans ledit bloc de données numériques de ladite au moins une métadonnée par les données prédéfinies selon le premier traitement reproductible. Par « signature numérique », on entend un mécanisme permettant de garantir l'intégrité d'un bloc de données numériques et d'en authentifier l'auteur, par analogie avec la signature manuscrite d'un document papier, et on entend plus particulièrement le produit de programmes comme pgp (Pretty Good Privacy) ou son pendant libre gpg (Gnu Privacy Guard). L'invention concerne également un produit programme d'ordinateur comprenant des portions de fichier de programme enregistrées sur un support lisible par un ordinateur, pour mettre en oeuvre les étapes du procédé de vérification décrit ci-dessus. Selon une particularité du produit programme d'ordinateur, il constitue tout ou partie d'un bloc de données numériques comprenant une métadonnée à vérifier selon le procédé de vérification décrit ci-dessus. Ainsi, le produit programme d'ordinateur mettant en oeuvre les étapes du procédé de vérification décrit ci-dessus bénéficie lui-même des avantages atteints par ledit procédé, et peut insérer une de ses propres métadonnées dans un bloc de données numériques traité selon ce procédé, ce qui permet dans le futur de retrouver le produit programme utilisé pour traiter un bloc de données numériques par ce procédé. Cela permet également de définir la racine d'un arbre de certification. Description de l'invention D'autres avantages pourront encore apparaître à l'homme du métier à la lecture des exemples ci-dessous, illustrés par les figures annexées, donnés à titre illustratif. Brève description des figures - La figure 1 représente un ordinogramme du procédé selon 3 0 l'invention comprenant le cas échéant une insertion (a), une vérification (b) et une mise à jour (c) d'une métadonnée dans un bloc de données numériques. - La figure 2 représente schématiquement l'évolution du bloc de données numériques lors de l'insertion (a) d'une métadonnée dans ledit bloc. - La figure 3 représente schématiquement l'évolution du bloc de données numériques lors de la vérification (b) d'une métadonnée dans ledit bloc. - La figure 4 représente schématiquement l'évolution du bloc de données numériques lors de la mise à jour (c) d'une métadonnée dans ledit bloc. Tel qu'illustré sur la figure 1, l'invention concerne en premier lieu un procédé de vérification 1 d'au moins une métadonnée 2 d'un bloc de données numériques 4. On entend ici par « bloc de données numériques » tout fichier numérique ou toute partie d'un tel fichier, le terme fichier ne devant pas être entendu comme limité à un fichier d'un système de gestion de fichiers. Par « métadonnée », on entend ici une donnée relative à des informations concernant le contenu du bloc de données numériques, en particulier, 2 0 mais pas seulement, les informations qui peuvent être calculées à partir du bloc de données numériques. Il s'agit donc de méta-contenu, et non de données de structure. La notion de métadonnée englobe par exemple celles d'empreinte numérique et de signature numérique, ces dernières étant définies de la 25 façon suivante. Par « empreinte numérique », on entend ici le produit d'au moins une fonction de hachage, par exemple cryptographique. Une empreinte numérique est parfois nommée clé de hachage, clé d'authentification, somme de contrôle, empreinte, hash, résumé de message, condensé, 3 0 condensat ou encore empreinte cryptographique. Nous utiliserons éventuellement, dans la suite du document, le terme de clé de hachage ou d'authentification pour désigner une empreinte numérique. Par exemple, une clé de hachage `sha1' prend un format hexadécimal de 40 caractères, comme par exemple « 313579888a840dec517a3908d57427299ec1f5f7 ». Par « signature numérique », on entend un mécanisme permettant de garantir l'intégrité d'un bloc de données numériques et d'en authentifier l'auteur, par analogie avec la signature manuscrite d'un document papier, et on entend plus particulièrement le produit de programmes comme pgp (Pretty Good Privacy) ou son pendant libre gpg (Gnu Privacy Guard). A ce propos, il est à noter que l'outil gpg ou pgp comporte un mode de signature appelé 'clearsign', par lequel un bloc de données numériques se trouve inséré ou encadré entre deux zones de texte contenant des balises ou entre deux sections de métadonnées, conjointement avec une signature. Dans ce cas, la signature est effectivement intégrée au bloc de données numériques, mais il s'agit là d'une seule et unique clé, et le bloc de données numériques a alors été modifié de façon destructive. En effet, les zones de texte ou les sections de métadonnées créent une interférence avec l'outil d'utilisation du bloc de données numériques rendant cette dernière impossible ou significativement altérée. Par exemple, si le bloc de données numériques d'origine est un fichier binaire, un programme ou un code source, il est devenu inutilisable, inexécutable ou non compilable. Par un autre exemple, si le bloc de données numériques d'origine (avant signature) est un fichier texte, son affichage est significativement altéré. La technologie actuelle d'insertion des signatures pgp en texte clair avec l'option 'clearsign' ne respecte pas la sémantique des documents, qui peuvent devenir inutilisables par leurs outils habituels. En effet le document d'origine devient encadré par deux sections de métadonnées qui interfèrent avec l'utilisation du document. Par exemple, un programme source perd la possibilité d'être compilé, une page html perd la propriété d'être affichée, etc. En permettant le placement de clés sous le contrôle du programmeur/utilisateur, le procédé 1 permet de préserver la sémantique des documents: par exemple, entre autres, dans un commentaire de programme, dans une section du document destinée à recevoir des métadonnées en texte clair (pdf, jpg), ou à la fin d'un fichier binaire (zip, exe) Le procédé comprend tout d'abord des étapes d'initialisation du procédé consistant en l'insertion (a) d'une métadonnée dans ledit bloc, telle qu'illustrée sur les figures 1 et 2. Ces étapes d'initialisation consistent en : - la détermination 110 selon un premier traitement reproductible de données dites prédéfinies 8, - l'insertion 112 desdites données prédéfinies 8 dans le bloc de données numériques 4 en un ou plusieurs emplacements librement choisis, - le calcul 114 d'au moins une métadonnée 2 à partir du bloc de données numériques 4 dans lequel sont insérées lesdites données prédéfinies 8, et - le remplacement 116 dans ledit bloc de données numériques 4 desdites données prédéfinies par ladite au moins une métadonnée 2 précédemment calculée. La métadonnée 2 est donc bien comprise dans ledit bloc de données numériques 4. ; Or la technologie actuelle ne permet pas d'insérer ou modifier, dans un bloc de données numériques, une métadonnée sans provoquer un changement de valeur des métadonnées, et notamment des clés et signatures, liées audit bloc de données numériques. Dans ce contexte, le procédé selon ses étapes d'initialisation 110 à 116 permet avantageusement d'insérer dans le bloc de données numériques concerné une métadonnée ou une pluralité de métadonnées, tout en définissant une norme de modification stable dudit bloc de données numériques permettant de retrouver la valeur originale du bloc de données numériques via une étape de remplacement de la métadonnée par les données prédéfinies 8 selon le premier traitement reproductible. Le caractère reproductible du premier traitement est essentiel en ce sens qu'il définit la norme de modification dudit bloc de données numériques de façon stable. Ainsi, par cette modification, il est possible de retrouver la valeur du bloc de données numériques à partir de laquelle la métadonnée est supposée avoir été calculée. Cette modification est avantageusement indépendante d'un format du bloc de données numériques ou des choix techniques faits par les concepteurs d'un format numérique. En outre, l'utilisateur du bloc de données numériques 4 peut choisir librement le point d'insertion de la métadonnée 2, ce qui lui donne un contrôle total sur l'intégrité du bloc de données numériques 4 ainsi instrumenté, la fonction que jouera cette métadonnée 2 dans le bloc de données numériques 4. Par exemple, si le bloc de données numériques 4 est un programme, la métadonnée peut être une chaine de caractères assignée à une variable, un commentaire, etc. Il est par ailleurs à noter que pour certains formats de documents binaires, l'insertion (a) doit se faire dans une zone de texte présente en clair dans le document final si l'on veut profiter des avantages de l'invention liés à l'indexation. Tel qu'illustré sur la figure 3, ladite modification du bloc de données numériques consiste plus particulièrement en le remplacement 100 dans ledit bloc de données numériques 4 de ladite au moins une métadonnée 2 par les données prédéfinies 8 selon le premier traitement reproductible, pour aboutir en premier lieu à la génération d'un bloc de données numériques dit modifié 6. Ce bloc de données numériques modifié 6 est éventuellement uniquement temporaire. En effet, il n'est pas nécessaire qu'il soit conservé de façon pérenne pour mettre en oeuvre l'étape suivante du procédé 1 qui consiste en la vérification 102 selon un premier calcul prédéfini de ladite au moins une métadonnée 2 à partir du bloc de données numériques modifié 6 comme suite à l'étape de remplacement 100 précédente. Dans un premier mode de réalisation du procédé 1 selon lequel la métadonnée 2 est une empreinte numérique produite par une fonction de hachage, le premier calcul prédéfini consiste en un calcul selon ladite fonction de hachage d'une nouvelle empreinte numérique au moins à partir dudit bloc de données numériques 4 dans lequel la métadonnée 2 a été remplacée selon l'étape de remplacement 100, et la vérification 102 de ladite empreinte numérique consiste en une comparaison de la nouvelle empreinte numérique précédemment calculée avec l'empreinte numérique remplacée. Dans un deuxième mode de réalisation du procédé 1 selon lequel la métadonnée 2 comprend une signature numérique générée à l'aide d'une clé privée d'une paire de clés publique/privée, la vérification 102 de la signature numérique consiste à vérifier, avec la clé publique de la paire de clés publique/privée, que la signature numérique correspond au bloc de données numériques 4 dans lequel la métadonnée 2 a été remplacée selon l'étape de remplacement 100. Dans l'un ou l'autre de ses deux modes de réalisation, plusieurs métadonnées 2 séparées dans le bloc de données numériques 4 peuvent fournir les paramètres d'un seul calcul de vérification. Par exemple, une métadonnée peut renseigner l'email d'un signataire gpg, une autre la clé correspondante. Mais encore, l'une des métadonnées 2 d'un bloc de données numériques 4 peut contenir une information non remplacée lors de l'étape de remplacement 100. Par exemple, l'email d'un signataire gpg d'un document n'est pas remplacée, ce qui permet d'empêcher que le même document soit signé par une autre personne sans modification des autres clés liés audit document. Selon une particularité du procédé 1, le premier traitement reproductible consiste à remplacer ladite au moins une métadonnée 2 par un champ de longueur nulle. La modification la plus simple consiste à supprimer intégralement chaque métadonnée 2 du bloc de données numériques 4. Par un autre exemple illustré sur les figures 2 à 4, les données prédéfinies consistent en la suite de caractères suivante : `xxx'. La métadonnée selon son type peut renseigner à elle seule sur sa localisation dans le bloc de données numériques. C'est par exemple le cas lorsque la métadonnée est d'un format suffisamment spécifique pour pouvoir être localisée dans le bloc de données numériques au moyen d'une expression régulière. Par exemple, lorsque la métadonnée est une clé de hachage `shal ' prenant un format hexadécimal de 40 caractères, elle est localisable dans le bloc de données numériques au moyen de l'expression régulière « [0-9a-f]{40} ». En outre, la métadonnée selon son type peut renseigner à elle seule sur le calcul ou algorithme de calcul ou encodage ayant permis sa génération. Par exemple, une métadonnée peut comprendre le nom de l'algorithme de calcul ayant servi à sa génération, tel que `md5', ou `shal ', ou le nom de l'encodage, tel que 'hex' (pour hexadécimal), `b64' (pour base 64), ou `bubble-babble'. En outre, l'algorithme ou l'encodage peut être connu de façon implicite puisque défini par défaut. De même, la métadonnée peut renseigner à elle seule sur sa localisation ou le calcul ayant permis sa génération via une mise en forme spécifique, 2 0 telle qu'une sous-chaîne connue pour être utilisée dans la métadonnée 2, des séparateurs réguliers, etc. La mise en forme peut être connue de façon implicite puisque définie par défaut, par exemple, une métadonnée constituée des 20 premiers caractères d'une empreinte shal , avec un tiret séparateur tous les 5 caractères. 25 Lorsque la métadonnée ne permet pas à elle seule de renseigner sur sa localisation ou sur le calcul ayant permis sa génération, ce qui est notamment le cas lorsque la métadonnée risquerait d'être confondue avec le contenu normal d'un document, il est avantageusement prévu que le bloc de données numériques 4 et/ou la métadonnée 2 comportent une 30 information utile à la localisation et/ou à la vérification de la métadonnée 2. Plus particulièrement, un élément de langage choisi ou normé permet alors de désigner au sein même d'un bloc de données numériques 4 des zones appelées sections protégées, destinées à accueillir des métadonnées, clés de hachage, signatures numériques calculées sur le fichier. Par exemple, il est possible d'utiliser un langage de balises ouvrantes et fermantes : le début de la section protégée est identifié par un signe spécifique tel que `« »'. Ainsi, à titre d'exemple illustratif, l'ajout d'une nouvelle clé de hachage peut sous certaines conditions, notamment en juxtaposant des sections protégées, et si les métadonnées 4 antérieures à ladite nouvelle clé ne dépendent ni du signataire ni de la date de la signature, ne pas changer les valeurs des métadonnées 4 antérieures déjà intégrées au document, qui de plus dans certains cas peuvent correspondre aux clés du document initial, c'est-à-dire du document exempt de ces ajouts. Ainsi, le langage permettant d'identifier l'emplacement d'une section protégée ainsi que les propriétés des métadonnées calculées (algorithme, encodage et format de présentation) peut être un langage de marques et de balises, telles que `« »', reconnu et exploité par exemple au moyen d'outils habituels en informatique, notamment les expressions régulières (regexp), les programmes unix grep et sed, etc. Ledit langage peut être un dialecte de XML tel qu'un langage de balises normalisé : par exemple ` ... '. Mais encore, la position d'une section protégée peut être prédéterminée, par exemple, en fonction du type de document considéré, à la fin du document ou au début, ou l'initialisation du procédé 1 peut comprendre le marquage du bloc de données numériques à signer par insertion en un ou plusieurs emplacements librement choisis desdites balises, avant insertion entre chaque paire de balises ouvrantes fermantes d'une métadonnée 2. Il est à noter que les données indiquant l'emplacement et/ou la longueur et/ou les paramètres de calcul et de présentation d'une section protégée peuvent figurer en un lieu différent de cette dernière dans le bloc de données numériques 4. Il est à noter encore que pour certains types de documents binaires, l'insertion de la section protégée de la métadonnée 2 dans le bloc de données numériques 4 doit être faite de manière à ce que la longueur de la zone de texte qui la contient soit inchangée après insertion de la métadonnée 2. En outre, les étapes de remplacement 100, 108 et 116 peuvent consister aussi bien à remplacer toute la zone protégée, y compris les balises, ou seulement le contenu des balises. Par ailleurs, la technologie actuelle ne protège pas l'utilisateur d'une modification de la métadonnée d'un bloc de données numériques, même si le type de ce bloc de données numériques intègre un calcul de checksum ou de clé qui en protège partiellement le contenu. De nombreux blocs de données numériques comportent ce type de vérifications. L'étape de vérification 102 du procédé 1 permet à l'utilisateur de se protéger de toute modification d'un bloc de données numériques 4, ou du moins de détecter toute modification d'un bloc de données numériques 4 par comparaison de la métadonnée 2 remplacée à une métadonnée nouvellement calculée à partir du bloc de données numériques modifié 6. Ainsi, le procédé 1 correspond à un procédé d'identification, d'authentification et/ou de certification d'un bloc de données numériques au sein duquel une métadonnée a été insérée de manière contrôlée et éventuellement non-destructive du fichier numérique. Le procédé permet avantageusement de retrouver par remplacement de la métadonnée contenue dans le bloc de données numériques la valeur du bloc de données numériques à partir de laquelle la métadonnée est supposée avoir été générée, puis de vérifier si cette supposition est juste ou si elle est fausse par comparaison de la métadonnée remplacée à une métadonnée nouvellement calculée à partir du bloc de données numériques modifié suite audit remplacement. Si la comparaison est juste, le bloc de données numériques 4 n'a pas été modifié depuis l'insertion de la métadonnée 2. Si la comparaison est fausse, le bloc de données numériques 4 est corrompu. Par « une insertion réalisée de manière contrôlée », on entend ici le fait que l'utilisateur doit pouvoir choisir, aussi librement que le permet le type de bloc de données numériques concerné, l'emplacement et le rôle joué par chaque métadonnée. Toutefois, rien ne doit empêcher que le choix de cet emplacement soit réalisé par un programme, ou même normalisé. Par « une insertion réalisée de manière non-destructive », on entend ici que le bloc de données numériques considéré doit conserver, après insertion d'une métadonnée quelle qu'elle soit, ses propriétés habituelles ; il doit pouvoir être ouvert, affiché, imprimé, exécuté, etc. par les mêmes outils qu'avant signature(s). En permettant d'insérer non pas seulement une mais autant de métadonnées 4, clés, signatures que désiré dans un bloc de données numériques 4, l'invention permet également d'automatiser via un programme logiciel unique mettant en oeuvre les étapes du procédé 1 les opérations de vérifications ou mises à jour des métadonnées, empreintes et signatures. Tel qu'illustré sur les figures 1 et 4, le procédé de vérification 1 peut en outre comprendre les étapes suivantes : - remplacement 104 dans ledit bloc de données numériques 4 de ladite au moins une métadonnée 2 par les données prédéfinies 8 selon le premier traitement reproductible, - calcul 106 selon un deuxième calcul prédéfini d'au moins une métadonnée 2 à partir du bloc de données numériques modifié 6 comme suite à l'étape de remplacement 104 précédente, et - remplacement 108 dans ledit bloc de données numériques modifié 6 des données prédéfinies 8 par ladite au moins une métadonnée 2 précédemment calculée. Le procédé permet ainsi avantageusement de mettre à jour les métadonnées d'un bloc de données numériques et de gérer des filiations ou référencements de blocs de données numériques, notamment en faisant en sorte qu'un fichier numérique référence ses versions antérieures de manière indiscutable, dès lors que cette référence n'est pas éligible à l'étape de remplacement 104 ou qu'il référence ses versions futures ou des documentations complémentaires, dès lors que cette référence est éligible à l'étape de remplacement 104. Le procédé permet de la même manière de définir les ontologies définissant les relations entre versions pouvant être exploitées par un programme et/ou de distinguer le fichier numérique qui possède une métadonnée et ceux qui y font référence. Ainsi, l'on comprend que certaines métadonnées peuvent ne pas donner lieu à vérification en restant purement informatives (une date, ou références à des documents extérieurs hors contrôle : des sources de documentation externe par exemple). Plus particulièrement, la technologie actuelle ne permet pas de gérer des filiations de blocs de données numériques, notamment en faisant en sorte qu'un fichier numérique référence ses versions antérieures de manière indiscutable, ni qu'il référence ses versions futures ou des documentations complémentaires sans changer de clé d'authentification. Le procédé 1 selon ses étapes 104, 106 et 108 permet de référencer les versions antérieures d'un fichier numérique en faisant référence à leurs métadonnées, et également de référencer des versions ultérieures en maintenant une métadonnée spécifique, qui peut être modifiée sans changer les valeurs de ses autres métadonnées. De même, la technologie actuelle ne permet pas de distinguer le fichier numérique qui possède une clé donnée et ceux qui y font référence. Au contraire, le procédé 1 permet d'insérer plusieurs encodages distincts de la même clé pour permettre d'utiliser une clé comme référence au fichier numérique, et les autres pour identifier de manière certaine le fichier numérique dans les résultats d'une recherche. 3 0 Selon l'exemple présenté ci-dessus, dans lequel la métadonnée 2 correspond à une clé de hachage `sha1' ayant un format hexadécimal de 40 caractères, les blocs de données numériques souhaitant faire référence au bloc de données numériques signé par cette clé intègrent par exemple la variation suivante de la clé: « 3 13579888a840dec517a3908d57427299ec1f5f7 », où l'insertion du caractère l' en position 1 indique qu'il s'agit d'une référence à un autre bloc de données numériques et non à une signature du bloc de données numériques contenant cette variation. En outre, des occurrences de ce type de variation ne seront pas reconnues par l'expression régulière et n'entrent donc pas en conflit avec les signatures qui ne sont pas des références, mais permettent de retrouver la signature d'un bloc de données auquel il est fait référence. Selon une particularité du procédé 1, la métadonnée 2 dépend en outre d'informations contextuelles et/ou extérieures au bloc de données numériques 4. Par exemple, on peut vouloir insérer dans un document une référence à une documentation particulièrement utile, une date de lecture, un nom de lecteur, etc., sans changer les métadonnées qui s'appuient sur la fonctionnalité intrinsèque du bloc de données numériques 4. Plus particulièrement, le procédé selon cette particularité permet d'insérer dans un document des informations arbitraires (i.e. non calculées à partir du contenu) sans modifier la valeur des métadonnées 2 liées au bloc de données numériques 4. En ce sens également, il est prévu selon une autre particularité du procédé 1 que le bloc de données numériques 4 contienne une information permettant de construire tout ou partie d'une métadonnée présente dans un autre bloc de données numériques. Par ailleurs, les moteurs d'indexation n'ont actuellement pas la possibilité d'identifier des blocs de données numériques par leur contenu de manière certaine et non ambiguë, notamment en se passant de dictionnaires ou autres services spécifiques d'archivage. En effet, via les moteurs de recherche et d'indexation actuels, il n'est pas possible de trouver une information précise de manière rapide et non ambiguë, car les moteurs de recherche et d'indexation ne permettent pas de retrouver des blocs de données numériques directement par les métadonnées générées à partir de ces blocs. Le caractère naturellement ambigu de mots clé d'origine naturelle ou technique tels qu'utilisés actuellement, leur utilisation dans un bruit de fond croissant, font que les recherches directes de documents précis sont complexes, et souvent mises à mal par les critères de priorité des moteurs de recherche. Certes, il est actuellement possible d'insérer une empreinte dans le nom d'un fichier pour l'indexer, et de retrouver ce fichier lors d'une recherche. Toutefois, cette manière de procéder souffre de plusieurs inconvénients, en particulier, l'impossibilité d'interdire tout changement de ce nom par un tiers et/ou la difficulté de gestion des documents dont le nom contiendrait leur propre empreinte. Relativement à ces problèmes, le procédé 1 prévoit avantageusement que tout ou partie de la métadonnée 2 soit utilisée comme index d'un moteur de recherche de façon à permettre de rechercher un bloc de données numériques 4 par recherche de la ou des métadonnées 2 qu'il contient. Cette métadonnée est par exemple une chaîne de caractères non naturelle de grande longueur, qu'il est très difficile de falsifier (une telle tentative de falsification s'appelle une attaque de `préimage'). Par ailleurs, cette chaîne de caractères ne peut pas être produite par hasard ou alors selon des probabilités infinitésimales. Une telle recherche ne peut donc retourner que les seules copies identiques d'un bloc de données numériques donné. Le procédé 1 permet donc, en plus de la possibilité d'utiliser des algorithmes de calcul déjà connus comme résistants, de se protéger des attaques de `préimage' de façon très robuste en combinant plusieurs clés et signatures dans un même bloc de données numériques 4. En effet, une attaque de `préimage' devrait pour aboutir, non seulement produire un bloc de données numériques qui possède exactement et toutes les mêmes clés, et qui de surcroit puisse passer valablement pour le bloc de données numériques d'origine (une archive zip, un source java exécutable, etc...). Cette attaque est déjà très difficile à réaliser quand il n'y a qu'une clé à contrefaire, et devient totalement impossible avec les technologies connues dès lors que l'on combine plusieurs clés. Le choix des formats (nombre de caractères par exemple) et encodages (hexadécimal, b64, bubble babble par exemple) des clés permet notamment de définir de quelle manière l'indexation du document pourra être réalisée au moyen des clés et signatures. Par exemple, le format bubble babble' encode les clés sous forme de mots indépendants de 5 letttres, qui sont compréhensibles et mémorisables par un humain. Le format hexadécimal génère les clés les plus longues, en n'utilisant qu'une partie des lettres et aucune majuscule. Le format `b64' utilise tous les caractères, majuscules et minuscules, et produit des clés non mémorisables. Selon une autre particularité du procédé 1, la métadonnée 2 comprend une partie invariable et une partie variable et seule la partie variable de la métadonnée 2 doit être remplacée lors des étapes de remplacement 100, 108 et 116 desdites données prédéfinies par ladite au moins une métadonnée 2. Selon cette particularité, le procédé permet ainsi avantageusement notamment d'imposer le mode de calcul de la métadonnée, et d'interdire la création d'autres documents finaux qui seraient identiques, mais avec des métadonnées différentes. En effet; il suffit alors de fournir cette information dans la partie de la métadonnée qui n'est pas remplacée. La technologie actuelle ne permet pas à un programme d'exploiter via son propre code ses diverses clés de certification ou celles de programmes associés. En effet, ces informations sont fournies le cas échéant dans des fichiers séparés du fichier source lui-même, et sont donc susceptibles d'être corrompues par un tiers, et accessibles au moyen d'artifices. C'est en particulier pourquoi la présente invention concerne en second lieu un produit programme d'ordinateur comprenant des portions de fichier de programme enregistrées sur un support lisible par un ordinateur, pour mettre en oeuvre les étapes du procédé de vérification 1 décrit ci-dessus, ledit produit programme d'ordinateur constituant éventuellement tout ou partie dudit bloc de données numériques 4. En permettant le placement de clés sous le contrôle du programmeur, le procédé 1 permet aux programmes un accès immédiat à leurs clés: en initialisant des variables, chaines de caractères, etc. Le produit programme d'ordinateur selon cette particularité est ainsi lui-même signé et authentifié comme étant à même de procéder à cette vérification et capable de s'auto-vérifier. On dispose ainsi d'un procédé 1 de certification que des documents ne sont pas corrompus, d'indexation de ces documents sur la base de leurs empreintes de hachage (`sha1') par les moteurs de recherche usuels, et de liaison symbolique des documents entre eux par des références aux clés, tout en permettant de distinguer, par les moteurs de recherche, entre les copies d'un document qui 'définissent' la clé, et ceux qui y font référence. Concernant les déploiements possibles de cette application: - le procédé 1 ci-dessus peut être mis à disposition des utilisateurs finaux pour chaque plateforme matérielle, de manière à être utilisé par exemple très simplement par une opération de glisser/déposer, - le procédé 1 ci-dessus peut être intégré à ou appelé par des logiciels existants (navigateurs internet, compilateurs) de manière à automatiser la validation et la recherche de documents, - le procédé 1 ci-dessus peut être mis à disposition des utilisateurs via un site web ou un service web. Selon une autre réalisation que celle donnée en exemple ci-dessus, un programme informatique est conçu pour traiter des documents contenant de multiples occurrences de clés de hachage et signatures calculées par des algorithmes variés et présentées selon des encodages variés comme par exemple dans l'ordre : i) clé `md5' à 32 caractères hexadécimaux, ii) clé `sha1' à 40 caractères hexadécimaux, iii) la même clé en bubble babble', iV) une signature gpg, soit : i) 11a3e229084349bc25d97e29393ced1d, ii) 313579888a840dec517a3908d57427299ec1f5f7, iii) xesef-havem-midim-gafuv-sugul-piveb-mahul-ginad-nilys-catuz-loxix, et iv) 88460400110200060502503e355e000a0910205d6dcf987e18306913009f 6524a79b328f506a8bb6228a09a1a3c3b19713f6009f6a17805128a2919a6 5459047f32357493eb0a913. Le programme reconnait la présence de ces clés au moyen d'expressions régulières comme 10-9a-f1140}', et réalise les même traitements que précédemment, à savoir remplacement 100 ou 104 des clés, calcul, comparaison ou insertion. Selon cette autre réalisation, les usages peuvent consacrer d'autres modalités pour distinguer un fichier possédant une clé de ceux qui lui font référence. On peut en effet calculer à partir de l'encodage hexadécimal la version bubble babble' de la même clé. On peut ainsi faire référence au document en utilisant la clé `sha1, et faire les recherches du document en utilisant la clé en bubble babble'. Egalement selon cette autre réalisation, l'insertion dans le document d'une signature `gpg' permet d'identifier l'auteur de la signature et sa date. 2 0 Mais encore selon cette réalisation, la robustesse de la protection offerte par les clés de hachage contre les attaques de préimage peut être démultipliée par l'utilisation de plusieurs clés calculées par des algorithmes distincts. Toute autre réalisation est envisageable qui s'appuie sur un langage 25 définissant les métadonnées ou sections protégées et qui caractérise leur contenu. Par exemple et sans limitation, un autre ensemble de métadonnées peut être envisagé : i) #11a3e229084349bc25d97e29393ced1d#, ii) , soit une 30 clé `sha1' de 40 caractères hexadécimaux, iii) {MTV5iIqEDex shal hex 8 11a3e229 }, soit une clé `sha1' tronquée à 8 caractères hexadécimaux, iv) [ zp signer laurent.henocque@gmail.com ], soit le signataire gpg du document, v) &zp 200 end&, soit la définition de la zone protégée dans les 200 derniers caractères du fichier dont peuvent être extraites les informations décrivant le contenu et l'emplacement de la zone protégée, et vi) , soit une zone protégée contenant du texte librement édité par un utilisateur, par exemple pour faire référence à un document produit dans le futur, sans changer la valeur des clés. Il doit être évident pour les personnes versées dans l'art que la présente invention permet des modes de réalisation sous de nombreuses autres formes spécifiques sans l'éloigner du domaine d'application de l'invention comme revendiqué. Par conséquent, les présents modes de réalisation doivent être considérés à titre d'illustration, mais peuvent être modifiés dans le domaine défini par la portée des revendications jointes.20 REVENDICATIONS1. Procédé de vérification (1) d'au moins une métadonnée (2) d'un bloc de données numériques (4), ladite au moins une métadonnée (2) étant 5 comprise dans ledit bloc de données numériques (4), le procédé comprenant les étapes suivantes : - remplacement (100) dans ledit bloc de données numériques (4) de ladite au moins une métadonnée (2) par des données prédéfinies (8) selon un premier traitement reproductible, et 10 - vérification (102) selon un premier calcul prédéfini de ladite au moins une métadonnée (2) à partir du bloc de données numériques modifié (6) comme suite à l'étape de remplacement (100) précédente. 15 2. Procédé de vérification (1) selon la revendication 1, caractérisé en ce qu'il comprend les étapes suivantes : - remplacement (104) dans ledit bloc de données numériques (4) de ladite au moins une métadonnée (2) par les données prédéfinies (8) selon le premier traitement reproductible, 20 - calcul (106) selon un deuxième calcul prédéfini d'au moins une métadonnée (2) à partir du bloc de données numériques modifié (6) comme suite à l'étape de remplacement (104) précédente, et - remplacement (108) dans ledit bloc de données numériques modifié (6) des données prédéfinies (8) par ladite au moins une 25 métadonnée (2) précédemment calculée. 3. Procédé de vérification (1) selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu'il comprend, préalablement aux étapes (100 et 102) de la revendication 1, les étapes suivantes : 3 0 - détermination (110) selon le premier traitement reproductible desdites données prédéfinies (8),- insertion (112) desdites données prédéfinies (8) dans le bloc de données numériques (4) en un ou plusieurs emplacements librement choisis, - calcul (114) d'au moins une métadonnée (2) à partir du bloc de données numériques (4) dans lequel sont insérées lesdites données prédéfinies (8), et - remplacement (116) dans ledit bloc de données numériques (4) desdites données prédéfinies par ladite au moins une métadonnée (2) précédemment calculée. 4. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 3, caractérisé en ce que la métadonnée (2) dépend en outre d'informations contextuelles et/ou extérieures au bloc de données numériques (4). 5. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le bloc de données numériques (4) et/ou la métadonnée (2) comportent une information utile à la localisation et/ou à la vérification de la métadonnée (2). 6. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le bloc de données numériques (4) contient une information permettant de construire tout ou partie d'une métadonnée présente dans un autre bloc de données numériques. 7. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le premier traitement reproductible consiste à remplacer ladite au moins une métadonnée (2) par un champ de longueur nulle. 20 25 30 8. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 7, caractérisé en ce que la métadonnée (2) comprend une partie invariable et une partie variable et en ce que seule la partie variable de la métadonnée (2) doit être remplacée lors des étapes de remplacement (100, 108 et 116) desdites données prédéfinies par ladite au moins une métadonnée. 9. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 8, caractérisé en ce que tout ou partie de la métadonnée (2) est utilisée comme index d'un moteur de recherche. 10. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 9, caractérisé : - en ce que le bloc de données numériques (4) est au moins une partie d'un fichier de programme, et - en ce que la métadonnée (2) est exploitée ou exploitable par ledit fichier de programme. 11. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 10, caractérisé en ce que la métadonnée (2) est insérée dans le bloc de données numériques (4) de manière à ne pas modifier les conditions d'utilisation attendue dudit bloc de données numériques (4) par un programme logiciel. 12. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 11, caractérisé : - en ce que la métadonnée (2) comprend une empreinte numérique produite par une fonction de hachage, - en ce que le premier calcul prédéfini consiste en un calcul selon ladite fonction de hachage d'une nouvelle empreinte numérique au moins à partir dudit bloc de données numériques (4) dans lequel lamétadonnée (2) a été remplacée selon l'étape de remplacement (100) de la revendication 1, et - en ce que la vérification (102) de ladite empreinte numérique consiste en une comparaison de la nouvelle empreinte numérique précédemment calculée avec l'empreinte numérique remplacée. 13. Procédé de vérification (1) selon l'une quelconque des revendications 1 à 12, caractérisé : - en ce que la métadonnée (2) comprend une signature numérique générée à l'aide d'une clé privée d'une paire de clés publique/privée, et - en ce que la vérification (102) de la signature numérique consiste à vérifier, avec la clé publique de la paire de clés publique/privée, que la signature numérique correspond au bloc de données numériques (4) dans lequel la métadonnée (2) a été remplacée selon l'étape de remplacement (100) de la revendication 1. 14. Produit programme d'ordinateur comprenant des portions de fichier de programme enregistrées sur un support lisible par un ordinateur, pour mettre en oeuvre les étapes du procédé de vérification (1) selon l'une des revendications 1 à 13. 15. Produit programme d'ordinateur selon la revendication 14, caractérisé en ce qu'il constitue tout ou partie dudit bloc de données numériques (4).