Вы находитесь на странице: 1из 18

Information Sciences 479 (2019) 622–639

Contents lists available at ScienceDirect

Information Sciences
journal homepage: www.elsevier.com/locate/ins

Efficient fingerprint matching on smart cards for high security


and privacy in smart systems
Nadia Nedjah a,∗, Rafael S. Wyant a, Luiza M. Mourelle b, Brij B. Gupta c
a
Department of Electronics Engineering and Telecommunication, Brazil
b
Department of System Engineering and Computation, Engineering Faculty, State University of Rio de Janeiro, Brazil
c
Department of Computer Engineering, National Institute of Technology Kurukshetra, India

a r t i c l e i n f o a b s t r a c t

Article history: Smart control access to any service is at the very basis of any smart project. Biometrics
Received 17 August 2017 have been used as a solution for service access control an any smart system, for many
Revised 27 November 2017
years now. However, the simple use of biometrics cannot be considered as final and perfect
Accepted 23 December 2017
solution. Most problems are related to the data transmission method between the medias,
Available online 25 December 2017
for which the users require access and the servers, wherein the biometric data, captured
Keywords: upon registration, are stored. In this paper, we use smart cards as an effective yet efficient
Biometrics solution to this critical data storage problem. Furthermore, fingerprints have been used as
Fingerprint a human identifier for some time now. This biometric is considered one of the most re-
Minutiae liable to distinguish a person from another as its unique yet perfectly stable over time.
Smart-card In this work, we propose an efficient implementation of fingerprint verification on smart
cards. For this implementation, the matching is done on-card. Thus, the biometric char-
acteristics are always kept in the owner’s card, guaranteeing the maximum security and
privacy. The proposed implementation is based on the Skin Elasticity Tolerant Algorithm
(SETA), which uses minutiae to implement fingerprints matching. It consists of finding the
best alignment between the compared fingerprints before proceeding with the comparison
step to maximize the score that quantifies the quality of the matching. Although efficient,
SETA is not suitable for card implementation because it requires a lot of dynamic storage
memory to store the counters of all possible rotations and translations. In order to make
the implementation on smart cards viable mitigating the problem of the volume of storage
required to store the translations and rotations, we subdivide the search space into small
subspaces. Thus, only the translations and rotations that fall within to the handled sub-
space at each instant are considered. The implementation on smart cards is evaluated for
known fingerprint datasets. Several settings are tested, establishing that the implementa-
tion is suitable for real-time applications.
© 2017 Elsevier Inc. All rights reserved.

1. Introduction

Smart systems must provide some fundamental quality attributes and performance parameters to receive user’s accept-
ability. Among these characteristics, one can list, among many others, the most important such as reliability, which is the


Corresponding author.
E-mail address: nadia@eng.uerj.br (N. Nedjah).

https://doi.org/10.1016/j.ins.2017.12.038
0020-0255/© 2017 Elsevier Inc. All rights reserved.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 623

ability of the system to remain operational over time. Reliability is usually measured via the probability that the system will
not fail to operate properly over a specified time period. Another important smart system quality is related to its security,
which is its capability to prevent malicious or accidental actions outside of the designed usage, preventing disclosure or
loss of private information. Generally, security is of colossal importance in smart systems that aim at protecting assets and
prevent unauthorized modification of information. Last but not least, performance an important quality smart systems. It is
an indication of the responsiveness of a system to execute any action within a given time interval. It can be measured in
terms of latency or throughput. Latency is the time taken to respond to any event. Throughput is the number of events that
take place within a given amount of time.
Biometrics are studies related to some human characteristics that can be used in distinguishing two distinct persons.
These characteristics may be physical, such as finger and palm prints or behavioral, such as the speed of typing on the
keyboard and the way one signs documents. Currently, there are many characteristics used as biometrics in real-world ap-
plications. The most commonly used include DNA, face, hand veins, fingerprint [27], hand geometry, iris [24], palm-print
[23], voice, among many others. Biometrics are considered as highly secure for identification of individuals as they are dis-
tinctive. Furthermore, it is extremely difficult to be forged the used characteristics. Moreover, biometrics are very convenient
in their usage because they cannot be stolen or forgotten somewhere [3]. A given human characteristic may be used as a
biometric when their usage guarantees certain properties that must be present in the associated features. The most funda-
mental propriety is that almost people must possess this feature. In this case the biometric is said to be universal. Moreover,
two humans must have different characteristics regarding the chosen biometric. In this case, it is said to be distinguishable.
Also, the characteristic should be invariant with respect to time. IN this case, the biometric is said to be it perdurable. Last
but not least, the characteristic should be measurable. In this case, the biometric is said to be collectable [6].
Smart cities are supposed to be autonomous, having sites that are “intelligent” thanks to built-in sensors together with
the control that handles the information rendered by these sensors [7,8] to act on behalf of humans using the facilities
[9,10]. Furthermore, in smart cities, humans involved in controlling access to building are usually reduced to a strict min-
imum. The main usage of biometrics within smart cities is mainly related to access control, i.e. through the checking of
biometrics, some user can be granted or denied access to the protected service or information, among others. In most cases,
biometry has a big advantage when compared to other kind of identity authentication. It can really guarantee the authen-
ticity of the claimant. For instance, banking systems as well as healthcare systems often resort to the use of passwords and
alphanumeric codes for letters besides the use of a card to grant an account access. It is clear that both systems must, at
any cost, guarantee privacy, security, usability and performance of the various functionalities available via these systems.
The implementation of this kind of access control by means of biometrics considerably improves security against misuse. It
is a general belief that the usage of biometrics is the ultimate and perfect solution for all identification problems [4].
In [11], the authors propose a crowd sourcing based framework for understanding the underlying bases of value assign-
ment by fingerprint examiners, and use it to learn a predictor for quantitative latent value assignment. In [13], the author
propose a novel method for the rectification of distorted fingerprints. In [16], the authors introduce a new partial finger-
print matching method to incorporate new ridge shape features in addition to the conventional minutia. In [12], the authors
present a new method for enhancing fingerprint image. In [14], the authors describe the generation process of a synthetic
fingerprint using the Petri nets. In [28], the authors analyze fingerprint images to discover live from fake samples. In [15],
the authors propose a fingerprint indexing new algorithm based on novel features of minutiae triplets to improve the per-
formance of fingerprint indexing. In [24], the authors describe am novel efficient implementation of iris texture verification
on smart cards. In [23], the authors propose an efficient method for Palm-prints matching on smart cards.
Besides the problems regarding security and privacy, there is also the acceptance problem by users. The use of biometrics
has been spreading rapidly and people are starting to think about their own safety when they are asked to register their
biometrics, indiscriminately in various institutions. After all, their biometric details would be stored in many databases,
which are susceptible to attacks. In such a case, biometrics, which is unique and invariable over time, could be lost for-
ever. It is now well-established that the exploitation of smart card based solutions augmented with biometrics verification
provides more privacy and security when compared to a biometric-only or smart card-only solutions. With the biometrics
details stored in the card’s local memory and executing the biometric match on-card, the privacy and security of smart card
biometric authentication are enhanced as well as system performance.
Fingerprint has been used to identify individuals for more than a century, especially in the area of criminology and foren-
sics. There are huge databases around the world such as the Federal Bureau of Investigation (FBI), which has the largest data
volume in the world, containing more than 200 million fingerprints. Because of this use, fingerprint is nowadays considered
as the oldest biometrics.
Another more current use of fingerprints is the biometric one for identification and authentication of people. This usage
is of extreme interest for any access control project. Currently, it is the most used biometrics in several areas. Simplicity,
security and ease of extraction allow putting the biometric of fingerprints ahead of several other types of authentication.
Several methods have been proposed for the comparison of fingerprints, but the most commonly used is based on minutiae
comparison [29].
Minutiae, as illustrated in Fig. 1, are the characteristics of a fingerprint when the print lines are analyzed. This set of lines
tends to be unique in each individual. Minutiae comparison is not a simple task, especially when it is required to run in
real time on an embedded system with low processing power and a reduced available memory when compared to personal
computers.
624 N. Nedjah et al. / Information Sciences 479 (2019) 622–639

