Brevet FR3059451A1 — publié le 20180601

Procédés de caviardage d'un document original ou de vérification de l'authenticité d'un document final DOMAINE TECHNIQUE GENERAL La présente invention concerne le domaine de l'authentification, et en particulier un procédé de caviardage sécurisé d'un document. ETAT DE L'ART Il est courant de devoir fournir des documents comme justificatifs administratifs tels qu'une facture d'électricité (justificatif de domicile), un bulletin de salaire (justificatif d'emploi), un extrait de compte bancaire (justificatif de revenus) dans certaines démarches de tous les jours. Ces documents permettent de fournir une preuve qui est considérée comme valide car l'émetteur est supposé de confiance. Toutefois, on constate qu'ils peuvent en outre divulguer des informations sensibles, inutiles pour la démarche, et que l'utilisateur souhaiterait ne pas révéler. Par exemple, sur une facture d'électricité figure le nom de son conjoint alors que seule l'adresse est importante, sur un bulletin de salaire figure le montant du salaire alors que seul le nom de la société est important, et sur un extrait de compte bancaire figure le détail de toutes les opérations effectuées, alors que seul le solde est important. Il est tentant que vouloir modifier le document pour cacher ces informations, en particulier en noircissant les zones associées. On appelle cela du « caviardage » de document (ce terme est typiquement utilisé pour les documents confidentiels qui sont révélés au public par exemple lors d'un procès). Or, si cela est fait par l'utilisateur ou par une tierce partie autre que l'émetteur du document, un doute sur la validité du document ou sur le fait que seules les parties noircies aient été modifiées peut être jeté : on peut 3059451 2 par exemple avoir caché le nom du conjoint mais aussi avoir modifié le nom qui figurait à l'origine sur la facture pour s'accréditer une fausse adresse. Dès lors, il faut trouver un moyen de continuer à garantir l'authenticité du document original, tout en ne fournissant que le document modifié. 5 On connait le Projet de sécurisation de documents administratifs pour éviter l'usurpation d'identité ou la fraude, initié par l'agence nationale des titres sécurisés (ANTS) et nommé 2D-Doc (https://ants.gouv.fr/Lessolutions/2D-Doc). 10 Dans ce projet, un code-barres 2D est inséré dans un document qui sera utilisé par l'administration, ce code-barres certifie l'intégrité et l'authenticité du document. En effet, il contient diverses informations à propos du document (son contenu, son émetteur, sa date d'émission, etc.). Ces informations sont ensuite condensées dans un condensat, qui en 15 garantit l'intégrité, et sont signées numériquement par l'émetteur du document, ce qui en garantit l'authenticité. L'Etat maintient une liste d'émetteurs reconnus dont on peut vérifier l'authenticité de la signature. La solution 2D-Doc permet de garantir l'authenticité et l'intégrité d'un document, et même si ce n'est encore pas prévu on peut imaginer requérir 20 certaines modifications pour des raisons de préservation de la vie privée au moment de l'émission du document (avant la génération et l'apposition du code-barre). En effet toute modification ultérieure du document rend sa signature caduque (puisqu'elle ne correspondrait plus au document). Cela permettrait de résoudre d'une certaine manière le problème 25 mais resterait très peu pratique car toute modification ultérieure reste impossible. A noter qu'on connait des fonctions de hachage dites robustes, c'est- à-dire qui donnent un résultat proche (selon une certaine distance) du condensat du document original si on a appliqué à ce document une 30 transformation définie. On reçoit le condensat du document original, la signature de ce condensat et le condensat modifié. La vérification consiste à valider la signature du condensat reçu, calculer le condensat du document 3059451 3 modifié et vérifier que ce condensat du document modifié est suffisamment proche du condensat du document original. On pourrait s'en servir pour améliorer le code-barre 2D. Cependant, ces fonctions ont des taux de fausse acceptance non 5 négligeables dans la mesure où elles sont construites pour accepter des transformations qui ne permettent pas de noircir une zone donnée. Ainsi, non seulement le noircissement ne constitue pas une transformation qui donnerait un condensat suffisamment proche, mais surtout d'autres transformations vraiment frauduleuses pourraient être acceptées comme 10 légitimes car elles donneraient un condensat suffisamment proche du condensat original. Il serait par conséquent souhaitable de disposer d'un nouveau procédé de retrait vérifiable d'informations sensibles sur des documents 15 administratifs, qui soit fiable (impossibilité de procéder à des modifications de nature à falsifier le document), efficace (peu de temps et de puissance de calcul nécessaires aussi bien pour retirer les informations sensibles que pour vérifier l'authenticité du document ainsi modifié) et ergonomique (possibilité de retirer des informations autant de fois que l'on souhaite et 20 quand on le souhaite). PRESENTATION DE L'INVENTION Selon un premier aspect, la présente invention concerne un procédé 25 de caviardage d'un document original constitué d'une matrice de pixels chacun défini par un vecteur d'au moins une valeur numérique, le procédé comprenant la mise en oeuvre par des moyens de traitement de données d'un équipement, d'étapes de : (a) Détermination d'un ensemble de pixels de ladite matrice 30 correspondant à une ou plusieurs zones à caviarder du document original ; 3059451 4 (b) Génération d'un document final correspondant au document original dans lequel les vecteurs définissant les pixels dudit ensemble sélectionné sont remplacés par un vecteur arbitraire ; (c) génération d'une preuve à divulgation nulle de connaissances du 5 fait que les matrices de pixels du document original et du document final ne différent que par des pixels appartenant audit ensemble sélectionné. Selon d'autres caractéristiques avantageuses et non limitatives : 10 - le document original est associé à un condensat obtenu par une fonction de hachage donnée, ladite preuve à divulgation nulle de connaissance générée à l'étape (c) étant également une preuve du fait que ledit condensat est bien le résultat de l'application de ladite fonction de hachage donnée au document original ; 15 - le document original et ledit condensat sont fournis par un organisme émetteur, le procédé comprenant en outre la vérification préalable par lesdits moyens de traitement de données que ledit condensat est bien le résultat de l'application de ladite fonction de hachage donnée au document original ; 20 - ledit condensat est signé par ledit organisme émetteur ; - l'étape (a) comprend la définition préalable de chaque zone à caviarder du document original sous la forme d'une figure géométrique plane, ledit ensemble de pixels correspondant à une ou plusieurs zones à caviarder du document original étant déterminé comme l'ensemble des pixels de la 25 matrice inclus dans au moins une desdites formes géométriques planes ; - lesdites formes géométriques planes sont des rectangles chacun définis par quatre paramètres ; - au moins un rectangle définissant une zone à caviarder du document original est directement sélectionné par l'utilisateur au moyen d'une 30 interface de l'équipement, l'étape (a) comprenant la détermination des valeurs desdits quatre paramètres définissant le rectangle sélectionné ; 3059451 5 - une chaine de caractère à caviarder du document original est sélectionnée par l'utilisateur au moyen d'une interface de l'équipement, l'étape (a) comprenant la détermination des valeurs desdits quatre paramètres du ou des rectangles de l'image nécessaires pour recouvrir 5 ladite chaine de caractère sectionnée ; - la preuve à divulgation nulle de connaissances générée à l'étape (c) est un objet cryptographique de type zkSNARK ; - ladite fonction de hachage donnée est une fonction de hachage basée sur la somme de sous-ensembles permettant de préserver l'efficacité de la 10 génération de la preuve. Selon un deuxième aspect, l'invention concerne un procédé de vérification de l'authenticité d'un document final obtenu par la mise en oeuvre sur un document original par un procédé de caviardage selon le 15 premier aspect, le document final étant associé à ladite preuve à divulgation nulle de connaissances du fait que les matrices de pixels du document original et du document final ne diffèrent que par des pixels appartenant audit ensemble sélectionné, le procédé comprenant la mise en oeuvre par des moyens de traitement de données d'un serveur, d'une étape de 20 vérification que ladite preuve à divulgation nulle de connaissances est valide. Selon d'autres caractéristiques avantageuses et non limitatives : - le document final est en outre associé à un condensat du document 25 original obtenu par une fonction de hachage donnée, ladite preuve à divulgation nulle de connaissances étant également une preuve du fait que ledit condensat est bien le résultat de l'application de ladite fonction de hachage donnée au document original ; - ledit condensat est signé par un organisme émetteur du document 30 original, le procédé comprenant en outre une étape de vérification de la validité de ladite signature. 3059451 6 Selon un troisième et un quatrième aspect, l'invention propose un produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon le premier ou le deuxième aspect de caviardage d'un document original ou de vérification de l'authenticité d'un 5 document final ; et un moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé selon le premier ou le deuxième aspect de caviardage d'un document original ou de vérification de l'authenticité d'un document final. 10 PRESENTATION DES FIGURES D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de 15 réalisation préférentiel. Cette description sera donnée en référence en la figure 1 annexée qui est un schéma d'une architecture pour la mise en oeuvre des procédés selon l'invention. DESCRIPTION DETAILLEE 20 Architecture En référence à la figure 1, est proposé un procédé de caviardage d'un document original mis en oeuvre au sein d'une architecture telle que 25 représentée. On verra selon un deuxième aspect un procédé de vérification de l'authenticité d'un document ainsi caviardé, qu'on désignera dans la présente description comme document final. Par « caviardage », on entend la définition classique de ce terme, à savoir le retrait d'informations considérées sensibles du document, 30 typiquement en les noircissant. Un caviardage ne fait que diminuer la quantité d'information contenue dans le document, elle n'en rajoute ne n'en modifie pas. En cela le document n'est pas falsifié. 3059451 7 Le présent procédé est essentiellement mis en oeuvre via un équipement 1 équipé de moyens de traitement de données 11 (un ou plusieurs processeurs), typiquement un poste de travail personnel d'un utilisateur. L'équipement 1 peut en outre comprendre des moyens de 5 stockage de données 12 (une mémoire) pour le stockage des documents original/final, et une interface utilisateur 3 (un écran, un clavier, une souris, etc.). On comprendra que l'équipement 1 peut tout à fait être un serveur d'un tiers de confiance auquel l'utilisateur accède à distance via un terminal (par exemple via smartphone). L'équipement 1 joue comme on va 10 l'expliquer le rôle de « prouveur » L'équipement 1 peut être connecté en particulier via un réseau 2 tel qu'internet à un premier serveur 10a fournissant ledit document original. Le premier serveur 10a est ainsi typiquement celui d'un organisme émetteur (par exemple le serveur d'une banque si le document original est un extrait 15 de compte). Comme l'on verra, de façon préférée l'organisme émetteur fournit également à l'équipement 1 un condensat du document original, appelé également « empreinte cryptographique » ou « haché » (« hash » en anglais), généré par des moyens de traitement de données 11a du premier serveur 10a par application d'une fonction de hachage donnée au document 20 original. De façon encore plus préférée, ledit condensat est signé par l'organisme émetteur de sorte à garantir son authenticité. Lorsque le document original et ledit condensat sont fournis par un organisme émetteur, le procédé comprend en outre préférentiellement la vérification préalable par lesdits moyens de traitement de données 11 que 25 ledit condensat est bien le résultat de l'application de ladite fonction de hachage donnée au document original. Comme représenté par la figure 1, l'équipement 1 peut également être connecté (toujours via le réseau 2) à un deuxième serveur 10b qui est 30 typiquement le serveur d'un organisme demandeur du document comme justificatif (par exemple le serveur d'une mairie), ce deuxième serveur 10b pouvant être amené à mettre en oeuvre via ses propres moyens de 3059451 8 traitement de données 11 b le procédé de vérification de l'authenticité d'un document final caviardé par l'équipement 1. Le serveur 10b joue comme on va l'expliquer le rôle de « vérifieur » 5 Procédé de caviardage Le présent procédé de caviardage est mis en oeuvre par les moyens de traitement de données 11 de l'équipement 1 sur le document original, soit reçu du premier serveur 10a soit directement chargé par l'utilisateur. 10 Pour le présent procédé, on considère que le document original est constitué d'une matrice de pixels chacun défini par un vecteur d'au moins une valeur numérique, i.e. que le document est représenté par une image matricielle (en anglais « bitmap »), par opposition aux images vectorielles. A noter qu'un document papier est numérisé sous forme d'une image 15 matricielle lorsqu'il est passé dans un scanner. De façon préférée, l'image est en noir et blanc (niveau de gris), chaque composante de la matrice est un vecteur de dimension 1, i.e. prend une valeur numérique entre 0 et 255, 0 étant un pixel noir et 255 étant un pixel blanc. Dans le cas d'une image couleur, on prend par exemple un 20 vecteur de dimension 3 de type RGB (les trois valeurs numériques représentent respectivement les taux de rouge, vert et bleu du pixel entre 0 et 255). On comprendra que l'homme du métier n'est pas limité à ces représentations d'une image. Dans la suite de la présente description on prendra l'exemple d'un 25 document original en niveaux de gris (chaque pixel est représenté par une seule valeur numérique). Le présent procédé vise à réaliser un caviardage « vérifiable » du document, c'est-à-dire pour lequel il peut être prouvé a posteriori (notamment par le deuxième serveur 10b) qu'il n'y a pas eu falsification que 30 le retrait d'informations sensibles n'a bien fait que retirer de l'information. Pour cela, on utilise un protocole cryptographique générant une « preuve » de l'authenticité du document final. 3059451 9 Le protocole Pinocchio présenté dans la publication « Bryan Parno, Craig Gentry, Jon Howell, and Mariana Raykova, Pinocchio: Nearly Practical Verifiable Computation, in Proceedings of the IEEE Symposium on Security and Privacy, IEEE, 21 May 2013 » a été un des premiers 5 protocoles de calcul vérifiable permettant à l'exécutant de calculer de manière vérifiable l'application d'une fonction quelconque et au donneur d'ordre de vérifier la preuve associée en un temps de calcul inférieur à celui nécessaire pour réaliser le calcul lui-même. Une application du protocole Pinocchio est donné par le protocole 10 PhotoProof, présenté dans la publication « Assa Naveh, Eran Tromer, PhotoProof: cryptographic image authentication for any set of permissible transformations, proc. IEEE Symposium on Security & Privacy (Oakland) 2016, 255-271, IEEE, 2016 » qui permet de fournir une preuve qu'une image provenant d'un appareil photographique n'a été modifiée que selon 15 un ensemble de transformations admissibles prédéfinies. Toutefois, ce procédé présente l'inconvénient majeur de nécessiter une puissance de calcul importante du côté de l'exécutant. Le coût de production de la preuve d'un calcul par ce protocole est en effet supérieur de plusieurs ordres de grandeur à celui du calcul lui-même. 20 Ainsi, ce protocole apparait extrêmement lourd et complètement inadapté pour le présent procédé de caviardage, car même si le temps de vérification d'une preuve d'authenticité d'une image est seulement de 0,5 secondes, réaliser la preuve d'authenticité d'une photographie de taille 128x128 pixels (à titre de comparaison, un document A4 utilisé comme 25 justificatif a généralement une taille de 740x500 voire plus de 1000x700 pixels) avec 5 transformations admissibles demande 300 secondes, et la clé dont on se sert pour réaliser la preuve fait plus de 2 Go. Le présent procédé s'affranchit de ces difficultés en permettant 30 comme on va le voir de générer une preuve numérique de petite taille constante (moins de 500 octets, soit 4 millions de fois moins que pour 3059451 10 PhotoProof) en quelques secondes, et sans révéler quoi que ce soit sur les informations sensibles retirées. Dans une première étape (a), les moyens de traitement de données 11 déterminent un ensemble de pixels de ladite matrice correspondant à 5 une ou plusieurs zones à caviarder du document original. Plus précisément, via l'interface 13, l'utilisateur sélectionne une ou plusieurs zones à caviarder du document original, et les moyens de traitement 11 déterminent en conséquence l'ensemble des pixels correspondant de la matrice. 10 L'homme du métier pourra s'appuyer sur un des nombreux algorithmes de sélection d'une partie d'une image matricielle, mais de façon avantageuse (pour l'efficacité maximale du procédé), chaque zone est définie sous la forme d'une figure géométrique plane, par exemple choisie dans une liste de figures prédéterminées (polygones, ellipses, etc.), par 15 exemple placée par un outil de dessin. Ledit ensemble de pixels correspondant à une ou plusieurs zones à caviarder du document original est alors déterminé comme l'ensemble des pixels de la matrice inclus dans au moins une desdites formes géométriques planes De façon préférée, dans la mesure où chaque zone à caviarder est 20 théoriquement un texte, la figure géométrique plane est un rectangle (de dimensions personnalisables). Tout rectangle est en effet défini par seulement quatre paramètres (soit les coordonnées de deux angles opposés, soit les coordonnées d'un angle, un paramètre de largeur et un paramètre de longueur). 25 Mathématiquement, si l'image est constituée d'une matrice de n*m pixels (i.e. l'image / = {Pii}[[1;n ie 1],je[[1;m]]), et si on prévoit qu'un rectangle est défini par les coordonnées des angles en haut à gauche et en bas à droite (respectivement notées xi, y1, x2, y2 avec 1 REVENDICATIONS1. Procédé de caviardage d'un document original constitué d'une matrice de pixels chacun défini par un vecteur d'au moins une valeur numérique, le procédé comprenant la mise en oeuvre par des moyens de traitement de données (11) d'un équipement (1), d'étapes de : (a) Détermination d'un ensemble de pixels de ladite matrice correspondant à une ou plusieurs zones à caviarder du document original ; (b) Génération d'un document final correspondant au document original dans lequel les vecteurs définissant les pixels dudit ensemble sélectionné sont remplacés par un vecteur arbitraire ; (c) génération d'une preuve à divulgation nulle de connaissances du fait que les matrices de pixels du document original et du document final ne diffèrent que par des pixels appartenant audit ensemble sélectionné. 2. Procédé selon la revendication 1, dans lequel le document original est associé à un condensat obtenu par une fonction de hachage donnée, ladite preuve à divulgation nulle de connaissance générée à l'étape (c) étant également une preuve du fait que ledit condensat est bien le résultat de l'application de ladite fonction de hachage donnée au document original. 3. Procédé selon la revendication 2, dans lequel le document original et ledit condensat sont fournis par un organisme émetteur, le procédé comprenant en outre la vérification préalable par lesdits moyens de traitement de données (11) que ledit condensat est bien le résultat de l'application de ladite fonction de hachage donnée au document original. 3059451 22 4. Procédé selon la revendication 3, dans lequel ledit condensat est signé par ledit organisme émetteur. 5 5. Procédé selon l'une des revendications 1 à 4, dans lequel l'étape (a) comprend la définition préalable de chaque zone à caviarder du document original sous la forme d'une figure géométrique plane, ledit ensemble de pixels correspondant à une ou plusieurs zones à caviarder du document original étant déterminé comme l'ensemble des 10 pixels de la matrice inclus dans au moins une desdites formes géométriques planes. 6. Procédé selon la revendication 5, dans lequel lesdites formes géométriques planes sont des rectangles chacun définis par quatre 15 paramètres. 7. Procédé selon la revendication 6, dans lequel au moins un rectangle définissant une zone à caviarder du document original est directement sélectionné par l'utilisateur au moyen d'une interface (13) de 20 l'équipement (1), l'étape (a) comprenant la détermination des valeurs desdits quatre paramètres définissant le rectangle sélectionné. 8. Procédé selon l'une des revendications 6 et 7, dans lequel une chaine de caractère à caviarder du document original est 25 sélectionnée par l'utilisateur au moyen d'une interface (13) de l'équipement (1), l'étape (a) comprenant la détermination des valeurs desdits quatre paramètres du ou des rectangles de l'image nécessaires pour recouvrir ladite chaine de caractère sectionnée. 30 9. Procédé selon l'une des revendications 1 à 8, dans lequel la preuve à divulgation nulle de connaissances générée à l'étape (c) est un objet cryptographique de type zkSNARK. 3059451 23 10. Procédé selon l'une des revendications 1 à 9, dans lequel ladite fonction de hachage donnée est une fonction de hachage basée sur la somme de sous-ensembles permettant de préserver l'efficacité 5 de la génération de la preuve. 11. Procédé de vérification de l'authenticité d'un document final obtenu par la mise en oeuvre sur un document original par un procédé de caviardage selon l'une des revendications 1 à 10, le document final étant 10 associé à ladite preuve à divulgation nulle de connaissances du fait que les matrices de pixels du document original et du document final ne diffèrent que par des pixels appartenant audit ensemble sélectionné, le procédé comprenant la mise en oeuvre par des moyens de traitement de données d'un serveur (10b), d'une étape de vérification que ladite preuve à 15 divulgation nulle de connaissances est valide. 12. Procédé selon la revendication 11, dans lequel le document final est en outre associé à un condensat du document original obtenu par une fonction de hachage donnée, ladite preuve à divulgation 20 nulle de connaissances étant également une preuve du fait que ledit condensat est bien le résultat de l'application de ladite fonction de hachage donnée au document original. 13. Procédé selon la revendication 12, dans lequel ledit 25 condensat est signé par un organisme émetteur du document original, le procédé comprenant en outre une étape de vérification de la validité de ladite signature. 14. Produit programme d'ordinateur comprenant des 30 instructions de code pour l'exécution d'un procédé selon l'une des revendications 1 à 13 de caviardage d'un document original ou de vérification de l'authenticité d'un document final. 3059451 24 15. Moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé selon l'une des 5 revendications 1 à 13 de caviardage d'un document original ou de vérification de l'authenticité d'un document final.