Method for protecting graphic data from counterfeiting and alteration

By using a method that combines human-readable and machine-readable graphic symbols with error correction data, the method effectively addresses the inefficiencies of existing document protection methods, enabling reliable authentication and detection of alterations.

JP7619964B2Active Publication Date: 2025-01-22SICPA HOLDING SA
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2021570944
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-06-03
Filing Date
2020-05-28
Publication Date
2025-01-22
Estimated Expiration
2040-05-28

AI Technical Summary

Technical Problem

Existing methods for protecting digital and printed documents from forgery and tampering are inadequate, as they rely on visual comparisons of hash values which can be affected by scanning variations and require large code sizes, making them inefficient and intrusive.

Method used

A method involving a finite set of graphic symbols, such as text characters, is used to create human-readable and machine-readable representations, with error correction data, allowing for easy verification by users and detection of alterations.

Benefits of technology

This approach ensures reliable detection of changes in graphic symbols while avoiding the need for large codes and visual comparisons, providing a robust and efficient method to authenticate documents.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007619964000002
    Figure 0007619964000002
  • Figure 0007619964000003
    Figure 0007619964000003
  • Figure 0007619964000004
    Figure 0007619964000004
Patent Text Reader

Abstract

The present invention protects the content of digital or physical documents from counterfeiting by providing a support with reproducible and verifiable data, including a verification barcode, making it possible to automatically detect changes in the composition of graphic symbols (such as text) provided on the support relative to the original composition, while eliminating redundancies between the data in the barcode and the graphic symbols, thus solving the problem of barcode size when the size of the data of these graphic symbols is large.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001]

[0001] The present invention relates to the technical field of security and fraud prevention methods and systems, in particular the protection of data, such as text data of important documents (digitized or printed), against forgery or tampering. [Background technology]

[0002]

[0002] The problems of counterfeiting and falsification of digital files or printed documents are well known, serious and growing. Examples of falsification of data marked on original (digital or physical) documents such as identity cards or diplomas are well known, and the concerns are even worse when considering digital copies of original (presumably genuine) digital / physical documents. Merely tracking identifiers such as serial numbers or including some digital watermarks is generally a weak countermeasure, since counterfeiters can easily replicate such numbers or digital watermarks as well.

[0003]

[0003] There are many known techniques for protecting the content of digital or physical documents against counterfeiting. For example, a hash of the digital data is obtained from an original digital document or from a digitized version of an original physical document (e.g. by scanning the document and extracting the text data via OCR scanner software) and the hash value is stored in a ledger (e.g. a simple database, or a blockchain). Afterwards, changes in the data content can be detected by scanning the data content of the document under scrutiny, which is visually represented on a physical support (e.g. the support may be a piece of paper with data printed on it), calculating a hash value of said data content, and comparing the calculated hash value with the hash value stored in the ledger corresponding to the original document. However, a drawback of this method is that due to changes in the visual representation on the support of the document content, the calculated hash value may differ from the stored hash value, even if this document is genuine. This difference may be due to the way the scanning operation is performed or it may depend on the type of scanner used (two different scanners may give two opposite conclusions). This also applies to digital documents displayed on a support such as a (e.g. computer) screen. Even if the document content is authentic, scanning and verifying the displayed content will generate a different hash value than the stored hash value if the displayed content has been changed. Thus, in practice, scanning a document and calculating a hash value of the captured image does not work, because every time a document is scanned, a different hash is typically generated. Using an OCR ("Optical Character Recognition") scanner before calculating the hash value does not solve the above problem, since no OCR system works 100% of the time. For example, the calculated hash will be different if a dot becomes a comma, or if the letter "l" (i.e. L) becomes a "1" (i.e. 1).

[0004]

[0004] Existing techniques for protecting paper documents (e.g., certificates, diplomas, contracts, etc.) where little information is extracted from the document include creating a 2D barcode (such as a QR code), placing the extracted information in the 2D barcode, and printing it on the document. The same result is obtained every time the 2D barcode is read, but it has the disadvantage that the information contained in the barcode needs to be compared with the information printed on the document. Furthermore, if one wants to protect, for example, a full-text page, the full text needs to be put into the barcode, which makes the barcode huge and takes up a lot of space on the page, which is perceived as intrusive by the reader (and thus, in practice, limits the size of the full text that can be encoded), and it also requires (and is laborious) to compare several thousand characters between the printed text and the text decoded from the barcode. US Pat. No. 6,047,093, EP 2,048,867 and US 2004 / 145661 are known for identifying errors in text printed on a document and forming information about the same. Summary of the Invention

[0005]

[0005] The present invention aims to solve the aforementioned drawbacks of the prior art with regard to counterfeiting and falsification of digital files or printed documents, by enabling automatic detection of any changes in a composition of marked (respectively displayed) graphic symbols (e.g. text) with respect to the original composition, in particular by eliminating redundancy between the data in the code and the printed (respectively displayed) text and by solving the problem of the code being too large in size when the data size of the printed (respectively displayed) text is large, while avoiding the burden of visually comparing the text in the code with the printed (respectively displayed) text.

[0006]

[0006] The present invention therefore aims to provide a reliable and robust method of generating a graphic symbol (e.g. a text character or glyph) visible on a material support such as a display (e.g. a computer screen) or a substrate (e.g. a piece of paper, a label, a package), the conformity of which with an authentic reference graphic symbol can be easily checked by reading said visible graphic symbol, avoiding the drawbacks of the prior art. The graphic symbol is in a human-readable format and is taken from a given finite set of graphic symbols (e.g. text characters of an alphabet). Thus, the human-readable graphic symbol displayed or marked on a substrate according to the present invention can be verified by a user and any attempt to modify any part of the graphic symbol can be detected.

[0007]

[0007] The present invention therefore relates to a "marking method", i.e. a method for generating verifiable graphic data on a support by using a given finite set of graphic symbols, the support being a display or a substrate, comprising the following steps: storing in a memory of a processing unit a graphic data block comprising a digital representation of the graphic symbol; processing, by a processing unit, digital representations of the graphic symbols of the stored graphic data blocks using an error correction code programmed into the processing unit to generate error correction data in a corresponding error correction data block; formatting the graphic data blocks and the error correction data blocks by a processing unit to obtain corresponding verifiable graphic data blocks including a human readable graphic data block and a machine readable error correction data block, respectively, to provide, in the human readable graphic data block, a human readable representation of the graphic symbols of the graphic data block and, in the machine readable error correction data block, a machine readable representation of the error correction data of the error correction data block, separate from the human readable representation of the graphic symbols of the graphic data block, (i) displaying, on a display connected to the processing unit, a human-readable graphic symbol and a corresponding machine-readable representation of the error correction data of the obtained verifiable graphic data block; or (ii) marking, via a marking device having a control unit connected to the processing unit and operable to control the marking operation based on data received from the processing unit, a human-readable graphic symbol and a corresponding machine-readable representation of the error correction data of the verifiable graphic data block received from the processing unit, on the substrate, thereby providing a human-readable graphic symbol with the corresponding machine-readable error correction data, which is verifiable by a user, on the substrate; The present invention relates to a method comprising the steps of:

[0008]

[0008] The machine-readable representation of the error correction data may be any alphanumeric or barcode representation (1D barcode or 2D barcode such as DataMatrix code or QR code). Preferably, the barcode may be a conventional PDF417 linear barcode that can be read by a simple linear scanner scanning over the barcode. Preferably, the graphic symbols may be text characters and the finite set of graphic symbols may be an alphabet. Preferably, the marking device may be a printer (e.g. an inkjet printer) and the substrate may be a sheet of paper or a label. Also preferably, the error correction code may be a Reed-Solomon error correction code.

[0009]

[0009] In a first variant, the aforementioned marking method comprises the steps of: calculating, using a hash function programmed on the processing unit, a hash value of the graphic data block, a hash value of the error correction data block, or a hash value of any part of the data block resulting from the concatenation of the graphic data block and the error correction data block; storing the calculated hash value in the ledger as a reference hash value; It may further include.

[0010]

[0010] Hash functions are well-known examples of one-way functions, i.e. functions that are easy to compute but difficult to invert (see, for example, S. Goldwasser and M. Bellare, "Lecture Notes on Cryptography", MIT, July 2008, http: / / www-cse.ucsd.edu / users / mihir). Preferably, the cryptographic hash function may be of the SHA-2 family, for example SHA-256, giving a hash value of size 256 bits. This function is substantially irreversible and collision-resistant, i.e. the probability that two different inputs lead to the same output is negligibly small. Also, preferably, the ledger may be a blockchain, which advantageously provides an immutable record of the data. Optionally, there may be a further step of signing the calculated reference hash value with a signing private key by the processing unit to obtain a corresponding signed reference hash value, and storing or further providing the signed reference hash value on a support. With this option, a user who has the public key corresponding to the private key can check that a signed reference hash value read on the support is authentic as having been signed with the correct private key.

[0011]

[0011] In a second variant of the aforementioned marking method, the support comprises a plurality of parts, the verifiable graphic data block being divided into a plurality of identical verifiable graphic data sub-blocks, the corresponding human readable graphic symbols and the machine readable representation of the error correction data are both spread on a corresponding portion of the support by a step, - dividing the graphical data block into a plurality of graphical data sub-blocks, each of the graphical data sub-blocks being formatted to provide a human readable representation of the graphical symbol in the corresponding human readable graphical data sub-block; for each of the graphic data sub-blocks, a digital representation of the graphic symbol of each of the graphic data sub-blocks is extracted and processed with an error correction code to generate corresponding error correction data in an error correction data sub-block; to obtain corresponding verifiable graphic data sub-blocks including a human readable graphic data sub-block and a machine readable error correction data sub-block, each of the error correction data sub-blocks being formatted to provide in the corresponding machine readable error correction data sub-block a machine readable representation of corresponding error correction data that is separate from the human readable representation of the graphic symbols of the corresponding human readable graphic data sub-block, displaying on a display the human-readable graphic symbol and a corresponding machine-readable representation of the error correction data for each of the retrieved verifiable graphic data sub-blocks in step (i); or in step (ii), marking, via a marking device, on the substrate a human-readable graphic symbol and a corresponding machine-readable representation of the error correction data for each of the verifiable graphic data sub-blocks received by the control unit from the processing unit, thereby providing, for each of the graphic data sub-blocks of the graphic data block, on the substrate a corresponding human-readable graphic symbol with corresponding machine-readable error correction data verifiable by a user; Includes.

[0012] This second variant of the marking method for producing a verifiable graphic symbol on a support is particularly adapted for documents of several pages of text (i.e. the support has several parts). The entire text is divided into several parts, each part of the text corresponding to a page of text, and therefore each page of the document provided on the support, It includes a human readable representation of the graphic symbol of the corresponding graphic data sub-block accompanied by a separate machine readable representation of the error correction data of the corresponding error correction data sub-block (eg, as a PDF417 barcode shown in FIG. 1).

[0013]

[0013] In order to enable a user to determine whether the human-readable graphic symbol and the corresponding machine-readable error correction data sub-block read on the support (i.e. on the part of the support corresponding to the graphic data sub-block of the graphic data block) are authentic or not, the above-mentioned second variant of the marking method may further include features of one of the following two sub-variants:

[0014]

[0014] According to a first sub-variant of the second variant of the marking method, a subblock hash value is calculated for each graphic data subblock, the corresponding error correction data subblock, or any part of a data subblock resulting from a concatenation of said graphic data subblock and said error correction data subblock via a hash function programmed on the processing unit; for each of the subblock hash values, a corresponding machine-readable representation of said subblock hash value is calculated; associated with each of the verifiable graphical data sub-blocks, a corresponding machine-readable representation of the sub-block hash value is further provided on a corresponding portion of the support; A reference aggregate hash value of all the subblock hash values ​​is determined as the concatenation of all the calculated subblock hash values; The baseline aggregate hash value is stored in the ledger, Thereby, for each of the graphic data sub-blocks of the graphic data block, a corresponding human-readable graphic symbol with corresponding machine-readable error correction data is provided on the support, which can be authenticated by the user.

[0015]

[0015] According to a second sub-variant of the second variant of the marking method, a subblock hash value is calculated for each graphic data subblock, the corresponding error correction data subblock, or any part of a data subblock resulting from a concatenation of said graphic data subblock and said error correction data subblock via a hash function programmed on the processing unit; a reference aggregate hash value of all the subblock hash values ​​is determined as a root node value of a tree having the calculated subblock hash values ​​as leaf node values, the tree including nodes arranged according to a predetermined node order in the tree, the tree including node levels from the leaf nodes to the root node, all non-leaf node values ​​of the tree correspond to hash values ​​of the concatenation of the node values ​​of each of the child nodes of the tree according to the tree concatenation order, the root node value corresponds to the hash value of the concatenation of the node values ​​of a node at a penultimate node level in the tree according to the tree concatenation order; For each of the subblock hash values, an associated subblock validation passkey is determined as the set of hash values ​​of selected non-leaf nodes of the tree that are required to obtain a root node value from said subblock hash value; in the verifiable graphical data sub-blocks, each associated with a corresponding graphical data sub-block and error correction data sub-block, includes a machine-readable representation of a sub-block verification passkey, the verifiable graphical data sub-blocks being further formatted to provide a machine-readable representation of said sub-block verification passkey separate from the human-readable representation of the associated graphical data sub-block and the machine-readable representation of the associated error correction data sub-block; (iii) the baseline aggregate hash value is stored in the ledger; or (iv) making the reference aggregate hash value available to a user, so that for each of the graphic data sub-blocks of the graphic data block, a corresponding human readable graphic symbol and corresponding human readable graphic symbol with corresponding machine readable error correction data are provided on the support that can be authenticated by the user.