Fig. 1. Fingerprint and minutiae.

In this paper, we exploit the approach that makes use of smart cards together with biometrics aiming at increasing the
security of access control systems, that are fundamental in smart buildings, in particular and smart cities, in general. In
this work, we aim at evaluating the possibility of using smart card that grants access by performing biometric comparisons
on card. Thus, it would be possible to use a single card for several institutions and biometrics would always be stored in
a single card in the possession of the owner. The biometrics details would be stored only in a unique smart card and the
matching is processed on-card. In this paper, we use smart cards as an effective yet efficient solution to this critical data
storage problem and successfully implement SETA Algorithm on smart cards.
In this work, we propose an efficient and secure implementation of user authentication via fingerprint minutiae on smart
cards. It is based on the Skin Elasticity Tolerant Algorithm (SETA) [25], which uses minutiae to implement fingerprints
matching. This algorithm has been selected to be implemented on smart cards for its efficiency in finding the best matching
result. It consists of finding the best alignment between the compared fingerprints. The alignment is composed by a spin
angle and a translation of the minutiae. This step is done before proceeding with the comparison step to improve the quality
of the matching result. Even though SETA is efficient, it is not suitable for card implementation because it requires a lot of
dynamic storage memory to store the counters of all possible rotations and translations.
SETA is considered to be very efficient in terms of fingerprint matching. This is the main reason why we selected SETA
for our implementation on smart cards, where efficiency represents the key characteristic. Nevertheless and in order to
make such an implementation on smart cards viable we need to mitigate the problem caused by the large storage volume
required to bookkeep the results regarding the translations and rotations. For this purpose, we subdivide the search space
into small subspaces. The space subdivision allows us to deal only with the results regarding the translations and rotations
that fall within to the handled subspace at each instant are considered. This will be detailed later in this paper.
The rest of this paper is organized in 6 sections. First, in Section 2, we explain the usage of smart card for biometric
verification. Then, in Section 3, we describe the process of minutiae extraction. After that, in Section 4, detail the proposed
process to compare two fingerprint’s characteristics in order to establish authentication. Then, in Section 5, we give some
details on some implementation issues of the proposed algorithm on smart cards. Subsequently, in Section 6, we present
and discuss the performance results and effectiveness of the proposed implementation. Last but not least, in Section 7, we
draw some conclusions and point out some future work.

2. Biometrics in smart cards

This section, we first define the aspects that the implemented biometric systems are required in a smart card based
system. Then we describe the used methodology for the proposed implementation. Nonetheless, recall that the focus of
this work is to prove the feasibility of efficiently implementing fingerprint biometric comparisons processed in smart cards.
Biometric systems are basically composed of four components: (i) a device responsible for the digital representation of the
biometric characteristics of a person; (ii) an extraction tool that will be used in the comparison; (iii) a matching tool to
compare the stored pattern and the input pattern; it (iv) finally, an interface to output of the result.
In this work, the biometric system operates in two stages: the extraction and storage of the pattern that will serve as a
basis for the comparison and the matching of the stored pattern and the input pattern. The methodology explored for the
first stage of the biometric system is detailed in Section 3 while that followed during the execution of the second step of
biometric system is described in Section 4.
Fig. 2 illustrates the registration process, also known as enrollment. The sample of the individual, who is card user, is cap-
tured. For each specific method will be used biometrics (fingerprints for scanner, microphone for voice recognition, camera
for face recognition camera for iris recognition etc.). The collected data is then processed to extract the unique characteristics
of the user. The extracted biometric template that will be used in future comparisons is stored on the card.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 625

Fig. 2. Registration of a biometrics in the smart card.

Fig. 3. Biometric verification.

Fig. 3 illustrates the biometric verification process, also known as matching. The applicant’s biometric sample is captured
similarly to the process made during enrollment stage. The unique patterns of this sample are extracted and sent to the
checker. The stored pattern is retrieved from the card and sent to the checker, which then runs the verification process,
resulting in a score that establish whether both biometric samples are from the same individual. Biometric system’s main
purpose may be identification and/or verification. The identification is the search for a person from a given biometric sample.
This encompasses large databases and requires high processing power. Indexing techniques for improving search may be
used to improve performance. On the other hand, verification is the validation done given two biometric samples, resulting
in the identification whether the samples belong to the same person. The biometric comparisons using smart cards can
occur in two ways: either the user’s biometric sample is stored in the card’s memory and the comparison is done externally
on another machine. This approach is identified as Template on Card (ToC). This requires cards that only have memory,
which are much cheaper than cards that are endowed with a microprocessor; or the user’s biometric sample is stored in
the card’s memory and the comparison is also processed on the card. In this case, the smart card needs to include at
least one processor. This approach is identified as Match on Card (MoC). Note that the low processing frequency and small
memory size included in today’s smart cards are the biggest obstacles in these implementations. It is worth mentioning that
in this work, we propose an implementation MoC.
In a biometric system, when the stored sample is compared to the captured information, a score of similarity is assigned
and used to confirm the identity of an individual. When this score is compared with a pre-defined threshold, two types of
error rate can be observed: (i) False Acceptance Rate (FAR), which indicates the rate of false entries or incorrectly accepted
fraudulent data; (ii) False Rejection Rate (FRR), which indicate the rate of correct individual entries that were incorrectly
rejected. Both this rates are extremely important in choosing the limit of the score that should define the final decision of
comparisons to be declared as false or true. When it comes to embedded systems, an extremely important factor is also
the choice of the algorithm to be implemented. It is necessary to determine the complexity in terms of memory usage and
runtime.

