FR 3093576 A1 20200911 FR 1902329 A 20190307 Description Titre de l'invention : Calcul de signature et vérification d'intégrité de données numériques [0001] La présente invention concerne un procédé et un système de calcul de signature d'au moins un bloc de données numériques formant un document numérique comprenant des données numériques, cryptées ou non, à protéger et/ou à certifier. Elle concerne également un procédé et. un système de vérification d'intégrité d'au moins un bloc de données numériques formant un document numérique contenant des données numériques, à partir d'une signature ainsi calculée. [0002] L'invention se situe dans le domaine de la vérification à valeur probante de l'intégrité de données numériques. Elle trouve une application particulière dans des systèmes dc vérification à valeur probante adaptés à traiter un grand volume de données, par exemple en temps réel. [0003] La vérification de l'intégrité des données numériques, par exemple mémorisées dans des fichiers, est d'importance majeure dans de très nombreux domaines d'application, en particulier lorsque les données numériques sont susceptibles d'âtre mémorisées dans des dispositifs de stockage électroniques faisant partie de réseaux de communication. Il est possible que des tiers malveillants accèdent à des données numériques mémorisées et les allèrent à distance, par diverses techniques connues sous le nom de techniques dc « piratage ». [0004] Dans certains domaines applicatifs, par exemple dans le domaine bancaire, ou le domaine comptable ou le stockage de documents juridiques, il est critique d'âtre en mesure d'attester l'intégrité des données numériques, c'est-à-dire d'attester que les données auxquelles on accède à un instant ultérieur sont identiques aux données enregistrées préalablement, ou de certifier des évènements associés aux données. [0005] En plus de la problématique de la vérification de l'intégrité des données elles-mêmes, se pose également le problème du traitement de grands volumes de données numériques stockées sur des serveurs et auxquelles il est nécessaire d'accéder avec une fréquence élevée, voire en temps réel. [0006] À ces contraintes, s'ajoutent celles d'une possible mise en conformité, a posteriori, avec des règlements qui peuvent imposer une modification des données originelles (voire leur suppression, selon des dispositions réglementaires de protection de données personnelles par exemple) ou du maintien d'une valeur probante de données cryptées dont les algorithmes ont été cassés. [0007] Diverses méthodes de validation de l'intégrité des données numériques ont été proposées. 2 [0008] On connaît notamment des méthodes mettant en oeuvre des chaînes de hachage de données numériques, stockées sous forme de documents numériques, sur un même serveur. Dans de telles méthodes, on calcule une signature de document numérique en appliquant une fonction cryptographique, ou fonction de hachage, dépendant à la fois des données numériques du document numérique à traiter et d'une chaîne des signatures de documents numériques précédemment traités et mémorisés sur le serveur. Dans ce cas, les signatures des documents numériques sont imbriquées, cc qui rend le piratage difficile. Les signatures étant imbriquées, l'absence accidentelle ou la modification d'une seule signature de la chaîne rendrait la vérification d'authenticité impossible. [0009] De plus, un tel système nécessite un stockage entièrement centralisé des signatures, et la vérification de l'intégrité ne peut être effectuée que par le système centralisé qui maîtrise le stockage centralisé. Or la gestion des systèmes centralisés est lourde, et n'est pas adaptée à certains domaines d'application. [0010] L'invention a pour objectif de remédier aux inconvénients de l'état de la technique. [0011] À cet effet, l'invention propose, selon un aspect, un procédé de calcul de signature d'au moins un bloc de données numériques formant un document numérique contenant des données numériques à protéger, permettant d'en vérifier l'intégrité, le document numérique faisant partie d'une série de documents numériques traités successivement. Ce procédé comporte, pour un document numérique, des étapes de : [0012] -obtention d'une ou plusieurs métadonnées associées au document numérique, et calcul d'au moins une valeur de hachage associée ; [0013] -obtention d'une valeur de hachage d'au moins une partie des données numériques à protéger; [0014] -calcul d'une signature du document numérique en fonction de la ou des valeur(s) de hachage associée(s) aux métadonnées et de la valeur de hachage des données numériques à protéger, et [0015] -enregistrement de la signature du document numérique, avec un numéro d'enregistrement associé, dans une base de données maître adaptée à mémoriser séquentiellement les signatures de documents traités successivement. [0016] Avantageusement, le procédé de calcul de signature d'au moins un bloc de données numériques formant un document numérique proposé met en oeuvre une signature composée de plusieurs éléments, respectivement une ou plusieurs valeurs de hachage de métadonnées associées au document, et une valeur de hachage obtenue à partir d'au moins une partie des données numériques à protéger. Avantageusement, ces éléments composant la signature peuvent être distribués à ou répartis entre plusieurs tiers, ce qui permet par la suite d'effectuer une vérification d'intégrité de signatures de manière distribuée, et donc d'augmenter la sécurité de vérification de l'intégrité des données. 3 Ainsi, une vérification d'intégrité à valeur probante est obtenue. [0017] Le procédé de calcul de signature d'au moins bloc d'un document numérique selon l'invention peut présenter une ou plusieurs des caractéristiques ci-dessous, prises indépendamment ou selon toutes les combinaisons acceptables : [0018] Le calcul de signature est effectué également en fonction d'au moins une signature d'un document numérique précédemment traité. [0019] Le procédé comporte un calcul d'une valeur de hachage pour chaque métadonnéc associée au document numérique. [0020] Le procédé comporte une concaténation des métadonnécs associées au document numérique dans un ordre prédéterminé, et un calcul de valeur de hachage unique à partir des ladite concaténation. [0021] Le calcul d'une signature comprend une concaténation de la ou des valeurs de hachage des métadonnécs et de la valeur de hachage des données numériques, puis l'application d'une fonction de hachage. [0022] Le procédé comporte en outre une communication de la signature du document numérique calculée et/ou d'au moins une des métadonnécs associées au document numérique et/ou d'au moins une valeur de hachage des métadonnées à au moins un système informatique tiers. [0023] Le procédé, comporte, préalablement au calcul d'une signature du document numérique, un verrouillage d'écriture dans la base de données maître, et un déverrouillage postérieurement à l'enregistrement de la signature du document numérique dans la base de données maître. [0024] Les métadonnées comportent au moins un évènement de création, modification ou consultation du document numérique, le procédé comportant en outre, pour chaque évènement, un calcul de signature de l'évènement lié audit document numérique en fonction d'une valeur de hachage dudit évènement, et une transmission de la signature de l'évènement à un système informatique tiers. [0025] Le procédé comporte en outre une obtention d'un premier numéro d'enregistrement associé audit document numérique crypté selon un premier algorithme de cryptage, une obtention d'une première signature enregistrée avec ledit premier numéro d'enregistrement, un calcul d'une deuxième signature dudit document numérique crypté selon un deuxième algorithme de cryptage, et un enregistrement dans la base de données maître de ladite deuxième signature, en association avec un deuxième numéro d'enregistrement et en association avec ledit premier numéro d'enregistrement. [0026] Selon un autre aspect, l'invention concerne un procédé de vérification d'intégrité d'au moins un bloc de données numériques formant un document numérique contenant des données numériques, le document numérique faisant partie d'une série de documents numériques traités successivement. Ce procédé comporte, pour un document numérique, des étapes de : [0027] -obtention d'un numéro d'enregistrement associé à un enregistrement d'une signature préalablement enregistrée dudit document numérique; [0028] - obtention d'une ou plusieurs métadonnécs associées au document numérique, et calcul d'au moins une valeur de hachage associée ; [0029] - obtention d'une valeur de hachage d'au moins une partie des données numériques dudit document numérique, [0030] -calcul d'une signature du document numérique en fonction de la ou des valeur(s) de hachage associée(s) aux métadonnées et de la valeur de hachage des données numériques à protéger, [0031] -obtention de la signature préalablement enregistrée dudit document numérique, [0032] -comparaison de la signature préalablement enregistrée à la signature calculée, et va- lidation d'intégrité dudit document numérique si lesdites signatures sont égales. [0033] Avantageusement, la vérification intégrité est une vérification à valeur probante. [0034] Selon un mode de réalisation, le procédé de vérification d'intégrité comporte en outre des étapes de: [0035] -obtention d'un évènement ou d'une valeur de hachage d'un évènement associé audit document numérique ; [0036] -calcul d'une signature dudit évènement ; [0037] -obtention d'un système informatique tiers d'une signature d'évènement associé au document numérique préalablement transmise ; [0038] -comparaison de la signature d'évènement calculée avec la signature d'évènement obtenue, et en cas d'égalité, certification numérique dudit évènement associé au document numérique. [0039] Selon un autre aspect, l'invention concerne un système de calcul de signature d'au moins un bloc de données numériques formant un document numérique comportant des données numériques à protéger, permettant d'en vérifier l'intégrité, le document numérique faisant partie d'une série de documents numériques traités successivement. Ce système de calcul de signature comporte au moins un système informatique comportant un processeur de calcul, et comporte ou est connecté à une mémoire électronique adaptée à mémoriser une base de données maître, le processeur de calcul étant configuré pour, pour un document numérique : [0040] -obtenir une ou plusieurs métadonnées associées au document numérique, et calculer au moins une valeur de hachage associée ; [0041] -obtenir une valeur de hachage d'au moins une partie des données numériques à protéger; [0042] -calculer une signature du document numérique en fonction de la ou des valeur(s) de hachage associée(s) aux métadonnées et de la valeur de hachage des données nu- mériques à protéger, et [0043] - enregistrer la signature du document numérique, avec un numéro d'enregistrement associé, dans la hase de données maître adaptée à mémoriser sequentiellement les signatures de documents traités successivement. [0044] Le système de calcul de signature d'au moins un bloc de données numériques formant un document numérique est configuré pour mettre en oeuvre un procédé de de signature d'au moins un bloc de données numériques formant un document numérique tel que brièvement décrit ci-dessus. [0045] Selon un autre aspect, l'invention concerne un système de vérification d'intégrité d'au moins un bloc de données numériques formant un document numérique, le document numérique faisant partie d'une série de documents numériques traités successivement. Cc système de vérification d'intégrité comporte au moins un système informatique comportant un processeur de calcul configuré, pour un document numérique comportant des données numériques, pour: [0046] -obtenir un numéro d'enregistrement associé à un enregistrement d'une signature préalablement enregistrée dudit document numérique; [0047] - obtenir une ou plusieurs métadonnées associées au document numérique, et calculer au moins une valeur de hachage associée ; [0048] - obtenir une valeur de hachage d'au moins une partie des données numériques dudit document numérique, [0049] -calculer une signature du document numérique en fonction de la ou des valeur(s) de hachage associée(s) aux métadonnées et de la valeur de hachage des données numériques à protéger, [0050] -obtenir la signature préalablement enregistrée dudit document numérique, [0051] -comparer la signature préalablement enregistrée à la signature calculée, et valider l'intégrité dudit document numérique si lesdites signatures sont égales. [0052] D'autres caractéristiques et avantages de l'invention ressortiront de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles : [0053] [fig.1] la figure 1 illustre schématiquement un système de calcul de signature de documents numériques selon un mode de réalisation de l'invention ; [0054] [fig.2] la figure 2 illustre schématiquement un système de vérification d'intégrité de documents numériques selon un mode de réalisation de l'invention ; [0055] [fig.3] la figure 3 est un synoptique des principales étapes d'un procédé de calcul de signature de documents numériques selon un premier mode de réalisation de 6 l' invention ; [0056] [fig.4] la figure 4 est un synoptique des principales étapes d'un procédé de vérification d'intégrité de documents numériques selon un mode de réalisation de l'invention ; [0057] [fig.5] la figure 5 est un synoptique des principales étapes d'un procédé de calcul de signature de documents numériques selon un deuxième mode de réalisation de l' invention. [0058] La figure 1 illustre schématiquement un système 1 mettant en oeuvre un calcul de signature de données numériques à protéger, permettant par la suite d'en prouver l' intégrité. [0059] Les données numériques à protéger sont par exemple mémorisées sous forme de documents numériques formatés sous forme de fichiers. [0060] Dans un mode de réalisation, les données numériques à protéger sont des données bancaires ou comptables, mémorisées sous forme d'au moins un bloc de données. [0061] On entend par bloc de données le plus petit élément qui va être manipulé par le système d'exploitation pour créer des fichiers, mais aussi par les réseaux pour faire transiter dès informations ou par les algorithmes de hachage pour créer une signature. [0062] Dans un mode de réalisation, le procédé peut opérer sur un ou plusieurs bloc(s) de données en mémoire qui vont transiter ensuite par un ou plusieurs réseaux avant stockage des données et des signatures dans une ou plusieurs bases de données, sans utilisation de fichiers. [0063] Par la suite, on appellera document numérique un ensemble contenant au moins un bloc de données numériques à protéger, formaté selon un format prédéterminé, adapté à être mémorisé sur un support électronique non transitoire, lisible par ordinateur. [0064] Le support lisible par ordinateur est par exemple, un médium apte à mémoriser les instructions électroniques et à être couplé à un bus d'un système informatique. À titre d'exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non-volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique. [0065] Le système 1 comporte un système informatique 2, par exemple un dispositif élec- tronique de calcul tel qu'un ordinateur ou un dispositif électronique réalisé sous forme de composants logiques programmables, tel qu'un FPGA (de l'anglais Field-Programmable Gate Array), ou encore sous forme de circuits intégrés dédiés, de type ASIC (de l'anglais Application-Specific Integrated Circuit). [0066] Le système informatique 2 comporte une unité centrale de calcul 4 comportant un ou plusieurs processeurs électroniques, apte à exécuter des instructions de programme informatique lorsque le système 2 est mis sous tension. 7 [0067] L'unité centrale de calcul 4 est en particulier adaptée à mettre en oeuvre un procédé de calcul de signature de données numériques selon r invention. [0068] Le système informatique 2 comporte une unité de mémoire électronique 6 adaptée à stocker en particulier des instructions de code exécutable aptes à mettre en oeuvre le procédé de calcul de signature selon l'invention. Les divers blocs fonctionnels du système informatique 2 sont connectés via un bus de communication. [0069] De plus, le système informatique 2 comporte ou est connecté à une unité de mémoire électronique 8 adaptée à mémoriser une hase de données 10 appelée hase de données maître et comportant des signatures calculées, associées à des numéros d'enregistrement. [0070] Lorsqu'un document numérique DOC, référence 12 sur la figure 1, contenant des données numériques à protéger est fourni au système informatique 2, le système informatique 2 met en oeuvre un procédé de calcul de signature numérique tel que décrit en détail ci-après en référence à la figure 4. Le document numérique est par exemple généré ou mis à jour par une application logicielle adaptée à communiquer avec le système informatique 2, ou fourni par un client pour mémorisation et signature. [0071] Le document numérique DOC est par ailleurs mémorisé dans le système in- formatique 2. En variante le document numérique DOC est mémorisé sur tout système de stockage et d'archivage de données, adapté à communiquer avec ou lisible par le système informatique 2. [0072] Des métadonnées M, à Mic ,référencées 14 sur la figure 1, associées au document numérique DOC, sont sélectionnées. Ces métadonnées comprennent par exemple un identifiant ID_DOC associé au document numérique, par exemple un numéro unique issu d'une base documentaire, un identifiant associé au propriétaire du document ID_Compte, une date de création du document Date_l, une date de mise à disponibilité du document Date_2. [0073] Les métadonnées sont traitées par application d'une fonction cryptographique de hachage, avec ou sans salage, pour obtenir une ou plusieurs valeurs de hachage des métadonnées. [0074] De préférence, plusieurs valeurs de hachage des métadonnées sont obtenues. [0075] De manière connue, une fonction de hachage est une fonction cryptographique qui est non-inversible. Une fonction de hachage est dite parfaite si elle réalise une injection d'un premier ensemble, qui est l'ensemble des valeurs initiales vers un deuxième ensemble qui est l'ensemble des valeurs finales. Une fonction de hachage est dite minimale si elle est parfaite et si le cardinal du premier ensemble est égal au cardinal du deuxième ensemble. Dans ce cas, toutes les valeurs générées sont distinctes. Si le cardinal du deuxième ensemble est inférieur au cardinal du premier ensemble, il existe un risque de collisions (i.e. l'application de la fonction de hachage à deux valeurs dif- 8 férentes du premier ensemble aboutit à une même valeur du deuxième ensemble). [0076] De manière connue, le salage cryptographique consiste à renforcer la sécurité en ajoutant des données pseudo-aléatoires aux données sur lesquelles s'applique la fonction de hachage. En particulier, le salage rend la création de documents (ou de blocs de données) différents mais avec des valeurs de hachage différentes plus difficile, car « l'attaquant » n'a plus la maîtrise des données initiales. [0077] De plus, une fonction cryptographique de hachage est appliquée à au moins une partie des données numériques à protéger extraites du document DOC, permettant d'obtenir une valeur de hachage des données. [0078] Enfin, optionnellement, une signature de document numérique précédemment signé est obtenue de la base de données maître. La signature d'un document numérique est elle-même une valeur numérique. Si le document numérique DOC est le N-ièmc document à traiter, on note Sign(N) sa signature, la signature d'un document numérique précédent est par exemple Sign(N-1), et plus généralement Sign(N-p), p étant un entier compris entre 1 et N. [0079] Une signature du document DOC, notée Sign(N), est alors calculée en fonction des valeurs de hachage des métadonnécs, de la valeur de hachage des données et, optionnellement, d'une ou plusieurs signatures numériques précédemment calculées et mémorisées. La signature du document numérique DOC est enregistrée dans la hase de données maître 10, l'enregistrement ayant un identifiant N associé, qui est par exemple un numéro d'enregistrement. [0080] De préférence, le numéro d'enregistrement est incrémenté à chaque nouvel enre- gistrement dans la base de données maître. [0081] De plus, il est prévu de communiquer une ou plusieurs des données contribuant à la génération de la signature du document numérique DOC à un ou plusieurs systèmes informatiques tiers 20, 22, 24, de manière à réaliser un stockage distribué et redondant. [0082] De préférence, les systèmes informatiques tiers 20, 22, 24 sont gérés par des or- ganismes dits « de confiance ». [0083] De manière connue, un « tiers de confiance » est un organisme chargé de gérer pour le compte d'autrui les conventions secrètes de moyens ou de prestations de cryptologie, en respectant la réglementation, les normes et les labels en vigueur. [0084] Dans un mode de réalisation, les systèmes informatiques tiers 20, 22, 24 sont distants, et les données sont transmises par des moyens de télécommunication. [0085] Par exemple, la signature du document numérique DOC est transmise à un système informatique tiers 20, une ou plusieurs des métadonnées MI à Mk sont transmises à un système informatique tiers 22, et une ou plusieurs des valeurs de hachage des métalonnées sont transmises à un système informatique tiers 24. [0086] Chacun des systèmes informatiques 20, 22, 24 est adapté à mémoriser les données 9 reçues, en relation avec un identifiant du document DOC, par exemple en relation avec le numéro d'enregistrement du document DOC. [0087] Ainsi, avantageusement, les données sont mémorisées sous forme répartie par plusieurs systèmes informatiques tiers. De plus, aucun des systèmes informatiques tiers ne détient la totalité des informations permettant de recalculer la signature du document numérique DOC. [0088] Bien entendu, il s'agit d'un exemple, le nombre de systèmes informatiques tiers auxquels sont transmises les données pouvant être quelconque. Par exemple, dans un mode de réalisation, des copies redondantes sont mémorisées dans plusieurs systèmes informatiques tiers. [0089] Selon une autre variante, un seul système informatique tiers mémorise la totalité des métadonnécs et des valeurs de hachage associées. [0090] Selon une autre variante, au moins une métadonnée n'est pas mémorisée mais est fournie par le client lors de la mise en oeuvre de la vérification d'intégrité. [0091] Avantageusement, la vérification d'intégrité des données numériques du document numérique peut être alors effectuée par un système de vérification différent du système 2 de calcul de signature qui maintient la hase de données maître 10. [0092] La figure 2 illustre schématiquement un mode de réalisation d'un système 25 de véri- fication d'intégrité de document numérique selon l'invention. [0093] Le système de vérification d'intégrité 25 comporte un système informatique 30, par exemple un dispositif électronique de calcul tel qu'un ordinateur ou un dispositif électronique réalisé sous forme de composants logiques programmables, tel qu'un FPGA (de l'anglais Field-Programmable Gate Array), ou encore sous forme de circuits intégrés dédiés, de type ASIC (de l'anglais Application-Specific Integrated Circuit). [0094] Le système informatique 30 comporte une unité centrale de calcul 32 comportant un ou plusieurs processeurs électroniques, apte à exécuter des instructions de programme informatique lorsque le système 30 est mis sous tension. [0095] L'unité centrale de calcul 32 est en particulier adaptée à mettre en oeuvre un procédé de vérification d'intégrité de données numériques selon l'invention. [0096] Le système informatique 30 comporte à une unité de mémoire électronique 34 adaptée à stocker des données numériques, en particulier des instructions de code exécutable aptes à mettre en oeuvre le procédé de vérification d'intégrité selon l'invention. Les divers blocs fonctionnels du système informatique 30 sont connectés via un bus de communication. [0097] Le système de vérification d'intégrité 30 est, dans un mode de réalisation, le même que le système 2 de calcul de signature de document numérique. [0098] Selon une variante, le système de vérification d'intégrité est différent du système de calcul de signature, il s'agit par exemple d'un système mis en oeuvre par un tiers de confiance distinct de l'organisme qui génère les signatures. [0099] Pour effectuer la vérification d'intégrité des documents numériques signés par un système de calcul de signature tel que décrit ci-dessus, le système informatique 30 reçoit un document numérique DOC', référence 36, comportant des données numériques, ainsi que des valeurs de métadonnécs ou des valeurs de hachage de métadonnées 38, 40, 42. [0100] Le système informatique 30 obtient également un numéro d'enregistrement de la signature du document DOC' préalablement calculée et mémorisée pour le document numérique DOC', ainsi que, optionnellement, une signature de document numérique précédemment signé est obtenue de la hase de données maître, utilisée par l'algorithme de calcul de signature. [0101] De préférence, les divers éléments formant la signature sont reçus de plusieurs tiers, ce qui permet de diminuer le risque de piratage d'une signature. [0102] Par exemple, un client, utilisateur ou application, transmet un numéro d'enregistrement N de la signature de ce document dans la hase de données maître, et le document numérique DOC' dont il cherche à vérifier l'intégrité. [0103] Le système informatique 30 alors fait une requête à la hase de données maître pour obtenir la signature Sign(N) de document enregistrée avec le numéro d'enregistrement N et, optionnellement, une signature Sign(N') de document numérique précédemment signé, par exemple enregistrée avec le numéro d'enregistrement N',N-p, où p est un entier positif non nul inférieur ou égal à N. [0104] Le système informatique 30 met alors en oeuvre le même algorithme de calcul de signature que celui appliqué lors du calcul de signature d'un document, et obtient une signature Sign(N)', qui est comparée à Sign(N) extraite de la base de données maître : en cas d'égalité entre ces deux signatures, l'intégrité du document numérique DOC' est validée. En d'autres termes, cela permet de valider le fait que les données numériques du document DOC' n'ont pas été modifiées depuis le calcul et l'enregistrement de la signature de ce document dans la base de données maître. [0105] En cas de comparaison négative (inégalité entre les deux signatures), l'intégrité des données n'est pas validée : au moins une donnée numérique du document DOC' a été modifiée depuis le calcul et l'enregistrement de la signature de ce document dans la base de données maître. [0106] La figure 3 est un synoptique des principales étapes d'un procédé de calcul de signature de documents numériques selon un premier mode de réalisation de l'invention. [0107] Un document numérique à traiter, DOCK, est fourni en entrée du procédé. Le document numérique DOCK comprend notamment des données numériques à protéger. [0108] Il est par exemple présenté dans un format de fichier prédéterminé. 11 [0109] Suite à la réception du document à traiter (étape 50), le système de calcul de signature met en oeuvre une étape 52 d'obtention et de configuration de métadonnées associées au document DOC, qui comprennent par exemple : un identifiant unique du document ID-DOC', un identifiant associé au propriétaire du document ID Compte, une date de création du document Date 1, une date de mise à disponibilité du document Date 2. [0110] Dans une application bancaire ou comptable, les métadonnées comprennent par exemple un numéro de compte, un identifiant de propriétaire du compte. [0111] Le type et le nombre de métadonnées à prendre en compte sont prédéfinis, ainsi que l'ordre dans lequel ces métadonnées sont utilisées. Les métadonnées extraites sont par la suite référencées MI à Mi,. [0112] De préférence, les métadonnées utilisées pour le calcul de la signature sont mises dans un format indépendant du format de fichier dans lequel est représenté le document numérique à traiter. De préférence, les champs d'enregistrement des métadonnées sont de taille prédéterminée. Par exemple, une date est formatée selon un format définissant l'année, le mois, le jour, l'heure, la minute et la seconde. [0113] Ensuite, une étape 54 de hachage des métadonnées consistant à calculer une ou plusieurs valeurs de hachage à partir des métadonnées est mise en oeuvre. [0114] Par exemple, dans un mode de réalisation, les métadonnées sont concaténées dans un ordre de concaténation prédéterminé, par exemple dans l'ordre croissant des indices associés, et une fonction cryptographique de hachage est appliquée. [0115] Toute fonction de hachage connue peut être appliquée, par exemple parmi les al- gorithmes suivants : MD5, SHA-1, SHA-2, SHA-3, SHA-256, SHA-384 ou SHA-512. La longueur du résultat de la fonction de hachage varie en fonction de l'algorithme de hachage utilisé, et peut atteindre 128 caractères pour l'algorithme SHA-512. [0116] Selon une variante, une fonction de hachage est appliquée à chaque métadonnée, et on obtient autant de valeurs de hachage de métadonnées qu'il y a de métadonnées, c'est-à-dire K valeurs de hachage de métadonnées dans l'exemple. [0117] Selon une autre variante, les métadonnées sont regroupées en un nombre pré- déterminé de sous-ensembles, les métadonnées de chaque sous-ensemble sont concaténées dans un ordre prédéterminé et une fonction de hachage est appliquée pour chaque sous-ensemble. On obtient alors un nombre P de valeurs de hachage de métadonnées, P étant le nombre de sous-ensembles compris entre 1 et K. [0118] Les valeurs de hachage des métadonnées sont notées HI à H. [0119] Dans une variante, le hachage est réalisé avec salage cryptographique pour renforcer la sécurité. [0120] À l'étape 56 de hachage des données, au moins une partie des données numériques du document numériques DOC, est extraite, et une fonction cryptographique de 12 hachage est appliquée à cette partie des données. [0121] Dans un mode de réalisation, la fonction de hachage est appliquée à toutes les données numériques du document numérique DOC'. [0122] Dans un mode de réalisation, les données numériques sont dans un format pré- déterminé, par exemple codées sur des octets. [0123] Dans une variante, les données numériques sont cryptées avec un algorithme de cryptage prédéterminé, et la fonction de hachage est appliquée sur les données cryptécs. [0124] La fonction cryptographique de hachage peut être la même que celle appliquée à l'étape 52, ou différente. Une valeur dc hachage des données du document numérique est obtenue. Dans une variante, le hachage est réalisé avec salage cryptographique pour renforcer la sécurité. [0125] Les étapes 54 et 56 peuvent être effectuées dans l'ordre inverse ou simultanément si les processeurs de calcul le permettent. [0126] Ensuite, la hase de données maître est verrouillée à l'étape de verrouillage 58, c'est-à-dire que l'écriture des données dans la hase dc données maître est réservée au processus courant. [0127] Le verrouillage permet de séqucnccr l'enregistrement d'une série de documents nu- mériques traités successivement et d'associer des numéros d'enregistrement dans l'ordre de traitement des documents. [0128] À l'étape 60, qui est optionnelle, une signature de document numérique préalable est obtenue. Par exemple, si le document à traiter DOC, est le n-ième document traité, donc le numéro d'enregistrement de sa signature dans la base de données maître sera le numéro « n », à l'étape 60 une signature de document SIG-DOC(n-q) est extraite, q étant un entier compris entre 1 et n. [0129] Par exemple, c'est la dernière signature enregistrée, Sign(n-1), qui est extraite et utilisée. [0130] La signature du document DOC,, est ensuite calculée lors d'une étape de calcul 62, à partir de la valeur de hachage des données du document numérique, de la ou des valeurs de hachage des métadonnées et de la signature Sign,' [0131] Dans un mode de réalisation, ces valeurs sont concaténées dans un ordre pré- déterminé, et une fonction cryptographique de hachage, avec ou sans salage, notée HashO, est appliquée : [0132] S ign(n)= Has h (H1, ,Hp,H(clata),Sign(n -1)) [0133] La signature du document numérique DOC' est enregistrée (étape d'enregistrement 64) dans la base de données maître, par exemple dans un tableau, et est associée son numéro d'enregistrement. [0134] Dans un mode de réalisation, le tableau d'enregistrement est multidimensionnel, et au 13 moins un sous-ensemble des valeurs de hachage y est également enregistré en association avec le numéro d'enregistrement de DOC'. [0135] La base de données maître est déverrouillée à l'étape de déverrouillage 66, qui est suivie des étapes optionnelles d'envoi 68 de la signature du document numérique DOC ' à un ou plusieurs tiers, 70 d'envoi des métadonnées ou des valeurs de hachage des métadonnées à un ou plusieurs tiers et 72 d'affichage de la signature calculée à destination d'un utilisateur. [0136] La figure 4 est un synoptique des principales étapes d'un procédé de vérification d'intégrité de documents numériques selon un mode de réalisation de l'invention. [0137] Cc procédé comporte une première étape 80 de connexion d'un client au système de vérification. Le client peut être un utilisateur ou une application utilisatrice. [0138] Un identifiant de la signature à vérifier, par exemple son numéro d'enregistrement dans la hase de données maître, est fourni par le client lors d'une étape 82 d'indication de la signature à vérifier. [0139] En variante, c'est la signature du document numérique dont l'intégrité est à vérifier qui est fournie par le client à l'étape 82, et le numéro d'enregistrement correspondant est obtenu à partir de la signature. [0140] Le système vérifie, lors d'une étape de vérification 84, l'existence d'un enre- gistrement correspondant dans la hase de données maître, ou chez un tiers de confiance effectuant un enregistrement des signatures. La signature du document numérique, ainsi que, optionnellement, une signature de document numérique préalable sont obtenues à l'étape 84. [0141] Le document numérique ou les données numériques du document correspondant sont obtenues à l'étape 86, et les métadonnées ou les valeurs de hachage des métadonnées sont obtenues à l'étape d'obtention de métadonnées 88. [0142] Dans un mode de réalisation, les données numériques et les métadonnées, ou une partie de ces métadonnées, sont fournies par le client, et les valeurs de hachage sont calculées de manière analogue au calcul effectué à l'étape 54 de la figure 3. [0143] En variante, le document numérique est obtenu à partir d'une base de données de stockage, et au moins une partie des métadonnées est obtenue à partir de tiers de confiance, les métadonnées ayant été enregistrées en association avec le numéro d'enregistrement de la signature ou un autre identifiant du document. [0144] Ainsi, avantageusement, le système de vérification n'a pas besoin de stocker toutes les données utilisées pour la vérification. [0145] À l'étape 90 de re-calcul de signature le système met en oeuvre un calcul de signature à partir des données obtenues dans les étapes 84, 86, 88, sur la base de l'algorithme de calcul de signature : les valeurs de hachage, avec ou sans salage et en utilisant les mêmes fonctions cryptographiques qu'à la génération de signature sont appliquées, et 14 le calcul de signature décrit ci-dessus en référence à l'étape de calcul 62 est appliqué. [0146] La signature de document obtenue est comparée à l'étape de comparaison 92 à la signature, extraite de la hase de données maître ou obtenue d'un autre système tiers, et une validation (étape de validation d'intégrité 94) de l'intégrité des données numériques ou une invalidation de l'intégrité (étape 96) découle du résultat de la comparaison. [0147] La validation a lieu lorsque la signature calculée à l'étape 90 est identique à celle extraite de la hase de données maître ou obtenue d'un autre système tiers. [0148] Diverses variantes de réalisation des procédés de calcul de signature et de véri- fication de l'intégrité des données sont envisageables. [0149] Dans une des variantes, un lien est ajouté entre numéros d'enregistrement de signature correspondant à un même document numérique, mémorisé dans des formats différents, par exemple des formats de cryptage différents. [0150] La figure 5 est un synoptique des principales étapes d'un procédé de calcul de signature de documents numériques selon un deuxième mode de réalisation de l'invention, dans lequel un document est mémorisé sous forme cryptée. [0151] Avantageusement, ce mode de réalisation permet par la suite de vérifier l' intégrité des données numériques, même après mise en oeuvre d'un nouvel algorithme de cryptagc. [0152] Le procédé comporte, dans ce mode de réalisation, une étape 100 d'obtention d'un premier numéro d'enregistrement no et d'une première signature ou signature initiale, calculée pour le document numérique à traiter, le document numérique à traiter ayant été mémorisé en format crypté avec un premier algorithme de cryptage. [0153] L'étape 100 est suivie d'une étape 102 d'application d'un deuxième algorithme de cryptage au document numérique qui est déjà crypté selon un premier algorithme de cryptage. Le résultat de ce deuxième cryptage est mémorisé à l'étape 104 en tant que document numérique à traiter. [0154] Ensuite à l'étape 106 une fonction de hachage, avec ou sans salage, est appliquée au document numérique à traiter. [0155] À l'étape 108, les métadonnées associées au document numérique pour calculer la signature initiale sont obtenues, par exemple en utilisant le premier numéro d'enregistrement nn. La première valeur signature enregistrée au numéro d'enregistrement nn est ajoutée aux métadonnées. [0156] Une deuxième signature du document crypté avec le deuxième algorithme de cryptage est calculée à l'étape 110, le calcul étant basé sur les métadonnées extraites à l'étape 108 enrichies de la première signature et sur la valeur de hachage des données obtenue à l'étape 106. De préférence, le calcul d'une deuxième signature du document est analogue au calcul de signature décrit ci-dessus en référence à l'étape 62 de la figure 3. [0157] La deuxième signature est mémorisée à l'étape de mémorisation 112 dans la hase de données maître, et associée à un deuxième numéro d'enregistrement n1. De plus, une association au premier numéro d'enregistrement no est également mémorisée dans la hase de données maître. [0158] Par la suite, il n'est plus nécessaire de préserver le document crypté avec le premier algorithme de cryptage devenu obsolète, niais il faut conserver l'enregistrement des métadonnées associées à cc document crypté avec le premier algorithme de cryptagc pour permettre la vérification complète, à savoir, que le document recrypté correspond bien au document initial crypté avec le premier algorithme de cryptagc. [0159] Par conséquent, le document crypté avec le premier algorithme de cryptagc peut être effacé de la hase de données. La validation de la deuxième signature du document initial en lien avec le premier numéro d'enregistrement permet de valider l'intégrité des données, en d'autres termes de prouver que le document crypté avec le deuxième algorithme de cryptage correspond au document initial crypté avec le premier algorithme de cryptage, ce qui donne au procédé la capacité d'évoluer avec l'état de l'art cryptographique et d'être insensible à la casse d'un algorithme utilisé lors d'une étape de réalisation. [0160] Selon une variante, l'invention permet de vérifier et de certifier numériquement des évènements associés à un document numérique, tout en conservant le document numérique secret, donc sans avoir à accéder au contenu, c'est-à-dire aux données numériques, qui restent secrètes. [0161] De tels évènements sont par exemple : la création du document, une modification du document, une consultation du document. Chaque évènement a une date associée. Plusieurs évènements de modification ou de consultation peuvent être enregistrés. [0162] Les évènements sont considérés comme étant des métadonnées associées au document à traiter. [0163] Dans une application bancaire ou comptable, d'autres métadonnées sont par exemple un numéro de compte ou un numéro d'utilisation. [0164] Pour la certification numérique d'évènements associés à un document numérique, sans accéder aux données numériques, les étapes suivantes sont envisagées : [0165] -obtenir un numéro d'enregistrement associé à un enregistrement d'une signature associée au document numérique préalablement enregistrée de la chaîne de vérification; [0166] - obtenir un numéro d'enregistrement et une valeur de hachage du document numérique sans accéder aux données numériques du document numérique; [0167] - obtenir une ou plusieurs métadonnées associées au document numérique, lesdites métadonnées comprenant un évènement associé comprenant une date de création ou de 16 modification ou de consultation dudit document, des numéros de compte ou un numéro d'utilisateur, et calculer au moins une valeur de hachage associée; [0168] - stocker dans une hase de données les métadonnées et leurs valeurs de hachage; [0169] - calculer une signature de l'évènement lié audit document en fonction des valeurs de hachage et des métadonnécs, et transmettre la signature calculée à un tiers de confiance. [0170] Lors de la vérification, la certification numérique d'évènement associé au document numérique comprend : [0171] - transmettre la valeur de hachage du document et les métadonnées du ou des évènement(s) à vérifier; [0172] - calculer la signature du ou des évènements, selon la même méthode de calcul de signature ; [0173] - comparer les signatures avec celles enregistrées par le tiers de confiance, si elles existent, certifier le ou les évènements associés au document. 17