[0016] The present invention also relates to a "verification method" corresponding to the aforementioned "marking method", namely a method for verifying a human-readable graphic symbol provided on a support with a machine-readable representation of error correction data, generated according to the aforementioned method for generating a verifiable graphic symbol on said support, comprising: scanning a human readable graphic symbol with a scanner having an imaging unit and a scanner processing unit having a scanner memory and connected to a scanner display to obtain, through image processing of the scanned human readable graphic symbol, a scanned graphic data block, which is a digital representation of said scanned human readable graphic symbol; scanning, via a machine-readable decoder programmed on a scanner processing unit, the machine-readable representation of the error correction data on the support to obtain corresponding scanned error correction data in the scanned error correction data blocks, the scanned error correction data being a digital representation of the scanned error correction data; correcting the scanned graphics data block using an error correction code programmed onto the scanner processing unit using the scanned error correction data of the scanned error correction data block to obtain a corresponding corrected scanned graphics data block; (a) displaying a visual representation of the corrected scanned graphic data block as a corresponding corrected human readable graphic symbol on a scanner display; (b) indicating via the scanner whether the scanned graphics data block contains errors; or (c) storing in the scanner memory scan result data specifying whether the scanned graphics data block contains errors or not; Includes. Thus, according to the invention, the user visualizes the original graphic symbols (e.g. the original text of a document) directly on the scanner display (option (a)) with corrections to the scanned text and then compares the displayed graphic symbols (i.e. the corrected human-readable graphic symbols) with the graphic symbols on the support to detect any alterations or irregularities.

[0017]

[0017] The scanner may be a specially dedicated device or may simply be a smartphone equipped with a camera and having a programmed application, which runs on the processor of said smartphone and is operable to perform the steps of the aforementioned method of verifying the graphic symbol provided on the support and the corresponding machine-readable error correction data. Some of the steps of the verification method may also be performed on a remote server in communication with the scanner. For example, the scanner may transmit the scanned graphic data block and the machine-readable error correction data to the server, and then a suitably programmed processing means of the server may perform the steps of obtaining the corresponding scanned error correction data, correcting the scanned graphic data block (with an error correction code programmed on the server) using the scanned error correction data to obtain a corresponding corrected scanned graphic data block, and transmitting the corrected scanned graphic data block to the scanner (possibly together with storing on the server an indication of whether the scanned graphic data block contains an error or scan result data specifying whether the scanned graphic data block contains an error).

[0018]

[0018] A first variant of the aforementioned verification method is a method in which a human-readable graphic symbol and machine-readable error correction data on a support are generated according to the first variant of the marking method, a hash function is programmed on a scanner processing unit, and the scanner is connected to a scanner communication unit operable to communicate with the ledger via a communication link, comprising: calculating, according to a first variant of the marking method, using a hash function programmed on the scanner processing unit, a scan hash value of the corrected scanned graphics data block, a scan hash value of the scanned error correction data block or a scan hash value of any part of a data block resulting from the concatenation of the corrected scanned graphics data block and the scanned error correction data block; obtaining a reference hash value stored in the ledger via a scanner communication unit and a communication link, and checking whether the obtained reference hash value matches the scan hash value, (e) indicating the result of the checking operation; or (f) checking, including storing a result of the checking operation in a scanner memory; Further includes:

[0019] Thus, even if a single bit of data is changed in the data originally provided on the support, the scan hash value will be significantly different from the reference hash value and the change will be detected.

[0020]

[0020] In a second variant of the aforementioned verification method, the human-readable graphic symbol and the machine-readable error correction data on the support are generated according to a second variant of the marking method, the operation of scanning the human-readable graphic symbol on the support includes a step of scanning a sub-block graphic symbol of a corresponding graphic data sub-block to obtain, via image processing, a corresponding scanned graphic data sub-block as a digital representation of the scanned sub-block; the operation of scanning the machine-readable error correction data on the support includes scanning the error correction data of a corresponding error correction data sub-block to obtain a corresponding scanned error correction data sub-block; the operation of correcting the scanned graphics data block includes correcting the graphics data of the scanned graphics data sub-block using a corresponding scanned error correction data sub-block to obtain a corresponding corrected scanned graphics data sub-block; the act of displaying a visual representation of the corrected scanned data block (a) comprises the step of displaying a visual representation of the corrected scanned graphics data sub-block; the operation (b) of indicating whether the scanned graphics data block contains errors comprises the step of indicating whether a scanned graphics data sub-block contains errors; The operation (c) of storing the scan result data includes a step of storing whether the scanned graphics data sub-block contains an error or not.

[0021]

[0021] A first sub-variant of the second variant of the verification method comprises a method in which a human readable graphic symbol and machine readable error correction data on a support are generated according to the first sub-variant of the second variant of the marking method, the hash function and the error correction code are programmed into a scanner processing unit, the scanner is further operable by the scanner processing unit to read and decode the machine readable representation of the sub-block hash value on the support, and the scanner is connected to a scanner communication unit operable to communicate via a communication link with the ledger, calculating, for each portion of the support, a scanned sub-block hash value of a corresponding corrected scanned graphics data sub-block, a corresponding error correction data sub-block, or any portion of a data sub-block resulting from the concatenation of said corrected scanned graphics data sub-block and said scanned error correction data sub-block, according to the operations performed to calculate the sub-block hash values, using a hash function programmed into the scanner processing unit; if it is not possible to compute a scan subblock hash value for a portion of the support, scanning and decrypting a machine-readable representation of the subblock hash value of said portion of the support to obtain a corresponding decrypted subblock, and using this decrypted subblock hash value as the scan subblock hash value for this portion of the support; computing an aggregated scan hash value as the concatenation of all scan subblock hash values; obtaining a reference aggregate hash value stored in the ledger via a scanner communication unit and a communication link, and checking whether the obtained reference aggregate hash value matches the aggregated scan hash value; - Steps showing the results of check operations through the scanner Further includes:

[0022]

[0022] This first sub-variant of the second variant of the marking method allows checking the authenticity of the graphic symbols of all readable parts of the support by obtaining a corrected aggregated hash value, even if some parts are not readable (e.g. due to significant changes in the graphic symbols and / or error correction data provided on said parts). Indeed, even if it is not possible to calculate scan sub-block hash values ​​for a certain part of the support, it is possible to obtain the scan sub-block hash values ​​by reading and decoding the machine-readable representations of the sub-block hash values ​​on said part of the support, and to use the decoded hash value by concatenating all hash values ​​to determine a candidate aggregated hash value to be compared with the reference aggregated hash value.

[0023]

[0023] A second sub-variant of the second variant of the verification method is a method in which a human-readable graphic symbol and machine-readable error correction data on a support are generated according to the second sub-variant of the second variant of the marking method, a reference aggregated hash value is stored in a ledger, a scanner is connected to a scanner communication unit operable to communicate via a communication link with the ledger, the scanner is further operable to read and decode the machine-readable representation of the sub-block verification passkey on the corresponding portion of the support and to calculate an aggregated hash value from the corresponding sub-block hash value and sub-block verification passkey pair, calculating, using a hash function programmed in the scanner processing unit, a scanned sub-block hash value of the selected corrected scanned graphics data sub-block, the corresponding scanned error correction data sub-block, or any portion of a data sub-block resulting from a concatenation of the corrected scanned graphics data sub-block and the scanned error correction data sub-block, according to the operations performed to calculate the sub-block hash value; scanning, with a scanner, a machine-readable representation of a sub-block verification passkey corresponding to the selected corrected scanned graphic data sub-block on a corresponding portion of the support, and extracting the corresponding scanned sub-block verification passkey; calculating a scan aggregate hash value using the calculated scan subblock hash value and the scanned subblock verification passkey; obtaining a reference aggregate hash value stored in the ledger via a scanner communication unit and a communication link, and checking whether the obtained reference aggregate hash value is consistent with the scan aggregate hash value; - Steps showing the results of check operations through the scanner Includes.

[0024]

[0024] This second sub-variant of the second variant of the verification method allows candidate root node hash values ​​to be calculated from the data read on each page and compared with a reference aggregate hash value, thereby allowing the authenticity of each page of the document to be checked individually.

[0025]

[0025] A third sub-variant of the second variant of the verification method is a method in which a human-readable graphic symbol and machine-readable error correction data on a support are generated according to the second sub-variant of the second variant of the marking method, reference aggregated hash values ​​available to a user are stored in a scanner memory, and the scanner is further operable to read and decode machine-readable representations of sub-block verification passkeys on corresponding portions of the support and to calculate aggregated hash values ​​from corresponding pairs of sub-block hash values ​​and sub-block verification passkeys, calculating, using a hash function programmed in the scanner processing unit, a scanned sub-block hash value of the selected corrected scanned graphics data sub-block, the corresponding scanned error correction data sub-block, or any portion of a data sub-block resulting from a concatenation of the corrected scanned graphics data sub-block and the scanned error correction data sub-block, according to the operations performed to calculate the sub-block hash value; scanning, with a scanner, a machine-readable representation of a sub-block verification passkey corresponding to the selected corrected scanned graphic data sub-block on a corresponding portion of the support, and extracting the corresponding scanned sub-block verification passkey; scanning the reference aggregate hash value on the support to obtain a scanned reference aggregate hash value; calculating an aggregated scan hash value using the calculated scan sub-block hash values ​​and the scanned sub-block verification passkey; checking whether a reference aggregate hash value stored in the scanner memory matches the aggregated scan hash value; - Steps showing the results of check operations through the scanner Includes. This third sub-variant of the second variant of the verification method allows the authenticity of each page of a document to be checked offline individually, since candidate root node hash values ​​can be calculated from the data read on each page and compared with a reference aggregate hash value stored in the scanner memory.

[0026] The present invention also provides an alternative method of verifying a human readable graphic symbol provided with machine readable error correction data on a display of a computer, generated according to the above-described method of generating a verifiable graphic symbol on said display, the method comprising the steps of: scanning the displayed human readable graphic symbol via a scanning application executed on a computer processor to obtain a scanned graphic data block, the scanned graphic data block being a digital representation of the scanned human readable graphic symbol; scanning the displayed machine-readable error correction data and decoding the scanned machine-readable error correction data via a machine-readable decoder of the scanning application executed on the computer processor to obtain corresponding scanned error correction data in the scanned error correction data blocks; correcting the scanned graphics data block using an error correction code of the scan application executed on the computer processor using the scanned error correction data of the scanned error correction data block to obtain a corresponding corrected scanned graphics data block; (a) displaying a visual representation of the corrected scanned graphic data block as a corrected human readable graphic symbol on a display; (b) displaying an indication specifying whether the scanned graphics data block contains errors; or (c) storing in the computer memory scan result data specifying whether the scanned graphics data block contains errors; The present invention relates to alternative verification methods, including:

[0027]

[0027] This alternative verification method (as "display data verification method") is particularly adapted to support office software functions (such as, for example, text processing applications) for detecting fraud or errors in text documents (such as, for example, contracts, reports, etc.) that are generated on the computer or downloaded to the computer (e.g. from an external memory such as a USB key or via a communication link with an external server such as, for example, an email server) and displayed on a computer screen. In fact, a specific application running on the computer performs the operations performed by the scanner in the verification method.

[0028]

[0028] The invention further relates to a support marked with a human-readable graphic symbol and a machine-readable representation of associated error correction data according to the above-mentioned marking method, according to any one of the first and second variants of the above-mentioned marking method, or according to any one of the first and second sub-variants of the above-mentioned marking method of the above-mentioned second variant, said support comprising: a machine-readable representation of the subblock hash value according to a first sub-variant of the second variant of the marking method, or an associated machine-readable representation of the validation passkey according to a second sub-variant of the second variant of the marking method; It is further marked with

[0029]

[0029] According to another aspect, the present invention relates to a scanner comprising an imaging unit, a scanner processing unit and a scanner display, wherein the scanner processing unit is programmed to enable the scanner to read verifiable graphic data marked on a support according to the present invention by implementing the steps of the verification method or the second sub-variant and third sub-variant of the second variant of the verification method.

[0030]

[0030] The scanner may further comprise a scanner communication unit operable to communicate with the ledger via a communication link, and the scanner processing unit may be further programmed to enable the scanner to obtain a hash value from the ledger by implementing method steps according to either the first variant of the verification method or the first sub-variant or second sub-variant of the second variant of the verification method.

[0031]

[0031] Finally, the present invention also relates to a computer program product operable when executed on a computer having a processor, memory and a display for implementing the steps of an alternative verification method (i.e., the above-mentioned "displayed data verification method") to verify a human-readable graphic symbol generated in accordance with the marking method and provided on the display accompanied by machine-readable error correction data.

[0032]

[0032] The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which like numerals represent like elements throughout the different views and which illustrate prominent aspects and features of the present invention. [Brief description of the drawings]

[0033] [Figure 1] FIG. 1 shows an example of a substrate marked with a verifiable graphic symbol according to the marking method of the present invention. [Diagram 2] FIG. 2 is a flow chart illustrating a process for creating and marking a verifiable graphic symbol on a substrate according to the marking method of the present invention. [Diagram 3] FIG. 3 is a flow chart of a process for generating and displaying a verifiable graphic symbol on a display in accordance with the marking method of the present invention. [Figure 4] FIG. 4 is a flow chart showing a process for producing and providing a verifiable graphic symbol on a support according to a second variant of the marking method of the invention. [Diagram 5] FIG. 5 shows an example of a hash tree used in a second sub-variant of the second variant of the marking method according to the invention. [Figure 6] FIG. 6 is a flow chart illustrating the process of verifying graphic symbols and machine-readable data provided on a support according to the verification method of the present invention. [Figure 7] FIG. 7 is a flow chart illustrating a second variant embodiment of the verification method according to the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0034]

[0034] Figure 1 shows an example of a substrate 100 (here a sheet of paper) marked with a human readable representation of a graphic symbol 110 (here letters of the alphabet, punctuation characters and numbers printed on the sheet of paper 100), the graphic symbol 110 representing a portion of the text of a contract printed in a text area 120 of the substrate 100 with a machine readable 2D barcode 130 (here a PDF417 barcode, i.e. "Portable Data File" 417 barcode) printed below the text area 120. The text in the text area 120 is a human readable representation of the corresponding graphic data block of the graphic symbol.

[0035]

[0035] A 2D barcode generally comprises the following parts: Localization patterns (e.g., "L" shapes and clock lines for Data Matrix, three large squares for QR Codes) and Some information areas about code formats, a data zone containing the data; - Machine-readable error correction data (e.g., Reed-Solomon error correction data) for correcting reading errors; Includes.

[0036]

[0036] Error correction codes generally use a correspondence table, i.e., a code (e.g., a given number of m bits) that has a one-to-one correspondence with a given finite set of graphic symbols (e.g., glyphs such as readable letters of the alphabet) of reference graphic symbols.