3. Minutiae extraction

As mentioned earlier, the comparison is not due to the analysis of the fingerprint images but to the specific characteristics
extracted from those images, which are called minutiae. The minutiae extraction process consists of four steps that precede
626 N. Nedjah et al. / Information Sciences 479 (2019) 622–639

Fig. 4. Filters application to the fingerprint image.

the fingerprint verification process. These are: image acquisition, representation, preprocessing and extraction of character-
istics [29]. The first two steps will be explained in Section 3.1 while the rest will be seen, respectively, in Sections 3.2 and
3.3. It worthy pointing out that he extracted minutiae must be compatible with the InterNational Committee for Information
Technology Standards, namely INCITS 378 and ISO/IEC 19794 standards [5].

3.1. Acquisition and image representation

In order to recognize a given fingerprint, it is necessary to first obtain the image in a digital format. This process can
be done in several ways. One of the forms, still widely used, is the copy using ink. This is known as offline acquisition.
These prints are then digitized. The other way is of course known as the online acquisition. Specific electronic devices with
sensors capable of acquiring the image are thus used. The output is displayed as a digital image. For a real-time system, of
course, only the online acquisition is satisfactory. The type of acquisition will be important in choosing the database that
fits best the work presented in this paper.
During the representation step, the captured image is prepared to be stored. The size, resolution, in terms of Dots Per Inch
(DPI) and compression algorithms should be defined so that all images conform to the same standards. Some algorithms,
which do not use minutiae, represent the image as a set of frequencies of the print lines, which facilitate further verification
[1].

3.2. Image preprocessing

The acquired images rarely have an ideal quality for several reasons, such as noise, blurry ink, among others. Therefore,
images need to be retrieved and transformed into sharper ones. Therefore, several filters are applied to images for this
purpose. This stage is of major importance and difficulty, since the quality of the minutia extracted will be defined. If the
minutiae set is not extracted correctly, it will certainly negatively impact the outcome of the fingerprint verification process.
One of the transformation sequences and filters used during preprocessing consists of normalization; orientation estima-
tion; line frequency estimation; Gabor filtering; segmentation; binarization; and thinning [26].
For instance, in Fig. 4(a) we show the original image immediately after its acquisition, and in Fig. 4(b), we show the
image after the application of the first four processes i.e., normalization; orientation estimation; line frequency estimation
and the application of the Gabor filter. In the smaller rectangle of Fig. 4(b), one can certainly observe that the lines are of
much better quality than their counterpart in the smaller rectangle of Fig. 4(a). This improvement is due to the filtering
process composed of the first 5 steps: normalization; orientation estimation; line frequency estimation; Gabor filtering.
Furthermore, in Fig. 5(a), we show the same image of the example presented in Fig. 4 after the binarization filtering
step has been applied. Then, in Fig. 5(b), we show this image after the thinning process has occurred. Note that the lines
are better defined in the fingerprint of Fig. 5(b) than in that of Fig. 5(a). After preprocessing, the minutiae extraction is
performed from the thus resulting image.

3.3. Characteristics extraction

Fingerprints have several characteristics, such as the artwork that the finger lines provide, the points that seem to be the
center of the curves among others. Regardless of the observable characteristics, the minutiae to be extracted are only of two
kinds: end of line and bifurcation.
Further to our previous example, in Fig. 6, we show the two kind of minutiae, which are end of line and bifurcation,
before and after the thinning process. In Fig. 6(a), we show clearly the end of line kind of minutiae prior to the thinning
process and in Fig. 6(b) how it becomes clearer after thinning. Moreover, in Fig. 6(c), we show clearly the bifurcation kind
of minutiae prior to the thinning process and in Fig. 6(d) hoe it becomes clearer after thinning.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 627

Fig. 5. Binarization and thinning filters during preprocessing.

Fig. 6. Types of minutiae.

Fig. 7. Minutiae position and orientation.

Moreover, the minutiae have two other characteristics. The first of these characteristics consists of the minutiae position,
defined by the coordinates (x0 , y0 ), which situates the minutia with respect to the image origin, which is in turn defined as
the bottom left corner with coordinates (0, 0). The second of the characteristics consists of the angle a that is given by the
orientation of the finger line where the considered minutia appears. An illustration of these characteristics are graphically
illustrated in Fig. 7. IT is noteworthy to point out that at the end of the minutiae extraction process, the image will yield a
628 N. Nedjah et al. / Information Sciences 479 (2019) 622–639

list of such characteristics for each discovered minutiae. The result of this step will be either stored for later use or compared
to another one, which was obtained during the verification step.
We used the NIST Biometric Image Software (NBIS) software to extract the minutiae that are used during the performed
tests. It is a tool developed by The National Institute of Standards and Technology (NIST) [22]. The result of NBIS to a fin-
gerprint image returns a list of minutiae, consisting of a location characterized by its coordinates x and y, the corresponding
angle a and also a quality measure regarding this result. The quality is given by a rate ranging from 0 to 100. It is calcu-
lated by the NBIS tool, which implements an artificial neural network for this purpose. Fake minutiae such as the edge of
a fingerprint tend to receive a lower value for quality. The use of the extraction result will be further discussed later in
Section 6.

4. Fingerprint comparison

