Multi-factor fingerprint authentication

The integration of a user's fingerprint scan with a short password through encryption generates a secure, long password that is easy to remember and difficult to compromise, addressing security and usability issues in fingerprint authentication systems.

JP7730252B2Active Publication Date: 2025-08-27INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023530074
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-11-18
Filing Date
2021-10-13
Publication Date
2025-08-27
Estimated Expiration
2041-10-13

AI Technical Summary

Technical Problem

Existing fingerprint-based authentication systems face challenges in ensuring robust security and ease of use, as they often require long, difficult-to-remember passwords and sensitive biometric data that can be compromised or lost.

Method used

A method that generates a long, secure password by combining a user's fingerprint scan with a short user password using encryption, creating a distorted fingerprint record that is reversible with the user's code, ensuring the biometric information is not stored or easily identifiable.

Benefits of technology

This approach provides enhanced security by making biometric data less susceptible to unauthorized access and simplifies password management, allowing users to easily remember and update their passwords without storing sensitive information locally or remotely.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007730252000001
    Figure 0007730252000001
  • Figure 0007730252000002
    Figure 0007730252000002
  • Figure 0007730252000003
    Figure 0007730252000003
Patent Text Reader

Abstract

A technique for client-side multi-factor password generation includes creating a distorted record of the fingerprint image by randomly removing one or more characteristics of a record of a user's fingerprint image and combining the record with a user-entered code using cryptographic techniques, where the distorted record is reversible using the user-entered code. The distorted record is then enrolled for authentication of the user.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates generally to computer systems, and more particularly to computer systems, computer-implemented methods, and computer program products for multi-factor fingerprint authentication. [Background technology]

[0002] Fingerprint-based biometric authentication systems have rapidly gained acceptance as one of the most effective technologies for user authentication in a wide range of applications, including personal computer (PC) logon, physical access control, and mobile phone login. A typical fingerprint matching system involves two stages: enrollment, in which a user's fingerprint is acquired and its distinctive features are extracted and stored as a template. Verification, in which a new fingerprint is acquired and compared with the stored template to verify the user's claimed identity. The distinctive features used in many fingerprint-based systems are local features known as "minutiae," which are stable and robust patterns across fingerprint placement. To achieve interoperability between different fingerprint-based recognition systems, an international standard for minutiae template representation has been defined as ISO / IEC 19794-2. Summary of the Invention

[0003]

[0006] Embodiments of the present invention are directed to a multi-factor fingerprint authentication device. A non-limiting exemplary computer-implemented method includes randomly removing one or more features of a record of a user's fingerprint image to create a distorted record of the fingerprint image, the creation including combining the record with a user-entered code using encryption techniques, the distorted record being reversible using the user-entered code. The method also includes enrolling the distorted record for authentication of the user.

[0004] Other embodiments of the present invention implement features of the above-described methods in computer systems and computer program products.

[0005] Additional technical features and advantages are realized by the techniques of the present invention. Embodiments and aspects of the present invention are described in detail herein and are considered a part of the claimed subject matter. For a better understanding, please refer to the detailed description and drawings.

[0006] The particular subject matter of the exclusive rights claimed herein is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features and advantages of embodiments of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]

[0007] [Figure 1] FIG. 1 is a block diagram of an exemplary computer system for use in conjunction with one or more embodiments of the present invention. [Figure 2] FIG. 1 is a block diagram of a system for client-side multi-factor password generation, authentication, and / or updating for a user in accordance with one or more embodiments of the present invention. [Figure 3] FIG. 1 illustrates a flowchart of a process for client-side multi-factor password generation for a user in accordance with one or more embodiments of the present invention. [Figure 4] 1 illustrates a flowchart of a process for authentication with client-side multi-factor password generation for a user in accordance with one or more embodiments of the present invention. [Figure 5] FIG. 1 illustrates a flowchart of a process for updating a distorted fingerprint after successful login / authentication with client-side multi-factor password generation for a user in accordance with one or more embodiments of the present invention. [Figure 6] FIG. 2 illustrates an example of recording fingerprint minutiae based on analysis of a fingerprint image in accordance with one or more embodiments of the present invention. [Figure 7] FIG. 7 illustrates an example minutiae field in the fingerprint minutiae record of FIG. 6 in accordance with one or more embodiments of the present invention. [Figure 8]FIG. 1 is a partial view of an exemplary fingerprint minutiae record in which block arrows highlight fields that may be selected for scrambling, in accordance with one or more embodiments of the present invention. [Figure 9] 9 illustrates a partial view of the example feature point record of FIG. 8, with block arrows highlighting feature point fields that may be selected for scrambling, in accordance with one or more embodiments of the present invention. [Figure 10] 1 illustrates a flowchart of a computer-implemented method for client-side multi-factor password generation, authentication, and / or updating in accordance with one or more embodiments of the present invention. [Figure 11] 1A and 1B are diagrams illustrating ridges and valleys on a fingerprint image according to one or more embodiments of the present invention, respectively, and illustrating distinctive regions and core points in a fingerprint image according to one or more embodiments of the present invention. [Figure 12] FIG. 2 illustrates an example of a fingerprint class, in accordance with one or more embodiments of the present invention. [Figure 13] 13(A) is a diagram illustrating a fingerprint image, (B) is a diagram illustrating an orientation image of the fingerprint image of FIG. 13(A) in accordance with one or more embodiments of the present invention, and (C) is a diagram illustrating a frequency image of the fingerprint image of FIG. 13(A) in accordance with one or more embodiments of the present invention. [Figure 14] FIG. 10 illustrates a fingerprint image faded into a corresponding orientation image in accordance with one or more embodiments of the present invention. [Figure 15] (A) is a diagram illustrating terminal minutiae, (B) is a diagram illustrating bifurcation minutiae, and (C) is a diagram illustrating terminations and bifurcations, according to one or more embodiments of the present invention. [Figure 16] FIG. 1 illustrates a cloud computing environment in accordance with one or more embodiments of the present invention. [Figure 17]FIG. 2 illustrates an abstraction model layer in accordance with one or more embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0008] One or more embodiments of the present invention generate a long password for user authentication by incorporating a biometric scan image conversion string into a user-provided user password. In particular, one or more embodiments of the present invention mesh both the biometric information and the user password so that the biometric information cannot be easily identified. If the user password is lost, the user can create a new user password using the same biometric information to generate a new long password. As a result, long passwords have the advantage of being long enough to prevent unauthorized duplication, while short user passwords are easy to remember because only the user password portion (i.e., the short user password) needs to be remembered.