[0037]

[0037] The PDF417 barcode 130 is a well-known stacked linear barcode (ISO standard 15438) that can be read by running a simple line scan over the barcode. In the embodiment of Fig. 1, the PDF417 barcode 130 is a machine-readable representation of an error-corrected data block obtained by applying an error-correcting code (here a conventional Reed-Solomon code) to a graphic data block of a construct of graphic symbols corresponding to a portion of the text shown in the text area 120. The PDF417 barcode 130 also contains (as usual) data related to the version of the (Reed-Solomon) code used to calculate the error-correcting data, data related to the font, font size and line spacing of the text, the number of rows and columns of the text, the relative position of the text area with respect to markers 140 that delimit the boundaries of the graphic data block (here simple marks specifying the corners of the rectangular text area 120). Optionally, the barcode 130 may further contain signature data. This signature data may for example be the signature of a digital representation of a portion of text via a private encryption key (which signature can be decrypted via the corresponding public key).

[0038]

[0038] The part of text printed in the text area 120 and the printed PDF417 barcode 130 are respectively examples of a human-readable graphic symbol HrGS and a corresponding machine-readable representation of error correction data MrECD obtained by the marking method shown in Fig. 2. Indeed, Fig. 2 shows a flow chart of a process of generating verifiable graphic data VGD on a substrate (here a sheet of paper) using a processing unit (CPU) that calculates a verifiable graphic data block VGDB, and marking the substrate via a marking device (e.g., an inkjet printer) that receives said verifiable graphic data block VGDB. A graphic data block GDB 210 containing a digital representation of a graphic symbol DGS is stored in the memory of the CPU, each graphic symbol belonging to a given finite set {GS(1), ..., GS(M)} of graphic symbols of M (M≧1), for example, a finite set of A to Z of the English alphabet with M=26 letters. Each graphic symbol GS(i), i∈{1,...,M} has a corresponding digital representation DGS(i), and the digital representation of the graphic symbol DGS in the graphic data block GDB contains as many DGS(i) as there are graphic symbols in the portion of text (e.g., the portion of text in the text area 120). The generation process starts by extracting 220 the digital representation of the graphic symbol DGS from the stored graphic data block GDB and processing 200 the extracted digital representation of the graphic symbol DGS using a programmed error correction code ECC to obtain corresponding error correction data ECD. These error correction data ECD are represented in an error correction data block ECDB 230. The obtained error correction data block ECDB is then formatted 240 to provide corresponding machine-readable error correction data MrECD, represented in a machine-readable error correction data block MrECDB. The graphic data block GDB is also formatted to obtain 215 the corresponding human-readable representation of the graphic symbol HrGS, contained in a human-readable graphic representation data block HrGDB.A resulting verifiable graphic data block VGDB is obtained 250, which is composed of two respective data blocks: a human-readable graphic representation data block HrGDB, and a machine-readable error correction data block MrECDB. Symbolically, VGDB=HrGDB+MrECDB. The obtained verifiable graphic data block VGDB is then sent to a marking device, here a printer, where the content of the obtained verifiable graphic data block VGDB is marked (i.e. printed) 260 on the substrate 100 according to the format as corresponding verifiable graphic data VGD. The marked VGD contains the corresponding human-readable graphic symbol HrGS and machine-readable error correction data MrECD (symbolically, VGD=HrGS+MrECD), each of which is placed on the sheet of paper 100 according to the format (i.e. as separate blocks of data), representing the end 270 of the process of generating verifiable graphic data on the substrate 100 (see step (ii) of the marking method described above).

[0039]

[0039] Instead of marking the substrate, a portion of the text can be displayed, for example, on the display of a tablet computer or computer, as shown in the flow chart of Fig. 3. Analogous to Fig. 2 above, a graphic data block GDB 310 containing digital representations of graphic symbols DGS (each graphic symbol belongs to a given finite set {GS(1), ..., GS(M)} of graphic symbols with M >= 1) is stored in the memory of the CPU. The graphic data block GDB contains as many digital representations DGS(i) as there are graphic symbols GS(i) in the portion of the displayed text. The generation process starts by extracting 320 the digital representations of the graphic symbols DGS from the stored graphic data block GDB and processing 300 the extracted DGS with a programmed error correction code ECC to obtain corresponding error correction data ECD. These error correction data ECD are included in an error correction data block ECDB 330, which are then formatted 340 to provide corresponding machine-readable error correction data MrECD, which are included in a machine-readable error correction data block MrECDB. The graphic data block GDB is also formatted to obtain a corresponding human readable representation of the graphic symbol HrGS, contained in a human readable graphic representation data block HrGDB 315. The resulting verifiable graphic data block VGDB is obtained 350 and consists of two respective data blocks HrGDB and MrECDB (symbolically VGDB=HrGDB+MrECDB). The verifiable graphic data block VGDB is then displayed on the display according to the format 360 as a separate human readable representation of the graphic symbol HrGS and a machine readable representation of the error correction data MrECD, representing the end 370 of the process of generating a verifiable graphic symbol on a support (see step (i) of the marking method described above).

[0040]

[0040] According to the invention, several variants and sub-variants of the marking method increase the level of confidence in the compatibility between the human-readable graphic symbols read directly on the support by the user and the human-readable version that can be extracted from the machine-readable representation of the error correction data (read by a dedicated device). These variants correspond to the first and second variants described above.

[0041]

[0041] A first variant of the marking method uses the quasi-irreversibility of a one-way function, for example a hash function, in which, after carrying out the steps of the marking method described above, a hash function H programmed in the processing unit is further used to obtain a hash value of the graphic data block GDB, a hash value of the error correction data block ECDB or a concatenation of the graphic data block GDB and the error correction data block ECDB.

number

[0042] In the above-mentioned first variant of the marking method, the hash value is a reference hash value H ref Optionally, the reference hash value H ref is the corresponding signed canonical hash value S(H ref ) and the signed canonical hash value S(H ref ), an encryption key, preferably a private key Pr (stored in the memory of the processing unit) is used to obtain k The signed reference hash value S(H ref ) is stored (in a database or in a ledger such as a blockchain) or made available on a support. The latter option allows the private key Pr k The public key Pu corresponding to k If S(H(H)) is used to check the signature, it is compatible with an offline verification process (i.e., verifying that the signed reference hash value was signed with the correct private key, or verifying that S(H)) is signed with a public decryption key, such as with the RSA "Rivest-Shamir-Adleman" algorithm. ref ) to decode H ref to obtain.

[0043]

[0043] A second variant of the marking method illustrated by the embodiment shown in FIG. 4 is well suited to providing graphic symbols on multiple portions of a support, for example: Printing a text document containing several pages (e.g. page N of a report or contract) (similar to option (ii) of the marking method), or · (similar to marking method option (i)) displaying a digital version of an N-page text document in a predetermined format (such as Microsoft Word or PDF format) on a screen, page by page, where each of the N (N≧2) pages marked on the substrate or each of the N displayed pages shows a human readable predetermined graphical symbol HrGS(j), j∈{1, ..., N}, and a corresponding machine readable representation MrECD(j), both of which are representations obtained from a portion of the verifiable graphical data VGD(j) of the corresponding predetermined verifiable graphical data sub-block VGDSB(j). In these cases, according to the above-mentioned second variant of the marking method, the method starts 400, where the (complete) graphic data block GDB is divided 410 by the processing unit into N sub-blocks GDSB(1), ..., GDSB(N) (i.e. one sub-block for each part of the support), where each graphic data sub-block GDSB(j) is formatted to provide 415 a corresponding human readable representation HrGS(j) of the graphic symbol GS(j) in a corresponding human readable graphic data sub-block HrGDSB(j). For each graphic data sub-block GDSB(j) (j=1, ..., N), the processing unit generates the corresponding sub-block error correction data by correcting 420 the graphic data sub-block GDSB(j) using a programmed error correction code ECC, and then forms 430 an error correction data sub-block ECDSB(j) using the corrected data. The processing unit generates a machine-readable representation of the error correction data sub-block ECDSB(j) as a corresponding machine-readable error correction data sub-block MrECDSB(j) 440. The processing unit then formats each sub-block HrGDSB(j), and MrECDSB(j), so that the latter representation on the support is different from the human-readable representation HrGS(j) of the former graphic symbol GS(j), to provide a corresponding verifiable graphic data sub-block VGDSB(j)=HrGDSB(j)+MrECDSB(j) 450, written symbolically.Depending on the selected option (i) or (ii) of the marking method, the data of the sub-blocks VGDSB(j), j = 1, ..., N, are displayed on a display 460 or marked on a substrate 470 (for example printed on a sheet of paper as in Figure 1) according to the format as verifiable graphical data VGD(j) (symbolically VGD(j) = HrGS(j) + MrECD(j)), and each marking M(j) of VGD(j) is provided on a portion j of the substrate (for example printed on the jth page of an N-page document), representing the end of the process of generating verifiable graphical data on a substrate 480-490.

[0044]

[0044] Several sub-variants of the aforementioned second variant of the marking method increase the level of confidence in the authenticity of the human-readable graphic symbol or machine-readable representation of the error correction data provided on the support. These sub-variants are in fact the first sub-variant and the second sub-variant. These sub-variants also use the quasi-irreversibility of one-way functions (for example hash functions like the SHA-256 hash function). In these two sub-variants, after carrying out the steps of the aforementioned second variant of the marking method, a hash function H programmed on the processing unit is further used to obtain a hash of the digital representation of the graphic symbol or the error correction data (or a part of these data). Due to the fact that in the aforementioned second variant of the marking method, the graphic data block GDB and the corresponding error correction data block ECDB are divided into N sub-blocks (corresponding to the N parts of the support), for each sub-block j (j=1,...,N), there are several possibilities to define the corresponding sub-block hash value H(j), as described above. One of these possibilities must be selected, and in any of these sub-variants (and also in the variants of the verification method) it serves to calculate the N sub-block hash values.

[0045] In a first sub-variant of the second variant of the marking method, the processor unit calculates a sub-block hash value H(j) for each graphic data sub-block GDSB(j), j=1,...,N. For example, in a preferred embodiment, the complete concatenation of the graphic data sub-block GDSB(j) and the error correction data sub-block ECDSB(j) is calculated as the sub-block hash value, i.e. [Number 3] H(j) = H(GDSB(j)[+]ECDSB(j)) In general, a subblock hash value H(j), j=1,...,N is defined according to one of the following possibilities: H(j)=H(GDSB(j)), H(j)=H(ECDSB(j)), or the concatenation of the graphic data subblock GDSB(j) and the error correction data subblock ECDSB(j). [Number 4] (GDSB(j)[+]ECDSB(j)) (with constraints on the bit length of said parts) [Number 5] H(j) = H(a part of (GDSB(j)[+]ECDSB(j))) It is possible to use.

[0046]

[0046] Then, a machine-readable representation MrH(j) of each subblock hash value H(j) is calculated by the processing unit and associated with the corresponding verifiable graphic data subblock VGDSB(j) (j=1,...,N). As a result, in addition to the human-readable representation of the graphic symbol HrGS(j) of the jth subblock and the machine-readable representation of the error correction data MrECD(j) of the jth subblock (from the verifiable graphic data subblock VGDSB(j)), the jth page of the document may further comprise a machine-readable representation MrH(j) of the jth subblock hash value. This subvariant allows the subblock graphic data and the corresponding subblock error correction data to be further protected via a one-way hash function, since the data content of MrH(j) cannot be obtained by modifying said jth subblock data. Moreover, this further advantage is obtained with only limited additional data provided on the support in the form of a mere machine-readable representation of the subblock hash value. Then, in the above-mentioned first sub-variant of the second variant of the marking method, the N subblock hash values ​​H(j) (j=1,...,N) are multiplied by a reference aggregate hash value H ref As mentioned above, the N subblock hash values ​​H(j), j=1,...,N can be computed simply on the graphic data subblocks, i.e., H(j) ≡ H(GDSB(j)). Preferably, the subblock hash values ​​are computed on the complete concatenation of the subblocks, [Number 6] H(j) ≡ H(GDSB(j) [+] ECDSB(j)) Therefore, any change in any one argument of the subblock hash function H(j) (i.e., a change in the subblock graphic data or the subblock machine-readable data on the support), even a single bit change, will result in a large change in the aggregated hash value H ref In this first sub-variant, the processing unit concatenates all N sub-block hash values ​​H(j), j=1,...,N to generate a reference aggregate hash value H(j) [Number 7] H ref =H(1)[+]H(2)[+]...[+]H(N-1)[+]H(N) (the symbol [+] indicates the concatenation operation) This reference hash value H ref is further stored in a ledger (i.e., a server or database, preferably a blockchain).

[0047] Optionally, the memory of the processing unit stores a key for encrypting the digital data, preferably a public key Pu k A private key Pr paired with the k The processing unit may further store the reference aggregate hash value by concatenating all N subblock hash values. [Number 8] H ref =H(1)[+]H(2)[+]...[+]H(N-1)[+]H(N) After obtaining the encryption key (preferably the private key Pr k ) to obtain the reference aggregate hash value H ref is further signed (i.e., encrypted) to produce the reference aggregate hash value signature S(H ref ) may then be stored (for example in the memory of a processing unit, in a database or on a blockchain) or may further be provided on a support. This latter option is achieved by obtaining a corresponding key, preferably a private key Pr k The public key Pu associated with k However, the signature is genuine (i.e., the correct private key Pr k This allows for an offline verification process when the .sigma.ID is used to check that the .sigma.ID has been obtained using

[0048] In a second sub-variant of the second variant of the marking method, after computing N sub-block hash values ​​H(j), j=1,...,N (in the same manner as in the first sub-variant described above), a reference aggregate hash value H refis calculated by the processing unit as the root node value R of a tree, preferably a binary tree, with N subblock hash values ​​H(1), H(2), ..., H(N-1), H(N) as leaf nodes, as shown in Fig. 5 (using the example of a simple binary tree for N = 8). Again, the hash values ​​generally represent values ​​obtained via a one-way function (such as a hash function H() of the SHA-256 family). Thus, the tree generally includes nodes based on multiple calculated subblock hash values ​​H(j), j = 1, ..., N, arranged according to the order of a given node in the tree. The tree includes node levels from leaf node a(1,j), j=1,...,N, which correspond to multiple subblock hash values ​​H(1), H(2),...,H(N-1),H(N), and non-leaf nodes up to the root node R of the tree, where every non-leaf node of the tree (i.e., the nodes contained between the leaf node and the root node) corresponds to a hash value of a concatenation with each of the hash values ​​of its child nodes according to the tree concatenation order, and the root node R corresponds to a reference aggregate hash value H according to the aforementioned tree concatenation order. ref , i.e., the hash value of the concatenation of the hash values ​​of the nodes at the second-to-last node level in the tree. In the example of Figure 5, N=8, so there are eight leaf nodes (first level of the tree) a(1,j)=H(j), j=1,...,8, and for the four node values ​​at the second level, [Number 9] a(2,1)=H(a(1,1)[+]a(1,2)), a(2,2)=H(a(1,3)[+]a(1,4)), a(2,3)=H(a(1,5)[+]a(1,6)), a(2,4)=H(a(1,7)[+]a(1,8)) For the two node values ​​at the third (second to last) level, [Number 10] a(3,1)=H(a(2,1)[+]a(2,2)), and a(3,2)=H(a(2,3)[+]a(2,4)) Therefore, the root node value R is [Number 11] R = H(a(3,1)[+]a(3,2))≡H ref It is.

[0049]

[0049] It is possible to select a different tree linkage order for each non-leaf node, e.g. [Number 12] a(2,4)=H(a(1,7)[+]a(1,8)) Instead of having [Number 13] a(2,4)=H(a(1,8)[+]a(1,7)) Note that we define , which results in different node values. The processing unit then calculates an associated subblock verification passkey VPK(j) for each subblock hash value H(j) (i.e., for each leaf node of the tree a(1,j)), j=1,...,N. The subblock verification passkey VPK(j) associated with the leaf node a(1,j) (and thus the subblock hash value H(j)) is the sequence of hash values ​​of selected non-leaf nodes of the tree required to obtain the root node value R starting from the leaf node a(1,j). The selected non-leaf nodes actually correspond to a particular path in the tree between the leaf node a(1,j) and the root node R. In effect, the subblock verification passkey associated with a given leaf node of the tree is the sequence of node values ​​of every other leaf node having the same parent node in the tree of the given leaf node from the leaf node level to the last to the second node level, followed by the sequence of node values ​​of every other leaf node having the same parent node in the tree considered at the previous level, at each next level of the tree. In the simple binary tree example with eight leaf nodes a(1,1), ..., a(1,8) shown in Figure 5, the eight sub-block verification pass keys VPK(1), ..., VPK(8) are determined (according to the definitions above) as follows:

[0050]

[0050] 1) For a given leaf node a(1,1) = H(1), the associated sub-block verification passkey is VPK(1) = {a(1,2), a(2,2), a(3,2)}, from which the root digital signature value R can be obtained in the following steps (performed according to the order of the nodes in the tree and the order of concatenation of the tree): i) Given leaf node a(1,1)=H(1) and leaf node a(1,2)=H(2) in VPK(1) (a(1,2) is "another leaf node with the same parent node", i.e., node a(2,1), "given leaf node", i.e., node a(1,1)) from which the parent node value a(2,1) is [Number 14] a(2,1)=H(a(1,1)[+]a(1,2)) (i.e., a(2,1)=H(H(1)[+]H(2))) It is obtained by ii) From the obtained a(2,1) and the next node value in VPK(1), i.e., a(2,2) at the next non-leaf node level, the non-leaf node having the same parent node in the tree, i.e., node value a(3,1), and from the next node value of the previous same parent node, i.e., node a(2,1) considered at the previous level, the parent node value a(3,1) is [Number 15] a(3,1)=H(a(2,1)[+]a(2,2)) It is obtained by iii) From the obtained a(3,1) and the next node value in VPK(1), i.e., a(3,2) at the penultimate node level, which is a non-leaf node having the same parent node in the tree, i.e., the previous same parent node, i.e., the next node value considered at the previous level by node a(3,1), the root node value R is calculated as follows: [Number 16] R = H(a(3,1)[+]a(3,2)) It is obtained by

[0051]

[0051] Note: In this example, the tree is three levels below the root node level, so there are three steps: i), ii), and iii), since the subblock verification passkey contains three node values.

[0052] Therefore, based on the VPK(1)={a(1,2), a(2,2), a(3,2)} associated with a(1,1), the value of the root node of the tree is [Number 17] R=H(H(H(a(1,1)[+]a(1,2))[+]a(2,2))[+]a(3,2)) It can be obtained as:

[0053]

[0053] 2) For a given leaf node a(1,2) = H(2), the associated sub-block verification passkey is VPK(2) = {a(1,1), a(2,2), a(3,2)}, from which the root value R can be obtained in the following steps (performed according to the order of the nodes in the tree and the order of concatenation of the tree): i) Given a(1,2)=H(2) and a(1,1)=H(1) in VPK(2), where a(1,1) is another leaf node with the same parent node, i.e., node a(2,1), and the given leaf node is node a(1,2), then the parent node value a(2,1) is [Number 18] a(2,1)=H(a(1,1)[+]a(1,2)) It is obtained by ii) Given a(2,1) and the next node value in VPK(2), i.e., a non-leaf node having the same parent node in the tree, i.e., node a(3,1), and the previous same parent node is considered at the previous level, i.e., node a(2,1), then the parent node value a(3,1) is [Number 19] a(3,1)=H(a(2,1)[+]a(2,2)) It is obtained by iii) From the obtained a(3,1) and the next node value in VPK(2), i.e., a(3,2) of the penultimate node level, which is a non-leaf node having the same parent node in the tree, i.e., a root node, and whose previous same parent node was considered at the previous level, i.e., node a(3,1), the root node value R is [Number 20] R = H(a(3,1)[+]a(3,2)) It is obtained by

[0054] Therefore, based on the VPK(2)={a(1,1), a(2,2), a(3,2)} associated with a(1,2), the value of the root node of the tree is [Number 21] R=H(H(H(a(1,1)[+]a(1,2))[+]a(2,2))[+]a(3,2)) It can be obtained as:

[0055]

[0055] 3) For a given leaf node a(1,3) = H(3), the subblock verification passkey is VPK(3) = {a(1,4), a(2,1), a(3,2)}, from which the root value R can be obtained in the following steps (performed according to the order of the nodes in the tree and the order of concatenation of the tree): i) a(1,3)=H(3) and a(1,4)=H(4) in VPK(3) (a(1,4) is another leaf node with the same parent node, i.e., node a(2,2), and the given leaf node is node a(1,3)). Therefore, the parent node value a(2,2) is [Number 22] a(2,2)=H(a(1,3)[+]a(1,4)) It is obtained by ii) Given a(2,2) and the next node value in VPK(3), i.e. a non-leaf node having the same parent node in the tree, i.e. node a(3,1), from the next non-leaf node level a(2,1) considered in the previous level, i.e. node a(2,2), the parent node value a(3,1) is [Number 23] a(3,1)=H(a(2,1)[+]a(2,2)) It is obtained by iii) Given a(3,1), and the next node value in VPK(3), i.e. a non-leaf node having the same parent node in the tree, i.e. a root node, and the same previous parent node is considered at the previous level, i.e. node a(3,1), from the penultimate node level a(3,2), the root node value R is: [Number 24] R = H(a(3,1)[+]a(3,2)) It is obtained by

[0056]

[0056] Therefore, the value of the root node of the tree is [Number 25] R=H(H(a(2,1)[+]H(a(1,3)[+]a(1,4)))[+]a(3,2)) It can be obtained as.

[0057]

[0057] 4) For a given leaf node a(1,4) = H(4), the subblock verification passkey is VPK(4) = {a(1,3), a(2,1), a(3,2)}, from which the root value R can be obtained in the following steps (performed according to the order of the nodes in the tree and the order of concatenation of the tree): i) From a(1,4) = H(4) and a(1,3) = H(3) in VPK(4), the parent node value a(2,2) is [Number 26] a(2,2)=H(a(1,3)[+]a(1,4)) It is obtained by ii) From the obtained a(2,2) and the next node value in VPK(4), i.e., a(2,1) at the next non-leaf node level, the parent node value a(3,1) is [Number 27] a(3,1)=H(a(2,1)[+]a(2,2)) It is obtained by iii) From the obtained a(3,1) and the next node value in VPK(4), i.e., a(3,2) at the penultimate node level, the root node value R is [Number 28] R = H(a(3,1)[+]a(3,2)) It is obtained by

[0058]

[0058] Therefore, the value of the root node of the tree is [Number 29] R=H(H(a(2,1)[+]H(a(1,3)[+]a(1,4)))[+]a(3,2)) It can be obtained as.

[0059] 5) For a given node a(1,5)=H(5), the subblock verification passkey is VPK(5)={a(1,6),a(2,4),a(3,1)}, from which the root value R can be obtained in the following steps (performed according to the order of the nodes in the tree and the order of concatenation of the tree): i) From a(1,5) = H(5) and a(1,6) = H(6) in VPK(5), the parent node value a(2,3) is [Number 30] a(2,3)=H(a(1,5)[+]a(1,6)) It is obtained by ii) From the obtained a(2,3) and the next node value in VPK(5), i.e., a(2,4) at the next non-leaf node level, the parent node value a(3,2) is [Number 31] a(3,2)=H(a(2,3)[+]a(2,4)) It is obtained by iii) From the obtained a(3,2) and the next node value in VPK(5), i.e., a(3,1) at the penultimate node level, the root node value R is [Number 32] R = H(a(3,1)[+]a(3,2)) It is.

[0060]

[0060] Therefore, the value of the root node of the tree is [Number 33] R=H(a(3,1)[+]H(H(a(1,5)[+]a(1,6))[+]a(2,4))) It can be obtained as follows.

[0061]

[0061] 6) For a given node a(1,6) = H(6), the subblock verification passkey is VPK(6) = {a(1,5), a(2,4), a(3,1)}, from which the root value R can be obtained in the following steps (performed according to the order of the nodes in the tree and the order of concatenation of the tree): i) From a(1,6) = H(6) and a(1,5) = H(5) in VPK(6), the parent node value a(2,3) is [Number 34] a(2,3)=H(a(1,5)[+]a(1,6)) It is obtained by ii) From the obtained a(2,3) and the next node value in VPK(6), i.e., a(2,4) at the next non-leaf node level, the parent node value a(3,2) is [Number 35] a(3,2)=H(a(2,3)[+]a(2,4)) It is obtained by iii) From the obtained a(3,2) and the next node value in VPK(6), i.e., a(3,1) at the penultimate node level, the root node value R is [Number 36] R = H(a(3,1)[+]a(3,2)) It is obtained by

[0062]

[0062] Therefore, the value of the root node of the tree is [Number 37] R=H(a(3,1)[+]H(H(a(1,5)[+]a(1,6))[+]a(2,4))) It can be obtained as follows.

[0063] 7) For a given node a(1,7)=H(7), the subblock verification passkey is VPK(7)={a(1,8),a(2,3),a(3,1)}, from which the root value R can be obtained in the following steps (performed according to the order of the nodes in the tree and the order of concatenation of the tree): i) From a(1,7)=H(7) and a(1,8)=H(8) in VPK(7), the parent node value a(2,4) is [Number 38] a(2,4)=H(a(1,7)[+]a(1,8)) It is obtained by ii) From the obtained a(2,4) and the next node value in VPK(7), i.e., a(2,3) at the next non-leaf node level, the parent node value a(3,2) is [Number 39] a(3,2)=H(a(2,3)[+]a(2,4)) It is obtained by iii) From the obtained a(3,2) and the next node value in VPK(7), i.e., a(3,1) at the penultimate node level, the root node value R is [Number 40] R = H(a(3,1)[+]a(3,2)) It is obtained by

[0064]

[0064] Therefore, the value of the root node of the tree is [Number 41] R=H(a(3,1)[+]H(a(2,3)[+]H(a(1,7)[+]a(1,8)))) It can be obtained as follows.

[0065] 8) For a given node a(1,8)=H(8), the subblock verification passkey is VPK(8)={a(1,7),a(2,3),a(3,1)}, from which the root value R can be obtained in the following steps (performed according to the order of the nodes in the tree and the order of concatenation of the tree): i) From a(1,8) = H(8) and a(1,7) = H(7) in VPK(8), the parent node value a(2,4) is [Number 42] a(2,4)=H(a(1,7)[+]a(1,8)) It is obtained by ii) From the obtained a(2,4) and the next node value in VPK(8), i.e., a(2,3) at the next non-leaf node level, the parent node value a(3,2) is [Number 43] a(3,2)=H(a(2,3)[+]a(2,4)) It is obtained by iii) From the obtained a(3,2) and the next node value in VPK(8), i.e., a(3,1) at the penultimate node level, the root node value R is [Number 44] R = H(a(3,1)[+]a(3,2)) It is obtained by

[0066]

[0066] Therefore, the value of the root node of the tree is [Number 45] R=H(a(3,1)[+]H(a(2,3)[+]H(a(1,7)[+]a(1,8)))) It can be obtained as follows.

[0067] In general, to obtain a (candidate) root node value by starting from a given leaf node value and a node value specified in a validation pass key associated with said given leaf node, the following steps are performed: extracting, from the sequence of node values ​​in the sub-block verification passkey, node values ​​of every other leaf node of the tree that has the same parent node as the given leaf node, by calculating a hash value of the concatenation of the given node values ​​and the extracted node values ​​of the every other leaf node according to the order of the nodes in the tree and the order of the tree concatenation, respectively, thereby obtaining a hash value of the same parent node of the given leaf node; At each next level of the tree, successively down to the last but one node level, extracting, from the sequence of node values ​​in the sub-block validation passkey, node values ​​of every other non-leaf node of the tree having the same parent node as the node value of the previous same parent node considered in the previous step; calculating a hash value of a concatenation of node values ​​of each of the alternate non-leaf nodes and the obtained hash value of the previous same parent node according to an order of the nodes in the tree and an order of tree concatenation, thereby obtaining a node value of the previous same parent node; calculating a hash value of the concatenation of the obtained node values ​​of the non-leaf nodes corresponding to the second-lowest node level of the tree according to the order of the nodes in the tree and the order of the tree concatenation, thereby obtaining a root node value of the tree; is executed.

[0068]

[0068] In a next step of the second sub-variant of the second variant of the marking method, the processing unit generates a machine-readable representation MrVPK(j) of each sub-block verification passkey VPK(j) (j=1,...,N) and includes the machine-readable representation MrVPK(j) in a verifiable graphic data sub-block VGDSB(j) in association with the corresponding human-readable graphic data sub-block HrGDSB(j) and machine-readable error correction data sub-block MrECDSB(j). The verifiable graphic data sub-block VGDSB(j) is then further formatted to provide a machine-readable representation of said sub-block verification passkey, separate from the human-readable representation of the associated graphic data sub-block GDSB(j) and the machine-readable representation of the associated error correction data sub-block ECDSB(j), and provided on the support (as a component of the verifiable graphic data of the corresponding sub-block). Thus, a verifiable graphic data sub-block is symbolically written as VGDSB(j)=HrGDSB(j)+MrECDSB(j)+MrVPK(j), j=1,...,N. Finally, one of the following further steps is performed: (iii) The reference aggregate hash value H ref =R is stored in a ledger (preferably a blockchain). or (iv) The reference aggregate hash value H ref =R becomes available to users.

[0069] Optionally, H ref The processing unit obtains the signature private key Pr k (stored in the memory of the processing unit) and the reference aggregate hash value signature S(H ref ), and the reference aggregate hash signature S(H ref ) is stored (e.g., in a ledger) or further provided on a support or made available to users. The corresponding public key Pu k By using S(H ref ) can be checked to see if it is genuine or not.

[0070]

[0070] As a result, for each graphic data sub-block GDSB(j) (j=1, ..., N) of the graphic data block GDB, a human-readable graphic symbol of the corresponding sub-block accompanied by machine-readable error correction data of the corresponding sub-block, which can be authenticated by a user by obtaining, is provided on the support, this providing being realized by obtaining a root value R via the sub-block hash value H(j) and a verification passkey VPK(j) corresponding to the root value R, which can be obtained from the data read on the support, these root value R and verification passkey VPK(j) being obtained from the machine-readable representation of the human-readable graphic symbol HrGS(j) of the sub-block and the sub-block verification passkey MrVPK(j), respectively.

[0071] As is clear from the above example, the root node value R can be finally obtained from any given leaf node value by calculating the hash value of the concatenation of this given leaf node value using only the node values ​​specified in the corresponding subblock verification passkey. Therefore, the amount of data of the verification information based on the verification passkey (read by the support) required to obtain the root node value R is calculated based on only all the leaf node values, and is calculated based on the reference root node value H ref (i.e., by computing all non-leaf node values ​​at intermediate levels of the tree). This is an advantage of the present invention, considering the limited size constraints available on machine-readable representations of data (e.g., 2D barcodes).

[0072]

[0072] Thus, according to the present invention, by including a tree structure with a root node value R of the tree (which can be made immutable if stored in the blockchain) and the entanglement of hash values ​​of all original subblock hash values ​​due to the use of a robust one-way function (such as SHA-256 in the above embodiment) to calculate the node values ​​of the tree, machine-readable error correction data on a support with a corresponding human-readable representation of the graphical data, and an associated machine-readable verification passkey, Falsification of the data on the marked substrate can be prevented with a very high level of reliability.

[0073]

[0073] The above-mentioned embodiments of the marking method provide on the support (sheet of paper 100 or display) a human-readable graphic symbol with corresponding machine-readable error correction data that can be easily verified by a user. Indeed, according to the inventive verification method, an exemplary flow chart of which is shown in Fig. 6, a user, having a scanner with an imaging unit, a scanner processing unit with a scanner memory and a scanner display, may check whether the human-readable graphic symbol HrGS on the support has been altered with respect to the original graphic symbol or may even obtain the original graphic symbol. In the following exemplary embodiment of the verification method, the human-readable graphic symbol HrGS constitutes a text provided on the support according to the marking method. For example, the text may be printed on the substrate (e.g. a sheet of paper as in Fig. 1) or electronically displayed on a screen. The imaging unit of the scanner is operable to image the text and the corresponding machine-readable representation of the error correction data MrECD on the support. The scanner processing unit is programmed to perform image processing of the image of the support taken by the imaging unit to extract text data and to obtain a digital representation of the extracted text data as a corresponding scanned graphic data block SGDB. The scanner processing unit is also programmed to perform image processing of the image of the machine-readable representation of the error correction data MrECD on the support acquired by the imaging unit to extract corresponding scanned error correction data SECD by further using a programmed machine-readable decoder (on the scanner processing unit) and to obtain a digital representation of the scanned error correction data SECD as a corresponding scanned error correction data block SECDB. The scanner processing unit is further programmed to perform an operation of error correction of the data block by using an error correction code ECC. The scanner may for example just be a smartphone equipped with a camera (as an imaging unit) and with image processing, decoding and error correction applications operable to run on the processing unit of the camera.

[0074] The generalized verification process shown in FIG. 6 involves the following method with the example of the marked substrate of FIG. scanning by a scanner (via a scanner imaging unit) a text HrGS 610 on a support, i.e. a text 110 on a text area 120 of a sheet of paper 100, and obtaining a corresponding scanned graphics data block SGDB 620 (i.e. a digital representation of the scanned text); scanning a machine-readable representation of the error correction data MrECD 615 on a support, i.e. a PDF417 barcode 130 on a sheet of paper 100, with a scanner, decoding (by a programmed machine-readable decoder) the machine-readable representation of the error correction data MrECD to extract the corresponding scanned error correction data SECD, and forming a corresponding scanned error correction data block SECDB 625 (i.e. a digital representation of the extracted SECD); a step 630 of correcting the scanned graphics data block SGDB (using the extracted SECD of the SECDB) via an error correction code ECC programmed on the scanner processing unit and obtaining a corrected scanned graphics data block CSGDB 640, the corrected scanned graphics data block CSGDB including a digital representation of the corresponding corrected human readable graphic symbol CHrGS; In step 650, you have three options: (a) displaying 660 the corrected scanned graphics data block CSGDB as a corresponding corrected human readable graphics symbol CHrGS on the scanner display; (b) a step 670 of indicating via the scanner (e.g., on the scanner display or by means of a visual or audio alarm transmitted by the scanner) whether or not the scanned graphics data block SGDB (based on the results of the corrections 630) contains errors; or (c) performing at least one of steps 680 of storing in scanner memory scan result data indicating (based on the results of correction 630) whether the scanned graphics data block SGDB contains an error or not (600).

[0075]

[0075] Upon submitting the results of the selected options (a), (b), and (c), the verification process ends 690.

[0076]

[0076] Option (a) allows visually comparing a version of the text CHrGS displayed on the scanner display, which has been corrected via a programmed error correction code ECC, using the scanned error correction data SECD (obtained from the machine-readable representation of the error correction data MrECD) and the (uncorrected) text HrGS scanned on the support. Preferably, differences between the displayed text and the scanned text may be highlighted to help the user easily detect and identify changes in the text (e.g. due to alterations or fraud).

[0077] Option (b) allows the user to be warned if there are differences between the corrected text CHrGS and the text HrGS scanned on the support.

[0078]

[0078] Option (c) allows tracking of existing differences between the corrected text and the text scanned on the support. Alternatively, if the scanner is further equipped with communication means (e.g. a smartphone) and can be connected to an external server, the scan result data can be stored in the server memory via a communication link.

[0079]

[0079] The advantage of the above-mentioned verification method is that it is possible to check offline (i.e. without connecting to an external device via a communication link) the compatibility between the text provided on the support as a human-readable graphic symbol and the human-readable version that can be obtained from the machine-readable representation of the error correction data read on the support. This is because said version is the result of the correction of the text read on the support by the scanner via an error correction code (similar to the code already used together with the marking method to determine the error correction data corresponding to the text provided on the support) by using the error correction data extracted from the machine-readable representation read on the support and decoded by the scanner. However, if the scanner further comprises communication means (e.g. a smartphone) and can be connected to an external server, some or all of the above-mentioned operations of the verification method of decoding and performing error correction of the data block can be performed on a (dedicated) external server.

[0080]

[0080] Several variants of the verification method (correlated with the first and second variants of the marking method used to provide verifiable graphic data on the support, respectively) allow the user to go beyond simply verifying the text (or, more generally, the graphic symbol) provided on the support by further checking the authenticity of the text (and / or machine-readable data).

[0081] In a first variant of a verification method for verifying the human readable graphic symbol HrGS and the machine readable representation of the error correction data provided on a support according to the first variant of the marking method, after carrying out the steps of the above verification method (see FIG. 6), a hash function H is further programmed on the scanner processing unit for calculating a hash value of the data block (in the same manner as specified in the first variant of the marking method, respectively), the scanner is further connected to a scanner communication unit operable to communicate with the ledger via a communication link, wherein a reference hash value H (as specified in the first variant of the marking method) is calculated based on the reference hash value H ref is stored, and the scanner processing unit calculates the scan hash value H via a programmed hash function H. scan a hash value H(CSGDB) of the corrected scanned graphics data block CSGDB, a hash value H(SECDB) of the scanned error correction data block SECDB, or a concatenation of the corrected scanned graphics data block CSGDB and the scanned error correction data block SECDB (as described above) [Number 46] (CSGDB[+]SECDB) Data blocks resulting from [Number 47] CDB ≡ (CSGDB [+] SECDB) Further calculate the hash value H (part of the CDB) of any part of

[0082]

[0082] The scanner further performs the following operations: The scanner, via the communication unit (by sending a request to the ledger via a communication link and receiving a response), reads the reference hash value H stored in the ledger. ref Get the. The scanner processing unit then calculates the reference hash value H ref is the scanned hash value H scan Check whether it matches and perform the following operations: (e) indicating the results of the checking operation (e.g., via a scanner display); or (f) performing at least one of storing results of the checking operation in a scanner memory;

[0083]

[0083] When modifications are made with respect to the original (authentic) text (as human-readable graphic symbols) of the human-readable text provided on the support, or the content of the machine-readable error correction data provided on the support, the reference hash value H ref and the scan hash value H scan This variant therefore increases the level of confidence in the conformity of the text on the support with respect to the original version.

[0084]

[0084] A second variant of the verification method shown in the embodiment shown in Figure 7 involves dividing the full set of graphic symbols into a number of N subsets (N > 2) and displaying each subset of graphic symbols on a corresponding substrate portion, e.g. on a number of pages (e.g. N pages of a report or contract) as printed text (according to option (ii) of the second variant of the marking method) or on a screen in a predetermined format (e.g. an N-page text document in Microsoft Word or pdf format) (according to option (i) of the second variant of the marking method), with each substrate or displayed page displaying a predetermined subset of the human-readable graphic symbols and a machine-readable representation of the corresponding error correction data (both representations obtained from the corresponding predetermined verifiable graphic data sub-block).

[0085]

[0085] In the following exemplary embodiment of the second variant of the verification method (see Fig. 7), the human readable graphic symbol HrGS constitutes the text provided on the support according to the second variant of the marking method. For example, the text can be printed on a substrate (e.g. a sheet of paper as in Fig. 1) or electronically displayed on a screen. The imaging unit of the scanner is operable to image each of the N pages of the text on the support, i.e. the (verifiable) human readable graphic symbol HrGS(j) and the corresponding machine readable representation of error correction data MrECD(j) provided on the jth page (j=1,...,N). The scanner processing unit is programmed to perform image processing of the image of the jth page (j=1,...,N) on the support taken by the imaging unit, to extract scanned text data from the imaged human readable graphic symbol HrGS(j) (i.e. the imaged graphic symbol of the jth sub-block) and to obtain a digital representation of the extracted data as the corresponding scanned graphic data sub-block SGDSB(j). The scanner processing unit is also programmed to perform image processing of the image of the page j on the support taken by the imaging unit, to extract the scanned error correction data SECD(j) from the imaged machine-readable representation of the error correction data MrECD(j), and to obtain a digital representation of the scanned error correction data SECD(j) as a corresponding scanned error correction data sub-block SECDSB(j) by using a machine-readable decoder programmed on the scanner processing unit. The scanner processing unit is further programmed to perform an operation of error correction of the data block by using an error correction code ECC. The scanner may simply be a smartphone equipped with a camera (as an imaging unit) and with image processing, decoding and error correction applications operable to run on the processing unit of the camera.

[0086] According to the aforementioned embodiment of said second variant of the verification method (FIG. 7), in which human-readable graphic symbols and machine-readable error correction data are provided on a support according to the second variant of the marking method (illustrated in FIG. 4), the aforementioned scanner performs, for each page j (j=1,...,N) of the document, the following operations: a step 710 of scanning, by a scanner imaging unit, a human readable graphic symbol HrGS(j) provided on a page j of a support, i.e. a text 110 on a text area 120 of a sheet of paper 100, and a step 720 of obtaining a corresponding scanned graphic data sub-block SGDSB(j) (i.e. a digital representation of the scanned human readable graphic symbol); scanning 715 by a scanner imaging unit a machine-readable representation of error correction data MrECD(j) provided on a page j of a support, i.e. a PDF417 barcode 130 on a sheet of paper 100, decoding 725 by a scanner processing unit using a programmed machine-readable decoder the imaged MrECD(j), extracting the corresponding scanned error correction data SECD(j) and forming the corresponding scanned error correction data sub-block SECDSB(j) as a digital representation of the scanned error correction data SECD(j); a step 730 of correcting the scanned graphics data sub-block SGDSB(j) by the scanner processing unit using an error correction code ECC programmed in the scanner processing unit (and using the extracted SECD(j) of SECDSB(j)) and a step 740 of obtaining a corrected scanned graphics data sub-block CSGDSB(j); For each page, there are three options: (a) displaying 760 a visual (i.e., human readable) representation of the corrected scanned graphics data sub-block CSGDB(j) as a corresponding corrected human readable graphics symbol CGS(j) on the scanner display; (b) indicating 770 via the scanner (e.g., on the scanner display or using a visual or audio alarm transmitted by the scanner) whether (based on the results of the corrections 730) the scanned graphics data sub-block SGDB(j) contains an error; or (c) starting execution 700 of step 750, which performs at least one of steps 780, which stores in scanner memory scan result data specifying whether the scanned graphics data sub-block SGDB(j) contains an error (based on the result of correction 730).