The Skin Elasticity Tolerant Algorithm (SETA) [25] is a fingerprint verification algorithm that uses a classic well known
method. It consists of aligning fingerprints in the best possible way before evaluating and assigning a score that quantifies
their similarity.
The best alignment consists of find the best spin set a together with the translations x and y that must be applied
to one of the impressions, i.e. set of minutiae, so that they have the highest number of characteristics in common. Another
option for alignment is the application of a scale factor, say s , to an image, which can also be applied in this step. However,
we will not be using it in this work because the samples must always have a predefined resolution, which is not the case
in the exploited datasets. This step is called the registry or registration. In order to find the best alignment, a comparison
of all the minutiae of each fingerprint is performed by bookkeeping the relation between the rotation and the translations
(a , x , y ). At the end of the comparisons, the relationship with the highest number of votes will be declared as the best
alignment.
The SETA Algorithm records not only the best relations but also those that relate to the related neighborhood. Thus, the
algorithm will be considering the elasticity of the skin. Algorithm 1 displays the details of SETA, wherein MA = {ma1 , ma2 ,

Algorithm 1 SETA’s detailed computation.


Require: ME = {me1 , me2 , me3 , . . . , mene }, MA = {ma1 , ma2 , ma3 , . . . , mana }
Ensure: (∗a , ∗x , ∗y )
1: for each mei ∈ ME do
2: for each ma j ∈ MA do
3: δa := ma j .a − mei .a
4: Rotate mei with angle δa
5: Store result in mrot
6: δx := mrot .x − ma j .x
7: δy := mrot .y − ma j .y
8: for a ∈ [(δa − Ea ), (δa + Ea )] do
9: for x ∈ [(δx − Ex ), (δx + Ex )] do
10: for y ∈ [(δy − Ey ), (δy + Ey )] do
11: if (a , x , y ) ∈ vote accumulator then
12: Increment (a , x , y ) in vote accumulator
13: else
14: Append (a , x , y ) to vote accumulator with 1 vote;
15: if (a , x , y ) is the most voted then
16: (∗a , ∗x , ∗y ) := (a , x , y )

ma3 , . . . , mana } is the set of stored minutiae and na is the total number of stored minutiae and ME = {me1 , me2 , me3 ,
. . . , mene } is the set of input minutiae, and ne is the total number of input minutiae, while mrot is a temporary minutia
that stores the result of a rotated minutia. Parameters Ea , Ex and Ey represent the tolerance allowed, respectively, for the
elasticity for the angle and for the coordinates in x and y.
Although efficient, the SETA algorithm is not suitable for card implementation because it requires a lot of dynamic stor-
age memory to store the counters of all possible rotations and translations. Thus, some improvements are proposed to
make it more suitable for processing on smart cards. Such optimizations are inspired by the work reported in [2], which ad-
dresses the implementation of the SETA algorithm in on a dedicated hardware co-processor, aiming at reducing the memory
requirements as well as lowering the processing time. These adjustments are explained in the remainder of this section.

4.1. Subspace organization

In order to mitigate the problem of the volume of memory required to store the results regarding translations and rota-
tions, we use the strategy of dividing the total search space into smaller volumes, which we will thereafter call subspaces.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 629

Fig. 8. Iteration strategy for subspaces.

Fig. 9. Access table and minutia.

At each iteration, only the translations and rotations that fall within the handled subspace at each instant are considered.
Fig. 8(a) illustrates this strategy used in subdividing the search space. The total search space can have large dimensions but
the studied subspace, at each iteration, can be scaled according to the available memory.
Fig. 8(b) shows two subspaces with different heights but requiring the same amount of memory. The height, in this case,
indicates the variation of the angle, that is, in the same subspace. Hence only votes with the same angular difference will
be considered. For the implementation, the height value of each subspace is chosen as unitary, that is, parts of the slides of
the total volume will be investigated. The size of the subspace and the number of subspaces studied will be determined by
the limits of translation and rotation adopted as will be explained in Section 6.

4.2. Access table

Further to space subdivision, and in order to improve the search time among the stored minutiae to be used at each
iteration, the usage of an access table is proposed. It will store the indexes of another table that contains the minutiae. So,
the access table will be the initial and final index of the minutiae regarding the same angle. The structure of these two
tables is illustrated in Fig. 9, where Anglemax represents the largest possible angle for the chosen representation. This table
is used to facilitate the search of the data corresponding to the studied angle difference in a specific subspace for a given
iteration.
As the comparison must be performed for a given angle, the table will always indicate which minutiae have the angles to
be used in the subspace studied at each iteration. For implementation reasons on the smart card, it is necessary to organize
the table in the same operation where the minutiae are stored, i.e. in the process of storing the minutiae in the EEPROM. In
this way, the coherence of the stored data (Minutia and Access table) is guaranteed.

4.3. Subspace based algorithm

Once the proposed changes have been done, a new version of SETA has been yield, as described in Algorithm 2. This
algorithm checks the values for each possible rotation in each existing subspace and keeps the best relations with its neigh-
borhoods, without exceeding the limits of the subspace. Consider SizeSUB the total number of subspaces used, α the limit of
absolute difference of angle between two minutiae, Tinitial and Tfinal the beginning and end, respectively of the area that will
have the votes increased obeying the limit of the subspace of the iteration.
The proposed version of SETA reduces the amount of data to be kept during minutia comparison. While the SETA’s
original version keeps all the voted triplets (a , x , y ) together with their voting scores, the improved version only stores
630 N. Nedjah et al. / Information Sciences 479 (2019) 622–639

Algorithm 2 Improved SETA for smart card.


Require: ME = {me1 , me2 , me3 , . . . , mene }, MA = {ma1 , ma2 , ma3 , . . . , mana }, α
Ensure: (∗a , ∗x , ∗y )
1: for a ∈ [−α , α ] do
2: for Subs such that s ∈ [0, SizeSUB − 1] do
3: for each mei ∈ ME do
4: find ma j ∈ MA using access table
5: δa := ma j .a − mei .a
6: Rotate mei with angle δa and store result in mrot
7: δx := mrot .x − ma j .x
8: δy := mrot .y − ma j .y
9: Tinitial := (δx , δy ) − (Ex , Ey )
10: T f inal := (δx , δy ) + (Ex , Ey )
11: for x ∈ [Tinitial .x, T f inal .x] do
12: for y ∈ [Tinitial .y, T f inal .y] do
13: if (a , x , y ) ∈ vote accumulator then
14: Increment (a , x , y ) in vote accumulator
15: else
16: Append (a , x , y ) to vote accumulator with 1 vote;
17: if (a , x , y ) is the most voted then
18: (∗a , ∗x , ∗y ) := (a , x , y )
19: Clear vote accumulator

those that fall within the considered subspaces and clears the vote accumulator after handling a given subspace. Clearly, the
entries of the vote accumulator in the case of Algorithm 1 is much higher than that of the vote accumulator of Algorithm 2.
It is noteworthy to point out that without this improvement in terms of memory space, the SETA algorithm could never be
implemented on smart cards.
The algorithm is implemented in the Java language using the Java Card platform and simulated. The details of the imple-
mentation and the obtained results are described and analyzed in Section 6.
The result of Algorithm 2 is the best translation and rotation to declare the winning alignment. Note that the comparison
still needs to be made. The pair of translation and rotation chosen at the registration stage is then applied to the input
minutiae so as to be compared to the stored minutiae. The simplest type of comparison is the imposition of limits around
the stored minutiae, i.e., if the difference between an input minutia and a stored one has a , x and y less than a certain
predefined limits, the details will be considered authentic otherwise they would be considered false. The final decision is
made on the basis of the total number of details declared as authentic. Note that this type of comparison does not account
for the skin elasticity.
In [2], the authors suggest a scoring system by computing the distance between minutiae, through the use of a prede-
fined Gaussian distribution. Smaller distances receive higher scores and, from given value of distance, the prescribed score
becomes low. A similar measurement is used in work. However, in order to simplify the underlying processing, a linear
distribution is used to relate a score to the distance. Further details are given in Section 6.