[0009] The availability of more powerful computers has made it possible to construct shorter passwords. Long passwords are difficult to remember, and many users shy away from them. Biometric information such as fingerprints is highly sensitive and cannot be recovered once lost. Password managers are useful, but they require a traditional master password to access them.

[0010] One or more embodiments of the present invention can generate very long passwords for enhanced security in an easy-to-remember manner by using short user passwords. There is no need to store password files on a specific user device. In one or more embodiments, biometric information does not need to be transmitted over the Internet or through a network, and the original format of the biometric scan image (e.g., fingerprint) is not stored on any device. Furthermore, one or more embodiments can use existing fingerprint scanning methods to obtain a fingerprint image, which is converted into a string of characters. The user is then prompted to enter a user code / PIN / password, which is the short user password. The string representing the fingerprint image and the short user password (i.e., the user code / PIN entered by the user) can be meshed together using an application-defined method so that the resulting string cannot be easily decoded to separate the original parts. In this way, the biometric information or the short user password, or a combination thereof, does not need to be stored locally or on a server or a combination thereof. The user only needs to remember the short user password portion, not the fingerprint portion. The user can log on anywhere with a scanner and software that supports this function. Additionally, if the short password is lost and / or composed, the biometric information is difficult to recover by an unauthorized person. A user can change their long password by changing their short password (e.g., by entering a user code / pin), and generate a new long password using their short password and fingerprint. Furthermore, long passwords can be used with any existing password-based encryption.

[0011] Turning now to FIG. 1 , a computer system 100 according to one or more embodiments of the present invention is generally illustrated. Computer system 100 can be an electronic, computer framework that includes and / or employs any number and combination of computing devices and networks utilizing various communication technologies, as described herein. Computer system 100 can be readily scalable, extensible, and modular, with the ability to be tailored to different services or reconfigured for some functions independently of others. Computer system 100 can be, for example, a server, desktop computer, laptop computer, tablet computer, or smartphone. In some examples, computer system 100 can be a cloud computing node. Computer system 100 can be described in the general context of computer system-executable instructions, such as program modules, being executed by the computer system. Generally, program modules can include routines, programs, objects, components, logic, data structures, etc., that perform particular tasks or implement particular abstract data types. Computer system 100 can also be implemented in distributed cloud computing environments where tasks are performed by remote processing devices linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

[0012] As shown in FIG. 1, computer system 100 includes one or more central processing units (CPUs) 101a, 101b, 101c, etc. (collectively or generically referred to as processors 101). Processor 101 may be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. Processor 101, also referred to as a processing circuit, is coupled to system memory 103 and various other components via system bus 102. System memory 103 may include read-only memory (ROM) 104 and random access memory (RAM) 105. ROM 104 is coupled to system bus 102 and may include a basic input / output system (BIOS) or its successor, such as a unified extensible firmware interface (UEFI), which controls certain basic functions of computer system 100. RAM is readable and writable memory coupled to system bus 102 for use by processor 101. System memory 103 provides temporary memory space for the execution of instructions during operation. The system memory 103 may include random access memory (RAM), read-only memory, flash memory, or any other suitable memory system.

[0013] Computer system 100 comprises an input / output (I / O) adapter 106 and a communications adapter 107 coupled to a system bus 102. I / O adapter 106 may be a small computer system interface (SCSI) adapter that communicates with a hard disk 108 and / or other similar components. I / O adapter 106 and hard disk 108 are collectively referred to herein as mass storage device 110.

[0014] Software 111 for execution on computer system 100 may be stored on mass storage device 110. Mass storage device 110 is an example of a tangible storage medium readable by processor 101, on which software 111 is stored as instructions for execution by processor 101 to operate computer system 100, as described below with respect to various figures. Examples of computer program products and the execution of such instructions are described in more detail herein. Communications adapter 107 interconnects system bus 102 with network 112, which may be an external network, enabling computer system 100 to communicate with other such systems. In one embodiment, a portion of system memory 103 and mass storage device 110 collectively store an operating system, which may be any suitable operating system for coordinating the functions of the various components shown in FIG. 1 .

[0015] Additional input / output devices are shown connected to system bus 102 via display adapter 115 and interface adapter 116. In one embodiment, adapters 106, 107, 115, and 116 may be connected to one or more I / O buses that are connected to system bus 102 via an intermediate bus bridge (not shown). A display 119 (e.g., a screen or display monitor) is connected to system bus 102 by display adapter 115, which may include a graphics controller and a video controller to improve performance of graphics-intensive applications. A keyboard 121, a mouse 122, speakers 123, a fingerprint scanner 124, and the like may be interconnected to system bus 102 via interface adapter 116, which may include, for example, a super I / O chip that integrates multiple device adapters into a single integrated circuit. Suitable I / O buses for connecting peripheral devices such as hard disk controllers, network adapters, and graphics adapters typically include common protocols such as Peripheral Component Interconnect (PCI) and Peripheral Component Interconnect Express (PCIe). Thus, as configured in FIG. 1, computer system 100 includes processing capability in the form of processor 101, storage capability including system memory 103 and mass storage device 110, input means such as keyboard 121 and mouse 122, and output capability including speakers 123 and display 119.

[0016] In some embodiments, communications adapter 107 may transmit data using any suitable interface or protocol, such as an Internet or small computer system interface, among others. Network 112 may be a cellular network, a wireless network, a wide area network (WAN), a local area network (LAN), or the Internet, among others. External computing devices may connect to computer system 100 via network 112. In some examples, the external computing device may be an external web server or a cloud computing node.

[0017] It should be understood that the block diagram of Figure 1 is not intended to indicate that computer system 100 includes all of the components shown in Figure 1. Rather, computer system 100 may include any suitable fewer or additional components (e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.) not shown in Figure 1. Furthermore, the embodiments described herein with respect to computer system 100 may be implemented with any suitable logic, and logic referred to herein, in various embodiments, can include any suitable hardware (e.g., a processor, embedded controller, or application-specific integrated circuit, etc.), software (e.g., an application, etc.), firmware, or any suitable combination of hardware, software, and firmware.