[0087]

[0087] Transmitting the results of the selected options (a), (b) and (c) completes the second variant of the verification process for each page of the document 790. If the scanner is further equipped with communication means (such as a smartphone) and can connect to an external server, the scan result data of option (c) can be stored in a server memory via a communication link.

[0088]

[0088] The present invention also includes three sub-variants of the aforementioned second variant of the verification method, in all these sub-variants, after carrying out the steps of the embodiment of the second variant of the verification method shown in Fig. 7, a one-way function, here a hash function H, is further programmed on the scanner processing unit to calculate the hash values ​​of the data blocks (in the same way as specified in the respective variants of the marking method), and the scanner processing unit calculates, via the programmed hash function H, the N scan sub-block hash values ​​H scan (j) (j=1,...,N) and calculate each scan subblock hash value H scan (j) is the concatenation of the jth corrected scanned graphics data sub-block CSGDB(j) and the jth scanned error correction data sub-block SECDSB(j); [Number 48] (CSGDSB(j)[+]SECDSB(j)) a hash value H(CSGDSB(j)) of the jth corrected scanned graphics data sub-block CSGDSB(j), a hash value H(SECDSB(j)) of the jth scanned error-corrected data sub-block SECDSB(j), or a hash value H(part of CDB(j)) of any portion of the data block resulting from [Number 49] CDB(j)≡(CSGDSB(j)[+]SECDSB(j)) The calculated scan subblock hash value H scan The use of (j) is specific to each of the first, second and third sub-variants of the second variant of the validation method, as described in detail below.

[0089]