5. Implementation issues

The first step in implementing Algorithm 2 consists of defining the variables for each of the structures used therein,
such as the access table, the table of minutiae and the transmission messages. It is necessary to define how the minutiae
will be stored as well as the maximum number of handled minutiae. The configuration of the subspace size and number of
subspaces to be studied among other configurations are discussed throughout this section.
As seen in Section 3, the result of the extraction tool used, namely NBIS, presents each detail with a position (x, y), an
angle and a measure of quality. For the database used, x and y can vary from 0 to 299. So a variable of type short for its
storage is chosen, since type byte can only hold values of −128 to +127. The rotation result of the minutia, as delivered by
the extraction software, ranges from 0 to 63. So a variable of type byte is suitable for its storage. Thus, a total of 5 bytes
is the size of the memory needed to store each minutia. It is also necessary to choose the minimum number of minutiae
per fingerprint before proceeding with storage or comparison since, taking into account the registration phase or alignment,
impressions containing only one minutia would always result in 100% proximity. In criminal cases, usually 12 minutiae that
are closely related, also known as the 12-point guideline, are required for two impressions to be considered from the same
person [17]. Obviously, biometric systems do not require such precision, but this information is used as a basis to establish
the minimum number of accepted minutiae as 10. This means that any fingerprint containing less than 10 minutiae cannot
be used for comparisons and the card will always return an error code message.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 631

The maximum number of minutiae is chosen taking into account the number of high quality extracted minutiae ( > 60%),
ranging from 5 to 33 minutiae for the selected fingerprint samples. The maximum capacity of a Java Card transmission,
which does not exceed 128 bytes, has also been taken into account. As each minutia requires 5 bytes, a maximum of 25
minutiae is used, summing up to 125 bytes. We established that minutiae must always be transmitted in angle ascending
order to improve the construction of the access table when a fingerprint is stored.
The access table must contain the start and end indexes of the minutiae for each possible angle, ranging from 0 to 63.
Thus, this table is stored as 2 arrays of 64 positions: one array to allocate the index of the first minutia in the table of
minutiae, which has the angle of the position of the vector and another array to allocate the index of the last one.
The type of subspace used considers only one rotation at a time, as explained earlier in Section 4.1. The work used as
the basis for this implementation [2] came to a conclusion that the larger the memory used for the subspace, the shorter
the processing time. The random Access Memory (RAM) of a smart card usually has around 3KB. A subspace of size 32 × 32
bytes is thus chosen using 1KB, which represents the third of the total size. Thus, the allocation of a subspace will not
interfere with the allocation of the other variables of any of the supported applications in the card.
Algorithm 2 is implemented in Java Card. However, because it the latter is a platform with several restrictions, some
modifications were necessary. In line 7, the rotation operation of a point is made at a certain angle. This operation, illustrated
by Eq. (1), has been implemented using only integer variables since the Java Card does not support neither float variables
nor mathematical functions.
xrot = xcos(θ ) − ysen(θ ),
(1)
yrot = xsen(θ ) + ycos(θ ).
Due to this limitation, two reference tables with sine and cosine values are implemented for each possible angle. To
circumvent the precision problem, the sine and cosine values are multiplied by 100. For the calculation of xsen(θ ), for
example, x is multiplied by the value of sen(θ ) read from the table, which is multiplied by 100, and then it is divided by
100 to give the correct result without the need to use float values. Note that a value greater than 100 could not be used to
increase accuracy because the positive limit of the short variable is 32767. Using multiplication by 100 limits the values of
x and y to 320. If a multiplicative value of 10 0 0 is used, the maximum would be 32.
As pointed out earlier in Section 4, after the registration phase, which allows us to choose the best rotation and trans-
lation, it is necessary to compare the minutiae. For comparisons among all stored minutiae, i.e. na = 25, with all input
minutiae, i.e. ne = 25, scores are given. To store the obtained scores, the same memory space used previously during the
registration phase is reused to store the subspace votes (32 × 32 bytes). Since the maximum number of minutiae is 25, the
maximum memory required is 25 × 25 bytes, thus ensuring the availability in terms of memory space requirements. In the
following, the space used to save the scores will be referred to as matrix.
Algorithm 3 describes the details of the scoring process of each comparison between the stored and input minutiae.

Algorithm 3 Computation of minutia’s proximity.


Require: ME = {me1 , me2 , . . . , mene }, MA = {ma1 , ma2 , . . . , mana }, (∗a , ∗x , ∗y )
Ensure: matrix
1: for each mei ∈ ME do
2: Rotate mei with angle ∗a and store result in mrot
3: Translate mrot with ∗x and ∗y
4: for each ma j ∈ MA do
5: δx := mrot .x − ma j .x
6: δy := mrot .y − ma j .y
7: δa := mrot .a − ma j .a
8: pT rans := 2(50 − (|δx | + |δy | ))
9: pRot := 4 − |δa |
10: if pT rans ≤ 0 or pRot ≤ 0 then
11: proximit yMinut ia := 0
12: else
13: proximit yMinut ia := ( pT rans ∗ pRot )/4
14: matrix[i, j] := proximityMinutia

Variable pTrans represents the proximity in terms of distance. Note that the distance is calculated in a simplified way, using
the Manhattan distance due to the low computational power of the cards. This variable denotes a maximum proximity of
100 in the case we have |δx | + |δy | = 0. Similarly, variable pRot represents the proximity of the angle between the minutiae.
It may reach the maximum value of 4 in the case we have δa = 0 and will be 0 in the case we have δ a ≥ 4. If these are
positive values, pTrans and pRot will be multiplied and the result divided by 4. So in this way, it will result in a comparison
score that can vary from 0 to 100 for two minutiae. This score is then stored in the result matrix. It is worth mentioning
that the larger the distance, the smaller the score assigned to it.
At the end of the algorithm execution, the results matrix will be contain the results regarding each of the comparisons
between the minutiae of the sets of stored minutiae (M) and input minutia (ME). The best results are then added without
632 N. Nedjah et al. / Information Sciences 479 (2019) 622–639

repetition of minutiae whose results have already been considered. That is, the result of the comparison between me3 and
ma4 cannot be considered if the comparison result me3 and ma1 has already been used, as it would be simply repeating the
minutia me3 . The largest result (100) in matrix is neglected, since the registration phase’s voting system ensures that at least
one minutiae gets close to 100 and this results in a false proximity for false comparisons. The final result of the sum of the
highest scores stored in matrix is then divided by the total number of results considered to obtain an average figure. Since
no minutia can have 2 results, the total of results considered will be exactly the total number of minutiae is the smallest
set subtracted 1 due to the exclusion of the best result. The final result of the comparison can then range from 0 to 100.
This result is referred to as the proximity between two fingerprints or a set of minutiae.
The last step of the implementation is the definition of the maximum translation and maximum rotation variations that
will delimit the total search space of the algorithm. This choice directly affects the execution time of the algorithm and the
quality of the comparison’s results. Some tests were done to ascertain the relationship between the result quality and the
underlying execution time using the database, which illustrates situations similar to a real usage of a capture device.