[0018] FIG. 2 is a block diagram of a system 200 for client-side multi-factor password generation, authentication, and / or updating for a user, in accordance with one or more embodiments of the present invention. FIG. 2 depicts a computer system 202 coupled to one or more other devices or computer systems or combinations thereof 270. The computer system 202 is configured to generate a long password for the user based on a short user password and biometric information, authenticate the long password upon subsequent entry, or update the long password at a predetermined time, or combinations thereof. After authentication, the computer system 202 is configured to grant access to the computer system 202, one or more devices or computer systems or combinations thereof 270, a network or combinations thereof, etc. Elements of the computer system 100 may be used in the computer system 202, or integrated or combined with the devices or computer systems or combinations thereof 270, to function as discussed herein. In one or more embodiments, the computer system 202 may communicate with the devices or computer systems or combinations thereof 270 via a wireless or wired or both connection to a network 206.

[0019] FIG. 3 is a flowchart illustrating a process 300 for client-side multi-factor password generation for a user, according to one or more embodiments of the present invention. The process 300 of FIG. 3 is described with reference to FIG. 2. In block 302, a software application 204 on the computer system 202 is configured to request and / or receive a user-input code / PIN and fingerprint image from the user 210. The user-input code, e.g., 0486, can be entered using any input device, including a keyboard, mouse, touchscreen, microphone, etc. The biometric scanner / converter 230 is configured to scan the finger of the user 210 to obtain a fingerprint image via the fingerprint scanner 124. The biometric scanner / converter 230 may be integrated with and / or coupled to the computer system 202. In block 304, the software application 204 is configured to digitize the user-input user code, which is a short user password, into a binary representation of a string of zeros and ones (e.g., 0's and 1's). The digitized user-input code is used in further operations described herein. The user-entered code can be a short PIN, such as a four-digit code used as a short user password.

[0020] In block 306, software application 204 on computer system 202 is configured to convert the received fingerprint image into a fingerprint minutiae record 220 of the fingerprint image. The fingerprint minutiae record may also be referred to as a fingerprint minutiae template or simply a template. FIG. 6 is an example of a fingerprint minutiae record 220 based on analyzing a fingerprint image and extracting features. The fingerprint minutiae record 220 may utilize a standard based on ISO / IEC 19794-2:2005. The software application 204 may include and / or employ one or more suitable algorithms for analyzing the fingerprint image and extracting minutiae for the fingerprint minutiae record 220, as will be appreciated by those skilled in the art.

[0021] In block 308, the software application 204 on the computer system 202 is configured to randomly remove some and / or all of the minutiae that are above the minimum minutiae threshold and then digitize the fingerprint minutiae record 220. A quality fingerprint image can have 25 to 80 minutiae, depending on the resolution of the fingerprint scanner and the placement of the finger on the sensor. To declare a match between two sets of fingerprints, the software application 204 may find a match between 12 to 20 points (or minutiae). In the fingerprint minutiae record 220, "n" indicates the number of minutiae fields. For example, FIG. 7 is an example of a minutiae field in the fingerprint minutiae record 220. In FIG. 7, each minutiae includes an X field, a Y field, a direction, and a ridge type. A match between two sets of fingerprints may be declared when, for example, 12 minutiae match. For purposes of explanation and not limitation, it may be assumed that 12 minutiae are required to be in common before declaring a match between fingerprints, with an exemplary minimum minutiae threshold being 22. Thus, software application 204 is configured such that after randomly removing minutiae from fingerprint minutiae record 220, at least 22 minutiae remain for comparison. In one example, a given fingerprint minutiae record has 25 minutiae, and accordingly, software application 204 may randomly remove up to 25-22=3 minutiae (or minutiae values) from the fingerprint minutiae record to meet the exemplary minimum minutiae threshold of 22 minutiae. Once minutiae have been randomly removed, software application 204 digitizes the value of each remaining minutiae into a string of 0's and 1's in fingerprint minutiae record 220. Omitting or altering some information is a way to further mask the actual data by creating more unknowns. The more unknowns there are, the more difficult it is to gain unauthorized access. Having a minutiae record or fingerprint template, which ultimately results in a distorted minutiae record (described below) that is continuously changing, is much more difficult to compromise than having a single stored fingerprint template.Assuming that, on average, there are 25 minutiae per fingerprint scan, and that software application 204 randomly omits or modifies 3 minutiae, then software application 204 is selecting and omitting 3 out of 25. Thus, the number of 3 out of 25 combinations (regardless of order) is: C = (N!) / [k!(Nk)!] = 25! / [3!(22!)] = 2300 combinations. Thus, 2300 is a substantial increase in the random combinations used to modify fingerprint minutiae record 220, which can ensure that each new fingerprint scan is unique.

[0022] Referring to FIG. 3 , in block 310, the software application 204 on the computer system 202 is configured to form the distorted fingerprint minutiae record 224 by combining the fingerprint minutiae record 220 (with the minutiae randomly removed) with a digitized user code (i.e., a PIN or short password). In one or more embodiments, the combining / scrambling can be performed using fixed-form encryption, also known as format-preserving encryption (FPE), where the encryption is performed so that the output (e.g., ciphertext) is in the same format as the input (e.g., plaintext). This makes it much more difficult for unauthorized individuals to use brute-force techniques (e.g., rainbow tables, hill-climbing, etc.) to determine which passcode undoes the distorted fingerprint minutiae record / template to generate the actual fingerprint minutiae record / template, since all false passcodes will decrypt the distorted fingerprint minutiae record / template into one that looks like a legitimate fingerprint minutiae record / template. One or more minutiae fields are scrambled with the user code so that the fingerprint minutiae record 220 becomes the distorted fingerprint minutiae record 224. While minutiae fields may be randomly omitted before, after, or during scrambling, or a combination thereof, it will be appreciated that randomly omitting minutiae fields before scrambling may be more efficient. The software application 204 may include and / or employ various algorithms or techniques for scrambling specific minutiae fields using user-input codes. As an illustrative example, based on an input user code (e.g., 0486), the minutiae field value (0-255) may be modified to generate different minutiae field values ​​0-255 in a manner that can be reversed during authentication. For an input code 0486 (e.g., selecting "48") and a minutiae field value of 115, the scrambling may be 115 + 48 = 163. The scrambled value wraps back when the scrambled value is greater than (>) 255.If the software application 204 creates more minutiae, the software application 204 is configured to also populate attribute fields. Additionally, or alternatively, or both, the x and y minutiae location fields are modified based on the input code (e.g., 0486) to generate different valid locations and are generated in a manner that can be reversed during authentication. For example, using an x ​​coordinate value between 0 and 512, a y coordinate value between 0 and 512, and an input code of 0486, if x is 213, add 86 to create a scrambled x value of 299, and if y is 24, add 68 to create a scrambled y value of 102. Again, if either the x or y value is greater than (>) 512, the value is wrapped. Additionally, the direction angle minutiae location field (which typically varies from a value of 0 to 255) can be modified based on the input user code (e.g., 0486) to generate different valid angles similar to the examples discussed herein. While a simple modification using addition is discussed for illustrative purposes, more complex modifications and operations are contemplated and may be used. Additionally, other fingerprint minutiae fields can be similarly modified. In one or more embodiments, the scrambling may be performed slightly differently on each user device (e.g., computer system 202). That is, the distortion / scrambling algorithm uses minutiae value + user-input code + random seed = scrambled minutiae value to make each device unique, with a random seed that wraps the scrambled value when there is an overflow above the required value of the scrambled minutiae field. A device may use a similar algorithm as above, but additionally add a device-specific field (e.g., unique field = 7) for each device. For example, using a unique field and using the exemplary user-input code 0486, the scrambling would be 115 + 48 + 7 = 163 + 7 = 170. The device-specific field is the random seed.