[0089] In an embodiment of a first sub-variant of the embodiment of the second variant of the verification method, in which the human-readable graphic symbols HrGS(j) and the machine-readable error correction data MrECD(j) on the support have been generated according to the first sub-variant of the second variant of the marking method, the hash function and the error correction code are programmed on the scanner processing unit, and the scanner is further operable by the scanner processing unit to read and decode the machine-readable representation of the sub-block hash values ​​H(j) on the support. Furthermore, the scanner is connected via a communication link to a scanner communication unit operable to communicate with a ledger in which the reference aggregate hash values ​​are stored. The scanner scans the sub-block hash values ​​H(j) if possible (i.e. if all HrGS(j) and MrECD(j) are readable). scan(j), j=1,...,N (see above). If the scan subblock hash value cannot be calculated for some page j, e.g. because HrGS(j) and MrECD(j) for this jth page are unreadable, the scanner scans and decodes the machine-readable representation MrH(j) of the subblock hash value H(j) on this jth page of the support to obtain the corresponding decoded subblock hash value DH(j). This decoded subblock hash value is then used to calculate the scan subblock hash value, i.e. H(j), for the jth page. scan (j) ≡ DH(j). This machine-readable representation of the jth subblock hash value MrH(j) is associated with a verifiable graphic data subblock VGDSB(j) that corresponds to a human-readable graphic symbol HrGS(j) and a machine-readable representation of the error correction data MrECD(j) provided on the support. As a result, all the subblock scan hash values ​​required to calculate an aggregate hash value for all pages of the support are calculated (calculated scan hash values ​​H scan (j), or identified using the decrypted hash value DH(j).

[0090]

[0090] The scanner processing unit then performs the following further operations: By concatenating all the obtained scan hash values, the aggregated scan hash value H scan [Number 50] H scan ≡H scan (1) [+] H scan (2)[+]...[+]H scan (N-1)[+]H scan (N) (The symbol [+] represents the concatenation operator) Calculating transmitting a request for a reference aggregate hash value to the ledger via the scanner communication unit over a communication link, and ref receiving the Received reference aggregate hash value H refis the aggregate scan value H scan and indicating (e.g., via a message on the scanner display) the result of the checking operation. In case of a match, the pages are all authentic (i.e., match the original page), even if the text and machine-readable error correction data of some pages are unreadable (but the machine-readable representation of the subblock hash values ​​is readable). In case of a mismatch, at least one of the pages has been modified (e.g., at least one of the graphic symbols has been modified or is fake). It is then possible to retrieve such pages by checking whether the scan subblock hash value Hscan(j), obtained from the subblock data HrGS(j) and MrECD(j), matches the corresponding decrypted hash value DH(j), j=1,...,N.

[0091]

[0091] This sub-variant allows a scanner to individually check whether each page of an N-page document is authentic or not, using a scan of a simple machine-readable representation of the sub-block hash values ​​of limited size.

[0092] In an embodiment of a second sub-variant of the second variant of the verification method, the human readable graphic symbols HrGS(j), (j=1,...,N) and the machine readable error correction data MrECD(j) on a page j (of a document with N pages) on a support have been generated according to a second sub-variant of the second variant of the marking method, option (iii), and the scanner transmits, via a communication link, a reference aggregate hash value H ref (as the root node value of the tree, see FIG. 5 ) and is connected to a scanner communication unit operable to communicate with a ledger including a hash function (N subblock hash values ​​H(j) and a corresponding reference aggregate hash value H refThe scanner further reads and decodes the machine-readable representations MrVPK(j) (j=1,...,N) of the sub-block verification passkeys VPK(j) on the support, and derives an aggregated scanned hash value H(j) from the corresponding pair of sub-block hash value H(j) and sub-block verification passkey VPK(j) scanned on the support. scan (here we consider the case N=8, for an 8-page document, using a binary tree corresponding to the example of FIG. 5 ) to compute the scanned subblock hash value H using a hash function from the scanned verifiable graphical data on page j of the N-page document, and according to the second sub-variant of the second variant of the marking method (i.e. using the same selected choice of H(CSGDSB(j)), H(SECDSB(j) or H(part of CDB(j) for computing the subblock hash value used as the leaf node of the tree)). scan After computing (j), j∈{1, ..., N} (see above), the scanner performs the following operation: scanning a machine-readable representation MrVPK(j) of a sub-block verification passkey VPK(j) on the jth page of the support (corresponding to the jth corrected scanned graphical data sub-block CSGDSB(j)) and extracting by a scanner processing unit the corresponding scanned sub-block verification passkey SVPK(j); The scanner processing unit calculates the hash value H of the scanned subblock. scan (j), and the scan subblock verification passkey SVPK(j) obtained by scanning the jth page of the document, to generate a scan aggregate hash value H scan Calculating

[0093] For j=1 (first page of the document) and as explained above with respect to the embodiment of the second sub-variant of the second variant of the marking method (see also the exemplary binary tree of FIG. 5), the sub-block H obtained as shown above (i.e. from the first corrected scanned graphic data sub-block CSGDB(1) and / or the first scanned error-corrected data sub-block SECDSB(1)) is scan (1) is the value of the first leaf node a(1,1) of the binary tree (the order of the nodes and the order of the tree linkage are selected to be the same as those in the above embodiment of the second sub-variant of the second variant of the marking method), and the scanned sub-block verification pass key SVPK(1) to be extracted includes three node values, SVPK(1)={a(1,2), a(2,2), a(3,2)}, so that the scanned hash value H that can be obtained from the scan of the verifiable graphic data of the first page is scan teeth, [Number 51] H scan =H(H(H(a(1,1)[+]a(1,2))[+]a(2,2))[+]a(3,2)) =H(H(H(H scan (1)[+]a(1,2))[+]a(2,2))[+]a(3,2)) It is calculated as: For j=2, SVPK(2)={a(1,1),a(2,2),a(3,2)}, [Number 52] H scan =H(H(H(a(1,1)[+]H scan (2))[+]a(2,2))[+]a(3,2)) For j=3, SVPK(3)={a(1,4),a(2,1),a(3,2)}. [Number 53] H scan =H(H(a(2,1)[+]H(H scan (3)[+]a(1,4)))[+]a(3,2)) For j=4, SVPK(4)={a(1,3),a(2,1),a(3,2)}, [Number 54] H scan =H(H(a(2,1)[+]H(a(1,3)[+]H scan (4)))[+]a(3,2)) For j=5, SVPK(5)={a(1,6),a(2,4),a(3,1)}. [Number 55] H scan =H(a(3,1)[+]H(H(H scan (5)[+]a(1,6))[+]a(2,4))) For j=6, SVPK(6)={a(1,5),a(2,4),a(3,1)}. [Number 56] H scan =H(a(3,1)[+]H(H(a(1,5)[+]H scan (6))[+]a(2,4))) For j=7, SVPK(7)={a(1,8),a(2,3),a(3,1)}. [Number 57] H scan =H(a(3,1)[+]H(a(2,3)[+]H(H scan (7)[+]a(1,8)))) For j=8, SVPK(8)={a(1,7),a(2,3),a(3,1)}. [Number 58] H scan =H(a(3,1)[+]H(a(2,3)[+]H(a(1,7)[+]H scan (8)))) It is. Next, the reference aggregate hash value H stored in the ledger via the scanner communication unit and the communication link ref (i.e., the root node value R of the tree), and the reference aggregate hash value H ref Let j = 1, ..., N be the scan aggregate hash value H scan a step of checking whether the indicating (e.g. on a scanner display) the result of the checking operation; Execute.

[0094] This sub-variant of the verification method allows for the detection of errors on each page of a document using only a small amount of data, because any variation in the content of the page reduces the reference aggregate hash value H ref and the scan hash value H obtained from the verifiable graphic data scanned on this page. scan In addition, the method is based on the fact that the corrected version of the scanned graphics data is the subblock hash value H scan It is robust because it is used to calculate (j).

[0095] In a third sub-variant embodiment of the second variant of the verification method, the same binary tree of the document of N=8 pages is scanned, and the sub-block hash values ​​H scan (j) (j=1,...,N), and the scan hash value H as in the above example of the second sub-variant of the second variant of the verification method. scan In this embodiment, the human readable graphic symbol HrGS(j) and the machine readable error correction data MrECD(j) on the support have been generated according to the second sub-variant, option (iv) of the second variant of the marking method, and the reference aggregate hash value H ref is stored in the scanner memory, and the scanner also reads and decodes the machine-readable representation of the sub-block verification passkey VPK(j) on the support and derives an aggregate hash value H from the corresponding pair of sub-block hash value and sub-block verification passkey. scan According to this embodiment, the method is also operable to carry out the steps of the above-mentioned second variant of the verification method and to calculate the scan sub-block hash value H scan After computing (j) (j=1,...,N), the scanner performs a further step: scanning, by a scanner, a machine-readable representation MrVPK(j) of a jth page sub-block verification passkey VPK(j) provided on a support (e.g. corresponding to a jth corrected scanned graphical data sub-block CSGDSB(j) obtained from scanned verifiable graphical data provided on the jth page of the document) and extracting, by a scanner processing unit, a corresponding scanned sub-block verification passkey SVPK(j); The calculated scan subblock hash value H scan (j), and the scan subblock verification passkey SVPK(j) obtained by scanning the jth page of the document, to generate a scan aggregate hash value H scan (see above, detailed calculations related to the second sub-variant of the embodiment of the second variant of the verification method), The reference aggregate hash value H stored in the scanner memory ref and obtaining The reference aggregate hash value H obtained by the scanner processing unit ref is the aggregated scan hash value H for the jth page (j=1, ..., N). scan a step of checking whether the Steps showing the results of the check operation (via the scanner display) Execute.

[0096] This sub-variant of the verification method allows for robust offline detection of errors on each page of a document with a small amount of data, since any variation in the content of the page reduces the reference aggregate hash value H ref and the scan hash value H obtained from the verifiable graphic data scanned on this page. scan In fact, this method uses the reference aggregate hash value H ref is the scanned hash value H scan To check whether the value matches the value in the scanner memory (i.e., H ref) data (of limited size) stored in

[0097]

[0097] An embodiment of an alternative variation of the verification method illustrates the application of the invention to a verification human readable graphic symbol and corresponding machine readable error correction data generated in a computer connected to a display by a processor programmed to carry out the steps of the above-described marking method, option (i). The computer has a scanning application programmed on the processor which is operative to scan the displayed human readable graphic symbol and the machine readable error correction data. Thus, the computer displays the generated human readable graphic symbol HrGS, and the corresponding machine readable error correction data MrECD, and the scanning application running on the computer processor performs the following operations: scanning the displayed human readable graphic symbol HrGS to obtain a scanned graphic data block SGDB, the scanned graphic data block being a digital representation of the scanned human readable graphic symbol; scanning the displayed machine-readable error correction data MrECD via a machine-readable decoder of a scanning application executed on a computer processor, and decoding the scanned machine-readable error correction data MrECD to obtain corresponding scanned error correction data SECD in the scanned error correction data block SECDB; correcting the scanned graphics data block SGDB using an error correction code ECC of a scanning application executed on a computer processor and using the scanned error correction data SECD of the scanned error correction data block SECDB to obtain a corresponding corrected scanned graphics data block CSGDB; Next steps, (a) displaying on a display a visual representation of the corrected scanned graphic data block CSGDB as a corrected human readable graphic symbol CHrGS; (b) displaying (based on the result of the SGDB correction step) an indication specifying whether the scanned graphics data block SGDB contains an error, or (c) storing in the computer memory the scanned result data that specifies whether the scanned graphics data block SGDB contains errors or not; and performing at least one of: Execute.

[0098]

[0098] In step (a), the portion of the originally displayed human readable graphic symbol HrGS (before executing the scan application) that was corrected via the scan application is preferably highlighted to facilitate identification and location of errors in the originally displayed HrGS by a computer user.

[0099]

[0099] The foregoing disclosed subject matter should be considered as illustrative and not limiting, and serves to provide a better understanding of the invention defined by the independent claims. [Item of invention] [Item 1] 1. A method for protecting graphic data against counterfeiting and tampering, comprising the steps of: storing in a memory of a processing unit a graphic data block (210, 310) comprising a digital representation of a given finite set of graphic symbols of said graphic data; processing said digital representations of said stored graphic symbols in said graphic data blocks by said processing unit using an error correction code programmed into said processing unit to generate error correction data in a corresponding error correction data block (230, 330); formatting (215, 240; 315, 340) the graphic data block and the error correction data block by the processing unit to respectively provide, in the human readable graphic data block, a human readable representation of the graphic symbols of the graphic data block and, in the machine readable error correction data block, a machine readable representation of the error correction data of the error correction data block separate from the human readable representation of the graphic symbols of the graphic data block, to obtain a corresponding authenticable graphic data block (250, 350) including a human readable graphic data block and a machine readable error correction data block; (i) displaying, on a support (100) which is a display connected to the processing unit, a human-readable graphic symbol of the obtained authenticable graphic data block and a machine-readable representation of the corresponding error correction data; or (ii) marking (260) the human readable graphic symbols of the obtained authenticable graphic data blocks received from the processing unit and the corresponding machine readable representations of the error correction data on a substrate support (100) via a marking device having a control unit connected to the processing unit and operable to control a marking operation based on data received from the processing unit, providing authentication data on said support, said authentication data including said human readable graphic symbol and corresponding machine readable error correction data; The method includes: [Item 2] 2. The method of claim 1, wherein the machine-readable representation of the error correction data is one of an alphanumeric representation or a barcode representation (130). [Item 3] 3. The method according to item 1 or 2, wherein the graphic symbols are text characters (110) and the finite set of graphic symbols is an alphabet. [Item 4] calculating, using a hash function programmed on the processing unit, a hash value of the graphics data block, a hash value of the error correction data block, or a hash value of any part of a data block resulting from the concatenation of the graphics data block and the error correction data block; storing the calculated hash value in a ledger as a reference hash value; The method according to any one of items 1 to 3, comprising: [Item 5] The support includes a plurality of portions, the authenticatable graphic data block is divided (410) into a plurality of identical authenticatable graphic data sub-blocks, and the corresponding human readable graphic symbols and the machine readable representation of error correction data are both spread correspondingly on the corresponding portions of the support by the steps of: dividing the graphic data block into a plurality of graphic data sub-blocks, each of the graphic data sub-blocks being formatted to provide a human readable representation of a graphic symbol in a corresponding human readable graphic data sub-block (415); for each of the graphics data sub-blocks, the digital representation of the graphic symbol of each of the graphics data sub-blocks is extracted and processed (420) with the error correction code to generate corresponding error correction data in an error correction data sub-block (430); formatting each of the error correction data sub-blocks to provide a machine-readable representation of corresponding error correction data in the corresponding machine-readable error correction data sub-block (440), separate from the human-readable representation of the graphic symbols of the corresponding human-readable graphic data sub-block, to obtain a corresponding authenticable graphic data sub-block (450), the corresponding graphic data sub-block including a human-readable graphic data sub-block and a machine-readable error correction data sub-block; displaying (460) on said display a human-readable graphic symbol of each of the obtained authenticatable graphic data sub-blocks and a corresponding machine-readable representation of the error correction data; or marking (470) via the marking device onto the substrate the human readable graphic symbol of each of the authenticatable graphic data sub-blocks received by the control unit from the processing unit in step (ii) and a corresponding machine readable representation of error correction data; providing, for each of the graphical data sub-blocks of the graphical data block, on the support, a corresponding human-readable graphical symbol and corresponding machine-readable error correction data that are user-authenticable; The method according to any one of items 1 to 3, comprising: [Item 6] a subblock hash value is calculated for each graphics data subblock, the corresponding error correction data subblock, or any portion of a data subblock resulting from a concatenation of the graphics data subblock and the error correction data subblock via a hash function programmed onto the processing unit; for each of the subblock hash values, a corresponding machine-readable representation of said subblock hash value is calculated; associated with each authenticatable graphical data sub-block, a corresponding machine-readable representation of said sub-block hash value is further provided on said corresponding portion of said support; a reference aggregate hash value of all the subblock hash values ​​is determined as a concatenation of all the calculated subblock hash values; The reference aggregate hash value is stored in a ledger; 6. The method according to claim 5, further comprising providing, for each of the graphic data sub-blocks of the graphic data block, a corresponding human-readable graphic symbol and corresponding machine-readable error correction data on the support that can be authenticated by a user. [Item 7] a subblock hash value is calculated for each of the graphics data subblocks, the corresponding error correction data subblock, or any portion of a data subblock resulting from a concatenation of the graphics data subblock and the error correction data subblock via a hash function programmed onto the processing unit; a reference aggregate hash value of all the subblock hash values ​​is determined as a root node value of a tree having the calculated subblock hash values ​​as leaf node values, the tree including nodes arranged according to a predetermined node order in the tree, the tree including node levels from the leaf nodes to the root node, all non-leaf node values ​​of the tree correspond to hash values ​​of the concatenation of the node values ​​of the respective child nodes of the tree according to a tree concatenation order, and the root node value corresponds to the hash value of the concatenation of the node values ​​of the nodes at a penultimate node level in the tree according to the tree concatenation order; for each subblock hash value, an associated subblock verification passkey is determined as the set of hash values ​​of selected non-leaf nodes of the tree required to obtain the root node value from the subblock hash value; a machine-readable representation of each sub-block verification passkey is included in the authenticatable graphic data sub-block in association with each corresponding graphic data sub-block and error correction data sub-block; the authenticatable graphical data sub-block is further formatted to provide a machine-readable representation of the sub-block verification passkey separate from the human-readable representation of the associated graphical data sub-block and the machine-readable representation of the associated error correction data sub-block; (iii) the baseline aggregate hash value is stored in the ledger; or (iv) making the reference aggregate hash value available to a user; 6. The method according to claim 5, further comprising providing, for each of the graphic data sub-blocks of the graphic data block, a corresponding human-readable graphic symbol and corresponding machine-readable error correction data on the support, which can be authenticated by a user. [Item 8] A method for authenticating a human-readable graphic symbol provided on a support with a machine-readable representation of error correction data, generated according to the method according to any one of items 1 to 3, comprising: scanning (610, 710) a human readable graphic symbol with a scanner having an imaging unit and a scanner processing unit having a scanner memory and connected to a scanner display to obtain (620, 720) a scanned graphic data block, which is a digital representation of the scanned human readable graphic symbol through image processing of the scanned human readable graphic symbol; scanning (615, 715) the machine-readable representation of the error correction data on the support with the scanner to obtain (625, 725) corresponding scanned error correction data for scanned error correction data blocks via a machine-readable decoder programmed on the scanner processing unit, the scanned error correction data being a digital representation of the scanned error correction data; correcting (630, 730) the scanned graphics data block using an error correction code programmed onto the scanner processing unit, using the scanned error correction data of the scanned error correction data block to obtain a corresponding corrected scanned graphics data block; (a) displaying (660, 760) a visual representation of the corrected scanned graphical data block as a corresponding corrected human readable graphical symbol on the scanner display and comparing the displayed visual representation of the corrected scanned graphical data block with the human readable graphical symbol provided on the support to detect alteration or tampering; (b) indicating via the scanner whether the scanned graphics data block contains errors (670, 770); or (c) storing (680, 780) scan result data in said scanner memory specifying whether said scanned graphics data block contains errors; The method includes: [Item 9] 5. A method, comprising: generating the human-readable graphic symbol and the machine-readable error correction data on the support according to the method of claim 4, the hash function being programmed on the scanner processing unit, the scanner being connected to a scanner communication unit operable to communicate with the ledger via a communication link, Calculating, using the hash function programmed on the scanner processing unit according to item 4, a scan hash value of the corrected scanned graphics data block, a scan hash value of the scanned error correction data block, or a scan hash value of any portion of a data block resulting from the concatenation of the corrected scanned graphics data block and the scanned error correction data block; obtaining the reference hash value stored in the ledger via the scanner communication unit and the communication link, and checking whether the obtained reference hash value matches a scan hash value; (e) indicating a result of the operation of said checking step; or (f) storing a result of the operation of the checking step in the scanner memory; The method of claim 8, further comprising: [Item 10] Item 6. A method, comprising: generating the human-readable graphic symbol and the machine-readable error correction data on the support according to the method of item 5, the act of scanning the human readable graphic symbol on the support includes scanning a sub-block graphic symbol of the corresponding graphic data sub-block to obtain, via image processing, a corresponding scanned graphic data sub-block as a digital representation of the scanned sub-block; the operation of scanning the machine-readable error correction data on the support includes scanning the error correction data of the corresponding error correction data sub-block to obtain a corresponding scanned error correction data sub-block; the operation of correcting the scanned graphics data block includes correcting the graphics data of the scanned graphics data sub-block using the corresponding scanned error correction data sub-block to obtain a corresponding corrected scanned graphics data sub-block; and wherein act (a) of the step of displaying a visual representation of the corrected scanned data block comprises displaying a visual representation of the corrected scanned graphics data sub-block; and operation (b) of the step of indicating whether the scanned graphics data block contains errors includes indicating whether the scanned graphics data sub-block contains errors; 9. The method of claim 8, wherein operation (c) of the step of storing scan result data includes storing whether the scanned graphics data sub-block contains errors. [Item 11] The human-readable graphic symbol and the machine-readable error correction data on the support are generated according to the method of item 6, the hash function and the error correction code are programmed into the scanner processing unit, the scanner being further operable to read and decode, by the scanner processing unit, a machine-readable representation of the sub-block hash values ​​on the support; 11. A method, comprising: the scanner being connected to a scanner communications unit operable to communicate over a communications link with the ledger, the method comprising: calculating, for each portion of said support, a hash function of said corresponding corrected scanned graphics data sub-block, said corresponding error correction data sub-block, or any portion of a data sub-block resulting from the concatenation of said corrected scanned graphics data sub-block and said scanned error correction data sub-block, according to said operations performed to calculate sub-block hash values, using said hash function programmed into said scanner processing unit; if a scan sub-block hash value for the portion of the support cannot be computed, scanning and decrypting a machine-readable representation of the sub-block hash value for the portion of the support to obtain a corresponding decrypted sub-block; and using the decoded sub-block hash value as the scan sub-block hash value for that portion of the support; computing an aggregate scan hash value as the concatenation of all said scan sub-block hash values; obtaining the reference aggregate hash value stored in the ledger via the scanner communication unit and the communication link, and checking whether the obtained reference aggregate hash value matches the aggregated scan hash value; indicating a result of the operation of said checking step via said scanner; 11. The method of claim 10, further comprising: [Item 12] 8. A method, wherein the human-readable graphic symbols and the machine-readable error correction data on each portion of the support are generated according to the method of claim 7, the reference aggregated hash values ​​are stored in the ledger, the scanner is connected to the scanner communication unit operable to communicate via a communication link with the ledger, and the scanner is further operable to read and decode the machine-readable representations of sub-block verification passkeys on the corresponding portions of the support and to calculate an aggregated hash value from the corresponding sub-block hash value and sub-block verification passkey pair, calculating, using the hash function programmed in the scanner processing unit, a scanned sub-block hash value of a selected corrected scanned graphics data sub-block, a corresponding scanned error correction data sub-block, or any portion of a data sub-block resulting from a concatenation of the corrected scanned graphics data sub-block and the scanned error correction data sub-block, according to the operations performed to calculate sub-block hash values; scanning, with the scanner, a machine-readable representation of a sub-block verification passkey corresponding to the selected corrected scanned graphic data sub-block on a corresponding portion of the support, and extracting the corresponding scanned sub-block verification passkey; calculating a scan aggregate hash value using the calculated scan sub-block hash value and the scanned sub-block verification passkey; obtaining the reference aggregate hash value stored in the ledger via the scanner communication unit and a communication link, and checking whether the obtained reference aggregate hash value matches the scan aggregate hash value; indicating a result of the operation of said checking step via said scanner; 11. The method according to item 10, comprising: [Item 13] 8. A method, wherein the human-readable graphic symbol and the machine-readable error correction data on the support are generated according to the method of claim 7, the reference aggregated hash values ​​available to the user are stored in the scanner memory, and the scanner is further operable to read and decode the machine-readable representations of sub-block verification passkeys on the corresponding portions of the support and calculate an aggregated hash value from the corresponding sub-block hash value and sub-block verification passkey pair, calculating, using the hash function programmed into the scanner processing unit, a scanned sub-block hash value of a selected corrected scanned graphics data sub-block, a corresponding scanned error correction data sub-block, or any portion of a data sub-block resulting from a concatenation of the corrected scanned graphics data sub-block and the scanned error correction data sub-block, in accordance with the operations performed to calculate sub-block hash values; scanning, with the scanner, a machine-readable representation of a sub-block verification passkey corresponding to the selected corrected scanned graphic data sub-block on a corresponding portion of the support, and extracting the corresponding scanned sub-block verification passkey; scanning a reference aggregate hash value on the support to obtain a scanned reference aggregate hash value; calculating an aggregated scan hash value using the calculated scan sub-block hash values ​​and the scanned sub-block verification passkey; checking whether the reference aggregate hash value stored in the scanner memory matches the aggregated scan hash value; indicating a result of the operation of said checking step via said scanner; 11. The method according to item 10, comprising: [Item 14] A method for authenticating a human-readable graphic symbol provided with machine-readable error correction data on a display of a computer, the method being generated according to any one of the methods of claims 1 to 3, the computer having a scanning application programmed on a processor operable to scan the displayed human-readable graphic symbol and the machine-readable error correction data, scanning the displayed human readable graphic symbol via the scanning application executing on a processor of the computer to obtain a scanned graphic data block, the scanned graphic data block being a digital representation of the scanned human readable graphic symbol; scanning the displayed machine-readable error correction data and decoding the scanned machine-readable error correction data via a machine-readable decoder of the scan application executing on a processor of the computer to obtain corresponding scanned error correction data for scanned error correction data blocks; correcting the scanned graphics data block using an error correction code of the scan application running on a processor of the computer using the scanned error correction data of the scanned error correction data block to obtain a corresponding corrected scanned graphics data block; (a) displaying a visual representation of the corrected scanned graphics data block as a corrected human readable graphic symbol on the display, and comparing the displayed visual representation of the corrected scanned graphics data block with the human readable graphic symbol provided on the display to detect alteration or tampering; (b) displaying an indication specifying whether the scanned graphics data block contains errors; or (c) storing in said computer memory scan result data specifying whether said scanned graphics data block contains errors; A method comprising: [Item 15] 8. A substrate marked with authentication data comprising a human-readable graphic symbol and corresponding machine-readable error correction data according to the method of any one of items 1 to 7. [Item 16] A scanner comprising an imaging unit, a scanner processing unit, and a scanner display, the scanner processing unit being programmed to enable the scanner to implement the steps of the method according to any one of items 8, 10 and 13. [Item 17] 17. The scanner of item 16, further comprising a scanner communication unit operable to communicate with a ledger via a communication link, the scanner processing unit further programmed to enable the scanner to implement steps of the method of any one of items 9, 11 and 12. [Item 18] A computer program product operable when executed on a computer having a processor, a memory, and a display, for implementing the steps of the method according to claim 14 for authenticating a human-readable graphic symbol provided on the display with machine-readable error correction data generated according to the method according to any one of claims 1 to 3.

Claims

1. 1. A method for protecting graphic data against counterfeiting and tampering, comprising the steps of: storing in a memory of a processing unit a graphic data block (210, 310) comprising a digital representation of a given finite set of graphic symbols of said graphic data; processing said digital representations of the graphic symbols of said stored graphic data blocks by said processing unit using an error correction code programmed into said processing unit to generate error correction data resulting in an error correction data block (230, 330); To obtain (250, 350) an authenticatable graphic data block including a human readable graphic data block and a machine readable error correction data block, in said human readable graphic data block, a human readable graphic symbol of said graphic data block, said error correction data block being separate from said human readable graphic symbols of said graphic data block; To provide each formatting the graphics data block and the error correction data block by the processing unit, the machine-readable error correction data block not including a hash value of the graphics data block (215, 240; 315, 340); (i) displaying on a support (100) which is a display connected to said processing unit, the human-readable graphic symbols of said obtained authenticable graphic data blocks and associated machine-readable error correction data; or (ii) marking (260) the human readable graphic symbols of the obtained authenticable graphic data block received from the processing unit and the associated machine readable error correction data on a substrate support (100) via a marking device having a control unit connected to the processing unit and operable to control a marking operation based on data received from the processing unit, the marking step (260) providing authentication data on the support, the authentication data including the human readable graphic symbol and associated machine readable error correction data; The method includes:

2. The method of claim 1 , wherein the machine-readable error correction data is one of an alphanumeric representation or a barcode representation (130).

3. The method of claim 1 or 2, wherein the graphic symbols are text characters (110) and the finite set of graphic symbols is an alphabet.

4. calculating, using a hash function programmed on the processing unit, a hash value of the graphics data block, a hash value of the error correction data block, or a hash value of any part of a data block resulting from the concatenation of the graphics data block and the error correction data block; storing the calculated hash value in a ledger as a reference hash value; The method according to any one of claims 1 to 3, comprising:

5. The support includes a plurality of portions, the authenticatable graphic data block is divided into a plurality of authenticatable graphic data sub-blocks (410), and the human readable graphic symbol and the machine readable error correction data are both distributed over the portions of the support by the steps of: dividing the graphic data block into a plurality of graphic data sub-blocks, each of the graphic data sub-blocks being formatted to provide a human readable graphic symbol in an associated human readable graphic data sub-block (415); for each of the graphics data sub-blocks, the digital representation of the graphic symbol of each of the graphics data sub-blocks is extracted and processed (420) with the error correction code to generate error correction data resulting in an error correction data sub-block (430); To obtain 450 an authenticable graphics data sub-block including a human readable graphics data sub-block and a machine readable error correction data sub-block, each of the error correction data sub-blocks being formatted to provide (440) machine-readable error correction data in said machine-readable error correction data sub-block separate from the human-readable graphic symbols in said human-readable graphic data sub-blocks; displaying (460) on said display a human readable graphic symbol and associated machine readable error correction data for each of the obtained authenticable graphic data sub-blocks in step (i); or marking (470) on the substrate via the marking device the human readable graphic symbol and associated machine readable error correction data of each of the authenticatable graphic data sub-blocks received by the control unit from the processing unit in step (ii); said marking step (470) providing, for each of said graphical data sub-blocks of said graphical data block, a human-readable graphical symbol and associated machine-readable error correction data on said support, said human-readable graphical symbol and associated machine-readable error correction data ... The method according to any one of claims 1 to 3, comprising:

6. a subblock hash value is calculated for each graphics data subblock, the error correction data subblock, or any portion of a data subblock resulting from a concatenation of the graphics data subblock and the error correction data subblock via a hash function programmed onto the processing unit; For each of the subblock hash values, a machine-readable representation of the subblock hash value is calculated; and providing, on said portion of said support, said machine readable representation of said sub-block hash value associated with each authenticatable graphical data sub-block; a reference aggregate hash value of all the subblock hash values ​​is determined as a concatenation of all the calculated subblock hash values; The reference aggregate hash value is stored in a ledger; 6. The method of claim 5, further comprising providing on the support for each of the graphical data sub-blocks of the graphical data block a human-readable graphical symbol and associated machine-readable error correction data that is user-authenticable.

7. a subblock hash value is calculated for each of the graphics data subblocks, the error correction data subblocks, or any portion of a data subblock resulting from a concatenation of the graphics data subblocks and the error correction data subblocks via a hash function programmed onto the processing unit; a reference aggregate hash value of all the subblock hash values ​​is determined as a root node value of a tree having the calculated subblock hash values ​​as leaf node values, the tree including nodes arranged according to a predetermined node order in the tree, the tree including node levels from leaf nodes to a root node, all non-leaf node values ​​of the tree correspond to hash values ​​of the concatenation of the node values ​​of the respective child nodes of the tree according to a tree concatenation order, and the root node value corresponds to the hash value of the concatenation of the node values ​​of the nodes at a penultimate node level in the tree according to the tree concatenation order; for each subblock hash value, an associated subblock verification passkey is determined as the set of hash values ​​of selected non-leaf nodes of the tree required to obtain the root node value from the subblock hash value; a machine-readable representation of each sub-block verification passkey is included in the authenticatable graphic data sub-block in association with the respective graphic data sub-block and error correction data sub-block; the authenticatable graphical data sub-block is further formatted to provide a machine-readable representation of the sub-block verification passkey separate from the human-readable representation of the associated graphical data sub-block and the machine-readable representation of the associated error correction data sub-block; (iii) the reference aggregate hash value is stored in a ledger; or (iv) making the reference aggregate hash value available to a user; 6. The method of claim 5, further comprising providing on said support, for each of said graphic data sub-blocks of said graphic data block, a human-readable graphic symbol and associated machine-readable error correction data that is user verifiable.

8. authenticating the human-readable graphic symbol provided on a support with the machine-readable error correction data, scanning (610, 710) a human readable graphic symbol with a scanner having an imaging unit and a scanner processing unit having a scanner memory and connected to a scanner display to obtain (620, 720) a scanned graphic data block, which is a digital representation of the scanned human readable graphic symbol through image processing of the scanned human readable graphic symbol; scanning (615, 715) the machine-readable error correction data on the support with the scanner to obtain (625, 725) scanned error correction data of scanned error correction data blocks via a machine-readable decoder programmed on the scanner processing unit, the scanned error correction data being a digital representation of the scanned error correction data; correcting (630, 730) the scanned graphics data block using an error correction code programmed on the scanner processing unit, using the scanned error correction data of the scanned error correction data block to obtain a corrected scanned graphics data block; (a) indicating via the scanner whether the scanned graphics data block contains errors (670, 770); or (b) storing (680, 780) scan result data in said scanner memory specifying whether said scanned graphics data block contains errors; The method of any one of claims 1 to 3, further comprising an authenticating step, comprising:

9. a hash function programmed onto the scanner processing unit, the scanner being connected to a scanner communications unit operable to communicate via a communications link with a ledger storing reference hash values, the authenticating step comprising: calculating, using the hash function programmed onto the scanner processing unit, a scan hash value of the corrected scanned graphics data block, a scan hash value of the scanned error correction data block, or a scan hash value of any portion of a data block resulting from the concatenation of the corrected scanned graphics data block and the scanned error correction data block; obtaining the reference hash value stored in the ledger via the scanner communication unit and the communication link, and checking whether the obtained reference hash value matches a scan hash value; (e) indicating a result of the operation of said checking step; or (f) storing a result of the operation of the checking step in the scanner memory; The method of claim 8 further comprising:

10. the act of scanning the human readable graphic symbol on the support includes scanning a sub-block graphic symbol of the graphic data sub-block to obtain, via image processing, a scanned graphic data sub-block as a digital representation of the scanned sub-block; the operation of scanning the machine-readable error correction data on the support includes scanning the error correction data of the error correction data sub-blocks to obtain scanned error correction data sub-blocks; the operation of correcting the scanned graphics data block includes correcting the graphics data of the scanned graphics data sub-block using the scanned error correction data sub-block to obtain a corrected scanned graphics data sub-block; and operation (a) of the step of indicating whether the scanned graphics data block contains errors includes indicating whether the scanned graphics data sub-block contains errors; 9. The method of claim 8, wherein act (b) of said step of storing scan result data comprises storing whether said scanned graphics data sub-block contains errors.

11. a hash function and the error correction code are programmed into the scanner processing unit, the scanner being further operable to read and decode, by the scanner processing unit, a machine readable representation of the sub-block hash values ​​on the support; The scanner is connected to a scanner communication unit operable to communicate over a communication link with a ledger storing reference aggregate hash values, and the authenticating step comprises: calculating, for each portion of said support, a hash function of said corrected scanned graphics data sub-block, said error correction data sub-block, or any portion of a data sub-block resulting from the concatenation of said corrected scanned graphics data sub-block and said scanned error correction data sub-block, according to said operations performed to calculate sub-block hash values, using said hash function programmed into said scanner processing unit; if the scanned sub-block hash value of the portion of the support cannot be computed, scanning and decrypting a machine-readable representation of the sub-block hash value of the portion of the support to obtain a decrypted sub-block; and using the decoded sub-block hash value as the scan sub-block hash value for that portion of the support; computing an aggregate scan hash value as the concatenation of all said scan sub-block hash values; obtaining the reference aggregate hash value stored in the ledger via the scanner communication unit and the communication link, and checking whether the obtained reference aggregate hash value matches the aggregated scan hash value; indicating a result of the operation of said checking step via said scanner; The method of claim 10 further comprising:

12. a reference aggregated hash value is stored in a ledger, the scanner is connected to a scanner communication unit operable to communicate over a communication link with the ledger, the scanner is further operable to read and decode a machine readable representation of a sub-block verification passkey on a portion of the support and to calculate an aggregated hash value from a pair of the sub-block hash value and the sub-block verification passkey, and the authenticating step comprises: calculating, using a hash function programmed in said scanner processing unit, a scanned sub-block hash value of a selected corrected scanned graphics data sub-block, a scanned error correction data sub-block, or any portion of a data sub-block resulting from a concatenation of said corrected scanned graphics data sub-block and said scanned error correction data sub-block in accordance with said operations performed to calculate sub-block hash values; scanning, on a portion of the support, with the scanner a machine readable representation of a sub-block verification passkey associated with the selected corrected scanned graphics data sub-block, and extracting the scanned sub-block verification passkey; calculating a scan aggregate hash value using the calculated scan sub-block hash value and the scanned sub-block verification passkey; obtaining the reference aggregate hash value stored in the ledger via the scanner communication unit and a communication link, and checking whether the obtained reference aggregate hash value matches the scan aggregate hash value; indicating a result of the operation of said checking step via said scanner; The method of claim 10, comprising:

13. A reference aggregated hash value available to a user is stored in the scanner memory, and the scanner is further operable to read and decode a machine-readable representation of a sub-block verification passkey on the portion of the support and to calculate an aggregated hash value from a pair of the sub-block hash value and the sub-block verification passkey, and the authenticating step comprises: calculating, using a hash function programmed into the scanner processing unit, a scanned sub-block hash value of a selected corrected scanned graphics data sub-block, a scanned error correction data sub-block, or any portion of a data sub-block resulting from a concatenation of the corrected scanned graphics data sub-block and the scanned error correction data sub-block in accordance with the operations performed to calculate a sub-block hash value; scanning, on a portion of the support, with the scanner a machine readable representation of a sub-block verification passkey associated with the selected corrected scanned graphics data sub-block, and extracting the scanned sub-block verification passkey; scanning a reference aggregate hash value on the support to obtain a scanned reference aggregate hash value; calculating an aggregated scan hash value using the calculated scan sub-block hash values ​​and the scanned sub-block verification passkey; checking whether the reference aggregate hash value stored in the scanner memory matches the aggregated scan hash value; indicating a result of the operation of said checking step via said scanner; The method of claim 10, comprising:

14. authenticating the human readable graphic symbol provided with the machine readable error correction data on a display of a computer, the computer having a scanning application programmed on a processor operable to scan the displayed human readable graphic symbol and the machine readable error correction data; scanning the displayed human readable graphic symbol via the scanning application executing on a processor of the computer to obtain a scanned graphic data block, the scanned graphic data block being a digital representation of the scanned human readable graphic symbol; scanning the displayed machine-readable error correction data and decoding the scanned machine-readable error correction data via a machine-readable decoder of the scan application executing on a processor of the computer to obtain scanned error correction data for scanned error correction data blocks; correcting the scanned graphics data block using an error correction code of the scan application running on a processor of the computer using the scanned error correction data of the scanned error correction data block to obtain a corrected scanned graphics data block; (a) displaying an indication specifying whether the scanned graphics data block contains errors; or (b) storing in said computer memory scan result data specifying whether said scanned graphics data block contains errors; The method of any one of claims 1 to 3, further comprising an authenticating step, comprising:

15. A method according to any one of claims 1 to 7, comprising the step of marking a substrate with authentication data comprising said human readable graphic symbol and said machine readable error correction data associated therewith.

Citation Information

Patent Citations

  • Method and means for strengthening optical character recognition ability for printed document

    JP1995168912A

  • Individual identification medium issuing system and data check method

    JP1997297867A

  • Systems and methods for integrating computer-readable data entered over a computer network with paper-based business documents

    JP2003528368A

  • Information processing apparatus, information processing system, and program

    JP2009171432A

  • Electronic certification system

    JP2018182487A