6. Performance results

This section first explains the evaluation methodology used to establish the performance of the proposed method for
fingerprint comparison. Then we give the main characteristics of the used datasets during this evaluation. Finally we present,
analyze and discuss the thus obtained results.

6.1. Evaluation methodology

For the evaluation of the implementation on the smart card we use 8 repetitions of 10 different fingerprints extracted
from the database introduced in Section 6.2. So there are 6400 possible comparisons in total. If we consider only the rep-
etitions of the same fingerprint, we should have 64 possible comparisons and it is expected that these comparisons will
reach the highest proximity values. These comparisons will be referred to as the authentic comparisons. Since 10 different
fingerprints are used, 640 would be the authentic comparisons of the total of 6400 comparisons. The comparisons between
the repetitions of different fingerprints will be referred to as the false comparisons. These add up to a total of 5760.
Let us consider two fingerprints A and B. Note that the possible comparison count is made considering both the compar-
ison of A with B as well as that of B with A. That is, when A is stored on the card and B attempts to get access and when
the opposite situation occurs. Both results will be considered in the test because there is a possibility that the comparison
results would be different. This is due to the use of integers to perform the sine and cosine functions, as explained earlier in
Section 5. The rotations and translations end up presenting different results and, with this in mind, the votes made at the
registration stage may be different. Hence, this will influence the final result obtaining different values of proximity.
As discussed earlier, a subspace of size of 32 × 32 is chosen. It stores the differences regarding x and y for two compar-
ative minutiae. Therefore, the translation limit must be a multiple of 32. First, we used the translation limit of −32 to +31,
with a step of 32 regarding both coordinates x and y. So, it is necessary to use the subspace in 4 iterations so as to be able
to test all the possible differences of x and y. The angle difference used was −1 to +1 because they represent the smallest
possible rotations. Recall that the angle cycle ranges from 0 to 64.

6.2. Used databases

It is necessary to define how and/or where the samples, which are used in the tests, are obtained. As the most widely
used biometrics currently, there exists many databases for fingerprint samples [18–21]. The choice of the database should
help in setting the number of used subspaces and the angle difference studied.
The chosen database is the dataset used by Fingerprint Verification Competition (FVC’20 0 0) because it is the most com-
monly used and has fingerprint samples captured by sensors in a controlled environment similar to the case of smart cards
usage.
FVC’20 0 0 has four different subsets, each of which has been obtained by a different form of fingerprint capture. The
database that uses the low cost optical sensor is selected. It has 8 samples of prints of 110 different fingers, captured in
images of 300 × 300 pixels with resolution of 500 DPI. Fig. 10 shows some samples of the used database. Note that images
have different characteristics, such as rotation, skin problems and inaccurate lines. It is noteworthy to mention that this
database of fingerprints is used worldwide to validate proposed algorithms of real-world applications. Additional information
on the parameterization of the capture can be obtained in [18]. The main ones are mentioned as follows:

• Most impressions belong to students of 20–30 years old (approximately 50% male).
• Up to four different prints of the same finger are collected from each volunteer.
• The volunteers are not trained and the samples are collected without any special concern with quality.
• The devices are not systematically cleaned during the acquisitions.
• The maximum relative rotation between the samples of the same print is from −15◦ to 15° as it is guaranteed that there
is a common area between them.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 633

Fig. 10. Fingerprint samples from the FVC’20 0 0 database.

20

Fig. 11. Performance results for 4 subspaces with an orientation angle a ∈ [−1, 1].

6.3. Result analysis

The obtained results are presented using 4 types of graphical illustrations, which will be explained in more details as
they introduced. The comparisons between a sample and itself, that is, exactly the same set of minutiae, will be considered
only in the graphics regarding execution time, since they will always have a score of 100, which represents a practically
impossible situation.
Fig. 11(a) shows the results, which are given by the proximity between two fingerprints for the authentic and false com-
parisons found in the tests. So, the chart shows how many comparisons have scored some given proximity value. In order
for both types of comparison to be represented in the same chart, the percentage is considered in relation to the total. Re-
call that 5760 false comparisons and only 640 authentic comparisons are possible. This type of chart will be referenced as a
distribution of the results. Fig. 11(a) shows that there is a high concentration of the results regarding false comparisons with
proximity values smaller than 30. On the other hand, authentic comparisons are distributed between proximities of 0 and
80. In a biometric system, it is necessary to establish a proximity threshold that separates the results that will be declared
authentic and thus granted access of those that are declared false and thus will be refused access. Note that intuitively,
it seems interesting to set the acceptance threshold around proximity 30, as it would not guarantee access to some more
authentic comparisons, but would deny it to more false comparisons.
In order to get more accurate conclusions about the acceptance threshold, two rates introduced will be used: the False
Rejection Rate (FRR), which represents the percentage of authentic comparisons that did not reach the acceptance threshold
and hence were considered false, and the false acceptance rate (FAR) , which evaluates the opposite situation, i.e. the per-
centage of false comparisons that have exceeded the acceptance threshold and hence were considered authentic. Fig. 12(a)
shows the chart that relates FAR and FRR to different proximity values. Note that for a proximity acceptance threshold of
634 N. Nedjah et al. / Information Sciences 479 (2019) 622–639

Fig. 12. Performance results when using 4 subspaces with an orientation angle a ∈ [−1, +1].

Fig. 13. Execution time when using 4 subspaces and a orientation angle a ∈ [−1, +1].

100 no comparison is accepted as authentic. In this case, the FRR is of 100% and the FAR of 0% since all false comparisons
are actually considered to be false. On the other hand, choosing an acceptance threshold as a 0% proximity, the inverse
situation would occur.
Two points are important in Fig. 12(b). The point where error percentages are equal is called Equal Error Rate (EER) and
serves as an indication of the quality of the comparison algorithm. The idea is to have the lowest EER possible, which may
even be 0. The other important point is the secure FRR, which is the FRR value for the same acceptance limit where the
FAR is below 0.1%. This point is important because it shows the rate of false rejections where a false acceptance occurs only
once every 10 0 0 false comparisons. For a secure system, it is important that impostors fail to gain access. In the case under
review, the EER was 30.99% while the secure FRR is approximately 60%. This indicates that the card owner would normally
try more than once to gain access, but would have the assurance that another individual would hardly ever have access.
Another aspect that cannot be ignored is the execution time. An authentication system using smart cards cannot require
a very long runtime because it is usually done to attend real-time events. Fig. 13(a) shows the execution times, considering
the transmission time of minutiae, of the authentic and false comparisons. The chart shows how many comparisons were
completed in a given execution time. As with the result distribution chart, the percentage over the total is considered so that
the time periods regarding authentic and false comparisons could be represented in the same illustration. It is noteworthy
to point out that most of the comparisons obtained execution time around 1 s, but some comparisons took about 4 s.
Fig. 13(b) shows the chart that relates the result of a comparison to its execution time, i.e. each point in the graph represents
a comparison between two fingerprints. It is possible to notice that there is no relation between the execution time and the
result of the comparison. This is because the comparisons between the minutiae for the registration phase and the final
comparison occur in the same way regardless of the distances between them. Fig. 11 shows the charts of the distribution of
results and FRR and FAR relation in terms of proximity regarding this test.
Despite the fact of having acceptable time requirements, the authentication results are very flawed. In a way, this is a
kind of expected, since low values are chosen for the translation and rotation difference. To evaluate the importance of these
values, the next proposed test considers increasing the rotation variation studied to −5 to +5. Fig. 14 shows the charts of
the distribution of results and FRR and FAR relation in terms of proximity regarding this test. Fig. 15 shows the execution
times, considering the transmission time of minutiae, of authentic and false comparisons, and the chart that relates the
comparison result to its execution time.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 635

Fig. 14. Performance results when using 4 subspaces with an orientation angle a ∈ [−5, +5].

Fig. 15. Execution time when using 4 subspaces and a orientation angle a ∈ [−5, +5].

Fig. 16. Performance results when using 16 subspaces with an orientation angle a ∈ [−1, 1].

The result of the new test indicates that the false comparisons achieved higher scores because the corresponding EER
increased considerably. The safe FRR has remained virtually unchanged, indicating that angle variation is not of utmost
importance to improve results. So another test is proposed as a new attempt to improve the results. This time, the increase
is in the translation variation while the variation of the considered angle is, as in the first test, set to −1 to +1. Using the
same subspace size of 32 × 32, the search space is increased to consider translations of −64 to +63 in both coordinates x
and y, totaling 4 × 4 = 16 subspaces to be analyzed. The results of the tests are depicted in the charts of Fig. 16.
The chart of Fig. 16(b), which relates FAR and FRR now brings more attractive results. The EER improved from 30.99% to
21.11% and the secure FRR fell sharply to around 36%. The result can be understood in practice as 1 error every 3 attempts
of authentic comparisons, making the result closer to an acceptable for real-world application against practically 2 errors
every 3 attempts presented in the first test. Certainly this improvement is also have consequences on the time of execution
of the comparisons.
The graph of Fig. 17(a) shows that most comparisons have their execution time between 0.5 s and 3.5 s, but some
comparisons took almost 8s. In order to further study the relationship between the rotational and translational variations,
636 N. Nedjah et al. / Information Sciences 479 (2019) 622–639

Fig. 17. Execution time when using 16 subspaces with an angle a ∈ [−1, 1].

Table 1
Comparison results with different intervals of translation and rotation.

Translation Rotation Subspace EER FRRs Timeavg (ms) Deviation

−32 to 31 −1 to 1 4 30.99 60.34 1371.95 918.16


−32 to 31 −5 to 5 4 33.08 60.24 2296.75 1534.94
−64 to 63 −1 to 1 16 21.11 36.17 2849.38 1901.37
−64 to 63 −5 to 5 16 20.55 34.83 6433.86 4258.85
−96 to 95 −1 to 1 36 15.34 31.03 4966.29 3270.78
−96 to 95 −5 to 5 36 16.14 30.77 12,748.45 8291.08

more tests are performed using more variations. The results of these tests are shown in Table 1, wherein Timeavg represents
the average execution time and the last column shows the corresponding standard deviation.
The graphs for the performance results and execution times for each of the remaining variations tested can be seen
in Figs. 18–20. In general, the obtained results indicate that the increase of the analyzed translation range to some extent
brought significant improvements to the final result of the test, but a high price must be paid in terms of execution time.
The variation of the studied rotation range shows only a little improvement of the result, but print a significant increase in
execution time. Note that, in some cases, the increase in the rotation range leads to an increase in the safety FRR. Initially
this information does not seem correct, but the secure FRR also depends on the fact that FAR is below 0.1%, indicating that
there is an increase of the FAR and this resulted in canceling out the decrease of the FRR.
For real-world security system based on the usage of smart cards, the most important values are the mean execution
time, the standard deviation and the secure FRR. The test using translational differences of −64 to +63 together with −1
to +1 for rotational differences provides the best trade-off regarding comparison result and runtime, presenting acceptable
values for both requirements. The acceptance threshold, which is the proximity value that must be used to differentiate the
right individual from the wrong one must be set to the same proximity value where the secure FRR occurs. For the case
studied, this value is of 30%, as it can be seen in Fig. 16(b).

7. Conclusions

In this paper, we address all issues about the implementation of fingerprint biometrics on a smart card, including minu-
tia extraction and matching. The SETA algorithm is implemented using some improvements, proper for embedded systems,
allowing less memory requirement. At this end, we divided the search space into small subspaces. At each iteration, only the
translations and rotations that fall within the handled subspace at each instant are considered. By the end of the iteration,
only the most voted pair of translation and rotation are kept for further use. This space subdivision reduced to a mini-
mum possible the amount of memory required to implement SETA on smart card. Without this approach, it is categorically
impossible to implement this algorithm on smart cards.
We emphasize that the SETA algorithm is efficient, but extremely dependent on the planned translations and rotations
during the acquisition phase. The number of minutiae extracted and the quality of the extraction can also impact the result.
Although it does not present a high percentage of correctness, it is demonstrated that the algorithm can be used in real-
time systems. Aiming at improving the correctness of the result delivered by SETA, we tested several settings, proving that
real-time performance is achieved when the search space is divided into 16 subspaces with a spin angle between −1 and +1.
In this case the average execution time is 2849 ms and a safe False Rejection Rate of 36.17, indicating that the user would
have a denied access once every three tentative, approximately.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 637

Fig. 18. Performance results and execution time when using 16 subspaces with an orientation angle a ∈ [−5, +5].

Fig. 19. Performance results and execution time when using 36 subspaces with an orientation angle a ∈ [−1, +1].
638 N. Nedjah et al. / Information Sciences 479 (2019) 622–639

Fig. 20. Performance results and execution time when using 36 subspaces with an orientation angle a ∈ [−5, +5].

As a conclusion of this work, we can guarantee that the proposed implementation of fingerprint authentication on smart
card can be safely used to control access to restricted area or privative services with no breach of security. The only setup
that needs to be adjusted depends on the amount of memory available on the used smart card.
As a future work, other types of biometrics are being studied in order to verify the possibility of the implementation in a
smart card. As a multi-application card, it is possible that the same card offers more than one type of biometric verification.
The implementation of merging of different biometrics can also improve system security.

References

[1] J.N. Bradley, C.M. Brislawn, T. Hopper, FBI wavelet/scalar quantization standard for gray-scale fingerprint image compression, Vis. Inf. Process. II 1961
(1993) 293–304.
[2] T. Chouta, J.-L. Danger, L. Sauvage, T. Graba, A small and high-performance coprocessor for fingerprint match-on-card, in: 15th Euromicro Conference
on Digital System Design (DSD), 2012, Izmir, Turquia, 2012, pp. 915–922. IEEE.
[3] H. Council, Smart cards and biometrics in healthcare identity applications, 2012, https://www.securetechalliance.org/resources/pdf/
smart- cards- and- biomertics- healthcare_051112.pdf. Last access: November 2017.
[4] G. Hachez, J.-J. Quisquater, F. Koeune, Biometrics, access control, smart cards: a not so simple combination, in: Smart Card Research and Advanced
Applications, vol. 52, Springer, Bristol, UK, 20 0 0, pp. 273–288.
[5] INCITS, Biometrics technical committee takes steps to enhance the usability of its family of open systems standards for biometric data interchange
and interoperability, 2006, http://www.incits.org/, Last access: November 2017.
[6] A.K. Jain, A. Ross, S. Prabhakar, An introduction to biometric recognition, IEEE Trans. Circuits Syst. Video Technol. 14 (1) (2004) 4–20.
[7] X. Chang, Y.-L. Yu, Y. Yang, E.P. Xing, Semantic pooling for complex event analysis in untrimmed videos, IEEE Trans. Pattern Anal. Mach. Intell. 39 (8)
(2017) 1617–1632.
[8] X. Chang, Z. Ma, M. Lin, Y. Yang, A.G. Hauptmann, Feature interaction augmented sparse learning for fast kinect motion detection, IEEE Trans. Image
Process. 26 (8) (2017) 3911–3920.
[9] X. Chang, Y. Yang, Semi-supervised feature analysis by mining correlations among multiple tasks, IEEE Trans. Neural Netw. Learn. Syst. 28 (10) (2017)
2294–2305.
[10] X. Chang, Z. Ma, Y. Yang, Z. Zeng, A.G. Hauptmann, Bi-level semantic representation analysis for multimedia event detection, IEEE Trans. Cybern. 47
(5) (2017) 1180–1197.
[11] T. Chugh, K. Cao, J. Zhou, E. Tabassi, A.K. Jain, Latent fingerprint value prediction: crowd-based learning, IEEE Trans. Inf. Forensics Secur. 13 (1) (2018)
20–34.
[12] S. Ding, W. Bian, H. Liao, T. Sun, Y. Xue, Combining gabor filtering and classification dictionaries learning for fingerprint enhancement, IET Biom. 6 (6)
(2017) 438–447.
[13] S. Gu, J. Feng, J. Lu, J. Zhou, Efficient rectification of distorted fingerprints, IEEE Trans. Inf. Forensics Secur. 13 (1) (2018) 156–169.
[14] O. Kanich, M. Drahansky, Simulation of synthetic fingerprint generation using petri nets, IET Biom. 6 (6) (2017) 402–408.
[15] J. Khodadoust, A.M. Khodadoust, Fingerprint indexing based on expanded delaunay triangulation, Expert Syst. Appl. 81 (2017) 251–267.
N. Nedjah et al. / Information Sciences 479 (2019) 622–639 639

[16] W. Lee, S. Cho, H. Choi, J. Kim, Partial fingerprint matching using minutiae and ridge shape features for small fingerprint scanners, Expert Syst. Appl.
87 (2017) 183–198.
[17] D. Maio, A.K. Jain, Handbook of Fingerprint Recognition, Springer, New York, USA, 2009.
[18] D. Maio, D. Maltoni, R. Cappelli, J.L. Wayman, A.K. Jain, FVC20 0 0: fingerprint verification competition, IEEE Trans. Pattern Anal. Mach. Intell. 24 (3)
(2002) 402–412.
[19] D. Maio, D. Maltoni, R. Cappelli, J.L. Wayman, A.K. Jain, FVC2002: second fingerprint verification competition, in: Proceedings of 16th International
Conference on Pattern Recognition, 3, Quebec, Canada, 2002, pp. 811–814. IEEE
[20] D. Maio, D. Maltoni, R. Cappelli, J.L. Wayman, A.K. Jain, FVC2004: third fingerprint verification competition, in: Biometric Authentication, Springer,
Hong Kong, China, 2004, pp. 1–7.
[21] MFCP2, Mated fingerprint card pairs 2, 2004, 2017, https://www.nist.gov/publications/nist- special- database- 14- nist- mated- fingerprint- card- pairs- 2- mfcp2.
Last access: November.
[22] NIST, NIST biometric image software (NBIS), 2017, https://www.nist.gov/services-resources/software/nist- biometric- image- software- nbis, Last access:
November.
[23] N. Nedjah, R.S. Wyant, L. de Macedo Mourelle, Efficient biometric palm-print matching on smart cards for high security and privacy, Multimed. Tools
Appl. 76 (21) (2017) 22671–22701.
[24] N. Nedjah, R.S. Wyant, L. de Macedo Mourelle, B.B. Gupta, Efficient yet robust biometric iris matching on smart cards for data high security and
privacy, Futur. Gener. Comput. Syst. 76 (2017) 18–32.
[25] N.K. Ratha, K. Karu, S. Chen, A.K. Jain, A real-time matching system for large fingerprint databases, IEEE Trans. Pattern Anal. Mach. Intell. 18 (8) (1996)
799–813.
[26] R. Thai, Fingerprint Image Enhancement and Minutiae Extraction, The University of Western Australia, 2003 M.Sc. dissertation.
[27] R.S. Wyant, N. Nedjah, L. de Macedo Mourelle, Efficient biometric palm-print matching on smart cards, in: Proceedings of 14th International Compu-
tational Science and Its Applications – ICCSA 2014, Guimarães, Portugal, June 30–July 3, 2014, in: Part VI, Lecture Notes in Computer Science 8584,
2014, pp. 236–247.
[28] A. Toosi, A. Bottino, S. Cumani, P. Negri, P.L. Sottile, Feature fusion for fingerprint liveness detection: a comparative study, IEEE Access 5 (2017)
23695–23709.
[29] N. Yager, A. Amin, Fingerprint verification based on minutiae features: a review, Pattern Anal. Appl. 7 (1) (2004) 94–113.

Вам также может понравиться