[0023] In blocks 312 and 314, the distorted minutiae record 224 is encrypted and stored for future authentication, while the original fingerprint image and minutiae record are not stored. Blocks 310 and 312 may be performed separately or simultaneously, or both. Block 312 may be optional. For example, an encryption algorithm (e.g., fixed-form encryption, etc.) may incorporate user code in the encryption process, thereby simultaneously or nearly simultaneously scrambling a field of minutiae in the fingerprint minutiae record 220 to form the distorted minutiae record 224 and encrypting the distorted minutiae record 224. The software application 204 may include and / or employ a variety of encryption algorithms that can be decrypted using user-entered codes. Exemplary algorithms that may be useful for encryption and / or scrambling include hash functions, symmetric encryption algorithms, asymmetric encryption algorithms, fixed-form encryption, etc. It should be appreciated that the distorted fingerprint minutiae record 224 is a long password representative of the user 210, while the user 210 only needs to remember the user-entered code, which is a short password (e.g., a four-digit PIN). The long password is machine-generated and is the result of the fingerprint and the user-entered code, neither of which are stored in the computer system 202.

[0024] 4 shows a flowchart of a process 400 for authentication with client-side multi-factor password generation for a user in accordance with one or more embodiments of the present invention. Blocks 402, 404, and 406 are similar to blocks 302, 304, and 306 discussed previously and will be briefly described. In this scenario, user 210 requests access to, for example, computer system 202, device or computer system or combination thereof 270, network 206, etc., and must be authenticated before access is granted. In blocks 402, 404, and 406, software application 204 on computer system 202 is configured to receive a user-input code and a new fingerprint image of user 210, convert the new fingerprint image into a new fingerprint minutiae record 240, and digitize the user-input code. The user-input code is required to be the same as a previously entered user-input code (e.g., 0486). In block 408, the software application 204 on the computer system 202 is configured to decode the distorted fingerprint minutiae record 224 using the user-inputted code and undistort / descramble the distorted fingerprint minutiae record 224 using the user-inputted code by reversing the operation performed on the scrambled minutiae field in block 410. In one or more embodiments, blocks 408 and 410 may be performed simultaneously, near simultaneously, or both, since the decoding technique / algorithm is now capable of decode and undistort / descramble the distorted fingerprint minutiae record 224. The software application 204 on the computer system 202 is configured to use the distorted fingerprint minutiae record 224 to recreate the fingerprint image 280 of the previously scanned user 210. Because minutiae have been randomly removed from the fingerprint minutiae record 220, the recreated fingerprint image 280 has fewer minutiae than the original fingerprint previously obtained, while still maintaining minutiae at and / or above the minimum minutiae threshold discussed in block 308.As noted above, a match between two fingerprints can be declared when 12 to 20 points / minutiae match, with an exemplary minimum minutiae threshold being 22 in the exemplary scenario. Thus, the reconstructed fingerprint image 280 has at least 22 minutiae and / or has been reconstructed using at least 22 minutiae. The software application 204 may include and / or employ one of the more suitable algorithms or techniques for reconstructing a fingerprint image for fingerprint minutia recording, as will be appreciated by those skilled in the art.

[0025] 4, in block 412, software application 204 on computer system 202 is configured to compare new fingerprint image and / or new fingerprint minutiae record 240 with recreated fingerprint image 280 and / or fingerprint minutiae record 220, respectively. When there is a match, software application 204 on computer system 202 is configured to determine that user 210 has been successfully authenticated and grant access in block 414. When there is no match, software application 204 on computer system 202 is configured to determine that there has been a failed authentication and to deny access in block 416.

[0026] FIG. 5 is a flowchart illustrating a process 500 for updating a distorted fingerprint after successful login / authentication with client-side multi-factor password generation for a user, in accordance with one or more embodiments of the present invention. Software application 204 on computer system 202 is configured to periodically update the distorted fingerprint or distorted fingerprint minutiae record. In one or more embodiments, the distorted fingerprint or distorted fingerprint minutiae record, or both, may be updated upon each successful login. Similarly, blocks 308, 310, and 312 are repeated with a new fingerprint image as blocks 508, 510, and 512 of FIG. 5. For example, after successful authentication of user 210, software application 204 on computer system 202 is configured to randomly remove some and / or all minutiae that are equal to or greater than the minimum minutiae threshold from new fingerprint minutiae record 240 in block 508, and then digitize new fingerprint minutiae record 240. At block 510, the software application 204 on the computer system 202 is configured to form a new distorted fingerprint minutiae record 244 by combining the fingerprint minutiae record 240 with a digitized user code (i.e., a PIN or short password), and the software application 204 encrypts the new distorted fingerprint minutiae record 244 at block 512. At block 514, the software application 204 on the computer system 202 is configured to save the encrypted new distorted fingerprint minutiae record 244 in place of the old version of the distorted fingerprint minutiae record 224.

