In accordance with a first aspect of the present disclosure, a method for providing a code pattern which is readable by a sensor is conceived, the method comprising: defining a plurality of coding positions as a subset of positions in a two-dimensional matrix; including in said subset a plurality of positions which are diagonally adjacent to each other; selectively creating coding marks, such as coding dots, at the coding positions. In accordance with a second aspect of the present disclosure, a corresponding code pattern is provided.
|
15. A code pattern which is readable by a sensor, the code pattern comprising:
selectively created coding marks at a plurality of coding positions;
wherein the plurality of coding positions is defined as a subset of positions in a two-dimensional matrix;
and wherein said subset of positions only includes a plurality of coding positions which are diagonally adjacent to each other and a plurality of coding positions that are not adjacent to other coding positions either vertically or horizontally.
1. A method for providing a code pattern which is readable by a sensor, comprising:
defining a plurality of coding positions as a subset of positions in a two-dimensional matrix;
including in said subset a plurality of coding positions which are diagonally adjacent to each other and a plurality of coding positions that are not adjacent to other coding positions;
removing one coding position of a pair of coding positions in the subset that are vertically adjacent to each other;
removing one coding position of a pair of coding positions in the subset that are horizontally adjacent to each other; and
selectively creating coding marks only at the diagonally adjacent coding positions and at the coding positions that are not adjacent vertically or horizontally to other coding positions.
2. The method of
3. The method of
4. The method of
5. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
|
The present disclosure relates to a method for providing a code pattern which is readable by a sensor. Furthermore, the present disclosure relates to a corresponding code pattern.
Fingerprint sensing devices, such as optical, acoustic and capacitive fingerprint sensors, may be integrated into user authentication tokens, for example into smart cards. In order to personalize such a user authentication token, fingerprint reference data should be enrolled into the user authentication token. More specifically, a fingerprint template should be stored in a secure element of the token, so that—in operation—a captured fingerprint can be compared with said template in order to authenticate a user. A secure element may for example be an embedded chip, more specifically a tamper-resistant integrated circuit with installed or pre-installed smart-card-grade applications, for instance payment applications, which have a prescribed functionality and a prescribed level of security. Furthermore, a secure element may implement security functions, such as cryptographic functions and authentication functions.
The enrolment of fingerprint reference data is often performed under supervision in a secure environment, for example at the premises of a bank. This process is often not user-friendly and time-consuming. Thus, it is desirable to facilitate enrolling fingerprint reference data into user authentication tokens of the kind set forth. For this purpose, a personal unlock key (PUK) may be provided to a user, so that the user can unlock an enrolment function of the user authentication token. Such a PUK may be a code pattern that can be read by the fingerprint sensor and verified by the secure element. Upon a positive verification, the secure element may allow the enrolment of a fingerprint template. It may be difficult, however, to provide a reliable code pattern which is also mechanically robust.
In accordance with a first aspect of the present disclosure, a method for providing a code pattern which is readable by a sensor is conceived, the method comprising: defining a plurality of coding positions as a subset of positions in a two-dimensional matrix; including in said subset a plurality of positions which are diagonally adjacent to each other; selectively creating coding marks, such as coding dots, at the coding positions.
In an embodiment, the method further comprises creating orientation marks at predefined orientation mark positions in the matrix.
In an embodiment, the predefined orientation mark positions are positions in one or more corners of the matrix.
In an embodiment, the method further comprises logically grouping a predefined number of coding positions in one or more coding fields.
In an embodiment, the predefined number of coding positions in each coding field is p−1, wherein p represents the base of a Galois field GF(pn), and wherein n is the number of coding fields in the matrix.
In an embodiment, at most one coding mark is created in each coding field.
In an embodiment, the method further comprises logically grouping a predefined number of coding positions in a check number field.
In an embodiment, the predefined number of coding positions in the check number field is p, wherein p represents the base of a Galois field GF(pn), and wherein n is the number of coding fields in the matrix.
In an embodiment, the check number field is placed in the center of the matrix.
In an embodiment, the matrix is provided on a substrate, and the coding marks are created by creating cavities in said substrate.
In an embodiment, the matrix is provided on a substrate, and the coding marks are created by punching holes in said substrate.
In an embodiment, the substrate comprises an aluminum tape or an aluminum sheet.
In an embodiment, the sensor is an optical fingerprint sensor, an acoustic fingerprint sensor, or a capacitive fingerprint sensor.
In an embodiment, the code pattern represents a personal unlock key for unlocking a fingerprint template enrolment process.
In accordance with a second aspect of the present disclosure, a code pattern which is readable by a sensor is provided, the code pattern comprising: selectively created coding marks, such as coding dots, at a plurality of coding positions; wherein the plurality of coding positions is defined as a subset of positions in a two-dimensional matrix; and wherein said subset includes a plurality of positions which are diagonally adjacent to each other.
Embodiments will be described in more detail with reference to the appended drawings, in which:
Fingerprint sensing devices may be integrated into user authentication tokens, for example into smart cards. In order to personalize such a user authentication token, fingerprint reference data should be enrolled into the user authentication token. More specifically, a fingerprint template should be stored in a secure element of the token, so that—in operation—a captured fingerprint can be compared with said template in order to authenticate a user. The enrolment of fingerprint reference data is often performed under supervision in a secure environment, for example at the premises of a bank. This process is often not user-friendly and time-consuming. Thus, it is desirable to facilitate enrolling fingerprint reference data into user authentication tokens of the kind set forth.
More specifically, tokens such as smart wearables or smart cards equipped with a fingerprint-based user authentication function require the user to enroll his biometric credentials (i.e., fingerprint template) as reference data for later verification on the token. For adequate storage, the sensitive biometric credentials must be securely stored within such fingerprint-authenticated tokens. Currently, this enrolment process for payment tokens requires either an external computer, smartphone or internet connection or an enrolment at a bank branch. From a convenience perspective, it would be better to perform fingerprint enrolment on the token in a private environment, i.e. at the premises of the token holder, without compromising the security level of the token. For this purpose, a fingerprint template should be stored safely inside a secure element being embedded in such token. However, before enabling such an enrolment of a fingerprint template, the identity of the user should somehow be verified, so that the correct fingerprint template is enrolled—and not the template of a malicious person, for example when the token has been stolen. As mentioned, this identity verification is typically done at the premises of a token issuer (e.g., a bank), which is not user-friendly and time-consuming.
Thus, it is desirable to facilitate enrolling fingerprint reference data into user authentication tokens of the kind set forth. For this purpose, a personal unlock key (PUK) may be provided to a user, so that the user can unlock an enrolment function of the user authentication token. Such a PUK may be a code pattern that can be read by the fingerprint sensor and verified by the secure element. Upon a positive verification, the secure element may allow the enrolment of a fingerprint template. It may be difficult, however, to provide a reliable code pattern which is also mechanically robust. Now a method a method for providing a code pattern will be discussed, which facilitates the fabrication of a reliable code pattern which is also mechanically robust.
In an embodiment, the sensor is an optical fingerprint sensor, an acoustic fingerprint sensor, or a capacitive fingerprint sensor. Furthermore, in an embodiment, the code pattern represents a personal unlock key (PUK) for unlocking a fingerprint template enrolment process. In this way, a typical fingerprint sensor which may already be present in a user authentication token, may be used to read a PUK. Subsequently, the PUK may be verified by a secure element of the user authentication token, for example, and a fingerprint template enrolment process may be initiated upon or after a positive verification of the PUK. The presently disclosed method facilitates providing a reliable and mechanically robust PUK, which can for instance be shipped to a user separately from the user authentication token.
It is noted that the presently disclosed coding method may facilitate providing mechanically robust codes, but it also may compromise on code density. In other words, position coding—for example 1-out-of-p position coding—may be applied, which requires fewer coding dots to encode a secret than known two-dimensional codes such as Quick Response (QR) codes. A coding mark or coding dot in this context is a mark at a certain position in the matrix, which represent a part of a code. The mark itself may take the form of a changed substrate property, for example—i.e. a property of a substrate that is different, at the given position, from an unmarked part of the substrate. In other words, creating a coding mark may be implemented as creating a physical change of the substrate at a given position, in particular a physical change that can be detected by a sensor.
In an embodiment, the matrix is provided on a substrate, and the coding marks are created by creating cavities in said substrate. In this way, a reliable code can be fabricated in a cost-effective manner. In an embodiment, the matrix is provided on a substrate, and the coding marks are created by punching holes in said substrate. In this way, a reliable code having a high image contrast can be fabricated in a cost-effective manner. Furthermore, in a practical and effective implementation, the substrate comprises an aluminum tape or an aluminum sheet. Alternatively, or in addition, the substrate may comprise other metals, such as copper, brass and thin steel. For example, for widely used capacitive fingerprint sensors, a metallized flexible substrate may act as a robust and cheap substrate material for three-dimensional code patterns. Depending on the fingerprint sensor technology, the material property being sensed may differ. In case of an ultrasonic fingerprint sensor, topology-dependent acoustic travel time may be the measured property, in case of a capacitive sensor topology-dependent capacitance may be the measured property, in case of an optical sensor reflection properties may be sensed. To encode the substrate material, areas with a significant (i.e. detectable) change of the measured property may be formed on a carrier substrate. Such areas with significantly differing properties may be economically formed by low-cost methods changing the substrate's topology, for example by printing, creating cavities or punching holes into the substrate.
Creating cavities and punching holes firstly have the benefit of exhibiting a flat topology towards the sensor's sensing surface and thus they may enable an optimal coupling contact with the fingerprint sensor, and secondly the benefit of a very good image contrast. Printing is an additive method, which may be used as an alternative, but it may introduce an irregular topology, while forming a cavity may not introduce topology but it may exhibit a significantly lower contrast, depending on the depth of such cavity. The optimal method may be to punch holes into the substrate: punching may support all technologies, e.g. acoustic, capacitive and optical sensing. Thus, cavities (no through holes) and punched holes (through holes) both exhibit a flat topology towards the sensor's sensing surface and result in a good image contrast. However, compared to cavities, punched holes result in an even better image contrast: punched holes provide within the hole close to zero capacitance, while a cavity just exhibits a lower capacitance. This means that for capacitive sensors punched through holes provide a better contrast than cavities.
As fingerprint sensors exhibit a far lower resolution than e.g. mobile phone cameras or automation cameras, a QR code may not be suitable in the given context, because a QR code may not be punched at the required resolution into a mechanically stressed substrate without reducing the mechanical robustness of such a code significantly. Furthermore, a QR code has been designed for different application areas than what is required for encoding enrolment keys. A QR code is by nature designed to be captured by an optical system over a certain distance with unknown display scale. For that reason, a QR code may contain unnecessary overhead that may be required for a normal QR code use case, but that represents a burden if applied to enrolment keys. In case of fingerprint enrolment, it may be assumed that the code pattern may be coupled directly and at close to zero distance to the sensor, thus no complex alignment markers and clock recovery patterns are required. Furthermore, QR codes have been designed to provide a high code density, as relatively complex component part numbers must be encoded. In case of an enrolment key—i.e. a PUK of the kind set forth—the code length may be between 4 and 10 digits, which does not require such code density as provided by a QR code. Thus, it is desirable to apply a much simpler and more robust code than a QR code. This may be achieved by a coding method of the kind set forth, which in addition may use a plurality of coding fields and one or more check number fields as set forth hereinbelow.
Using a position code may significantly reduce the number of required coding dots, because the information may be encoded by 1-out-of-(p−1) positions, representing log(p)/log(2) bits created by a single coding dot applied to one coding field. Another advantage of a position code may be its increased redundancy which may support error detection and correction. The coding method as disclosed here may also be configured to exhibit an equal number of coding dots in the x- and y-directions.
As described above, coding positions may be logically grouped into coding fields. Furthermore, a check number field may be added for error detection purposes. The mapping of an enrolment key onto the position-encoded code pattern may be realized efficiently by means of an algorithmic coding mark placement. It may not be required to arrange the coding fields such that all coding fields may comprise an equal number of coding positions, but for setting up a proper code correction the groups may be made as similar as possible in number of coding positions. The example described in
Error prevention, detection and correction may be provided as follows. The encoded data may be modified accidentally between the moment of its generation and the moment of its application. Especially mechanical stress or environmental conditions, such as humidity and temperature, may cause such alterations. Alterations may materialize e.g. as missing coding dots or substrate modifications being falsely interpreted as additional coding dots. Experiments have shown that the probability of errors stimulating interpretation as additional coding dots is higher than stimulating interpretation as missing coding dots. Errors that may occur are shown in Table 1.
TABLE 1
Domain
Type
Error Detail
Error Detection
Encoding
Field
Encoding Error
Optical Correlation
Error
Transmission
Damage
Missing Dot
Checking Code Contrast (Dots per Code)
Added Dot(s)
Checking Field Contrast (Dots per Field)
Dot Contrast/Image Contrast
Modified Dot
Dot Contrast/Image Contrast
Size
Modified Dot
Sum mod(p)
Position
Decoding
Offset
X, Y offset
Image Correlation, correlate Dot
Rotation
Phi offset
Contrast/Image Contrast vs Code Field
Mask
In order to avoid such code alterations, a position code may be used that may only be encoded by a single coding dot within each coding field. Another countermeasure may be keeping the number of coding dots small to avoid unnecessary weakening of the substrate material. Another countermeasure may be maximizing the gap between coding dots to avoid weakening of the substrate material. Another countermeasure may be an optimization of the size of the coding dots to stimulate an optimal imaging performance A further countermeasure may be to use a sufficiently robust metal layer for encoding; a suitable material may for example be self-adhesive aluminum tape or aluminum sheets as used, for example, for electrostatic discharge (ESD) protection.
A missing coding dot may easily be identified by counting the coding dots within the whole code or within a coding field, which must be constant (for example equal to 1). Similar is the situation of an additional coding dot being detected, which may have been caused by substrate damages. By counting the number of coding dots within the whole code or within a coding field, both error types may be detected, because the number of coding dots per code and per field are constant throughout the code space and are known by design. In conjunction with a check number, errors in single coding fields may also be corrected.
A modified coding position may represent a third error type, which may not be detected by counting the coding dots in a coding field. This error type may be identified by means of a check number. The check number generation as applied here may be based on a code alphabet that may have p code members, wherein p may be a prime number or an irreducible polynomial, which may exhibit prime-like properties. Furthermore, the total code space may be a subset of a limited field with base p, usually called Galois field GF(pn), with n being the number of coding fields used by the code. The pth element of the code alphabet may not be used for encoding coding fields, leaving p−1 code elements for coding field encoding. For the check number all code elements may be used. The conditions as outlined may require two different position codes, a 1-out-of-(p−1) code for encoding coding fields and a 1-out-of-p code for encoding the check number. In the example shown in
For generation of the check number within the Galois field, a check matrix M=[1, 2, . . . , p] may be applied that may reflect the number of p coding elements used. In case the number of coding fields exceeds the number of code elements, the data to be encoded may be organized in code blocks up to a length of p coding fields. If, as an example, the number of coding fields in a code block is 4, the position coding of the ith coding field may be labeled xi. The check number xn+1 (the index n+1 denotes the additional field which is used as check number field) may thus be calculated as:
In principle, the check number represents a weighted checksum calculated within GF(pi). As the code disclosed here is an image based code, the check number x(n+1) may be extracted from the sensed image and evaluated separately from the coding fields. For error checking of the encoded enrolment code, the following condition may be checked once the m code blocks with each n position codes from all coding fields and all check numbers have been extracted from the sensed image:
If the result of the conditional check is FALSE, an error may have occurred, which may have been caused by at least one error within one field of the group of coding fields and check number field. Detectable errors may e.g. comprise a change of the position code and an exchange of two position codes. As the check number field impacts the error detection of all coding fields, it may be optimally placed in the center of the code pattern to reduce the risk of damage, which is assumed to develop with higher probability from the code's boundary to its center. Furthermore, placing the check number field into the center makes it less sensitive to rotation offsets.
After de-blocking, i.e. re-assembly of the individual coding fields from coding blocks, the decimal code y, expressed by position codes xi, wherein x1 denotes the top left most position code, may be calculated as:
When looking at the location of coding fields, the index i may for example be increased clockwise, starting from the top left position. The position codes xi may be extracted from the code image by means of a coding map, which may assign position codes to individual coding positions; thus, the correlation of coding dots and assigned coding positions may provide the position code for that field. An example of such coding map is shown as embodiment 400 in
TABLE 2
Generic
Example: p = 5, n = 8
Coding Positions
=n
=8
Coding Options
=p − 1
=4
Code Bits per Field
=2
Code Bits
=16
Decimals
=log(n * (p − 1)
=4.82
Entropy
=65536
Code Range
0 . . . 65535
As indicated by example, a code based on 8 coding fields with 4 coding positions each (p=5) may result in a code that is sufficient for encoding a 4-digit enrolment key (PUK). If the entropy is not sufficient for encoding the enrolment key, the product n*(p−1) may be adjusted accordingly. It may be advantageous to select the prime number p from the set of primes {11,7,5}: larger primes may result in reduced code utilization, smaller primes may exhibit worse error correction capabilities.
It is noted that the code matrix configuration may differ from a 9×9 matrix organization. For example, also non-square configurations may be supported. Furthermore, in some embodiments, the data payload may be distributed over multiple coding blocks encoded by a subset of all coding fields. The position codes of one of the code fragments may additionally be marked by suitable means representing the upright position—marking may e.g. be achieved by applying the (p−1)-complement-function, which causes the error check involving the check number to indicate an error. In case of such an error, it may firstly be assumed to be the upright positioned code fragment, if it may be read after applying the reverse function of the function applied for marking. In one example for p=5, skipping one code resulting in 1-out-of-4, a position code of x=3 may be converted into x=(4−1)−3=0.
In some embodiment, the coding dots may be printed on a conductive substrate by ink-material deviating significantly in the physical properties being measured by the fingerprint sensor for free air, thus creating positions of high luminance and thus forming an inverted code pattern image compared to a code implemented by punched coding dots. In some embodiments, the substrate layer and the coding dots may be formed by e.g. laser-printing the substrate definition in a first printing step and the dot definition in a second printing step, wherein the toner particles may form dots deviating from the measurable properties of free air. At coding dot positions, a higher luminance may be sensed compared to locations without coding dots due to a smaller distance between dot top and sensor. Furthermore, in some embodiments, the coding dots may be printed by a 3D-printer on a suitable substrate, wherein the coding dots may be deviating significantly in physical properties from that of free air, thus creating positions that may be sensed by higher luminance, and thus forming an inverted code pattern image. In other embodiments, coding cavities may be formed in a suitable substrate by impact printing, wherein the cavities may exhibit the physical properties of free air rather than those of the surrounding substrate. In some embodiments, an error correction method other than “sum-mod(p)” or checksum in a Galois field GF(pn) may be applied. In some embodiments, a coding field may comprise a number of coding positions that may differ from the number of four.
In some embodiments, a coding field may comprise a number of coding positions that differ from the number of four and a coding field may contain more than one coding dot. In some embodiments, a coding field may be organized as 2×3 coding positions and a Braille number code may be used for coding field encoding. In these embodiments, the method for generating check numbers and the number of check number Fields may be arranged such that error correction of at least 1 coding field may be achieved. In other embodiments, the code matrix area may be surrounded by a bezel interface frame, which may provide operational coupling with the bezel of a capacitive fingerprint sensor, thereby enabling good code image readability. In other embodiments, the coding dots may not be restricted to positions on diagonal lines and mechanically instable position codes may be skipped, thereby increasing code density.
In other embodiments, if rotation indicator dots with sequence “set, set, set, unset” are used, the corner field having the indicator dot unset may be used to encode by two coding dots on the available four coding positions, thus making the number of coding dots equal for all corner coding fields.
In case p=5 the value for i may be calculated as:
It is noted that the embodiments above have been described with reference to different subject-matters. In particular, some embodiments may have been described with reference to method-type claims whereas other embodiments may have been described with reference to apparatus-type claims. However, a person skilled in the art will gather from the above that, unless otherwise indicated, in addition to any combination of features belonging to one type of subject-matter also any combination of features relating to different subject-matters, in particular a combination of features of the method-type claims and features of the apparatus-type claims, is considered to be disclosed with this document.
Furthermore, it is noted that the drawings are schematic. In different drawings, similar or identical elements are provided with the same reference signs. Furthermore, it is noted that in an effort to provide a concise description of the illustrative embodiments, implementation details which fall into the customary practice of the skilled person may not have been described. It should be appreciated that in the development of any such implementation, as in any engineering or design project, numerous implementation-specific decisions must be made in order to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill.
Finally, it is noted that the skilled person will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference sign placed between parentheses shall not be construed as limiting the claim. The word “comprise(s)” or “comprising” does not exclude the presence of elements or steps other than those listed in a claim. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. Measures recited in the claims may be implemented by means of hardware comprising several distinct elements and/or by means of a suitably programmed processor. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4745269, | May 22 1985 | U S PHILIPS CORPORATION, 100 EAST 42ND STREET, NEW YORK, N Y 10017, A CORP OF DE | Method of identifying objects provided with a code field containing a dot code, a device for identifying such a dot code, and a product provided with such a dot code |
5726435, | Mar 14 1995 | Denso Wave Incorporated | Optically readable two-dimensional code and method and apparatus using the same |
7032823, | Jan 30 2003 | Denso Wave Incorporated | Two-dimensional code, methods and apparatuses for generating, displaying and reading the same |
8031375, | Apr 28 2005 | Kenji, Yoshida | Information input/output method using dot pattern |
8678296, | May 25 2011 | Generalplus Technology Inc. | Two-dimensional optical identification device with same gray level |
9298932, | Sep 29 2012 | International Business Machines Corporation | Matrix code for encryption, storage, and transmission of data |
20160306463, | |||
20170200035, | |||
20180174007, | |||
20190080127, | |||
20190272363, | |||
EP2479650, | |||
EP2618287, | |||
EP2876576, | |||
WO2007110486, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 05 2018 | SUWALD, THOMAS | NXP B V | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 048677 | /0931 | |
Mar 22 2019 | NXP B.V. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 22 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Mar 19 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 03 2023 | 4 years fee payment window open |
May 03 2024 | 6 months grace period start (w surcharge) |
Nov 03 2024 | patent expiry (for year 4) |
Nov 03 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 03 2027 | 8 years fee payment window open |
May 03 2028 | 6 months grace period start (w surcharge) |
Nov 03 2028 | patent expiry (for year 8) |
Nov 03 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 03 2031 | 12 years fee payment window open |
May 03 2032 | 6 months grace period start (w surcharge) |
Nov 03 2032 | patent expiry (for year 12) |
Nov 03 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |