Brevet FR3046688A1 — publié le 20170714

ROUSSEAU01 _DEPOSIT.FR 1 _20 16.04.22.doc 1 Dispositif d'aide au référencement de documents numériques L'invention a trait à un dispositif de référencement de documents numériques ainsi qu'à un procédé pour référencer de tels documents. Par document numérique, on entend ici tout ensemble cohérent de contenus sous forme numérique. Un document numérique peut correspondre à un ou plusieurs fichiers informatiques, de type quelconque. Pour mieux faire comprendre l'invention, on s'intéresse plus particulièrement ici au cas de documents numériques relatifs au développement de logiciels. De tels documents comprennent en particulier les documents du type dit "sources", c'est-à-dire dont le contenu correspond à des instructions exprimées conformément à un langage de programmation quelconque et destinées à être compilées en instructions exécutables par une machine de traitement, typiquement une unité centrale d'ordinateur. Ces documents comprennent également des documents préparatoires au développement du logiciel, du code compilé binaire, une ou plusieurs librairies, éventuellement d'origine étrangère au développement, c'est-à-dire développées et/ou maintenues par un ou plusieurs tiers. Le terme "document numérique" peut correspondre à l'ensemble des fichiers informatiques utiles au développement d'un logiciel, à une partie seulement de cet ensemble, ou au contenu d'un fichier informatique. Au cours du développement d'un logiciel, le contenu de certains au moins des documents numériques y relatifs se trouve modifié. Le développement d'un logiciel est généralement organisé en étapes, auxquelles correspond à chaque fois une version du logiciel. Il s'agit notamment de versions stables, en cours de développement, de versions développées de manière collaborative, ou de versions correspondant à une version modifiée par un contributeur, ou encore de versions livrées à un tiers dans le cadre d'un contrat de prestation. À chaque version d'un logiciel correspond un contenu des documents numériques relatifs au développement de ce logiciel. 3046688 2 Il est important de pouvoir conserver une trace certaine de l'évolution du contenu de certains au moins des documents numériques relatifs au développement d'un logiciel, version après version, sans nécessairement divulguer le contenu en question. En particulier, les développeurs d'un logiciel et/ou les utilisateurs de celui-ci ont besoin de s'entendre sur le 5 contenu des documents numériques correspondant à une version du logiciel, par exemple pour des questions relatives à la maintenance, au débogage du logiciel ou encore au caractère faillible de certains éléments de ce logiciel, notamment les librairies provenant de tiers. Plus généralement, les récipiendaires de documents numériques relatifs à un logiciel ont besoin de s'assurer que ces documents correspondent bien au logiciel en question, le cas échéant dans 10 une certaine version. C'est notamment le cas lorsqu' il convient d'identifier des actifs préexistants, antérieurs à la mise en oeuvre d'un contrat, ou des versions livrées dans le cadre d'un contrat. Les développeurs ont pris l'habitude d'utiliser des systèmes dits de référencement, 15 spécifiquement développés pour les documents numériques. Référencer le contenu d'un document numérique consiste a minima à stocker durablement, ici manière informatique, un identifiant unique pour ce contenu et des données qui permettent de vérifier qu'un contenu de document numérique correspond au contenu du document 20 numérique identifié. On parle de vérification de l'intégrité d'un document numérique. Un exemple de référencement d'un document numérique consiste à appeler une fonction de hachage avec les fichiers correspondant à ce document afin de générer, pour chacun de ces fichiers, une chaîne de caractères respective qui correspond de manière univoque ou quasi- 25 univoque à son contenu - une empreinte numérique du document - et à enregistrer cette chaîne en relation avec un identifiant unique dans une base de données. Dans ce cas, un système de référencement comprend cette base de données, et les outils matériels et logiciels permettant de la rendre accessible aux tiers. Le système peut par exemple traiter une requête comprenant une valeur d'identifiant de référencement, en retournant un message comprenant 30 la chaîne valant empreinte associée, dans la base de référencement, à la valeur d'identifiant en question. Le cas échéant, la base de référencement peut stocker des données supplémentaires sur le document numérique, son créateur et/ou son exploitation, à chaque fois en relation avec 3046688 3 l'identifiant de référencement, et/ou des données d'horodatage relatives au référencement du document. C'est sur ce modèle que fonctionnent par exemple les systèmes de référencement connus sous 5 les noms d'InterDeposit et "d'Agence pour la protection des programmes", ou APP en bref. Ces systèmes maintiennent en outre, dans une base de référencement, des données d'horodatage en relation avec l'identifiant de référencement, connu sous le nom "Inter Deposit Digital Number", ou IDDN en bref. 10 Les systèmes de référencement classiques sont contraignants en ce que leurs utilisateurs doivent stocker de manière sûre les fichiers informatiques sur lesquels le référencement est basé, c'est-à-dire les fichiers informatiques correspondant à l'empreinte stockée dans la base de référencement. En cas de défaillance telle que la relation entre l'identifiant de référencement et l'empreinte correspondante est perdue, l'utilisateur perd la preuve de sa 15 création. Autrement dit, les systèmes de référencement classiques rendent leurs utilisateurs fortement dépendant de l'entité qui maintient le système en question. D'autres systèmes d'aide à la constitution de preuves pour des documents numériques sont basés sur la création de ce que l'on appelle des jetons d'horodatage. Ces systèmes 20 comprennent une ou plusieurs machines agencées pour recevoir un fichier numérique et retourner un couple comprenant une chaîne de caractères en tant qu'empreinte du fichier en question et une valeur de date correspondant à sa réception. Les machines sont opérées par des entités certifiées, ce qui garantit l'exactitude de la date contenue dans le jeton d'horodatage, avec un niveau de confiance conforme aux usages en vigueur, et plus 25 généralement l'ensemble de cette procédure. Les machines d'un système d'horodatage sont généralement conçues pour stocker les jetons en question, ou du moins pour en autoriser l'accès à des tiers, au moins pendant une certaine période temporelle, typiquement de l'ordre de quelques années. Ces machines sont parfois agencées pour traiter une requête en vérifiant qu'un fichier numérique et un jeton d'horodatage transmis se correspondent mutuellement, 30 c'est-à-dire pour vérifier que l'empreinte correspond au fichier et que le jeton est valide. Ceci implique que le jeton et le fichier soient en possession du tiers qui requiert cette vérification, ce qui peut poser des difficultés dans le cas de contenus destinés à rester confidentiels. Cela 3046688 4 nécessite également de pouvoir vérifier les éléments liés à l'identité de l'autorité de confiance ayant délivré le jeton, à partir de certificats parfois intégrés aux jetons. En pratique, les systèmes d'horodatage simples sont inapplicables au cas où l'on cherche à tracer une évolution du développement d'un logiciel, au moins en ce qu'ils imposent d'avoir accès au contenu de 5 l'ensemble des documents numériques concernés. Ils sont par ailleurs peu adaptés à la mise en place d'un système de confiance international, en raison de la multiplicité des législations et règlementions nationales imposées aux opérateurs de confiance. De tels systèmes sont le plus souvent mis en oeuvre pour assurer des services dits 10 "d'entiercement" ou de coffre-fort numérique. Les services dits "d'entiercement" correspondent à un stockage auprès d'un tiers d'éléments nécessaires à l'exploitation d'un bien ou d'un service afin d'en garantir la disponibilité, par exemple selon les termes d'un contrat ou dans le cadre d'une obligation règlementaire. Les services en question nécessitent non seulement un référencement, mais aussi un stockage des contenus par un tiers. Ils 15 deviennent de moins en moins adaptés, en raison de leur coût prohibitif, à mesure que le volume des données augmente. C'est le cas notamment lorsqu'il existe un taux de redondance des contenus important, comme par exemple pour les documents numériques liés au développement de logiciels ou à des bases de données. 20 Les difficultés ci-dessus ne sont pas limitées au cas de documents numériques relatifs au développement de logiciels. Elles se retrouvent notamment à chaque fois que le contenu d'un document numérique est susceptible de revêtir une forme quelconque de création, par exemple telle que régie par les dispositions légales sur le droit d'auteur. Plus généralement encore, à chaque fois qu'il s'agit de prouver l'antériorité d'un document numérique. 25 Déterminer la propriété d'un document numérique par exemple implique d'analyser l'originalité du contenu de ce document, c'est-à-dire la date de création de ce contenu, ou du moins son antériorité par rapport à d'autres documents, et l'existence ou non de différences significatives par rapport aux documents numériques antérieurs. 30 Les créateurs de documents numériques, les développeurs informatiques par exemple, sont donc particulièrement préoccupés par la constitution de preuves de la création de leur document numérique. 3046688 5 L'invention s'applique ainsi à tous documents numériques, par exemple le contenu d'un fichier audio, vidéo et plus généralement de tout fichier multimédia, en format brut ou compressé selon un standard, le contenu d'un ou plusieurs fichiers de type texte, qu'ils soient dans un 5 format propre au logiciel ayant permis leur génération ou dans l'un des formats de fichier texte standardisés, ou encore le contenu d'une base de données ou sa structure. L'invention cherche à améliorer l'existant. 10 On propose un dispositif de référencement de documents numériques comprenant une entrée capable de recevoir des données propres à un document numérique, le document numérique possédant un contenu, au moins une unité de traitement qui exécute une première fonction capable de réagir à une réception de données en ladite entrée en générant une chaîne primaire de caractères en fonction des données reçues et un accès à une base de référencement pour y 15 stocker au moins une référence au document numérique, ladite référence correspondant de manière unique à ladite chaîne primaire. La première fonction est agencée pour reconnaître, dans les données propres au document numérique, une empreinte du contenu de ce document numérique, ainsi qu'un jeton d'horodatage relatif à cette empreinte et à une valeur de date, et construire la chaîne primaire en partie au moins par concaténation de sous-chaînes de 20 caractères, de telle sorte que l'une au moins des ces sous-chaînes représente ladite valeur de date, tandis qu'une autre au moins de ces sous-chaînes représente une empreinte de l'empreinte du contenu du document numérique. On propose également un procédé de référencement de documents numériques comprenant la 25 réception de données propres à un document numérique, le document numérique possédant un contenu, les données comportant une empreinte du contenu de ce document numérique et un jeton d'horodatage relatif à cette empreinte du contenu et à une valeur de date, la construction d'une chaîne primaire de caractères en partie en moins par concaténation de sous-chaînes de caractères de telle sorte que l'une au moins des ces sous-chaînes représente ladite valeur de 30 date tandis qu'une autre au moins de ces sous-chaînes représente une empreinte de l'empreinte du contenu du document numérique, et le stockage d'au moins une référence au document numérique, ladite référence correspondant de manière unique à ladite chaîne primaire. 3046688 6 Le dispositif et le procédé proposés permettent de référencer rapidement un grand nombre de documents numériques. Ils sont compatibles avec un horodatage probatoire. Ils sont aptes à traiter des documents numériques destinés à être rendus publiques et également des 5 documents numériques destinés à demeurer confidentiels, tout en préservant cette confidentialité. Ils permettent en outre de vérifier la conformité de fichiers informatiques correspondant à un document numérique avec un identifiant de référencement. Ils permettent de comparer des éléments déposés à une base d'éléments antérieurs afin, par exemple, d'en déterminer l'originalité. Ils sont indépendants de l'opérateur qui maintient la base données. 10 Après référencement, les éléments de contenus n'ont pas à être accessibles au dispositif. Le dispositif et le procédé proposés sont ouverts. Ils sont basés sur la publication d'informations. Ils permettent d'indexer un grand nombre de contenus et de tracer ces contenus, à une très grande échelle, sans compromettre l'intégrité des contenus que l'on ne 15 souhaite pas divulguer. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés sur lesquels : 20 - la figure 1 représente un schéma fonctionnel d'un système de référencement de documents numériques ; la figure 2 représente un schéma fonctionnel d'un module client pour le système de référencement de la figure 1 ; 25 la figure 3 représente un schéma fonctionnel d'un module serveur pour le système de référencement de la figure 1 ; la figure 4 représente un ordinogramme d'une fonction de contrôle pour le module 30 client de la figure 2 ; 3046688 7 la figure 5 représente un ordinogramme d'une fonction de contrôle pour le module serveur de la figure 3 ; la figure 6 représente un schéma d'un espace de stockage d'une machine cliente d'un 5 système de référencement de documents numériques ; La figure 7 montre une copie d'écran représentant une structure de stockage conforme à la structure de la figure 6 ; 10 - la figure 8 représente un ordinogramme d'une fonction de contrôle d'un module serveur du système de la figure 1 ; la figure 9 représente un schéma d'un espace de stockage d'une machine serveur d'un système de référencement de documents numériques ; 15 Les figures 10 à 14 représentent des copies d'écran illustrant des structures de stockage de données pour un système de référencement de documents numériques. Les dessins et les annexes comprennent des éléments de caractère certain. Ils pourront donc 20 non seulement servir à la description de l'invention mais encore à sa définition, le cas échéant. On fait référence à la figure 1. Elle montre un système de référencement de documents numériques. Le système comprend 25 une première machine agissant en tant que serveur de référencement de documents numériques, ou machine serveur 1, et une seconde machine agissant en tant que client pour le serveur 1, ou machine cliente 2. La machine cliente 2 est capable de communiquer avec la machine serveur 1 par 30 l'intermédiaire d'un réseau de communications informatique 3. Le réseau 3 est par exemple du type fonctionnant sur la base du protocole de communication Internet, ou protocole IP. 3046688 8 La machine serveur 1 exécute un module fonctionnant en tant que serveur de référencement, ou module SRVMOD 12, grâce à une unité de traitement, telle qu'une unité centrale d'ordinateur. La machine serveur 1 comprend en outre un espace de stockage pour des données informatiques, ou espace SRVREP 14, organisé dans de la mémoire de masse. La 5 mémoire de masse peut comprendre un ou plusieurs disques durs, éventuellement de type réseau, disques optiques, clés de type USB. L'espace SRVREP 14 est organisé conformément à un système de fichiers accessible par le module SRVMOD 12. Ces éléments peuvent être déployés sur une infrastructure virtualisée du type connu sous le nom de "Cloud" par exemple. 10 La machine cliente 2 comprend un module fonctionnant en tant que client pour le module SRVMOD 12, ou module CLTMOD 22. Le module CLTMOD 22 est exécuté par une unité de traitement, telle qu'une unité centrale d'ordinateur par exemple. La machine client 2 comprend en outre un espace de stockage pour des données informatiques, ou espace 15 CLTREP 24, accessible au module CLTMOD 22 et organisé dans de la mémoire de masse de la machine cliente 2. On fait référence à la figure 2. 20 Elle montre un exemple de réalisation d'un module client 220 pour un système de référencement de documents numériques, qui peut s'exécuter sur une machine cliente, par exemple la machine cliente 2 de la figure 1. Le module 220 comprend une fonction de contrôle CLTCTRL 221. 25 Le module 220 comprend en outre une fonction de reporting, ou fonction RPTR 222, qui peut être appelée par la fonction CLTCTRL 221. La fonction RPTR 222 est agencée pour extraire d'un ou plusieurs fichiers informatiques stockés dans la machine cliente, par exemple dans l'espace CLTREP 24 de la figure 1, un ou plusieurs éléments de contenu selon des règles 30 d'extraction déterminées. La fonction RPTR 222 est agencée pour recevoir en entrée des données désignant un chemin, dans un système de stockage de fichiers, vers un ou plusieurs fichiers à traiter. Il peut s'agir en particulier de l'espace CLTREP 24 de la figure 1. Ici, la fonction RPTR 222 enregistre chaque élément de contenu dans un fichier informatique respectif, et 3046688 9 retourne une liste des fichiers informatiques de contenu, le cas échéant avec le chemin d'accès à ces fichiers dans le système de fichiers organisé dans l'espace de stockage. La fonction RPTR 222 conserve une relation entre le ou les fichiers d'entrée et la liste des fichiers de sortie. Par exemple, la fonction RPTR 222 mémorise les fichiers informatiques relatifs aux 5 éléments de contenu selon une structure arborescente dans laquelle un répertoire est désigné par le nom d'un fichier d'entrée et contient l'ensemble des fichiers informatiques relatifs au contenu du fichier d'entrée en question. La fonction RPTR 222 peut également ouvrir un fichier de type archive à la volée pour y copier les éléments de contenus. Le traitement de la fonction RPTR 222 peut se trouver simplifié dans le cas de certains types de fichier et/ou de 10 contenu, en particulier lorsque ceux-ci intègrent implicitement des indications quant à la décomposition de leur propre contenu en éléments, ou du contenu d'autres fichiers du document, ou encore de tout ou partie du document. C'est le cas en particulier lorsque le contenu d'un fichier est décomposable en élément de contenus plus fins, que l'on appelle dans la technique des "snippets". Il s'agit par exemple pour le code source d'un logiciel d'éléments 15 basés sur la syntaxe d'un langage de programmation, comme les fonctions, méthodes, ou encore lignes de codes. Cette décomposition peut résulter d'une fonction filtre adaptée à un tel découpage. Dans ce cas, chaque snippet peut être traité par la fonction RPTR 222 comme un élément de contenu. 20 Certains formats de fichiers informatiques sont tels que les fichiers en question incorporent une ou plusieurs empreintes de leur contenu, ou du moins un pointeur vers de telles empreintes. Il s'agit par exemple des formats de fichiers connus sous les noms de "Software Package Data Exchange", ou SPDX en bref, ou "POM.XML" en environnement Java si l'on utilise le gestionnaire d'artefacts du type connu sous le nom de "Apache Mayen". La fonction 25 RPTR 222 peut être agencée pour traiter les fichiers de ce type d'une manière particulière. Par exemple, la fonction RPTR 222 peut créer un fichier élémentaire pour chaque empreinte et y copier l'empreinte en question en tant que contenu élémentaire, ou le contenu associé à cette empreinte sur la base des informations disponibles, notamment si ces empreintes correspondent à des contenus publiquement accessibles, ou encore utiliser directement 30 l'empreinte sans appeler de fonction de hachage, si cette empreinte est compatible avec les fonctions de hachage du système de référencement. 3046688 10 Le module 220 comprend en outre une première fonction de hachage, ou fonction HSHA 224, agencée pour retourner une chaîne de caractères correspondant de manière unique au contenu d'un fichier informatique désigné en entrée, ou de manière quasi unique, si la probabilité que des contenus différents génèrent une même valeur d'empreinte est faible en comparaison du 5 nombre de documents à traiter. Par exemple, la fonction HSHA 224 implémente l'algorithme de hachage du type connu sous le nom de SHA 1. Dans un développement, la fonction HSHA 224 peut être agencée pour traiter un chemin d'accès au contenu/fichier en plus du contenu du fichier. Par exemple, la fonction HSHA 224 concatène une empreinte du contenu du document et une empreinte du chemin du contenu. Elle peut aussi retourner deux empreintes 10 distinctes. Le module 220 comprend encore une fonction de construction de chaînes de caractères, ou fonction SGEN 226, agencée pour délivrer une chaîne de caractères résultat, ou chaîne STRG, à partir d'un tableau de chaînes de caractères fourni en entrée. La chaîne STRG comprend au 15 moins une sous-chaîne de caractères résultant de la concaténation de certaines au moins des chaînes de caractères d'entrée. Ici, les chaînes de caractères sont ordonnées selon des règles déterminées en vue de leur concaténation. Par exemple, la fonction SGEN 226 classe les chaînes d'entrée selon un ordre alphanumérique. 20 Le module 220 comprend aussi une fonction d'horodatage, ou fonction TSTMP 228, agencée pour retourner un jeton d'horodatage comportant une date fiable pour un fichier informatique fourni en tant qu'entrée. Par date fiable, on entend par exemple une date déterminée conformément à la norme RFC 3161 relative à l'horodatage. La fonction TSTMP 228 peut être agencée pour, en réponse à un fichier donné en tant qu'entrée, émettre message de 25 requête à destination d'un ou plusieurs serveurs d'horodatage. Les adresses de ces serveurs dans un réseau informatique, par exemple le réseau de communications 3 de la figure 1, peuvent être indiquées en paramètre de la fonction TSTMP 228. La fonction TSTMP 228 retourne tout ou partie des jetons d'horodatage reçus depuis les serveurs en question. 30 Le module 220 comprend encore une seconde fonction de hachage, ou fonction HSHB 230, agencée pour retourner une chaîne de caractères correspondant à un hachage d'une chaîne de caractères fournie en entrée. La fonction HSHB 230 implémente par exemple l'algorithme de 3046688 11 hachage du type connu sous le nom de SHA 1. En variante, la fonction HSHB 230 implémente un algorithme de hachage différent tel que SHA 256, MD5 ou analogue. La fonction HSHB 230 est facultative. Elle trouve un intérêt principalement lorsqu'elle diffère de la fonction HSHA. 5 Le module 220 comprend encore une fonction de référencement, ou fonction IDGEN 232, agencé pour émettre une requête de référencement pour une chaîne de caractères fournie en entrée. La fonction IDGEN 232 génère la chaîne de caractères en vue du référencement à partir de ses entrées. En particulier, la fonction IDGEN 232 est agencée ici pour opérer sur la 10 base de chaînes de caractères qui lui sont fournies en entrée. Optionnellement, le module 220 comprend encore une troisième fonction de hachage, ou fonction HSHC 234, analogue à la fonction HSHB 230. La fonction HSHC 234 peut implémenter le même type d'algorithme de hachage que la fonction HSHB 230 ou une 15 fonction d'un type différent. On fait référence à la figure 3. Elle montre un module de type serveur pour le référencement de documents numériques, à 20 usage par exemple pour la réalisation du module SRVMOD 12 de la figure 1. Le module serveur 120 comprend une fonction principale de contrôle, ou fonction SRVCTRL 121. 25 Le module 120 comprend en outre une première fonction de hachage, ou fonction HSH1 122, agencée pour retourner une chaîne de caractères résultant du hachage d'une chaîne de caractères fournie en entrée. Le module 120 comprend encore une fonction de générations de signature, ou fonction SGEN 30 124, une fonction d'horodatage, ou fonction TSTMP 126, et une fonction de référencement, ou fonction IDGEN 128, analogues respectivement aux fonctions SGEN 224, TSTMP 228 et IDGEN 232 décrites en relation avec la figure 2. 3046688 12 Le module 120 comprend également une seconde fonction de hachage, ou fonction HSH2 130, et une troisième fonction de hachage, ou fonction HSH3 132, analogues à la fonction HSH1 122. Le cas échéant, la fonction HSH2 ou la fonction HSH3 peuvent implémenter un algorithme de hachage d'un type différent de celui de la fonction HSH1 122. 5 Le module 120 comprend encore une fonction de chainage, ou fonction CHAIM 134, agencée pour construire un ensemble imbriqué de chaînes de caractères résultant d'un chaînage d'un ensemble de chaînes de caractères fourni en d'entrée. 10 En option, le module 120 comprend une fonction d'élection de temporalité, ou fonction TEMP 136. On fait référence à la figure 4. 15 Elle illustre une fonction de contrôle à usage dans un module pour un serveur de référencement de documents numériques, en particulier dans un module client, par exemple pour la réalisation de la fonction CLTCRTL 221 décrite en relation avec la figure 2. La fonction débute en une étape 400. 20 À l'étape suivante 402, la fonction reçoit des données désignant un chemin d'accès, dans un système organisé de fichiers informatique, d'un ou plusieurs des fichiers informatiques à traiter. Les fichiers correspondent au contenu d'un document numérique. Les données reçues peuvent correspondre à un répertoire contenant le ou les fichiers à traiter, le cas échéant 25 répartis dans des sous-répertoires. Typiquement, le chemin d'accès mène à l'ensemble des fichiers informatiques relatifs à une version particulière d'un document numérique. À titre d'exemple non limitatif, le document en question peut correspondre au code source d'un logiciel en cours de développement. 30 À l'étape suivante 404, la fonction établit une liste des fichiers FILE_j, j = 1 .. N présents à l'emplacement désigné par les données reçues à l'étape précédente. 3046688 13 À l'étape suivante 405, la fonction extrait de chacun des fichiers listés à l'étape précédente un ou plusieurs éléments de contenu , i = 1 .. M. Les éléments de contenu sont relatifs chacun au document numérique à référencer. Chaque élément de contenu peut être mémorisé dans un fichier informatique respectif, ou fichier élémentaire 5 ELT_i. L'extraction se fait selon des règles prédéterminées. Ces règles peuvent comprendre l'application de filtres destinés à éliminer certains éléments de contenu du fichier traité, par exemple pour cause d'absence de pertinence. En particulier, la fonction peut appeler une fonction analogue à la fonction RPTR 222 décrite en relation avec la figure 2. 10 À l'étape suivante 406, la fonction calcule pour chaque fichier élémentaire ELT i, une chaîne de caractères hexadécimaux valant empreinte respective du contenu de ce fichier élémentaire, ou chaîne d'empreinte élémentaire FPA i, i = 1 .. M, à l'aide d'une première fonction de hachage, par exemple de type SHAL Par exemple, la fonction peut appeler une sous-fonction analogue à la fonction HSHA 224 décrite en relation avec la figure 2. 15 Il résulte de cette étape 406 un ensemble de chaînes de caractères hexadécimaux, représentant chacune une empreinte FPA_i d'un élément de contenu . Les chaînes d'empreintes élémentaires FPA_i peuvent être mémorisées chacune en relation avec le fichier élémentaire ELT_i comprenant l'élément de contenu correspondant. Par exemple, chaque 20 fichier élémentaire ELT_i comprend comme attribut une chaîne de caractères valant nom et incluant la chaîne d'empreinte élémentaire FPA_i. La fonction de hachage peut être agencée pour retourner des chaînes de même longueur, mais pas nécessairement. Si les données reçues à l'étape 402 désignent un chemin d'accès à un fichier comprenant une 25 ou plusieurs empreintes relatives à une partie au moins du contenu du document (fichier SPDX par exemple), ou un pointeur vers de telles empreintes (fichier POM.xml par exemple), il peut en être tenu compte à l'étape 404, de manière par exemple à omettre les étapes suivantes 405 et 406. Il en est de même de l'étape 406 pour un fichier ELT_i qui comporterait déjà une empreinte du fait du traitement de l'étape précédente 405. 30 3046688 14 Dans une variante des étapes 405 et 406, la fonction peut rassembler les éléments de contenu dans un ou plusieurs fichiers, de type archive par exemple, et calculer les chaînes d'empreintes élémentaires FPA_i à partir du contenu de ces fichiers. 5 Les étapes 405 et 406 visent à découper le document numérique en contenus élémentaires, ou éléments de contenus, et à obtenir une empreinte pour chacun de ces éléments de contenu. Le stockage d'une copie de ces éléments de contenu, tels qu'il est décrit à l'étape 405 est optionnel. Et le calcul des chaînes d'empreintes élémentaires peut être réalisé préalablement à un tel stockage. Cela permet par exemple de stocker aisément chaque élément de contenu 10 dans un fichier élémentaire respectif, dont l'attribut de nom correspond à l'empreinte de son contenu. À l'étape suivante 408, la fonction construit une nouvelle chaîne de caractères, ici hexadécimaux, par concaténation d'un sous-ensemble au moins des chaînes d'empreintes 15 élémentaires FPA_i de l'étape précédente. Ici, ces chaînes d'empreinte élémentaires FPA_i sont préalablement ordonnées conformément à une règle donnée en tant que paramètre. Par exemple, les chaînes d'empreintes élémentaires FPA_i sont ordonnées de manière alphanumérique. La fonction peut par exemple appeler une sous-fonction analogue à la fonction SGEN 226 décrite en relation avec la figure 2. 20 La chaîne de caractères ainsi construite vaut empreinte d'une version particulière du document numérique, ou, plus généralement, du contenu de ce document. Elle est désignée ici chaîne d'empreinte globale STRG. 25 Dans un mode de réalisation, la chaîne d'empreinte globale STRG résulte de la concaténation de l'ensemble des chaînes d'empreintes élémentaires FPA_i. En variante, cette chaîne d'empreinte globale STRG résulte de la concaténation d'un sous-ensemble seulement de chaînes d'empreintes élémentaires FPA_i. Les chaînes d'empreintes élémentaires FPA_i sont sélectionnées. La sélection peut comprendre la comparaison de chacune des chaînes 30 d'empreintes élémentaires FPA_i à une liste rassemblant des chaînes d'empreintes élémentaires du système de référencement. La chaîne d'empreinte globale STRG peut résulter de la concaténation des chaînes d'empreintes élémentaires absentes de la liste en question. 3046688 15 La chaîne d'empreinte globale STRG est construite par insertion de chaînes d'empreintes élémentaires relatives chacune à un élément de contenu respectif. 5 À l'étape suivante 409, la fonction récupère un jeton d'horodatage TKEN pour la chaîne d'empreinte globale STRG du document numérique à référencer. Le jeton TKEN est relatif à une valeur de date et à une empreinte du contenu du document numérique à référencer. L'étape 409 comprend l'émission d'un message à destination d'un ou plusieurs serveurs d'horodatage. Le message comprend une requête d'horodatage et un fichier comprenant la 10 chaîne d'empreinte globale STRG, par exemple dans un fichier de type texte brut. La fonction peut commander le stockage du ou des jetons TKEN reçus des serveurs en question, le cas échéant en relation avec la chaîne d'empreinte globale STRG. Par exemple, un fichier de type texte brut contenant la chaîne d'empreinte globale STRG et le ou les fichiers informatiques correspondants aux jetons TKEN sont mémorisés dans un répertoire commun d'un espace de 15 stockage organisé. L'adresse du ou des serveurs d'horodatage est par exemple indiquée, en tant que paramètre par exemple, dans une fonction d'horodatage qui peut être analogue à fonction TSTMP 228 décrite en relation avec la figure 2. 20 Dans ce mode de réalisation, le module client contacte directement le ou les serveurs d'horodatage. En variante, la requête peut être adressée au module serveur du système de référencement. Ce dernier peut agir en tant que serveur d'horodatage ou relayer la requête à un serveur d'horodatage. 25 À l'étape suivante 410, la fonction calcule une nouvelle chaîne de caractères en tant qu'empreinte de la chaîne d'empreinte globale STRG, ou chaîne d'empreinte FPB. La chaîne d'empreinte FPB représente une empreinte de l'empreinte globale STRG du document numérique à référencer. Par exemple, la fonction fait appel à une sous-fonction analogue à la 30 fonction HASHB 230 décrite en relation avec la figure 2. On utilise par exemple une fonction de hachage qui implémente l'algorithme SHAL 3046688 16 À l'étape suivante 412, la fonction construit une nouvelle chaîne de caractères identifiant le document numérique BOM ID en vue de son référencement, ou chaîne d'identifiant de référencement BOM ID. On peut accéder à une base de référencement pour y stocker au moins une référence au document numérique, la référence correspondant de manière unique à 5 chaîne d'identifiant de référencement BOM ID. La chaîne d'identifiant de référencement BOM ID est construite par insertion d'une première sous-chaîne de caractères hexadécimaux représentant la date des jetons TKEN, ou sous-chaîne DATE, et d'une seconde sous-chaîne correspondant à l'empreinte FPB de la chaîne 10 d'empreinte globale STRG . La sous-chaîne DATE est ici organisée de manière à faciliter l'ordonnancement des chaînes d'identifiants de référencement BOM ID dans le système de référencement. Dans le cas d'un ordonnancement alphanumérique par exemple, la sous-chaîne DATE 15 présente un format du type AAAA-MM-JJ-hh-mm-ss, où AAAA, MM et JJ représentent respectivement l'année, le quantième du mois et le quantième du jour dans ce mois, l'heure, les minutes dans cette heure et les secondes dans cette minute de la date du jeton TKEN, respectivement sur quatre et deux chiffres. Le caractère séparateur "-" peut être remplacé par tout autre caractères, voire omis. 20 La sous-chaîne DATE est par exemple construite à partir de la date exprimée en temps universel (UTC), conformément au format ISO 8601. On obtient ainsi une sous-chaîne DATE ordonnable, indépendamment de l'existence de fuseaux horaires. On peut au contraire par convention conserver la date au format ISO 8601. 25 En option, la chaîne d'identifiant de référencement B OM ID peut en outre comprendre une sous-chaîne préfixe, ou chaîne PFIX, et/ou une sous-chaîne suffixe, ou chaîne SFIX dont les valeurs sont fixées indépendamment du document à référencer. 30 Il résulte de l'étape 412 une chaîne d'identifiant de référencement BOM ID de forme analogue à : 3046688 17 PFIX-AAAA-MM-JJ-hh-mm-ss-FPB-SFIX, où FPB est une chaîne de caractères hexadécimaux dont la longueur est déterminée par la fonction de hachage utilisée à l'étape 410. Par exemple, cette chaîne comprend 78 caractères. 5 À l'étape suivante 414, la fonction transmet la chaîne d'identifiant de référencement BOM_ID à un serveur de référencement, par exemple la machine serveur 1 de la figure 1. Une adresse du serveur de référencement sur un réseau de communications informatique peut être indiquée en tant que paramètre dans la fonction de contrôle. En variante, la fonction transmet les éléments utiles à la construction de la chaîne BOM_ID en remplacement de cette chaîne. 10 À l'étape suivante 416, optionnelle, la fonction construit une nouvelle chaîne de caractères hexadécimaux SEED à partir de la chaîne d'identifiant de référencement BOM_ID. Cette chaîne SEED correspond de manière unique à la chaîne d'identifiant de référencement BOM_ID. Il peut s'agir de cette chaîne BOM_ID elle-même, d'une fonction bijective de cette 15 chaîne BOM_ID ou d'une chaîne résultant de l'application d'une fonction cryptographique à la chaîne d'identifiant de référencement BOM_ID. On peut utiliser une fonction de hachage, de type SHA1 ou SHA512 par exemple, une phrase de passe ou une chaîne empreinte d'une telle phrase comme fonctions cryptographiques. 20 À l'étape suivante 418, la fonction calcule un nouvel ensemble de chaînes de caractères hexadécimaux, chacune comme empreinte basée sur une chaîne d'empreinte élémentaire FPA_i respective, ou chaîne d'empreinte secondaire FPC i, i = 1 .. M. Chaque chaîne d'empreinte secondaire FPC_i résulte du hachage d'une chaîne de caractères résultant de la concaténation de la chaîne SEED de l'étape précédente et de la chaîne d'empreinte élémentaire 25 FPA_i d'un élément de contenu ELT_i respectif. Chaque chaîne d'empreinte secondaire FPC_i correspond à une empreinte secondaire d'un élément de contenu ELT_i respectif. Chaque chaîne d'empreinte secondaire FPC_i peut être utilisée comme référence à un élément de contenu dans une base de référencement, ou servir de base à une telle référence de manière unique. Chaque chaîne d'empreinte secondaire FPC_i est par insertion d'une empreinte d'une 30 chaîne résultant en partie au moins d'une concaténation d'une chaîne correspondant de manière unique à la chaîne d'identifiant de référence B OM ID i et d'une empreinte élémentaire FPA i. 3046688 18 À l'étape suivante 4 20, la fonction retourne l'ensemble des chaînes d'empreintes secondaires FCP i, par exemple aux fins de stockage dans un espace organisé de la machine cliente. On peut stocker dans une base de référencement une référence à certains éléments au moins du contenu du document numérique. Cette référence correspond de manière unique à la 5 chaîne d'empreinte secondaire FPC i relative à cet élément de contenu du document numérique. Les chaînes d'empreintes secondaires FCP_i peuvent être utilisé dans le cadre de la livraison d'un document numérique à un tiers. Connaissant la valeur de la chaîne BOM ID et, le cas 10 échéant les fonction cryptographiques et leurs paramètres (clé privé par exemple) utilisés par le système de référencement, tout tiers peut soit reconstruire les valeurs FCP_i localement, soit utiliser la fonction serveur de référencement, au niveau de l'étape 416, en indiquant la valeur SEED. Si la collection d'empreintes secondaires alors générée correspond à la collection fournie, alors les documents numériques sources et cibles sont conformes l'un à 15 l'autre. La fonction se termine à l'étape suivante 422. La fonction qui vient d'être décrite peut également être utilisée pour la réalisation d'un module 20 de type serveur d'un serveur de référencement de documents numériques, par exemple la fonction la fonction SRVCTRL 121 de la figure 3. Dans ce cas, les données de l'étape 402, qui désignent un chemin d'accès, peuvent être relatives au système organisé de fichiers informatiques d'un poste client, ou d'un système de partage en réseau. En variante, la fonction peut être adaptée au cas d'un module serveur en recevant d'un poste client, à l'étape 402, un 25 ensemble d'empreintes d'éléments de contenus, du type des empreintes élémentaires FPA i de l'étape 406. Dans ce cas, la fonction est agencée de manière à omettre les étapes 404 à 406. On fait référence à la figure 5. 30 Elle illustre une fonction à usage dans un module serveur d'un système de référencement de documents numériques, par exemple la fonction SRVCTRL 121 de la figure 3. 3046688 19 La fonction débute en une étape 500. À l'étape suivante 502, la fonction reçoit une chaîne de caractères hexadécimaux représentant une empreinte de contenu de document numérique, ou chaîne d'empreinte globale STRG. La 5 chaîne d'empreinte globale STRG peut être reçue d'un module client du système de référencement, par exemple le module CLTMOD 22 de la figure 1. La chaîne d'empreinte globale STRG résulte de la concaténation de chaînes d'empreintes relatives à des éléments de contenu d'un document numérique à référencer, par exemple analogues aux chaînes d'empreintes élémentaires FPA i décrites plus haut. 10 À l'étape suivante 504, la fonction obtient un jeton d'horodatage pour la chaîne d'empreinte globale STRG ,ou jeton TKEN. L'obtention du jeton TKEN implique un message à destination d'un serveur d'horodatage comprenant une requête et un fichier comprenant la chaîne d'empreinte globale STRG, par exemple un fichier de type texte simple. 15 À l'étape suivante 505, la fonction retourne le jeton TKEN qu'elle a reçu. La fonction peut commander l'émission d'un message à destination du poste client qui a transmis la chaîne d'empreinte globale STRG et contenant le jeton TKEN ou du moins les éléments contenus dans ce jeton TKEN. 20 Optionnellement, la fonction peut commander l'enregistrement du jeton TKEN dans de la mémoire, typiquement un espace de stockage organisé du type de l'espace SRVREP 14 de la figure 1. 25 À l'étape suivante 506, la fonction calcule une nouvelle chaîne de caractères hexadécimaux en tant qu'empreinte de la chaîne d'empreinte globale STRG, ou chaîne d'empreinte secondaire FP1, en appliquant une fonction de hachage hash 1 à la chaîne empreinte d'empreinte globale STRG. 30 À l'étape suivante 508, la fonction construit une nouvelle chaîne de caractères hexadécimaux pour identifier le document dans son référencement, ou chaîne d'identifiant de référencement BOM ID. La chaîne d'identifiant de référencement BOM ID résulte en partie au moins de la 3046688 20 concaténation d'une chaîne de caractères représentative de la date associée aux jetons d'horodatage TKEN et de la chaîne d'empreinte secondaire FP1, de manière analogue à ce qui a été décrit à l'étape 412 de la figure 4. 5 À l'étape suivante 510, la fonction retourne la chaîne d'identifiant de référencement BOM_ID relative au document numérique à référencer. La chaîne d'identifiant de référencement BOM_ID peut être mémorisée dans une liste des identifiants de référencement du système de référencement. Elle peut en outre être transmise à l'émetteur de la chaîne d'empreinte globale STRG reçue à l'étape 502. 10 La fonction se termine à l'étape suivante 512. Les fonctions décrites en relation avec les figures 4 et 5 construisent une chaîne d'identifiant de référencement à partir de données relatives à un document numérique. Tout document 15 numérique référencé dans le système décrit ici est associé de manière unique à une valeur de chaîne d'identifiant de référencement. Pour vérifier que le contenu d'un document numérique cible est conforme à celui d'un document numérique source, référencé dans le système, on peut faire opérer les fonctions des figures 4 et 5 pour sur le document numérique cible. On obtient une chaîne d'identifiant de référencement qui se distingue de la chaîne d'identifiant de 20 référencement relative au document numérique source uniquement par la sous-chaîne DATE de ces chaînes. La conformité du contenu d'un document cible au contenu d'un document source peut également être vérifiée en émettant à destination du serveur d'un système de référencement tel 25 que décrit ici une requête comprenant la chaîne d'empreinte globale STRG construite à partir du document cible. Le serveur peut dans ce cas être agencé pour reconnaître, dans la chaîne d'empreinte globale STRG, chacune des chaînes FPA_i de la concaténation desquelles résulte la chaîne d'empreinte globale STRG et pour retourner au moins un identifiant de référencement concerné pour chacune des chaînes FPA_i. Si l'une au moins des chaînes 30 d'empreinte élémentaires FPA_i n'est associée à aucun identifiant de référencement BOM ID, alors certains éléments du logiciel livrés n'ont pas été concernés par le référencement. 3046688 21 On fait référence à la figure 6. Elle montre un exemple de contenu d'un espace de stockage 240 dans une machine cliente d'un système de référencement de documents numériques, par exemple la machine cliente 2 5 de la figure 1. L'espace de stockage 240 comprend une première structure 242 qui maintient une relation entre chaque chaîne d'identifiant de référencement BOM ID d'un document numérique et un pointeur vers un ou plusieurs jetons d'horodatage TKEN associés à une empreinte du 10 document numérique, ou du moins les données qu'ils contiennent. Le pointeur peut comprendre un chemin d'accès, dans un système de fichiers, à un fichier comprenant les informations en question. La figure 7 montre un exemple de réalisation d'une structure de stockage analogue à la 15 première structure 242. Elle montre une structure arborescente d'un système de fichiers où la chaîne d'identifiant de référencement BOM ID relative au document numérique est utilisée comme attribut de nommage d'un dossier dans lequel sont mémorisés : 20 - un premier fichier informatique correspondant au jeton d'horodatage, qui se termine par la chaîne "-l.tsa" ; un second fichier informatique correspondant à l'empreinte STRG de document, qui se termine ici par la chaîne ".STRING-1". 25 Ici, les attributs de nommage du premier fichier et du second fichier comprennent chacun une chaîne dans laquelle se retrouve la valeur de la chaîne de caractères de l'empreinte FPB de l'empreinte du document. La figure 7 montre aussi, à partir du répertoire racine "files", une autre partie du système de 30 fichiers dans lequel les contenus élémentaires des fichiers sont stockés individuellement dans des fichiers respectifs, nommés à partir de la chaîne d'empreinte élémentaire FPA i correspondant au contenu. Cette dissociation permet le cas échéant d'accéder aux contenus 3046688 22 des éléments ayant fait l'objet d'un référencement, indépendamment de la persistance de l'accès au chemin BOM PTH, afin par exemple de rendre visible ce contenu sur un poste client, de le stocker dans une partie centralisée de l'infrastructure au sein de laquelle se trouvent le poste client et les serveurs, qu'il s'agisse d'un module de stockage avec des 5 propriétés de redondance renforcée, ou d'un service de type coffre fort électronique. Sur la figure 6, l'espace de stockage 240 comprend en outre une seconde structure de données 244 qui maintient une relation entre chaque chaîne d'identifiant de référencement B OM ID relative à un document numérique de la machine cliente et la chaîne d'empreinte globale 10 STRG relative à ce document. La seconde structure 244 peut prendre la forme d'un tableau de données, par exemple organisé dans un fichier de type texte brut. La structure peut également prendre la forme d'un fichier de type texte propre à chaque chaîne d'empreinte globale STRG et stockée dans un 15 répertoire nommé conformément à l'identifiant de référencement BOM ID, comme cela est montré sur la figure 7 par exemple. L'espace de stockage 240 comprend encore une troisième structure de données 246 qui maintient une relation entre chaque chaîne d'identifiant de référencement BOM ID relative à 20 un document numérique et les chaînes d'empreintes secondaires FPC i relatives à ce document. Cette troisième structure de données 246 peut être stockée sur un serveur de référencement. Elle peut correspondre à une partie au moins d'une base de référencement du système, ou du moins d'une base à laquelle un serveur du système peut accéder. 25 On fait référence à la figure 8. Elle illustre un développement d'une fonction de contrôle pour un module serveur d'un système de référencement de documents numériques. 30 La fonction débute en une étape 800. 3046688 23 À l'étape suivante 802, la fonction reçoit un ensemble de chaînes de caractères correspondant chacune à l'identifiant de référencement BOM_ID_i d'un document numérique respectif. Il s'agit par exemple de l'ensemble des chaînes d'identifiants de référencement BOM ID du système de référencement, telles que stockées par exemple dans l'espace de stockage du 5 serveur. L'ensemble des chaînes d'identifiants de référencement BOM_ID_i peut être fourni sous la forme d'un tableau ou d'une liste. Par exemple, chaque chaîne d'identifiant de référencement BOM_ID_i est inscrite dans une ligne respective d'un fichier de type texte brut. À l'étape suivante 804, la fonction calcule un ensemble de chaînes de caractères 10 hexadécimaux, chacune comme empreinte d'une chaîne d'identifiant de référencement BOM_ID_i d'un document numérique respectif, ou chaîne d'empreinte FP2_i d'identifiant de référencement BOM_ID_i. Chaque chaîne d'empreinte FP2_i d'identifiant de référencement BOM_ID_i résulte de l'application d'une fonction de hachage, par exemple de type SHA 1 , à la chaîne d'identifiant de référencement BOM_ID_i d'un document numérique respectif. 15 À l'étape suivante 806, la fonction construit, pour chaque chaîne identifiant de référencement BOM_ID_i relative à un document numérique, une chaîne de caractères hexadécimaux dérivée de cet identifiant de référencement BOM ID i, ou chaîne d'identifiant secondaire BOM_IDS_i relative au document numérique en question. La chaîne d'identifiant secondaire 20 BOM_IDS_i est construite en tant que sous-chaîne de la chaîne d'identifiant de référencement BOM_ID_i d'origine. Chaque chaîne d'identifiant secondaire BOM_IDS_i résulte ici d'une troncature de la chaîne d'identifiant de référencement BOM_ID_i correspondant à un rang déterminé, ou longueur Lnght. Chaque chaîne d'identifiant secondaire BOM_IDS_i prend la forme d'un identifiant court pour un document numérique respectif. À cette chaîne 25 d'identifiant court correspond une chaîne d'identifiant de référencement BOM ID i, ou identifiant long. La valeur Lnght est déterminée de manière que chaque chaîne d'identifiant secondaire BOM_IDS_i soit unique dans le système de référencement, pour l'ensemble des chaînes 30 d'identifiants de référencement BOM_ID_i de ce système. 3046688 24 Dit autrement, un document numérique se trouve référencé dans le système de référencement à la fois par la chaîne d'identifiant long BOM ID i et la chaîne d'identifiant court BOM IDS i. Ces chaînes peuvent être utilisées respectivement en tant qu'identifiant privé du document numérique, connu limitativement de l'utilisateur ayant demandé le référencement 5 du document numérique en question, et identifiant public de ce document, destiné à être transmis à tous tiers intéressé par le document numérique, typiquement chaque récipiendaire d'une version d'un logiciel en cours de développement. À l'étape suivante 808, la fonction initialise une chaîne de caractères ICT 0, ici en tant que 10 chaîne vide. En variante, la chaîne ICT 0 est initialisée avec un chaîne ad hoc, par exemple correspondant à la date et/ou au lieu de déploiement d'un serveur, au nom ou à l'identifiant d'un fournisseur de service. À l'étape suivante 810, la fonction débute une structure de boucle en initialisant un compteur 15 i, ici à la valeur nulle. À l'étape suivante 812, la fonction construit une chaîne de caractères relative à une chaîne d'identifiant secondaire BOM IDS i , ou chaîne de jeton élémentaire d'intégrité de rang i+1 ICT 41, en appliquant une fonction de hachage HASH3 à la chaîne de caractères résultant de 20 la concaténation de la chaîne d'empreinte FP2 41 de l'identifiant de référencement BOM ID i du document numérique et de la chaîne du jeton d'intégrité de rang i ICT_i construite à l'itération précédente. L'étape 812 est répétée jusqu'au traitement de l'ensemble des identifiant BOM ID i. Chaque 25 chaîne de jeton élémentaire ICT_i présente les propriétés d'un jeton d'intégrité d'une chaîne liant les chaînes d'identifiants de référencement BOM ID i entre eux. Les chaînes d'identifiants de référencement BOM ID i traitées selon un ordre prédéterminé, par exemple alphanumérique. Il s'agit ici de garantir l'unicité de la relation père/fils dans la chaîne d'intégrité. On garantit ainsi, dans le système de référencement, l'impossibilité de créer un 30 nouvel élément de la chaîne d'intégrité tant que celui en cours de construction n'est pas finalisé et utilisé pour la prochaine indexation. 3046688 25 Il en résulte un système de référencement qui ne dépend pratiquement pas des éléments probatoires d'un unique référencement, ou de contraintes légales et/ou règlementaires d'une autorité de confiance en particulier. Le système se trouve donc être robuste au cas où une autorité de confiance viendrait à être révoquée. 5 L'utilisation de la fonction de hachage HASH2 permet le cas échéant de divulguer l'ensemble des éléments de la chaîne d'identifiants de référencement sans divulguer les identifiants de référencement eux-mêmes. Dans le cas où une telle divulgation n'est pas une contrainte, la chaîne d'identifiant de référencement peut être construire en appelant, en remplacement de la 10 fonction HASH2, une fonction bijective des identifiants de référencement, par exemple l'identifiant de référencement lui même, ou sa version courte. À l'étape suivante 814, la fonction retourne l'ensemble des chaînes BOM IDS i, FP2_i et ICT_i. Par exemple, la fonction retourne un tableau rassemblant les chaînes BOM IDS i, 15 FP2_i et ICT_i dans des colonnes respectives. En option, certaines au moins de ces chaînes peuvent être utilisées afin de lier le système de référencement à un ou plusieurs tiers de confiance ou opérateurs de dépôt légal, du type de ceux connus sous les noms de Bibliothèque nationale de France, ou BNF en bref, ou United 20 States Copyright Office, ou USCO en bref. En particulier, la fonction peut être agencée pour déposer auprès d'un serveur de dépôt légal ou analogue une liste des empreintes FP2_i des identifiants de référencement BOM ID i du système de référencement. Les éléments de preuve associés, ou les éléments permettant de les retrouver, comme les jetons d'horodatage TKEN et la chaîne d'empreinte globale STRG peuvent en outre être déposés. 25 En cas de défaut d'une entité opérant tout ou partie du système de référencement, un utilisateur garde la possibilité de mettre en oeuvre les différents moyens d'accès mis en place par les opérateurs de confiance. 30 Dans ce cas, le système de référencement peut avantageusement rendre public au moins le premier et le dernier élément de la chaîne d'intégrité associé aux éléments déposés, c'est-à-dire les chaînes FP2_i et ICT_i d'une première ligne du tableau et ceux de la dernière ligne de 3046688 26 ce tableau ainsi qu'une empreinte du fichier publique contenant les éléments de la chaîne d'intégrité, c'est-à-dire l'ensemble des chaînes FP2 i et ICT i. Tout tiers peut ainsi vérifier l'intégrité de la chaîne d'intégrité, ce qui empêche la falsification de la liste des identifiants de référencement du système, ou du moins en réduit considérablement le risque. 5 En outre, tout tiers peut vérifier qu'un identifiant de référencement BOM ID particulier est inclus dans les éléments déposés auprès du tiers de confiance. En effet, un risque réel, lors du recours à un tiers de confiance, ou une cascade d'acteur dans un système de référencement, est la propagation d'erreur de manipulation notamment lors de la copie des fichiers 10 informations vers des supports physiques, ou vers d'autres structures de stockage via un réseau. Pour ce prémunir de ce type de problème, il convient de régénérer la chaîne d'identifiant de référencement sur la base des éléments transmis lors du dépôt à partir des supports utilisés, et de vérifier leur concordance. On évitera ainsi d'envoyer auprès d'un tiers, un support physique vierge. 15 La fonction se termine à l'étape suivante 816. Bien que la figure 8 montre des étapes 802 à 814 qui s'enchaînent mutuellement, ces étapes correspondent à deux procédures : 20 - l'une, correspondant à la succession des étapes 802 à 806, vise la construction de chaînes d'identifiants secondaires BOM IDS i ; l'autre, correspondant à la succession des étapes 808 à 814 vise la construction de jetons d'intégrité. 25 Ces deux procédures peuvent être appelées séparément et indépendamment l'une de l'autre. La procédure des étapes 808 à 814 correspond à la construction itérative d'une chaîne d'intégrité ex nihilo. Elle comprend une étape 808 d'initialisation de la chaîne et une étape 810 d'initialisation à 0 d'un compteur de boucles. En variante, une chaîne d'intégrité peut exister 30 avant l'appel de cette procédure, résultant par exemple d'un appel précédent. Dans ce cas, la procédure en question peut être appelée afin d'ajouter des éléments, non encore intégrés, dans la chaîne d'intégrité existante. Dans ce cas, il n'est pas nécessaire d'initialiser la chaîne à 3046688 27 l'étape 808 et on se limite aux valeurs d'indice i correspondant à des éléments qui ne sont pas encore chaînés à l'étape 810. Dans les étapes 802 à 806, la fonction génère des chaînes de caractères, les chaînes 5 BOM IDS i, qui peuvent être vues comme accessoires chacune d'une chaîne primaire constituée par une chaîne BOM ID i. Cette chaîne accessoire correspond de manière unique à la chaîne primaire. La fonction insère dans chaque chaîne BOM_IDS_i une partie de la chaîne BOM_ID comprenant une partie seulement de la sous-chaîne représentant l'empreinte de l'empreinte du contenu du document numérique. 10 Dans l'étape 804, la fonction construit des chaînes de caractères, sous la forme des chaînes FP2 i, de telle sorte que ces chaînes correspondent de manière unique chacune à une chaîne identifiant de référence BOM_ID de document numérique. Dans les étapes 808 à 814, la fonction construit pour chacune des chaînes FP2_i une chaîne de caractères respective ICT_i 15 en insérant dans la chaîne ICT_i une empreinte d'une chaîne de caractères obtenue en partie au moins par concaténation de la chaîne FP2_i et de l'une des autres chaînes ICT_j , cette dernière correspondant à une chaîne FP2 _j. On fait référence à la figure 9. 20 Elle montre un exemple de contenu d'un espace de stockage 140 organisé dans de la mémoire accessible à une machine serveur d'un système de référencement de documents numériques, par exemple la machine serveur 1 de la figure 1. 25 L'espace de stockage 140 comprend une première structure de données 142 destinée à maintenir une liste d'identifiants de référencement pour le système de référencement, ici chacun sous la forme d'une chaîne de caractères analogue à la chaîne BOM_ID. Les identifiants de référencement sont uniques, au moins pour le système de référencement. Ici la première structure 142 maintient une relation entre chaque chaîne BOM_ID identifiant un 30 document numérique référencé et un pointeur vers un ou plusieurs jetons d'horodatage TKEN associés à une empreinte du document numérique, ou du moins les données qu'ils 3046688 28 contiennent. Le pointeur peut comprendre un chemin d'accès, dans un système de fichiers, à un fichier comprenant les informations en question. Les figures 10 et 11 montrent un exemple de réalisation d'une structure de stockage analogue 5 à la première structure 142. Elle montre une structure arborescente d'un système de fichiers où les chaînes BOM ID i identifiant les documents numériques référencés sont utilisées chacune comme attribut de nommage d'un dossier respectif dans lequel sont mémorisés : 10 - un premier fichier informatique correspondant au jeton d'horodatage de l'empreinte du document concerné, qui se termine par la chaîne "-1.tsa" ; un second fichier informatique correspondant à l'empreinte STRG de ce document, qui se termine ici par la chaîne ".STRING-1". 15 Ici, les attributs de nommage du premier fichier et du second fichier comprennent chacun une chaîne dans laquelle se retrouve la valeur de la chaîne de caractères de l'empreinte FPB de l'empreinte du document. Sur la figure 9, l'espace de stockage 140 comprend en outre une seconde structure de données 20 144 qui maintient une relation entre chaque chaîne BOM ID i identifiant, dans le système, un document numérique respectif et la chaîne d'empreinte globale STRG relative au contenu de ce document. La seconde structure 144 peut prendre la forme d'un tableau de données, par exemple 25 organisé dans un fichier de type texte brut. La structure peut également prendre la forme d'un fichier de type texte propre à chaque chaîne d'empreinte globale STRG et stocké dans un répertoire nommé conformément à l'identifiant BOM ID, comme le montrent les figures 10 et 11 par exemple. 30 L'espace de stockage 140 comprend encore une troisième structure de données 146 qui maintient une relation entre chaque chaîne FP2 i d'empreinte d'identifiant B OM ID de document numérique référencé, les chaînes ICT i de jeton de chainage relatives à ces 3046688 29 documents et la valeur du paramètre Lngth qui permet de déduire les identifiants courts BOM_IDS_i des identifiants de référencement BOM ID i des documents numériques référencés. La troisième structure de données 146 montre une liste organisée maintenant de premières chaînes de caractères, sous la forme des chaînes FP2 i, correspondant chacune de 5 manière unique à un identifiant de référencement BOM ID i, dans laquelle liste chaque première chaîne se trouve en relation avec une seconde chaîne de caractères respective, une chaîne de jeton d'intégrité ICT_i. La figure 12 montre un exemple de réalisation d'une structure de stockage de données 10 analogue à la structure 146 de la figure 9. Il s'agit d'un fichier de type texte brut dans lequel les chaînes de caractères sont organisées en tableau. Chaque ligne d'une première colonne représente la chaîne FP2_i de l'empreinte de l'identifiant d'un document numérique respectif. Chaque ligne de la seconde colonne représente la chaîne ICT_i correspondant au document numérique dont la première colonne comprend l'empreinte d'identifiant. Chaque ligne de la 15 troisième colonne indique la valeur du paramètre Lnght, ici "37". Sur la figure 9, l'espace de stockage 140 comprend encore une quatrième structure de données 148 qui maintient une relation entre chaque chaîne FP2_i d'empreinte d'identifiant BOM ID de document numérique référencé et l'identifiant court BOM_IDS_i correspondant. 20 Selon un premier développement du système de référencement selon l'invention, la base de référencement de ce système, par exemple l'espace de stockage 140, maintient une relation entre chaque valeur de chaîne d'empreinte élémentaire FPA_i et un unique identifiant que l'on peut faire correspondre à un identifiant de référencement, par exemple l'identifiant public 25 BOM_IDS d'un document numérique dans le système. Les valeurs des chaînes d'empreintes élémentaires FPA_i peuvent être extraites par le serveur des chaînes d'empreinte globales du type des chaînes STRG, telles qu'elles lui sont transmises par exemple à l'étape 502. Sur la figure 9 par exemple, l'espace de stockage 140 comprend 30 une cinquième structure de données 150 qui maintient une relation entre des valeurs d'empreinte d'éléments de contenu FPA, et un identifiant de référencement BOM_IDS respectif. Ce stockage spécifique est optionnel dans la mesure où la sélection de l'identifiant 3046688 30 de référencement peut se faire sur requête, en parcourant les chaînes d'empreintes globales STRG stockées dans le système de référencement, par exemple dans la seconde structure de données 144 de la figure 9. 5 Le module serveur comprend une fonction capable de sélectionner un identifiant parmi les différentes valeurs d'identifiant de référencement associées dans le sytème à une valeur d'empreinte d'éléments de contenu de contenu, par exemple la fonction TEMP décrite en relation avec la figure 3. 10 La sélection peut se faire sur la base d'un critère d'antériorité ou de première occurrence de la valeur d'empreinte dans l'espace de stockage, comme ce qui a été décrit dans le brevet européen EP 2 084 644 B1 par exemple. En particulier, la fonction peut être agencée pour travailler sur une structure de données qui maintient en relation un identifiant de référencement et la chaîne d'empreinte globale STRG. La sélection de l'identifiant BOM ID 15 ou BOM IDS peut se faire par comparaison des chaînes DATE des identifiants concernés. Dans le cas où ces chaînes DATE seraient identiques, on peut par convention élire la première occurrence traitée. On peut aussi prendre en compte un second critère basé sur l'ordonnancement de la sous-chaîne. On peut aussi introduire des critères ad hoc en définissant des "clusters", ou grappes en français, par exemple dans une même chaîne 20 d'intégrité. En d'autres termes, à partir d'un accès à une liste maintenant en relation des empreintes élémentaires relatives chacune à un élément de contenu de document numérique et une référence de document numérique, une fonction du système modifie conditionnellement la 25 relation entre une empreinte élémentaire et la référence de document numérique respective. La condition porte notamment sur le résultat d'une comparaison d'une partie de d'identifiant de référencement correspondant à cette référence et d'une partie homologue d'une chaîne d'identification de référencement correspondant à une autre référence de document numérique. En particulier, cette partie comprend la sous-chaîne représentative de la valeur de 30 date. 3046688 31 Le cas échéant, cette sélection, ou élection, ou encore comparaison, concerne les identifiants de référencement BOM ID ou BOM IDS du système de référencement pour lesquels la chaîne d'empreinte globale STRG est disponible. 5 Le cas échéant, la sélection peut se faire parmi un sous-ensemble, par exemple lié à un projet, associé aux identifiants de référencement pour lesquels un opérateur donné du service de référencement stocke la chaîne d'empreinte globale STRG, associés aux identifiants d'une chaîne d'identifiants de référencement particulière. 10 En option, le module serveur peut être agencé pour répondre à une requête contenant une valeur de chaîne analogue à la chaîne d'empreinte globale STRG en renvoyant les chaînes d'identifiant courts associés dans la base de référencement à chaque valeur d'empreinte par un message contenant l'identifiant de dépôt associé, dans la cinquième structure de stockage 150, à cette valeur d'empreinte. 15 La structure de données 150 maintient ce que l'on peut appeler un catalogue d'éléments de contenu, c'est-à-dire une liste de tels éléments, identifiés chacun par une empreinte élémentaire respective, puisque chaque empreinte élémentaire correspond de manière unique à un élément de contenus. Chaque empreinte élémentaire s'y trouve en relation avec un 20 identifiant de référencement qui, le cas échéant peut être sélectionné parmi les identifiants de référencement du systèmes pour lesquels on retrouve cette valeur d'empreinte élémentaire. La figure 14 montre un exemple de catalogue, sous la forme d'un extrait d'une liste mettant en relation à chaque ligne une empreinte élémentaire (colonne de gauche) et un identifiant de référencement, ici sous la forme d'une chaîne générique de la forme "Antepedia-Deposit-" 25 suivie d'une valeur de date, ici le 4 juin 2015 par exemple. Ceci permet, entre autre chose, de pouvoir mentionner les identifiants en question lorsqu'un créateur livre un logiciel. Le récipiendaire peut ainsi vérifier que les éléments livrés sont bien ceux définit contractuellement, en générant à chaque fois les valeurs d'empreinte concernées 30 et en interrogeant la base à l'aide de l'empreinte pour chercher un identifiant de dépôt et en vérifier la correspondance. Cela est beaucoup plus rapide et simple techniquement que de réceptionner plusieurs versions intermédiaires de ce que l'on appelle une "release" dans la 3046688 32 technique à partir d'une archive signée. Dans ce dernier cas en effet, il faut vérifier l'authenticité du package et la validité des éléments de la chaîne de confiance. De plus il est très difficile d'intégrer ces éléments dans les environnements de production puisqu'ils correspondent à des granularité plus fines et vont induire des duplications nombreuses dans le 5 cas de multiples livraison. Il suffit ici de vérifier que les sous-chaînes de date des identifiants courts retournés désignent des dates antérieures ou identiques à la date désignée par la sous-chaîne DATE de l'identifiant court transmis. On peut aussi vérifier que les identifiants courts retournés par le serveur concernent tous des 10 référencements faits antérieurement au référencement indiqué contractuellement. Dans le cas contraire, il existe au moins un élément de contenu significativement nouveau depuis le dernier dépôt relatif à la version du logiciel. On a décrit le maintien par le serveur de référencement d'une chaîne d'intégrité sous la forme 15 d'une relation entre les d'identifiants de référencement, ici leur empreinte, et une un élément de chaîne d'intégrité, ou jeton. Le système de référencement peut maintenir plusieurs chaînes d'intégrité de ce type parallèlement les unes au autres, en particulier pour être capable de répondre à un grand nombre de requêtes utilisateurs. Dans ce cas, le serveur du système de référencement peut être agencé pour consolider le contenu des chaînes en question. Pour 20 consolider l'une de ces chaînes d'intégrité, dite source, dans une autre chaîne d'intégrité, dite cible, le serveur crée dans cette dernière un enregistrement valant pointeur vers la chaîne source. On crée un identifiant de référencement virtuel, ne correspondant à aucun document numérique, dont le format correspond aux autres identifiants de référencement du système. La sous-chaîne DATE correspond alors à la date de consolidation, qui pourra faire le cas échéant 25 l'objet de l'émission de jetons d'horodatage associés, pour garantir la cohérence du niveau de confiance entre les identifiants de référencement. La partie de la chaîne d'identifiant de référencement correspondant à l'empreinte de l'empreinte globale est construite de manière à pointer vers une ou plusieurs chaînes sources. 30 Dans un premier mode de réalisation, la valeur de cette sous-chaîne est identique à la valeur de cette sous-chaîne dans le dernier élément de la chaîne d'intégrité source. On fait alors 3046688 33 référence à l'ensemble des chaînes d'intégrité contenant l'empreinte en question au moment de la consolidation. Dans un second mode de réalisation, la valeur de la sous-chaîne correspond à l'empreinte de 5 l'identifiant de référencement du dernier élément de la chaîne d'intégrité source. On fait alors référence à un référencement unique, susceptible de faire partie de plusieurs chaînes au moment de la consolidation. Dans un troisième mode de réalisation, la valeur de la sous-chaîne correspond au jeton 10 d'intégrité du dernier élément de la chaîne d'intégrité source. On fait alors référence à un référencement unique dans une chaîne d'intégrité particulière. On peut distinguer les identifiant de référencement virtuel en tant que sous-ensemble de la chaîne d'intégrité. La distinction peut être explicite, sous la forme par exemple d'une table de 15 correspondance, ou en s'appuyant sur une sous-chaîne spécifique par exemple une sous-chaîne SFIX, ou encore implicite, par exemple en se basant sur la longueur des empreintes liée à la fonction de hachage dont elle est issue. Généralement, la longueur d'une chaîne d'empreinte est imposée par la fonction de hachage dont elle résulte. 20 On fait référence au cas où le système de référencement met en oeuvre une élection de temporalité et la réalisation de ce que l'on a appelé un catalogue d'éléments de contenus, ou, plus précisément, un catalogue d'empreintes d'élément de contenus, dans le premier développement décrit plus haut par exemple. 25 Dans ce cas, on traite un sous-ensemble des identifiants de référencement associés à une valeur de chaîne d'empreinte élémentaire particulière. Dans le cas de chaînes d'intégrités liées entre elles, on fait porter l'élection de temporalité sur l'ensemble des identifiants de référencement déduits de ces différentes chaînes en tant que 30 candidats, et/ou sur les catalogues d'empreintes d'éléments de contenus associés à ces chaines. On peut émettre une requête vers un serveur hébergeant une chaîne d'intégrité donnée afin de récupérer les éléments nécessaire à l'élection de temporalité. Il s'agit par 3046688 34 exemple des identifiants BoMID courts et des empreintes globales STRG associées. Le catalogue correspond aux éléments de consolidation entre les deux chaînes. En d'autres termes, à partir d'un accès à une liste maintenant en relation des empreintes 5 élémentaires, du type des empreintes FPA par exemple, relatives chacune à un élément de contenu du document numérique et une référence de document numérique respective, une fonction peut modifier sous conditions la relation entre une empreinte élémentaire et sa référence de document numérique respective. Une condition porte sur le résultat d'une comparaison d'une partie de l'identifiant de référencement correspondant à cette référence de 10 document numérique et d'une partie homologue des identifiants de référencement correspondant à d'autres références de documents numériques, ces références de documents numériques correspondant chacune à une chaîne de caractères respective de l'une de deux listes organisées de chaînes de caractères. 15 On peut révoquer une chaîne d'intégrité, par exemple si elle est mise en oeuvre par un opérateur dont l'infrastructure a été corrompue. On exclut les chaînes d'empreintes élémentaires FPA de cette chaîne de ceux à prendre en compte, en particulier pour l'élection de temporalité sur les éléments de contenus. L'identifiant de référencement virtuel reste dans la chaîne. 20 Ceci a l'intérêt de chaîner les chaînes, ce qui rend encore plus forte la cohérence d'ensemble et donc pratiquement improbable qu'une corruption ne soit pas détectée. Cela permet en outre de paralléliser le système pour faire de l'élection de temporalité incrémentale au sein des chaînes. Plusieurs serveurs font coexister des chaînes en allant jusqu'à la mise à jour des 25 catalogues résultant de l'élection de temporalité. On prend les nouvelles chaînes d'empreintes élémentaires FPA référence depuis la dernière élection de temporalité. On prend le dernier catalogue de cette chaîne. Si on identifie dans les nouveaux identifiants un lien vers une chaîne source (non révoquée), alors on récupère le catalogue de cette source à cette date. On fait l'élection de temporalité sur tous les catalogues et les nouvelles chaînes d'empreintes 30 élémentaires FPA, ce qui donne le nouveau catalogue de cette chaîne d'intégrité. On consolide cette chaîne d'intégrité avec les chaînes d'intégrité des autres serveurs du système de référencement. La chaîne source a toujours un catalogue correspondant et on ne refait pas 3046688 l'élection de temporalité qui est complètement asynchrone. Dans le cas où une chaîne d'intégrité serait révoquée, on peut refaire une élection de temporalité pour chacune des chaînes valables en supprimant les catalogues associés à la chaîne d'intégrité révoquée. Ce processus de révocation peut être appliqué à une chaîne d'intégrité ou à un identifiant de 5 référencement d'une chaîne d'intégrité. L'invention n'est pas limitée aux modes de réalisation décrits ci-dessus, à titre d'exemple uniquement. 10 En particulier, l'invention ait été en tant que dispositif d'aide au référencement de documents numériques, mais elle s'exprime de manière correspondante sous la forme d'un procédé. En particulier, un tel procédé comprend les étapes suivantes. 15 On reçoit des données propres à un document numérique. Les données comportent une chaîne d'empreinte globale STRG du contenu de ce document numérique, ou des données permettant à la construction d'une telle chaîne. Les données comprennent encore un jeton d'horodatage relatif à cette empreinte du contenu et à une valeur de date. 20 On construit une chaîne de caractères identifiant afin de référencement. La chaîne est construite en partie en moins en concaténant une sous-chaîne représentant la valeur de date du jeton d'horodatage et une sous-chaîne représentant une empreinte de l'empreinte du contenu du document numérique. 25 On stocke au moins une référence au document numérique, cette référence correspondant de manière unique à la chaîne primaire. On peut recevoir un pointeur vers un ou plusieurs éléments de contenu relatifs chacun à ce document numérique. Dans ce cas, on insère dans une partie au moins de l'empreinte du 30 contenu du document numérique une ou plusieurs empreintes élémentaires relatives chacune à un élément de contenu. 3046688 36 On peut construire, pour l'identifiant de référencement, une chaîne secondaire de caractères qui lui correspond de manière unique. On insère, dans la chaîne secondaire, une empreinte l'identifiant de référencement. On peut en outre stocker cette chaîne secondaire dans une liste organisée dans le système. 5 On peut en outre construire, pour l'identifiant de référencement, une chaîne tertiaire qui comprend une empreinte d'une chaîne de caractères obtenue en partie au moins par concaténation de la chaîne secondaire respective de cette chaîne tertiaire et d'une chaîne tertiaire respective d'une autre chaîne secondaire de la liste organisée. 10 Dans un mode réalisation, le dispositif comprend en outre un accès à une liste organisée maintenant de premières chaînes de caractères, chacune en relation avec au moins une seconde chaîne de caractères respective, et dans lequel ladite au moins une unité de traitement exécute une troisième fonction agencée pour : 15 - construire chacune des premières chaînes de caractères de telle sorte que la première chaîne corresponde de manière unique à la chaîne primaire d'une référence de document numérique ; insérer dans chaque seconde chaîne une empreinte d'une chaîne de caractères obtenue en partie au moins par concaténation de la première chaîne de caractères correspondante et 20 d'une chaîne parmi lesdites secondes chaînes correspondant à une autre première chaîne de la liste organisée. Dans un mode réalisation, la première fonction est en outre agencée pour : reconnaître dans les données d'entrée une ou plusieurs empreintes élémentaires 25 relatives chacune à un élément respectif du contenu du document numérique, construire pour certaines au moins de ces empreintes élémentaires une chaîne primaire respective, insérer dans chaque chaîne primaire relative à une empreinte élémentaire une empreinte d'une chaîne de caractères obtenue en partie au moins par concaténation d'une 30 chaîne de caractères correspondant de manière unique à la chaîne primaire du document numérique et de l'empreinte élémentaire, 3046688 37 stocker dans la base de référencement une référence à un élément au moins du contenu du document numérique, cette référence correspondant de manière unique à la chaîne primaire relative à l'empreinte élémentaire de cet élément du contenu du document numérique. 5 Dans un mode réalisation, le dispositif comprend en outre un accès à au moins deux listes organisées de chaînes de caractères, certaines au moins de ces chaînes de caractères correspondant de manière unique à une chaîne primaire relative à un document numérique respectif, dans lequel ladite au moins une unité de traitement exécute une cinquième fonction 10 agencée pour : construire une chaîne de caractères supplémentaire en partie en moins par concaténation de sous-chaînes de caractères de telle sorte que l'une au moins des ces sous-chaînes représente une valeur de date courante tandis qu'une autre au moins de ces sous-chaînes correspond de manière unique à une chaîne de caractères d'une première desdites 15 deux listes ; stocker dans la base de référencement au moins une référence correspondant de manière unique à cette chaîne de caractères supplémentaires, insérer dans la seconde de ces listes une chaîne de caractères correspondant de manière unique à la chaîne de caractères supplémentaires. 20 REVENDICATIONS1. Dispositif de référencement de documents numériques, du type comprenant : une entrée capable de recevoir des données propres à un document numérique, le 5 document numérique possédant un contenu ; au moins une unité de traitement qui exécute une première fonction capable de réagir à une réception de données en ladite entrée en générant une chaîne primaire de caractères en fonction des données reçues ; et un accès à une base de référencement pour y stocker au moins une référence au 10 document numérique, ladite référence correspondant de manière unique à ladite chaîne primaire ; caractérisé en ce que la première fonction est agencée pour : reconnaître, dans les données propres au document numérique, une empreinte du contenu de ce document numérique ainsi qu'un jeton d'horodatage relatif à cette empreinte et 15 à une valeur de date, et construire la chaîne primaire en partie au moins par concaténation de sous-chaînes de caractères, de telle sorte que l'une au moins des ces sous-chaînes représente ladite valeur de date, tandis qu'une autre au moins de ces sous-chaînes représente une empreinte de l'empreinte du contenu du document numérique. 20 2. Dispositif selon la revendication 1, dans laquelle ladite au moins une unité de traitement exécute une seconde fonction agencée pour : reconnaître, dans les données propres au document numérique, un pointeur vers un ou plusieurs éléments de contenu relatifs chacun à ce document numérique ; 25 insérer dans une partie au moins de l'empreinte du contenu du document numérique une ou plusieurs empreintes élémentaires relatives chacune à un élément de contenu respectif. 3. Dispositif selon l'une des revendications 1 et 2, comprenant en outre un accès à une liste organisée de chaînes de caractères, dans lequel la première fonction est en outre agencée 30 pour : construire une chaîne secondaire de caractères, cette chaîne secondaire correspondant de manière unique à une chaîne primaire de caractère, 3046688 39 insérer une empreinte de la chaîne primaire dans cette chaîne secondaire, et créer, dans la liste organisée, au moins une entrée correspondant à la chaîne secondaire. 4. Dispositif selon l'une des revendications précédentes, comprenant en outre un accès à une liste organisée maintenant de premières chaînes de caractères, chacune en relation avec au moins une seconde chaîne de caractères respective, et dans lequel ladite au moins une unité de traitement exécute une troisième fonction agencée pour : construire chacune des premières chaînes de caractères de telle sorte que la première 10 chaîne corresponde de manière unique à la chaîne primaire d'une référence de document numérique ; insérer dans chaque seconde chaîne une empreinte d'une chaîne de caractères obtenue en partie au moins par concaténation de la première chaîne de caractères correspondante et d'une chaîne parmi lesdites secondes chaînes correspondant à une autre première chaîne de la 15 liste organisée. 5. Dispositif selon l'une des revendications précédentes, dans lequel la première fonction est en outre agencée pour : générer une chaîne de caractères accessoire de la chaîne primaire, cette chaîne 20 accessoire correspondant de manière unique à la chaîne primaire, et insérer dans la chaîne accessoire une partie de la chaîne primaire comprenant une partie seulement de la sous-chaîne représentant l'empreinte de l'empreinte du contenu du document numérique. 25 6. Dispositif selon l'une des revendications précédentes, comprenant en outre un accès à une liste maintenant en relation des empreintes élémentaires relatives chacune à un élément de contenu du document numérique et une référence de document numérique, dans lequel ladite au moins une unité de traitement exécute une quatrième fonction agencée pour modifier sous conditions la relation entre une empreinte élémentaire et la référence de document 30 numérique respective, l'une au moins des conditions portant sur un résultat d'une comparaison d'une partie au moins de la chaîne primaire correspondant à cette référence de document numérique et d'une partie homologue d'une chaîne primaire correspondant à une autre 3046688 40 référence de document numérique, ladite partie comprenant la sous-chaîne représentative de ladite valeur de date. 7. Dispositif selon l'une des revendications précédentes, dans lequel la première fonction 5 est en outre agencée pour : reconnaître dans les données d'entrée une ou plusieurs empreintes élémentaires relatives chacune à un élément respectif du contenu du document numérique, construire pour certaines au moins de ces empreintes élémentaires une chaîne primaire respective, - insérer dans chaque chaîne primaire relative à une empreinte élémentaire une empreinte d'une chaîne de caractères obtenue en partie au moins par concaténation d'une chaîne de caractères correspondant de manière unique à la chaîne primaire du document numérique et de l'empreinte élémentaire, stocker dans la base de référencement une référence à un élément au moins du contenu 15 du document numérique, cette référence correspondant de manière unique à la chaîne primaire relative à l'empreinte élémentaire de cet élément du contenu du document numérique. 8. Dispositif selon l'une des revendications précédentes, comprenant en outre un accès à 20 au moins deux listes organisées de chaînes de caractères, certaines au moins de ces chaînes de caractères correspondant de manière unique à une chaîne primaire relative à un document numérique respectif, dans lequel ladite au moins une unité de traitement exécute une cinquième fonction agencée pour : construire une chaîne de caractères supplémentaire en partie en moins par 25 concaténation de sous-chaînes de caractères de telle sorte que l'une au moins des ces sous-chaînes représente une valeur de date courante tandis qu'une autre au moins de ces sous-chaînes correspond de manière unique à une chaîne de caractères d'une première desdites deux listes ; stocker dans la base de référencement au moins une référence correspondant de 30 manière unique à cette chaîne de caractères supplémentaires, insérer dans la seconde de ces listes une chaîne de caractères correspondant de manière unique à la chaîne de caractères supplémentaires. 3046688 41 9. Dispositif selon la revendication 8, comprenant en outre un accès à une liste maintenant en relation des empreintes élémentaires relatives chacune à un élément de contenu du document numérique et une référence de document numérique, dans lequel ladite au moins 5 une unité de traitement exécute une sixième fonction agencée pour modifier sous conditions la relation entre une empreinte élémentaire et la référence de document numérique respective, l'une au moins des conditions portant sur un résultat d'une comparaison d'une partie au moins de la chaîne primaire correspondant à cette référence de document numérique et d'une partie homologue de chaînes primaires correspondant à d'autres références de documents 10 numériques, lesdites chaînes primaires correspondant à d'autres références de documents numériques correspondant chacune à une chaîne de caractères respective de l'une desdites au moins deux listes organisées de chaînes de caractères. 10. Procédé de référencement de documents numériques comprenant les étapes suivantes : a. recevoir des données propres à un document numérique, le document numérique possédant un contenu, les données comportant une empreinte du contenu de ce document numérique et un jeton d'horodatage relatif à cette empreinte du contenu et à une valeur de date ; b. construire une chaîne primaire de caractères en partie en moins par concaténation de 20 sous-chaînes de caractères de telle sorte que l'une au moins des ces sous-chaînes représente ladite valeur de date tandis qu'une autre au moins de ces sous-chaînes représente une empreinte de l'empreinte du contenu du document numérique ; et c. stocker au moins une référence au document numérique, ladite référence correspondant de manière unique à ladite chaîne primaire. 25 11. Procédé selon la revendication 10, dans lequel l'étape a. comprend les sous-étapes de : al. recevoir un pointeur vers un ou plusieurs éléments de contenu relatifs chacun à ce document numérique, a2. insérer dans une partie au moins de l'empreinte du contenu du document 30 numérique une ou plusieurs empreintes élémentaires relatives chacune à un élément de contenu. 3046688 42 12. Procédé selon l'une des revendications 10 et 11, dans lequel l'étape b. comprend en outre la construction, pour la chaîne primaire, d'une chaîne secondaire de caractères, cette chaîne secondaire correspondant de manière unique à la chaîne primaire de caractères, et l'insertion, dans la chaîne secondaire, d'une empreinte de la chaîne primaire ; et l'étape c. 5 comprend en outre de stocker cette chaîne secondaire dans une liste organisée. 13. Procédé selon la revendication 12, dans lequel l'étape b. comprend en outre de construire, pour la chaîne primaire, une chaîne tertiaire, cette chaîne tertiaire comprenant une empreinte d'une chaîne de caractères obtenue en partie au moins par concaténation de la 10 chaîne secondaire respective de cette chaîne tertiaire et d'une chaîne tertiaire respective d'une autre chaîne secondaire de la liste organisée.