[0027] Further discussion regarding minutiae field scrambling is provided below. Vertical block arrows are utilized in FIGS. 8 and 9 to illustrate exemplary minutiae fields that can be scrambled / distorted using user-entered codes. As noted herein, scrambling can be a type of fixed-form encryption, although other types of encryption may be used. FIG. 8 illustrates a partial view of an exemplary fingerprint minutiae record, with vertical block arrows highlighting one or more fields that can be selected by software application 204 for scrambling. Software application 204 can randomly select one or more fields for scrambling in FIG. 8. FIG. 9 depicts a partial view of exemplary minutiae fields from a number of n minutiae fields in an exemplary fingerprint minutiae record, with vertical block arrows again highlighting one or more minutiae fields that can be selected by software application 204 for scrambling. Similarly, software application 204 can randomly select one or more minutiae fields for scrambling in FIG. 9.

[0028] Turning to further details of fingerprint minutiae records and their description of fingerprint images, a fingerprint is a representation of the fingertip epidermis that occurs when a finger is pressed against a flat surface. The main structural feature of a fingerprint is an interlaced pattern of often parallel ridges (also called crests) and valleys, as depicted in Figure 11(A). At a global level, a fingerprint pattern typically exhibits one or more regions where the ridges assume specific shapes (characterized by high curvature, frequent terminations, etc.). These regions (called singular points or unique regions) may be classified into three types: loop, delta, and whorl, as depicted in Figure 11(B). Unique regions belonging to the loop, delta, and whorl types are typically characterized by ∩-, Δ-, and O-shaped shapes, respectively. In Figure 11(B), unique regions are depicted as white boxes, and core points are depicted as small circles in the fingerprint image. As shown in Figure 12, singular regions are commonly used in fingerprint classification, i.e., assigning fingerprints to a class among a set of distinct classes, for the purpose of simplifying search and retrieval. Figure 12 illustrates the five most common classes in the Galton-Henry classification scheme: arch, tent arch, left loop, right loop, and whorl, with the locations of singularities diagrammed. (1) An arch fingerprint has ridges that enter from one side, then curve into a small step and exit on the other side; no singularities exist. (2) A tent arch fingerprint resembles an arch, except that some ridges exhibit high curvature, one loop, and one delta (usually aligned vertically). (3) A left (right) loop fingerprint has one or more ridges that enter from the left (right) side, curve back, and exit on the same side as they entered; loop and delta singularities exist; the loop is usually located to the left (right) of the delta relative to the vertical axis. (4) Whorl fingerprints contain two loop singularities (or one whorl thought of as two co-located, opposite loops) and two delta singularities; the whorl class is the most complex and, in some classification schemes, is further divided into several subclasses.Some fingerprint matching algorithms (which may be included in and / or employed by software application 204) typically pre-align fingerprint images according to a central point (core), which is defined as the location of the northernmost loop singularity or as the point of maximum ridge curvature for fingerprints belonging to the arch class, as depicted in FIG. 11(B).

[0029] From the fingerprint in Figure 13(A), the ridge pattern can be effectively described by an orientation image, which is a discrete matrix whose elements indicate the local orientation of the ridges, as depicted in Figure 13(B). A generic element [x,y] of the orientation image is the angle φ that the tangent to the fingerprint ridge in the corresponding local neighborhood of the image makes with the horizontal axis in the image, as depicted in Figure 14. xy Similarly, the local ridge frequency (defined as the number of ridges per unit length) can be effectively represented by using a frequency image such as that depicted in Figure 13(C). Figure 13(B) is a direction image of the fingerprint in Figure 13(A), and Figure 13(C) is a frequency image of the fingerprint. Bright blocks in the frequency image indicate areas with higher frequencies. At a finer level, other important features called minutiae can be found. Minutiae are discontinuous surfaces in ridges and can be classified into several types, such as terminations, bifurcations, islands, points, and lakes. Typically, only a coarse classification into two types is employed, as depicted in Figures 15(A), 15(B), and 15(C). These two types include terminations (points where a ridge abruptly ends) and bifurcations (points where a ridge splits into two ridges). Minutiae points can be defined by their type, x and y coordinates, and direction θ, as depicted in Figures 15(A) and 15(B). Figure 15(A) shows a terminal minutia, where (x, y) are the minutia coordinates, and θ is defined as the average direction of the tangents of the two valleys surrounding the terminal, measured increasingly clockwise from the horizontal axis. Figure 15(B) shows a bifurcation minutia, where θ is defined as the average direction of the tangents of the two ridges surrounding the terminal valley, measured increasingly counterclockwise from the horizontal axis. Figure 15(C) shows the terminal (white circle) and bifurcation (gray circle) in a sample fingerprint.

[0030] The ISO / IEC 19794-2:2005 standard specifies a data format for minutiae-based fingerprint representations and defines a generic record format that can contain one or more templates from one or more finger impressions. The ISO / IEC 19794-2:2005 standard is designed for use in a wide range of applications involving automated fingerprint recognition. It defines relevant terminology, describes methods for determining minutiae type, location, and orientation, and specifies the format to be adopted for data storage. This standard is used for fingerprint image reconstruction. The fingerprint minutiae record format defines the basic data elements used for minutiae-based fingerprint representation, as well as optional extension data formats for including additional data such as the number of ridges and the location of singularities. The table summarizes the record structure and key fields, including all those relevant to fingerprint image reconstruction. A fingerprint minutiae record contains a record header that contains general information (e.g., image size) and the number of represented fingerprints (finger views). For each finger view, the corresponding single-finger record contains required minutiae data and optional extension data. For each minutiae, the corresponding finger minutiae record (6 bytes) includes the minutiae type (terminal, branching, or other), with "other" defined as a minutiae type that may match all types (thus indicating both unknown and non-terminal / branching types). The finger minutiae record represents the minutiae x and y position and minutiae direction θ in pixels relative to the coordinate system measured in Figures 15(A) and 15(B), recorded as a single byte in units of 1.40625 (360 / 256) degrees. The finger minutiae record also records the minutiae quality, ranging from 1 (minimum quality) to 100 (maximum quality), with 0 recorded if no quality information is available. Extended data is designed to include additional information that may be used by the matching algorithm.

