Computer-implemented method for decoding a marking encoding information and computer-implemented method for encoding information in a marking
Patent Information
- Authority / Receiving Office
- AU · AU
- Patent Type
- Applications
- Current Assignee / Owner
- SICPA HOLDING SA
- Filing Date
- 2024-12-16
- Publication Date
- 2026-07-30
AI Technical Summary
Existing two-dimensional codes used for encoding information on articles can be decoded by reversing the decoding algorithm, leading to security breaches, especially when decoding is performed on smartphones.
A computer-implemented method that splits the marking into two portions, where the first portion is decoded using a publicly available algorithm on a scanning device, and the second portion is decoded using a private algorithm on a remote server, requiring collaboration between the scanning device and the remote server for full decoding.
This approach enhances the security of the marking by requiring two participants (the scanning device and the remote server) for complete decoding, reducing the risk of unauthorized decoding and tampering.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[0001] COMPUTER-IMPLEMENTED METHOD FOR DECODING A MARKING ENCODING INFORMATION AND COMPUTER-IMPLEMENTED METHOD FOR ENCODING INFORMATION IN A MARKING
[0002] TECHNICAL FIELD
[0003] The present invention is directed at a computer-implemented method for decoding a marking encoding information. The present invention is further directed at a computer-implemented method for encoding information in a marking.
[0004] BACKGROUND ART
[0005] Currently, articles and security devices can be identified by a mark or a logo inscribed on a package of the article or on the article itself. These inscriptions are visible and enable the article to be identified by all users. It is also possible to use other visible identifiers which contain encrypted information so that the content of the identifier cannot be recognized by all users. There are, for example, onedimensional identifiers of the barcode type or two-dimensional identifiers of the data matrix type, usually printed on a surface, and which are the most widely used.
[0006] One type of two-dimensional code used to encode information on articles is described in the patent application WO 2013 / 071960 A1. This code is based on differential pairs of symbols of different values and can only be decoded if one knows the pattern according to which the differential pairs are arranged in the code. If the entire decoding process of such a code is contained in a smartphone application, for example, by reversing the decoding algorithm, one can know what the decoder expects to read and create false codes which comply with the secret pattern and / or unallowably decode the code. An objective of the invention as defined herein is to increase the security of the code and decrease any security breaches incurring through the smartphone decoding.
[0007] An objective of the present invention is the provision of a method for encoding and decoding a marking encoding information, and of a corresponding marking.
[0008] SUMMARY OF THE INVENTION
[0009] According to a first aspect, a computer-implemented method for decoding a marking encoding information is provided, the marking including a specific layout of symbols for encoding the information, wherein each symbol includes at least one pair of differential elements arranged in a specific manner, each element being characterized by a parameter, the parameter of a first element of each differential element having a first value and the parameter of a second element of each differential element having a second value different from the first value, wherein the marking includes a first portion including multiple symbols and a second portion including multiple symbols, the method comprising: scanning the marking using a scanning device to obtain a scanned information; using the scanning device, decoding the first portion of the marking by applying a first decoding algorithm on the scanned information, the first decoding algorithm being stored on the scanning device and including information to decode only the symbols of the first portion of the marking; sending a characterization of the second portion to a remote server; and using the remote server, decoding the second portion of the marking by applying a second decoding algorithm on the characterization of the second portion, the second decoding algorithm being stored on the remote server and including information to decode the symbols of the second portion of the marking.
[0010] The described method allows decoding part of the marking using a scanning device and part of the marking using a remote server. The decoding of the marking hence requires two participants (the scanning device and the remote server), which are each capable of decoding one part of the marking. The full marking can only be decoded using both the scanning device and the remote server. As compared to a case where the decoding is fully performed by the scanning device, the described method allows for a more secure marking, which can be decoded only by acknowledged participants.
[0011] Fully decoding and authenticating the code remotely on a secure server (instead of on a smartphone) would require transmitting a video stream to the secure server, which is unrealistic because it is cumbersome and expensive in terms of data transmission. If compression is applied to the video stream to allow transmission to the remote server, then the quality of the video will be impacted and thus decoding can fail. The described method is in particular advantageous in that it does not require transmitting a cumbersome video to the server.
[0012] As used herein, the expression “computer-implemented method” indicates that the method is realized using a computer, a computer network and / or another programmable apparatus, wherein the method is in particular implemented by executing a computer program on such a computer, computer network and / or other programmable apparatus.
[0013] The marking can include a mark, a code or the like in which information is stored. The marking can be printed on an article or security device, or the marking may be attached to the article or security device. The article or security device may be included in the group formed by a label, a package, a cartridge, a container containing foodstuffs, nutraceutical products, pharmaceutical products or drinks, a bank slip, a credit card, a stamp, a revenue stamp, a tamper indicator, a secure document, a passport, an identity card, a driving license, an access card, a transport ticket, an admission ticket, a coupon, a printing form, a reflecting film, aluminum foil and a commercial article. The information encoded in the marking can be numerical and / or alpha-numerical information. The information is in particular encoded such that it cannot easily be read and / or decoded by a human and rather needs to be decoded by an appropriate decoding algorithm.
[0014] The marking encodes the information in line with the algorithm presented in the patent application WO 2013 / 071960 A1. The information is in particular encoded using a specific layout of symbols, which can be specific for the article type and / or specific for the article on which the marking is provided. The specific layout of symbols can be considered as a pattern along which the symbols are arranged. Each symbol includes at least one pair of differential elements arranged in a specific manner. The differential elements can be designated as “dots” or the like and can correspond to a smallest unit of information of the marking. In some embodiments, a dot can correspond to a pixel.
[0015] Each differential element is characterized by a parameter, which in particular means that each differential element has a value associated therewith, which encodes the information. The parameter of a first element of each differential element has a first value and the parameter of a second element of each differential element has a second value different from the first value. In particular, the first value and the second value of different differential elements are not necessarily identical. Each symbol can encode one binary number as information, the binary number being obtained based on a difference between the first value and the second value.
[0016] The marking includes a first portion including multiple symbols and a second portion including multiple symbols. The marking can be split into at least two parts, these parts being the first portion and the second portion. Each portion includes multiple symbols having differential pairs, as described above. The first and the second portion in particular encode information by following the same differential pair scheme described herein. The difference between the symbols of the first and the second portion is that they are not decodable by a single algorithm and rather require decoding by different algorithms (namely, the first decoding algorithm and the second decoding algorithm).
[0017] The first portion may comprise a public and / or non-sensitive information, such as a serial number (serialization sequence) of the article comprising the marking, or the like. Consequently, the first decoding algorithm may be a publicly available and / or non-sensitive algorithm, which is why it may be stored on the scanning device where it can be subject to reverse-engineering. The second portion may comprise a private, secret and / or sensitive information, such as an information allowing to determine the authenticity of the article comprising the marking. Consequently, the second decoding algorithm may be a private, secret and / or sensitive algorithm, which is why it may be stored on the remote server where it cannot be subject to reverse-engineering because the remote server is not accessible to a user decoding the marking. The scanning device can be a device used by the person wanting to decode the marking, for example to verify the authenticity of the article. The scanning device can be a portable device (such as a smartphone, tablet or laptop), a device dedicated for the tasks described herein, a computer, and / or a device for verifying the readability of the marking during product manufacture. Scanning the marking implies capturing at least one image of the marking, for example using a camera or a scanner (said scanner being capable of reading a two-dimensional array) of the scanning device. The scanned information obtained from the scanning device can be an image or video of the marking and / or information extracted from the scan, such as the values of the individual differential pairs of the marking.
[0018] The first decoding algorithm is in particular only capable of decoding the first portion of the marking. To this end, the first decoding algorithm is knowledgeable of the specific layout of the symbols of the first portion, but not of the second portion. In particular, the first decoding algorithm does not know which differential elements form pairs in the second portion and hence cannot decode the second portion (even when seeing or knowing the values of the differential elements of the second portion). When decoding the first portion, the first decoding algorithm in particular identifies the location of the symbols in the first portion (using the specific layout knowledge of the first portion) and determines the value of each differential pair of the symbols of the first portion. The information comprised in the first portion and decoded by the first decoding algorithm can be referred to as “first information”. The first decoding algorithm (which can be provided as an app) is stored in the scanning device, meaning that the scanning device can only decode the first information.
[0019] The second decoding algorithm is in particular capable of decoding the second portion of the marking. To this end, the second decoding algorithm is knowledgeable of the specific layout of the symbols of the second portion, but not necessarily of the first portion. It is in particular not necessarily expected from the second decoding algorithm to decode the first portion. In some embodiments, the second decoding algorithm is not capable of decoding the first portion. When decoding the second portion, the second decoding algorithm in particular identifies the location of the symbols in the second portion (using the specific layout knowledge of the second portion) and determines the value of each differential pair of the symbols of the second portion. The information comprised in the second portion and decoded by the second decoding algorithm can be referred to as “second information”. The second decoding algorithm is stored in the remote server, meaning that the remote server can decode the second information. The remote server can be an entity that is connected remotely to the scanning device. The remote server can be a server belonging to a company or person that provides the marking, while the scanning device can belong to a company or person verifying the authenticity of the marking. The scanning device and the remote server may communicate through a wired or wireless communication path. The characterization of the second portion that is sent from the scanning device to the remote server can be any information relative to the second portion, in particular an information allowing to decode the second portion. For example, the characterization of the second portion can be an image of the second portion (as scanned by the scanning device). More preferably however, in order to reduce the quantity of data that needs to be transmitted to the remote server, the characterization of the second portion can be a sequence of numbers (for example, one byte for each dot of the second portion) representing the values (first or second value) of each differential element of the second portion as scanned by the scanning device, in particular in a predefined order. For example, the characterization of the second portion includes one byte for each dot of the second portion, said byte indicating a level of grey of the corresponding dot. The first decoding algorithm does not allow decoding the second portion (because it does not know the specific layout of the symbols of the second portion) but may be capable of determining the value of the differential elements of the second portion for transmission to the remote server as the characterization of the second portion. The entire marking may only be decoded using both the first and the second decoding algorithms, which are stored in different entities for increased security against unallowed decoding and / or tampering of the marking.
[0020] According to an embodiment, the characterization of the second portion includes at least part of the scanned information including a scan of the second portion, and / or a second portion value information indicating whether each differential element of the second portion has the first value or the second value, the second portion value information being determined by the scanning device using the first decoding algorithm.
[0021] For example, the characterization of the second portion can be an image (a scan) of the second portion (as scanned by the scanning device). More preferably however, in order to reduce the quantity of data that needs to be transmitted to the remote server and to increase the quality of the transmitted characterization of the second portion, the characterization of the second portion can be a sequence of numbers (for example, bytes representing values of grey of the differential elements) representing the values (first or second value) of each differential element of the second portion as scanned by the scanning device, in particular in a predefined order. Said sequence of numbers forms the second portion value information.
[0022] According to another embodiment, the method further comprises: determining a serialisation sequence associated with the marking by decoding the first portion by the scanning device; sending the determined serialisation sequence to the remote server; accessing, by the remote server, a database storing a list of serialisation sequences and a list of second decoding algorithms each corresponding to one or several of the serialisation sequences; determining a selected second decoding algorithm corresponding to the determined serialisation sequence as stored in the database; and using the selected second decoding algorithm as the second decoding algorithm for decoding the second portion.
[0023] The serialisation sequence can be a serial number. It may be part of the information encoded in the marking. The serialisation sequence can be public and / or non-sensitive information. The serialisation sequence may be determined using the first decoding algorithm. The serialisation sequence can be associated with a specific second decoding algorithm (selected decoding algorithm) which allows decoding the second portion of specifically this marking. Accordingly, different markings can have second portions following different specific layouts and decodable only through different second decoding algorithms specifically adapted to the respective markings. This increases the reliability of the markings because if the second portion of one marking can be decoded (by hacking for example), the second portion of other markings will remain secret and undecodable.
[0024] The remote server stores a correspondence list which indicates, for each existing serialization number, the details of the specific layout of the second portion, which is required for decoding the second portion. This corresponds to specifying, by the list, the details of the second decoding algorithm to be used for each serialization number.
[0025] The above embodiment is particularly advantageous in that using different second layouts for the second portion allows ensuring that the second layouts cannot be obtained through reverseengineering.
[0026] According to another embodiment, the method further comprises: based on a result of the decoding of the first portion of the marking using the scanning device, determining a first decoding information; determining whether the first decoding information has a predefined property; and performing the steps of sending the characterization of the second portion to the remote server and of decoding the second portion only if it is determined that the first decoding information has a predefined property.
[0027] The first decoding information can be an information obtained by decoding the first portion using the first decoding algorithm. Only sending the characterization of the second portion to the remote server when the first decoding information has a predefined property allows to filter the markings for which the decoding of the second portion will be performed. For example, if the scan quality as scanned by the scanning device has insufficient quality and / or if the first decoding algorithm determines that the first portion is not authentic and / or not decodable, it is not advisable or necessary to decode the second portion. This allows reducing the required resources, in particular for the data transmission to the server.
[0028] According to another embodiment, the first decoding information indicates a degree to which a scan of the marking is readable, and the predefined property indicates a minimum readability degree for which the scan is considered readable.
[0029] The degree to which the scan of the marking is readable can be measured as a percentage of differential elements for which the value of the differential element can be determined by the first decoding algorithm. The minimum readability degree can be a threshold value, such as 95% or the like. The minimum readability degree is in particular selected such that the unreadable part of the marking is small enough to be corrected using an error-correction code, such as Reed-Solomon error correction code.
[0030] According to another embodiment, the first decoding information indicates whether the first portion includes an identification information specific to the marking, and the predefined property indicates that an identification information is provided.
[0031] The identification information can be an information allowing to identify the marking. The absence of an expected identification information can be indicative of an invalid marking, for example due to tampering. The minimum readability degree defined above can be a degree to which the identification information is readable, in particular a degree to which all identification information are readable in the case of a marking arrangement as described below.
[0032] According to another embodiment, the first decoding information indicates a content of the identification information specific to the marking, and the predefined property indicates a predefined expected identification information.
[0033] An incorrect or unexpected identification information can be indicative of an invalid marking, for example due to tampering.
[0034] According to another embodiment, the first decoding information indicates a proportion of valid layouts for the symbols in the first portion, and the predefined property indicates a minimum validity proportion for which sufficient symbols in the first portion have valid layouts.
[0035] In particular, for a same article type and / or article group, all markings can have a first portion with symbols arranged according to a same first layout. The first decoding algorithm can determine whether the symbols of the first portion are arranged where they are meant to be (for example by analysing whether the differential elements of an expected differential pair indeed have different parameter values associated therewith). If this is not the case and if the divergence to the expected layout of the first portion is larger than expected (larger than the minimum validity proportion), the first portion may have been unallowable altered, and a decoding of the second portion may become unnecessary.
[0036] According to another embodiment, the first portion includes symbols encoding an error correction code and / or an error detection code, and wherein the first decoding algorithm includes decoding the error correction code and / or error detection code of the first portion; and / or wherein the second portion includes symbols encoding an error correction code and / or an error detection code, and wherein the second decoding algorithm includes decoding the error correction code and / or error detection code of the second portion.
[0037] The error detection code may be a cyclic redundancy check. The error detection code is preferably included in the first portion. The result of the error detection using the error detection code of the first portion can be used as the first decoding information. When the error detection code indicates that there is an error in the first portion, the predefined property is not satisfied.
[0038] The error correction code may be a Reed-Solomon code, which can be adapted to correct an identification information and / or serialization sequence of a marking. The error correction code is preferably included in both the first and the second portion. The error correction code may allow correcting small portions of the decoded marking (preferably less than 30%), to compensate for bad scanning quality or the like.
[0039] According to an embodiment, the method further comprises decoding multiple markings in accordance with a specific decoding order encoded in the first portion, said specific decoding order being decoded by the first decoding algorithm and indicating an order for decoding the second portions of the multiple markings.
[0040] Multiple markings can be provided on a same article forming a marking arrangement, each marking including a specific layout of symbols for encoding the information (preferably, all markings of a same marking arrangement have the same specific layout), wherein each symbol includes at least one pair of differential elements arranged in a specific manner, each element being characterized by a parameter, the parameter of a first element of each differential element having a first value and the parameter of a second element of each differential element having a second value different from the first value, wherein each marking includes a first portion including multiple symbols and a second portion including multiple symbols. Each marking of the marking arrangement includes, encoded in the first portion, specific decoding order specific to the marking and decodable using the first decoding algorithm. The specific decoding order indicates an order in which the second portions of the markings should be decoded to obtain a joint information. The specific decoding order can be included in the identification information. When decoding a marking arrangement, the first decoding algorithm can determine whether the first portions and / or the entire marking arrangement is decodable based on how many different identification information were detected.
[0041] According to another embodiment, the first decoding algorithm includes information about the specific layout of the symbols of only the first portion of the marking, and the second decoding algorithm includes information about the specific layout of the symbols of the second portion of the marking.
[0042] According to another embodiment, the first decoding algorithm is further configured to sample the symbols of the second portion, the sampling including determining a position and value associated with the symbols of the second portion.
[0043] The sampling as performed by the first decoding algorithm in particular allows determining the second portion value information as described herein. For example, the sampling includes determining where (position) the individual differential elements are located in the second portion, and / or what value (first or second value) is associated with each differential element. This sampling allows reducing the amount of information to be transferred to the remote server.
[0044] According to another embodiment, in the marking, at least some of the symbols of the first portion are located around the symbols of the second portion, and / or the symbols of the first portion and the symbols of the second portion are at least partly intertwined.
[0045] Providing the first and second portion embedded into one another, in particular in an intertwined manner, allows ensuring that the second portion is readable if the first portion is. It is also more difficult to counterfeit the marking comprising embedded or intertwined portions, so that the reliability of the marking is increased.
[0046] According to another embodiment, the method of the first aspect further includes a step of: determining whether the marking is authentic based on the information in the first and second portion decoded using the first decoding algorithm and the second decoding algorithm.
[0047] According to a second aspect, a computer-implemented method for encoding information in a marking is provided, the marking including a specific layout of symbols for encoding the information, wherein each symbol includes at least one pair of differential elements arranged in a specific manner, each element being characterized by a parameter, the parameter of a first element of each differential element having a first value and the parameter of a second element of each differential element having a second value different from the first value, wherein the marking includes a first portion including multiple symbols and a second portion including multiple symbols, the method comprising: determining a first layout of the multiple symbols included in the first portion such that the first layout is stored in a first decoding algorithm stored on a scanning device scanning the marking and allowing to decode the first portion; determining a second layout of the multiple symbols included in the second portion such that the second layout is stored in a second decoding algorithm stored on a remote server and allowing to decode the second portion; and combining the determined first and second layouts to form the specific layout of symbols for the marking.
[0048] All features described in view of the decoding method of the first aspect or any embodiment thereof also hold for the encoding method of the second aspect (in particular, the type of marking and the differential pairs comprised therein are the same). According to an embodiment, the method of the first aspect is configured to decode a marking encoded in accordance with the second aspect.
[0049] The first layout and the second layout jointly form the specific layout of symbols of the marking. The first layout in particular specifies how the symbols in the first portion are arranged (which position and orientation). This first layout is required to decode the first portion. Accordingly, it is stored on the scanning device. The second layout in particular specifies how the symbols in the second portion are arranged (which position and orientation). This second layout is required to decode the second portion. Accordingly, it is stored on the remote server.
[0050] According to an embodiment, the method of the second aspect further comprises: storing the first decoding algorithm on the scanning device; and storing the second decoding algorithm on the remote server.
[0051] According to a third aspect, a marking encoding information generated by executing the method of the second aspect or any embodiment thereof is provided, the marking including a specific layout of symbols for encoding the information, wherein each symbol includes at least one pair of differential elements arranged in a specific manner, each element being characterized by a parameter, the parameter of a first element of each differential element having a first value and the parameter of a second element of each differential element having a second value different from the first value, wherein the marking includes a first portion including multiple symbols and a second portion including multiple symbols, the first portion including a first layout decodable by a first decoding algorithm and the second portion including a second layout decodable only by a second decoding algorithm.
[0052] All features described in view of the decoding method of the first aspect (or any embodiment thereof) or the encoding method of the second aspect (or any embodiment thereof) also hold for the marking of the third aspect. According to an embodiment, at least some of the symbols of the first portion are located around the symbols of the second portion, and / or the symbols of the first portion and the symbols of the second portion are at least partly intertwined.
[0053] According to a fourth aspect, a computer program product stored on a machine-readable media and comprising machine readable instructions for executing the method according to the first and / or second aspect is provided.
[0054] All features described in view of the decoding method of the first aspect (or any embodiment thereof) or the encoding method of the second aspect (or any embodiment thereof) also hold for the computer program product of the fourth aspect.
[0055] According to a fifth aspect, a decoding system for decoding a marking encoding information is provided, the marking including a specific layout of symbols for encoding the information, wherein each symbol includes at least one pair of differential elements arranged in a specific manner, each element being characterized by a parameter, the parameter of a first element of each differential element having a first value and the parameter of a second element of each differential element having a second value different from the first value, wherein the marking includes a first portion including multiple symbols and a second portion including multiple symbols, the decoding system comprising: a scanning device; and a remote server; wherein the scanning device is configured to scan the marking to obtain a scanned information and to decode the first portion of the marking by applying a first decoding algorithm on the scanned information, the first decoding algorithm being stored on the scanning device and including information to decode only the symbols of the first portion of the marking; the scanning device is configured to send a characterization of the second portion to a remote server; and the remote server is configured to decode the second portion of the marking by applying a second decoding algorithm on the characterization of the second portion, the second decoding algorithm being stored on the remote server and including information to decode the symbols of the second portion of the marking.
[0056] All features described in view of the decoding method of the first aspect (or any embodiment thereof) also hold for the decoding system of the fifth aspect.
[0057] According to a sixth aspect, an encoding system for encoding information in a marking is provided, the marking including a specific layout of symbols for encoding the information, wherein each symbol includes at least one pair of differential elements arranged in a specific manner, each element being characterized by a parameter, the parameter of a first element of each differential element having a first value and the parameter of a second element of each differential element having a second value different from the first value, wherein the marking includes a first portion including multiple symbols and a second portion including multiple symbols. The encoding system comprises a processor configured to: determine a first layout of the multiple symbols included in the first portion such that the first layout is stored in a first decoding algorithm stored on a scanning device scanning the marking and allowing to decode the first portion; determine a second layout of the multiple symbols included in the second portion such that the second layout is stored in a second decoding algorithm stored on a remote server and allowing to decode the second portion; and combine the determined first and second layouts to form the specific layout of symbols for the marking.
[0058] All features described in view of the encoding method of the second aspect (or any embodiment thereof) also hold for the encoding system of the sixth aspect.
[0059] According to a seventh aspect, a method for decoding a marking arrangement is provided, said marking arrangement comprising several markings, each marking including a specific layout of symbols for encoding the information, wherein each symbol includes at least one pair of differential elements arranged in a specific manner, each element being characterized by a parameter, the parameter of a first element of each differential element having a first value and the parameter of a second element of each differential element having a second value different from the first value, wherein each marking includes a first portion including multiple symbols and a second portion including multiple symbols. Preferably, each marking of the marking arrangement is decoded in line with the decoding method of the first aspect of an embodiment thereof. Each marking of the marking arrangement includes, encoded in the first portion, a specific decoding order information specific to the marking, decodable using the first decoding algorithm and indicating an order for decoding the second portions of the multiple markings. The information of the second portions of all markings jointly provide a joint information when considered in the correct (specific) order.
[0060] Providing multiple markings in one arrangement is advantageous in that the individual markings can be kept small (this increases their readability and ensures that they all can be read) while still encoding a sufficient amount of information in the entire marking arrangement. Some information may be shared amongst several markings of the same marking arrangement, such as an error correction and / or detection code, or the like. The present invention will be described more fully hereinafter with reference to the accompanying figures in which like numerals represent like element throughout the different figures, and in which prominent aspects and features of the invention are illustrated.
[0061] BRIEF DESCRIPTION OF THE FIGURES
[0062] Fig. 1 shows an encoding of information in a two-dimensional pattern as known from WO 2013 / 071960 A1; and
[0063] Fig. 2 shows an example of a specific layout of a marking;
[0064] Fig. 3 shows an example of a marking having the layout of Fig. 2;
[0065] Fig. 4 shows a method for decoding the marking of Fig. 3;
[0066] Fig. 5 shows an example of a layout map of the first portion;
[0067] Fig. 6 shows an example of a layout map of the second portion;
[0068] Fig. 7 shows a method for encoding the marking of Fig. 3;
[0069] Fig. 8 shows an alternative layout for a marking;
[0070] Fig. 9 shows another alternative layout for a marking; and
[0071] Fig. 10 shows a marking arrangement including multiple markings according to Fig. 3.
[0072] DETAILED DESCRIPTION
[0073] The method for encoding and decoding a marking as well as the marking described herein all rely on the encoding of information through symbols including pairs of differential elements as described in view of Fig. 1. The concept shown in Fig. 1 is based on the encoding of information in a two- dimensional pattern as known from WO 2013 / 071960 A1. As used herein, a differential element corresponds to a dot, and a differential pair corresponds to a dot pair.
[0074] As shown in Fig. 1 , each dot pair A - D encodes one bit of information. As defined therein, a two- dimensional code is created using dot pairs A - D. Each dot can have to different states E1 and E2 (black and white dots for simplicity), which correspond to a first value and a second value, respectively. A dot pair A - D can thus have four different states corresponding to all possible ways of combining the two possible states of the two dots forming the dot pair (namely E1-E2, E2-E1, E1- E1 and E2-E2). Out of these four states, only the states in which the two dots of the dot pair have opposite states are valid (that is, E1-E2 and E2-E1 are valid, while E1-E1 and E2-E2 are invalid). In Fig. 1 , the dot pair A - D have the following allowable states: A1 , A2, B1 , B2, C1 , C2, D1 and D2. The dot pairs A - D are arranged according to a predetermined pattern P1 (specific layout) offering the possibility of encoding multiple valid two-dimensional codes PT and P1”.
[0075] Although for simplicity the first and the second value are respectively represented as black and white dots, it is preferable to instead use various values of grey. For each differential pair A - D, the two dots have different grey values (corresponding to the first and second values). The binary value of one differential pair A - D is determined by calculating the difference between the first and the second values. Different differential pairs A - D can have dots having different first and second values associated thereto, so that the code comprises multiple shades of grey and is difficult to copy and counterfeit.
[0076] Fig. 2 and 3 show a marking 100 according to a first embodiment, which includes a code comprising the properties of the code described in Fig. 1. Fig. 2 shows the specific layout according to which the symbols including differential pairs 103 of differential elements 104 are arranged within the marking 100. The specific layout of Fig. 2 is an alternative to the pattern P1 of Fig. 1. Fig. 3 shows an example of a marking 100 complying with the specific layout of Fig. 2, in which dots 104 with a first value E1 are represented as black dots and dots 104 with a second value E2 are left white.
[0077] In the example of Fig. 2 and 3, the dimensions of the marking 100 are 10x10 dots 104. Each of these dots 104 forms a differential element 104 of a differential pair 103 forming a symbol. The marking 100 comprises two portions, namely a first portion 101 and a second portion 102. In the example of Fig. 2 and 3, the first portion 101 fully surrounds the second portion 102. The first portion 101 and the second portion 102 are virtual portions, which are not distinguishable from one another when viewing the marking. Their limits are however represented in Fig. 2 and 3 for better understanding of the concepts.
[0078] Although the type of encoding used in the first portion 101 is the same as the one used in the second portion 102 (and corresponds to the differential pair encoding described in view of Fig. 1), the first portion 101 and the second portion 102 cannot be decoded by a same instance. Namely, the first portion 101 can be decoded by a smartphone acting as a scanning device 110, while the second portion 102 can only be decoded by a remote server 120. The scanning device 110 cannot decode the second portion 102 and in the present example, the remote server 120 cannot decode the first portion 101 , thereby decreasing the risk of reverse-engineering of the entire decoding algorithm.
[0079] In the present example, the first portion 101 contains non-sensitive information, including a serialization sequence (serial number), an error detection code of the type CRC (cyclic redundancy check), and a Reed-Solomon code (error correction code). The first portion 101 can be decoded using a first decoding algorithm stored on an app of the smartphone 110, the first decoding algorithm only allowing to decode the first portion 101. Moreover, in the present example, the second portion 102 contains sensitive information, including an information proving the authenticity of the product (such as a production line identifier and a client identifier) and an error correction code of the Reed- Solomon type. The second portion 102 can be decoded using a second decoding algorithm stored on the remote server 120, the second decoding algorithm allowing to decode the second portion 102.
[0080] Details of the decoding of the marking 100 are explained in view of Fig. 4, which illustrates a method for decoding a marking 100. In detail, the decoding of the marking according to the method of Fig. 4 requires two actors: the smartphone 110 and the remote server 120. The smartphone 110 is a standard smartphone belonging to the person wanting to decode the marking 100 to use the information contained therein to check the authenticity of the marking 100. The remote server 120 is a server belonging to the company providing the authentic markings 100.
[0081] In a step S1 of the method of Fig. 4, the marking 100 is scanned using the smartphone 110. This corresponds to taking a photo of the marking 100 using a camera integrated in the smartphone 110. A resulting photo of the marking 100 is referred to as the scanned information.
[0082] In a step S2 of Fig. 4, the first decoding algorithm stored on the smartphone 110 is executed on the smartphone 110 to decode the first portion 101. To this end, the first decoding algorithm includes an image processing tool which extracts the positions of the dots 104 and their respective values. This can be done for both the first portion 101 and the second portion 102. In the example of the method of Fig. 4, the first decoding algorithm assigns a greyscale value between 0 and 256 to all dots 104 (i.e. one byte per dot 104), and sequences the first portion 101 and the second portion 102 individually from each other, starting from the upper left corner, one row after another, down to the lower right corner. Accordingly, the first decoding algorithm would sample the first portion 101 as 84 greyscale values each represented by one byte and the second portion 102 as 16 greyscale values each represented by one byte. This information is much easier to process than the originally scanned image of the marking 100 and allows performing analysis on the code in a more efficient and convenient manner.
[0083] In the step S2, the first decoding algorithm further decodes the information included in the first portion 101. To this end, the first decoding algorithm includes a map 105 of the specific layout of the differential pairs 103 included in the first portion 103. An example of such a layout map 105 is shown in Fig. 5. As shown in Fig. 5, the layout map 105 included in the first decoding algorithm indicates where the differential pairs 103 are located and since each differential pair 103 encodes one bit of data, the first decoding algorithm can determine the value of each data bit. As further shown in Fig. 5, the layout map 105 specifies which differential pairs 103 (and hence which decoded bits) are associated with what type of information. In the example of Fig. 5, the first portion 101 includes a serialization sequence section 107 encoding a serialization sequence, an error detection section 108 encoding the CRC error detection code, and a data section 109 encoding other data. Using this layout map 105, the information encoded in the first portion 101, namely the serialization sequence, the CRC, and other data, can be decoded. This decoded information from the first portion 101 can either be stored in the smartphone 110, output to a user on the smartphone screen, sent to the remote server 120 and / or sent to another server.
[0084] The serialization sequence is a number that allows uniquely identifying the article on which the marking 100 is attached. The first decoding algorithm determines whether the CRC indicates errors in the first portion 101, and if so, the decoding is stopped and the user is informed. The subsequent decoding by the remote server 120 (steps S3 and S4 described in the following) is only performed when the first decoding algorithm determines that the serialization sequence has the expected properties, the CRC finds no errors and / orthe quality of the scanned image is high enough to decode the first and the second portion (which is the case if the first decoding algorithm can successfully convert the scanned image into the sequence of bytes as defined above).
[0085] In a step S3 of Fig. 4, the smartphone 110 sends a characterization of the second portion 102 to the remote server 120. The characterization of the second portion 102 is here the sequence of sixteen bytes of the second portion 102, as defined above, and corresponds to a second portion value information.
[0086] In a step S4 of Fig. 4, the remote server 120 decodes the second portion 102 using the second decoding algorithm stored on the remote server 120. In the present example, the smartphone 110 additionally provides the remote server 120 with the decoded serialization sequence. The second decoding algorithm is selected in accordance with the received serialization sequence, because each marking 100 has a unique specific layout for the second portion 102. The selected second decoding algorithm includes a layout map 106 (see Fig. 6) indicating where the differential pairs 103 are located in the second portion 102 and since each differential pair 103 encodes one bit of data, the second decoding algorithm can determine the value of each data bit in the second portion 102. As further shown in Fig. 6, the layout map 106 specifies which differential pairs 103 (and hence which decoded bits) are associated with what type of information. In the example of Fig. 6, the second portion 102 includes a section 111 including the Reed-Solomon error correction code and a section 112 including sensitive data. Using this layout map 106, the information encoded in the second portion 102, namely the Reed-Solomon code and the sensitive data, can be decoded. This decoded information from the second portion can either be stored in the remote server 120, output to a user on the smartphone screen, output on a screen connected to the remote server 120 and / or sent to another server.
[0087] The second decoding algorithm can further include an analysis tool for determining and outputting the authenticity of the marking 100 as a function of the decoded information from the first and / or second portion 101 , 102.
[0088] Fig. 7 shows an example of a method for encoding the marking 100. In the example described herein, all steps of the encoding method of Fig. 7 are performed by a same generation device (encoding system) which generates the genuine markings 100 for multiple articles. The method of Fig. 7 includes, in a step S5, determining a first layout of the symbols in the first portion 101. In step S6, a second layout of the symbols in the second portion 102 is determined. In a step S7, the first and second layouts are combined to form the specific layout of the marking. The steps S5 and S6 described above can be performed simultaneously. Presently, all markings 100 designed for a same article type (for example, a type of medicine) have a first portion 101 having a same first layout. These markings 100 however have different second layouts. Accordingly, for this article type, a same first decoding algorithm can be used to decode all the first portions 101 of the markings. Accordingly, a unique first decoding algorithm is stored on the smartphone 110. For each specific article, the second layout of the second portion 102 is different. Each ofthese second layouts is stored, together with the serialization sequence of the corresponding article, in the remote server 120. This allows generating and selecting the appropriate second decoding algorithm specifically for each individual second portion 102 of each individual article upon knowing the serialization sequence.
[0089] The marking 100 shown in Fig. 2 and 3 is exemplary only and the dimensions of the marking 100, the specific layout of the symbols, the size of the first and second portions 101 , 102, and / or the shape of the first and second portions 101, 102 can significantly vary for markings 100 designed for a different product. As an example, Fig. 8 and 9 show alternative specific layouts for both the first portion 101 and the second portion 102.
[0090] As can be seen in Fig. 8, the first portion 101 has twenty dots 104 less than the first portion 101 of Fig. 2, and the second portion 102 instead has twenty dots 104 more. Moreover, the symbols are arranged differently from those in Fig. 2. Like in Fig. 2, the symbols of the first region 101 are all arranged around the symbols of the second region 102.
[0091] In Fig. 9, the symbols are arranged yet differently. Further, the second portion 102 is discontinuous and includes four parts, with parts of the first portion 101 therebetween. The first portion 101 and the second portion 102 are here intertwined.
[0092] Fig. 10 shows a marking arrangement 200 made of 5x5 markings 100 as described above. The method of decoding the marking 100 of Fig. 4 can be extended to decode the marking arrangement 200 of Fig. 10. Namely, the first portion 101 of each marking 100 of the marking arrangement 200 includes a specific decoding order in the data section 109. This specific decoding order is decoded by the first decoding algorithm and indicates the position of the marking 100 in the marking arrangement 200. Once this information is obtained for all markings 100 of the marking arrangement 200, the data decoded from the first portion 101 of each marking 100 can be re-ordered accordingly. The information about the decoding order of the individual markings 100 can further be transmitted to the remote server 120 in order to ensure that the second portions 102 of the markings 100 are decoded in the correct order. In the example of Fig. 10, the serialization sequence, including the related Reed-Solomon code, is distributed among all the markings 100 of the arrangement 200. One marking 100 here encodes for example only one byte of the serialization sequence or the Reed- Solomon code. In the example of Fig. 10, the scanning device 110 starts sending the characterization of the second portions 102 of all the markings 100 to the remote server 120 (step S3) once the characterization of the second portions 102 of all the markings 100 of the arrangement 200 have been collected.
[0093] The Fig. 1 - 10 described herein merely serve as examples and it is possible to depart therefrom. For example, the markings 100 can have different dimensions. Differential elements 104 of a pair 103 do not need to be neighboring. The first decoding algorithm may use the first layout to determine the direction in which the first and / or second portion 101 , 102 should be read to be correctly decoded. The markings 100 of the marking arrangement 200 can be arranged differently than in the example of Fig. 10, and can instead be scattered around a product or arranged along a same line, for example.
[0094] REFERENCE NUMERALS
[0095] 100 marking
[0096] 101 first portion
[0097] 102 second portion
[0098] 103 differential pair
[0099] 104 differential element
[0100] 105 first layout map
[0101] 106 second layout map
[0102] 107 serialization sequence section
[0103] 108 error detection section
[0104] 109 data section
[0105] 110 scanning device
[0106] 111 Reed-Solomon section
[0107] 112 sensitive data section
[0108] 120 remote server
[0109] 200 marking arrangement
[0110] A - D dot pair
[0111] E1, E2 dot value
Claims
CLAIMS1. A computer-implemented method for decoding a marking (100) encoding information, the marking (100) including a specific layout of symbols (A - D) for encoding the information, wherein each symbol (A - D) includes at least one pair (103) of differential elements (104) arranged in a specific manner, each element (104) being characterized by a parameter, the parameter of a first element of each pair (103) of differential elements (104) having a first value (E1 ) and the parameter of a second element of each pair (103) of differential elements (104) having a second value (E2) different from the first value (E1 ), wherein the marking (100) includes a first portion (101 ) including multiple symbols (A - D) and a second portion (102) including multiple symbols (A - D), the method comprising: scanning (S1) the marking (100) using a scanning device (110) to obtain a scanned information; using the scanning device (110), decoding (S2) the first portion (101 ) of the marking (100) by applying a first decoding algorithm on the scanned information, the first decoding algorithm being stored on the scanning device (110) and including information to decode only the symbols (A - D) of the first portion (101 ) of the marking (100); sending (S3) a characterization of the second portion (102) to a remote server (120); and using (S4) the remote server (120), decoding the second portion (102) of the marking (100) by applying a second decoding algorithm on the characterization of the second portion (102), the second decoding algorithm being stored on the remote server (120) and including information to decode the symbols (A - D) of the second portion (102) of the marking (100).
2. The method of claim 1, wherein the characterization of the second portion (102) includes at least part of the scanned information including a scan of the second portion (102), and / or a second portion value information indicating whether each differential element (104) of the second portion (102) has the first value (E1) or the second value (E2), the second portion value information being determined by the scanning device (110) using the first decoding algorithm.
3. The method of claim 1 or 2, further comprising: determining a serialisation sequence associated with the marking (100) by decoding the first portion (101 ) by the scanning device (110); sending the determined serialisation sequence to the remote server (120); accessing, by the remote server (120), a database storing a list of serialisation sequences and a list of second decoding algorithms each corresponding to one or several of the serialisation sequences; determining a selected second decoding algorithm corresponding to the determined serialisation sequence as stored in the database; andusing the selected second decoding algorithm as the second decoding algorithm for decoding the second portion (102).
4. The method of any one of claims 1 to 3, further comprising: based on a result of the decoding of the first portion (101) of the marking (100) and using the scanning device (110), determining a first decoding information; determining whether the first decoding information has a predefined property; and performing the steps of sending the characterization of the second portion (102) to the remote server (120) and of decoding the second portion (102) only if it is determined that the first decoding information has a predefined property.
5. The method of claim 4, wherein the first decoding information indicates a degree to which a scan of the marking (100) is readable, and the predefined property indicates a minimum readability degree for which the scan is considered readable; the first decoding information indicates whether the first portion (101 ) includes an identification information specific to the marking (100), and the predefined property indicates that an identification information is provided; the first decoding information indicates a content of the identification information specific to the marking (100), and the predefined property indicates a predefined expected identification information; and / or the first decoding information indicates a proportion of valid layouts for the symbols (A - D) in the first portion (101), and the predefined property indicates a minimum validity proportion for which sufficient symbols (A - D) in the first portion (101 ) have valid layouts.
6. The method according to any one of claims 1 to 5, wherein the first portion (101 ) includes symbols (A - D) encoding an error correction code and / or an error detection code, and wherein the first decoding algorithm allows decoding the error correction code and / or error detection code of the first portion (101); and / or wherein the second portion (102) includes symbols (A - D) encoding an error correction code and / or an error detection code, and wherein the second decoding algorithm allows decoding the error correction code and / or error detection code of the second portion (102).
7. The method according to any one of claims 1 to 6, wherein the method further comprises decoding multiple markings (100) in accordance with a specific decoding order encoded in the first portion (101), said specific decoding order being decoded by the first decoding algorithm and indicating an order for decoding the second portions (102) of the multiple markings (100).
8. The method according to any one of claims 1 to 7, wherein the first decoding algorithm includes information about the specific layout of the symbols (A - D) of only the first portion (101) of the marking (100), and the second decoding algorithm includes information about the specific layout of the symbols (A - D) of the second portion (102) of the marking (100).
9. The method according to any one of claims 1 to 8, wherein the first decoding algorithm is further configured to sample the symbols (A - D) of the second portion (102), the sampling including determining a position and value associated with the symbols (A - D) of the second portion (102).
10. A computer-implemented method for encoding information in a marking (100), the marking(100) including a specific layout of symbols (A - D) for encoding the information, wherein each symbol includes at least one pair (103) of differential elements (104) arranged in a specific manner, each element (104) being characterized by a parameter, the parameter of a first element of each pair (103) of differential elements (104) having a first value (E1 ) and the parameter of a second element of each pair (103) of differential elements (104) having a second value (E2) different from the first value (E1), wherein the marking (100) includes a first portion (101 ) including multiple symbols (A - D) and a second portion (102) including multiple symbols (A - D), the method comprising: determining (S5) a first layout of the multiple symbols (A - D) included in the first portion(101 ) such that the first layout is stored in a first decoding algorithm stored on a scanning device (110) scanning the marking (100) and allowing to decode the first portion (101); determining (S6) a second layout of the multiple symbols (A - D) included in the second portion (102) such that the second layout is stored in a second decoding algorithm stored on a remote server (120) and allowing to decode the second portion (102); and combining (S7) the determined first and second layouts to form the specific layout of symbols (A - D) for the marking (100).
11. The method of claim 10, further comprising: storing the first decoding algorithm on the scanning device (110); and storing the second decoding algorithm on the remote server (120).
12. A marking (100) encoding information generated by executing the method of claim 10 or 11 , the marking (100) including a specific layout of symbols (A- D) for encoding the information, wherein each symbol includes at least one pair (103) of differential elements (104) arranged in a specific manner, each element (104) being characterized by a parameter, the parameter of a first element of each pair (103) of differential elements (104) having a first value (E1 ) and the parameter of a second element of each pair (103) of differential elements (104) having a second value (E2) different from the first value (E1 ), wherein the marking (100) includes a first portion (101) including multiple symbols (A - D) and a second portion (102) including multiple symbols (A - D), the first portion (101 ) includinga first layout decodable by a first decoding algorithm and the second portion (102) including a second layout decodable only by a second decoding algorithm.
13. The marking of claim 12, wherein at least some of the symbols (A - D) of the first portion(101 ) are located around the symbols (A - D) of the second portion (102), and / or the symbols (A - D) of the first portion (101) and the symbols (A - D) of the second portion (102) are at least partly intertwined.
14. A computer program product stored on a machine-readable media and comprising machine readable instructions for executing the method according to any one of claim 1 to 11.
15. A decoding system for decoding a marking (100) encoding information, the marking (100) including a specific layout of symbols (A - D) for encoding the information, wherein each symbol includes at least one pair (103) of differential elements (104) arranged in a specific manner, each element (104) being characterized by a parameter, the parameter of a first element of each pair (103) of differential elements (104) having a first value (E1 ) and the parameter of a second element of each pair (103) of differential elements (104) having a second value (E2) different from the first value (E1), wherein the marking (100) includes a first portion (101) including multiple symbols (A - D) and a second portion (102) including multiple symbols (A - D), the decoding system comprising: a scanning device (110); and a remote server (120); wherein the scanning device (110) is configured to scan the marking (100) to obtain a scanned information and to decode the first portion (101) of the marking (100) by applying a first decoding algorithm on the scanned information, the first decoding algorithm being stored on the scanning device (110) and including information to decode only the symbols (A - D) of the first portion (101 ) of the marking (100); the scanning device (110) is configured to send a characterization of the second portion(102) to the remote server (120); and the remote server (120) is configured to decode the second portion (102) of the marking (100) by applying a second decoding algorithm on the characterization of the second portion (102), the second decoding algorithm being stored on the remote server (120) and including information to decode the symbols (A - D) of the second portion (102) of the marking (100).