[0031] Among the many technical benefits and advantages of one or more embodiments of the present invention are the ability to leverage fixed-form encryption, a technology already used in credit cards, to make it much more difficult for unauthorized access using brute-force techniques when trying to discover which user-input codes distort a distorted fingerprint template to generate an actual fingerprint minutiae record, since all attempted user-input codes decrypt the distorted fingerprint template into what appears to be a legitimate fingerprint minutiae record. The complete end-to-end system and method is innovative. By automatically canceling distorted fingerprint minutiae records from previous fingerprint scans, distorted with user-input codes and stored during enrollment, and replacing them with newly scanned fingerprints with new distorted fingerprint minutiae records at random times and / or every time (e.g., predetermined intervals), it becomes much more difficult for an unauthorized individual to simply run through all user-input codes and then analyze the results to attempt to identify the most likely actual fingerprint minutiae record. Randomly removing (or altering) some fingerprint minutiae to generate more unique yet valid fingerprint images increases robustness against unauthorized access.

[0032] 10 is a flowchart of a computer-implemented method 1000 for client-side multi-factor password generation, authentication, and updating in accordance with one or more embodiments of the present invention. At block 1002, software application 204 on computer system 202 is configured to randomly remove one or more features from a record of a fingerprint image (e.g., fingerprint minutiae record 220) of user 210. At block 1004, software application 204 on computer system 202 creates a distorted record of the fingerprint image (e.g., distorted fingerprint minutiae record 224) by combining the record with a user-input code (e.g., input code 0486) using cryptographic techniques, where the distorted record is configured to be reversible using the user-input code. At block 1006, software application 204 on computer system 202 is configured to register the distorted record for (subsequent) authentication of user 210.

[0033] Creating the distorted record of the fingerprint image further includes converting the record of the fingerprint image to a string of characters (e.g., a field of the fingerprint minutiae record 220 can be converted to a string of characters), digitizing the user-entered code (e.g., 0486) into another string of characters, and combining the string with another string of characters. The user-entered code is not stored locally on the computer system 202 or remotely on another computer system, or both. The fingerprint image is not stored locally on the computer system 202 or remotely on another computer system, or both. In response to receiving a new fingerprint input by the user, the software application 204 on the computer system 202 is configured to update the distorted record (e.g., the distorted fingerprint minutiae record 224) with a new distorted record of the new fingerprint (e.g., the new distorted fingerprint minutiae record 244). The distorted record is continuously / automatically updated with the new distorted record of the new fingerprint at predetermined intervals, such as after each successful authentication, after a predetermined number of successful authentications, on a periodic calendar basis (e.g., weekly, monthly, etc.), etc. In response to receiving a new fingerprint input by the user and the user input code, software application 204 is configured to obtain the distorted record (e.g., distorted fingerprint minutiae record 224), decode the distorted record of the fingerprint image with the user input code (e.g., user input code 0486) to yield a string of characters, convert the string back to a fingerprint image record, and compare the fingerprint image record with the new fingerprint record. Software application 204 is configured to determine that authentication is successful when the record matches the new record of the new fingerprint, i.e., when the (previously stored) fingerprint minutiae record 220 matches the new fingerprint minutiae record 240, and to determine that authentication is unsuccessful when the record does not match the new record of the new fingerprint.

[0034] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present invention may be practiced in conjunction with any other type of computing environment now known or later developed.

[0035] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a service provider. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0036] The characteristics are as follows:

[0037] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time or network storage, automatically as needed, without the need for human interaction with the service provider.

[0038] Broad network access: Computing power is available over the network and can be accessed through standard mechanisms, facilitating use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, PDAs).

[0039] Resource Pooling: Computing resources from a provider are pooled and offered to multiple consumers using a multi-tenant model. Various physical and virtual resources are dynamically allocated and reallocated based on demand. Consumers generally have no control or knowledge of the exact location of the resources they are provided with, resulting in a sense of location independence. However, consumers may be able to determine location at a higher level of abstraction (e.g., country, state, data center).

[0040] Rapid Elasticity: Computing capacity can be provisioned quickly and elastically, sometimes automatically, to instantly scale out and quickly release to instantly scale in. To the consumer, the computing power available for provisioning often appears unlimited, and can be purchased at any time and in any quantity.

[0041] Metered Services: Cloud systems leverage measurement capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts) to automatically control and optimize resource usage. Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of utilized services.

[0042] The service model is as follows:

[0043] Software as a Service (SaaS): The functionality offered to the consumer is the availability of a provider's applications running on a cloud infrastructure that can be accessed from a variety of client devices through a thin client interface such as a web browser (e.g., webmail). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functionality, except for limited user-specific application configuration settings.

[0044] Platform as a Service (PaaS): The capability offered to consumers is to deploy applications they create or acquire using programming languages ​​and tools supported by the provider onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the configuration of their hosting environment.

[0045] Infrastructure as a Service (IaaS): The functionality offered to consumers is the provisioning of processors, storage, networking, and other basic computing resources on which they can deploy and run any software, including operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating system, storage, and deployed applications, and in some cases partial control over some network components (e.g., host firewalls).

[0046] The deployment model is as follows:

[0047] Private Cloud: This cloud infrastructure is dedicated to a specific organization and can be managed by that organization or a third party, and can exist on-premise or off-premise.

[0048] Community Cloud: This cloud infrastructure is shared by multiple organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance). This cloud infrastructure can be managed by those organizations or a third party and can exist on-premises or off-premises.

[0049] Public cloud: This cloud infrastructure is available to the general public or large industry organizations and is owned by an organization that sells cloud services.

[0050] Hybrid cloud: This cloud infrastructure combines two or more cloud models (private, community, or public), each of which retains its inherent nuances but is bound by standards or specific technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0051] A cloud computing environment is a service-oriented environment that emphasizes statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0052] FIG. 16 illustrates an exemplary cloud computing environment 50. As illustrated, the cloud computing environment 50 includes one or more cloud computing nodes 10, with which local computing devices used by cloud consumers (e.g., PDAs or cell phones 54A, desktop computers 54B, laptop computers 54C, or automobile computer systems 54N, or combinations thereof) can communicate. The nodes 10 can communicate with each other. The nodes 10 can be physically or virtually grouped (not shown) in one or more networks, such as the private, community, public, or hybrid clouds described above, or combinations thereof. This enables the cloud computing environment 50 to provide infrastructure, platform, or software as a service, or combinations thereof, for which cloud consumers are not required to maintain resources on their local computing devices. It should be understood that the types of computing devices 54A-N illustrated in FIG. 16 are merely exemplary, and that the computing nodes 10 and the cloud computing environment 50 can communicate with any type of electronic device via any type of network or network-addressable connection (e.g., using a web browser), or both.

[0053] A set of functional abstraction layers provided by the cloud computing environment 50 (FIG. 16) is shown in FIG. 17. It should be understood in advance that the components, layers, and functions shown in FIG. 17 are merely exemplary, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0054] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, reduced instruction set computer (RISC) architecture-based server 62, server 63, blade server 64, storage device 65, and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0055] The virtualization layer 70 provides an abstraction layer from which the following virtual entities can be provided, for example: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.

[0056] By way of example, the management layer 80 may provide the following functionality: Resource provisioning 81 enables dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 enables cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. By way of example, these resources may include application software licenses. Security enables identification and verification of cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 enables allocation and management of cloud computing resources so that requested service levels are met. Service level agreement (SLA) planning and fulfillment 85 enables advance arrangement and procurement of anticipated future cloud computing resources required in accordance with SLAs.

[0057] The workload layer 90 provides examples of functionality available to a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and software applications (e.g., software applications 204, encryption / decryption algorithms, etc.) 96 that implement the workloads and functionality.

[0058] Various embodiments of the present invention are described herein with reference to the associated drawings. Alternative embodiments of the present invention may be devised without departing from the scope of the present invention. In the following description and in the drawings, various connections and relationships (e.g., above, below, adjacent, etc.) between elements are defined. These connections and / or relationships may be direct or indirect unless otherwise specified, and the present invention is not intended to be limited in this respect. Thus, coupling of entities may refer to either direct or indirect coupling, and relationships between entities may be direct or indirect relationships. Furthermore, various tasks and process steps described herein may be combined into a more comprehensive procedure or process having additional steps or functionality not specifically described herein.

[0059] One or more of the methods described herein may be implemented with any one or combination of discrete logic circuitry having logic gates for implementing logical functions on data signals, application specific integrated circuits (ASICs) having appropriate combinatorial logic gates, programmable gate arrays (PGAs), field programmable gate arrays (FPGAs), etc., each of which is well known in the art.

[0060] For the sake of brevity, conventional technology related to making and using aspects of the present invention may or may not be described in detail herein. In particular, various aspects of computing systems and specific computer programs for implementing various technical features described herein are well known. Thus, for the sake of brevity, many conventional implementation details are only briefly mentioned herein or are omitted entirely without providing details of well-known systems and / or processes.

[0061] In some embodiments, various functions or operations may be performed at a given location or in conjunction with the operation of one or more devices or systems or combinations thereof. In some embodiments, a portion of a given function or operation may be performed at a first device or location, and the remainder of the function or operation may be performed at one or more additional devices or locations.

[0062] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. As used herein, the term "comprises" and / or "comprising" specifies the presence of stated features, integers, steps, operations, elements, or components, or combinations thereof, but does not exclude the presence or addition of one or more other features, integers, steps, operations, element components, or groups or combinations thereof.

[0063] Corresponding structure, materials, acts, and equivalents of all means or step-plus-function elements in the following claims are intended to include any structure, material, or act for performing the function in combination with the elements of other claims as specifically claimed. This disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the precise form disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the disclosure. The embodiments have been chosen and described to best explain the principles and practical applications of the disclosure, and to enable those skilled in the art to appreciate the disclosure in various embodiments with various modifications as suited to the particular uses contemplated.

[0064] The diagrams depicted herein are illustrative. There may be many variations to the diagrams or the steps (or operations) described therein without departing from the spirit of the present disclosure. For example, operations may be performed in a different order, or operations may be added, deleted, or modified. Also, the term "coupled" describes having a signal path between two elements, and does not imply a direct connection between elements with no intervening elements / connections therebetween. All of these variations are considered part of the present disclosure.

[0065] The following definitions and abbreviations shall be used for interpreting the claims and the specification. As used herein, the terms "comprises," "comprising," "includes," "including," "has," "having," "contains," or "containing," or other variations thereof, are intended to cover non-exclusive inclusions. For example, a composition, mixture, process, method, product, or device consisting of a list of elements is not necessarily limited to only those elements, but may include other elements not expressly listed or inherent in such composition, mixture, process, method, product, or device.

[0066] Moreover, the word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" are understood to include any integer greater than or equal to one, i.e., 1, 2, 3, 4, etc. The term "plurality" is understood to include any integer greater than or equal to two, i.e., 2, 3, 4, 5, etc. The term "connected" can include an indirect "connected" and a direct "connected."

[0067] The terms "about," "substantially," and "approximately," as well as variations thereof, are intended to include the degree of error associated with measurement of a particular quantity based on equipment available at the time of filing. For example, "about" can include a range of ±8%, 5%, or 2% of a given value.

[0068] The present invention may be a system, method, or computer program product, or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer-readable storage medium having stored thereon computer-readable program instructions for causing a processor to carry out aspects of the present invention.

[0069] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, by way of example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), SRAM, CD-ROMs, DVDs, memory sticks, floppy disks, mechanically encoded devices having instructions recorded on punch cards or ridge-in-groove structures, or the like, and suitable combinations thereof. Computer-readable storage devices, as used herein, should not be construed as ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted over wires.

[0070] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer / processing device. Alternatively, they can be downloaded to an external computer or external storage device via a network (e.g., the Internet, a LAN, a WAN, or a wireless network, or a combination thereof). The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computer / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium in the respective computer / processing device for storage.

[0071] The computer-readable program instructions for carrying out the operations of the present invention can be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk and C++, and procedural programming languages ​​such as the "C" programming language and similar programming languages. The computer-readable program instructions can execute entirely on the user's computer as a stand-alone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a LAN or WAN, or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to customize the electronic circuitry for carrying out aspects of the present invention.

[0072] Embodiments of the present invention are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. Each block of the flowchart and / or block diagrams, and combinations of blocks in the flowchart and / or block diagrams, can be implemented by computer-readable program instructions.

[0073] The computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, whereby the instructions, executed by the processor of such computer or other programmable data processing apparatus, create means for performing the functions / acts identified in one or more blocks of the flowcharts and / or block diagrams. The computer-readable program instructions may also be stored on a computer-readable storage medium capable of instructing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner. The computer-readable storage medium having instructions stored thereon thereby constitutes an article of manufacture including instructions for performing aspects of the functions / acts identified in one or more blocks of the flowcharts and / or block diagrams.

[0074] Computer-readable program instructions may also be loaded into a computer, other programmable device, or other device and a series of operational steps executed on the computer, other programmable device, or other device to create a computer-implemented process, whereby the instructions executing on the computer, other programmable device, or other device perform the functions / operations identified in one or more blocks in the flowcharts and / or block diagrams.

[0075] The flowcharts and block diagrams in the figures of this disclosure illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for performing specific logical functions. In some implementations, the functions shown in the blocks may be executed in a different order than shown in the figures. For example, two blocks shown in succession may actually be executed concurrently or nearly concurrently, or may even be executed in reverse order, depending on the functionality involved. Note that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs specific functions or operations or executes a combination of dedicated hardware and computer instructions.

[0076] The description of various embodiments of the present invention has been presented for purposes of explanation, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used herein are chosen to best describe the principles of the embodiments, practical applications or technical improvements to technology found in the market, or to enable those skilled in the art to understand the embodiments described herein.

Claims

1. A computer randomly removes one or more feature points from a plurality of feature points in a record of a user's fingerprint image so that the number of feature points remaining in the updated record is not less than a predetermined minimum threshold; a computer creating a distorted record of the fingerprint image, the creating including combining, using encryption techniques, at least one of a plurality of minutia fields in a plurality of minutiae included in the updated record with at least a portion of a user-input code and not combining other minutia fields of the plurality of minutia fields with the user-input code, the distorted record being reversible using the user-input code, and the at least one of the plurality of minutia fields having an altered value in the distorted record; and a computer registering the distorted record for authentication of the user.

2. 2. The computer-implemented method of claim 1, wherein creating the distorted record of the fingerprint image further comprises converting the record of the fingerprint image into a string of characters, digitizing the user-entered code into another string of characters, and combining the string of characters into the another string of characters.

3. The computer-implemented method of claim 1, wherein the encryption technique includes fixed-form encryption. receiving a new fingerprint input by the user; The computer-implemented method of claim 1 , further comprising: a computer updating the distorted record with a new distorted record of the new fingerprint.

5. The computer-implemented method of claim 1 , wherein the distorted record is automatically updated with a new distorted record of a new fingerprint of the user at predetermined intervals.

6. A computer receiving a new fingerprint input by the user and the user input code; a computer retrieving the distorted record; and a computer decoding the distorted record of the fingerprint image with the user-entered code to generate a string of characters; a computer converting the character string back into the record of the fingerprint image; The computer-implemented method of claim 1 , further comprising: a computer comparing the record of the fingerprint image with a new record of the new fingerprint.

7. The computer determines that authentication is successful if the record matches the new record of the new fingerprint; The computer-implemented method of claim 6 , further comprising: a computer determining that authentication failed if the record does not match the new record of the new fingerprint.

8. a memory having computer readable instructions; one or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to perform operations, the operations including: randomly removing one or more minutiae from the plurality of minutiae of the record of the user's fingerprint image so that the number of minutiae remaining in the updated record is not less than a predetermined minimum threshold; creating a distorted record of the fingerprint image, the creating including combining, using cryptographic techniques, at least one of a plurality of minutia fields in a plurality of minutiae included in the updated record with at least a portion of a user-input code and not combining other minutia fields of the plurality of minutia fields with the user-input code, the distorted record being reversible using the user-input code, and the at least one of the plurality of minutia fields having an altered value in the distorted record; and registering the distorted record for authentication of the user.

9. 9. The system of claim 8, wherein creating the distorted record of the fingerprint image further comprises converting the record of the fingerprint image into a string of characters, digitizing the user-entered code into another string of characters, and combining the string of characters with the other string of characters.

10. The system of claim 8, wherein the encryption technique includes fixed-form encryption.

11. receiving a new fingerprint input by the user; 9. The system of claim 8, further comprising: updating the distorted record with a new distorted record of the new fingerprint.

12. 9. The system of claim 8, wherein the distorted record is automatically updated with a new distorted record of a new fingerprint of the user at predetermined intervals.

13. receiving a new fingerprint input by the user and the user input code; Retrieving the distorted record; and decoding the distorted record of the fingerprint image with the user-entered code to generate a string of characters; converting the character string back into the record of the fingerprint image; 9. The system of claim 8, further comprising: comparing the record of the fingerprint image with a new record of the new fingerprint.

14. determining that authentication is successful if the record matches the new record of the new fingerprint; 14. The system of claim 13, further comprising determining that authentication has failed if the record does not match the new record of the new fingerprint.

15. A method executable by a processor to cause the processor to perform an operation, the operation comprising: randomly removing one or more minutiae from the plurality of minutiae of the record of the user's fingerprint image so that the number of minutiae remaining in the updated record is not less than a predetermined minimum threshold; creating a distorted record of the fingerprint image, the creating including combining, using cryptographic techniques, at least one of a plurality of minutia fields in a plurality of minutiae included in the updated record with at least a portion of a user-input code and not combining other minutia fields of the plurality of minutia fields with the user-input code, the distorted record being reversible using the user-input code, and the at least one of the plurality of minutia fields having an altered value in the distorted record; and registering the distorted record for authentication of the user.

16. 16. The computer program product of claim 15, wherein creating the distorted record of the fingerprint image further comprises converting the record of the fingerprint image to a string of characters, digitizing the user-entered code into another string of characters, and combining the string of characters with the other string of characters.

17. The computer program of claim 15, wherein the encryption technique includes fixed-form encryption.

18. receiving a new fingerprint input by the user; 16. The computer program of claim 15, further comprising: updating the distorted record with a new distorted record of the new fingerprint.

19. 16. The computer program of claim 15, wherein the distorted record is automatically updated with a new distorted record of a new fingerprint of the user at predetermined intervals.

20. receiving a new fingerprint input by the user and the user input code; Retrieving the distorted record; and decoding the distorted record of the fingerprint image with the user-entered code to generate a string of characters; converting the character string back into the record of the fingerprint image; 16. The computer program of claim 15, further comprising comparing the record of the fingerprint image with a new record of the new fingerprint.

Citation Information

Patent Citations

  • Biometric authentication system, biometric authentication method, biometric authentication apparatus, biometric information processor, biometric authentication program and biometric information processing program

    JP2011013912A

  • Method and system for combining a PIN and a biometric sample to provide template encryption and a trusted stand-alone computing device

    US20110126024A1

  • Dynamic information radio-frequency identification (RFID) card with biometric capabilities

    US20120218079A1