Upload
mohammed-zakaria
View
117
Download
0
Tags:
Embed Size (px)
DESCRIPTION
this project is used for security purpose
Citation preview
ABSTRACT
The focus of this paper is to apply the techniques of Threshold Visual
Cryptography for finger print based authentication application . Already many
applications using visual cryptography techniques for finger print authentication
have been proposed. This paper attempts to increase the level of secrecy of the
stored images using Threshold techniques such that it will be near impossible to
crack it without having a genuine share of the stored image. The original finger
print image of the person in question will be divided into n shares using
Threshold techniques. Of the n shares, a minimum of k shares are a must for
extraction of the original image. Of the k shares, one share will be with the
person in the ID Card. Combining the k-1 shares and the one share available in
the ID card of the person, the original image will be extracted and this will be
used to authenticate the finger print now extracted from the person presenting the
ID card. The authentication will be fool proof. This method of creating n shares
and storing them will also increase the level of protection against hacking in a
significant manner.
1
TABLE OF CONTENTS
CHAPTER NO
TITLE PAGE NO
ABSTRACT
1. INTRODUCTION 4
2. LITERATURE SURVEY 5
3. MATLAB 7
4. CRYPTOGRAPHY 12
5. SYSTEM ANALYSIS 14 5.1 EXISTING SYSTEM 14 5.2 DISADVANTAGES OF EXISTING SYSTEM
17
5.3 PROPOSED SYSTEM 17
6. PROBLEM FORMULATION & SYSTEM DESIGN
18
6.1 OBJECTIVE 19 6.2 DATA FLOW IN THE PROPOSED SYSTEM
19
6.3 SYSTEM REQUIREMENTS 20 6.4 MODULE DESCRIPTION 21 6.5 MODULE DESIGN 29
7. SYSTEM IMPLEMENTATION 49 7.1 PROGRAMMING LANGUAGE 50 7.2 INPUT & OUTPUT DATA SETS 50
2
8. SYSTEM TESTING 51
9. SOURCE CODE 53
10. SAMPLE SCREENS 55
11. FUTURE ENHANCEMENTS 65
12. CONCLUSION 66
13. REFERENCES 67
3
1.INTRODUCTION
In this paper an attempt has been made to introduce Threshold Visual
Cryptography in a fingerprint authentication application. Many applications on fingerprint
authentication has been developed earlier using visual cryptography. In Visual Cryptography,
the image is divided in to two shares. While one share will be stored in the data base, the
other share of the image will be with the person. This share of the image may be imprinted
in the ID card of the person. When the person produces his ID card at the authentication
centre, his share of the image will be retrieved from the ID card and the system will search
the data base and retrieve the other share from the data base. The shares will be
superimposed to get the original image for authentication. One of the main draw backs of
visual cryptography is that it would be relatively easy to manipulate the image share and
arrive at the original one or hack the information. The level of protection against hacking of
information and also the level of decryption of the encrypted image is very high comparing to
Visual Cryptography for the simple reason that n number of secret images or shares of the
original image is created and stored. The threshold determines the minimum number of
shares (say t), out of the n shares created, that are required to reconstruct the image. It would
not be possible to extract the original image if the numbers of shares available are less than
the threshold. In the authentication system, it is proposed to have one share of the t shares
stored in the ID card of the person. Therefore, it is necessary to identify t-1 shares from the n
shares and while combining the one share that is available on ID card, will extract the
original image. This will be compared with the actual fingerprint that will be obtained from
the person to authenticate the identity of the person.
4
2.LITERATURE SURVEY
In popular VC schemes, the image is divided into two shares such that the image
cannot be reconstructed from any one of the shares alone.
The main idea of this paper is to efficiently apply the Visual Cryptography (VC)
techniques onto the area of authentication using fingerprints. We present an alternative
approach of using the fingerprints, attempting to solve two major problems related to
fingerprint based automatic access control systems which are falsification and the costly
maintenance of the large fingerprint database. In the proposed application we divide an input
fingerprint image into two shares with the help of the basic VC techniques, keeping one with
the participant in the form of ID card and saving the other one in the database. This share
kept in the database will be the same for all of the participants. While accessing, we will
stack the corresponding shares together and compare the obtained image with the provided
fresh fingerprint using any modern minutia extraction algorithm.
The Threshold Visual Cryptography provides an alternate Method to overcome the deficiencies available in Visual CryptographySchemes.
The secret is reconstructed by simply superimposing enough share images, and no computation isneeded. Unless more than a certain number of share images are obtained, it is impossible todisclose the secret image. This feature enables visual threshold schemes to be used convenientlyin highly confidential cases where the secret is shared by several members.
Threshold Schemes and Information Hiding
Shamir's Secret Sharing is an algorithm in cryptography. It is a form of secret
sharing, where a secret is divided into parts, giving each participant its own unique
part, where some of the parts or all of them are needed in order to reconstruct the
secret.
Counting on all participants to combine together the secret might be impractical,
and therefore we sometimes use the threshold scheme where any k of the parts are
5
sufficient to reconstruct the original secret.
Formally, our goal is to divide some data D (e.g., the safe combination) into pieces in such a way that:
1. Knowledge of any or more pieces makes easily computable.2. Knowledge of any or fewer pieces leaves completely
undetermined (in the sense that all its possible values are equally likely).
This scheme is called threshold scheme. If then all participants are required to reconstruct the secret.
If n shares of the image are created, then it would be nearly impractical to have all the n
shares for reconstruction of the image. Therefore, a new technique where in a subset of n
shares of the image (say ‘t’) will be sufficient to reconstruct the image, was developed and
this is called Threshold Visual Cryptography Scheme.
The existing systems are not using the Threshold Visual Cryptography
Techniques of extracting k shares from n shares of the image created. Therefore, in this
paper an attempt is made to implement the TVC technique.
A comparison of the existing and the proposed system is presented in the next
chapter.
6
3.MATLAB
MATLAB (matrix laboratory) is a numerical computing environment and
fourth-generation programming language. Developed by MathWorks, MATLAB allows
matrix manipulations, plotting of functions and data, implementation of algorithms, creation
of user interfaces, and interfacing with programs written in other languages, including C, C+
+, Java, and Fortran.
Although MATLAB is intended primarily for numerical computing, an optional toolbox uses
the MuPAD symbolic engine, allowing access to symbolic computing capabilities. An
additional package, Simulink, adds graphical multi-domain simulation and Model-Based
Design for dynamic and embedded systems.
In 2004, MATLAB had around one million users across industry and
academia. MATLAB users come from various backgrounds of engineering, science, and
economics. MATLAB is widely used in academic and research institutions as well as
industrial enterprises.
3.1 HISTORY
Cleve Moler, the chairman of the computer-science department at the
University of New Mexico, started developing MATLAB in the late 1970s. He designed it to
give his students access to LINPACK and EISPACK without them having to learn Fortran. It
soon spread to other universities and found a strong audience within the applied mathematics
community. Jack Little, an engineer, was exposed to it during a visit Moler made to Stanford
University in 1983. Recognizing its commercial potential, he joined with Moler and Steve
Bangert. They rewrote MATLAB in C and founded MathWorks in 1984 to continue its
development. These rewritten libraries were known as JACKPAC. In 2000, MATLAB was
rewritten to use a newer set of libraries for matrix manipulation, LAPACK.
MATLAB was first adopted by researchers and practitioners in control engineering, Little's
specialty, but quickly spread to many other domains. It is now also used in education, in
particular the teaching of linear algebra and numerical analysis, and is popular amongst
scientists involved in image processing.
7
3.2 Syntax
The MATLAB application is built around the MATLAB language, and most use of
MATLAB involves typing MATLAB code into the Command Window (as an interactive
mathematical shell), or executing text files containing MATLAB code and functions.
3.2.1 Variables
Variables are defined using the assignment operator, =. MATLAB is a weakly
dynamically typed programming language. It is a weakly typed language because types are
implicitly converted. It is a dynamically typed language because variables can be assigned
without declaring their type, except if they are to be treated as symbolic objects, and that their
type can change. Values can come from constants, from computation involving values of
other variables, or from the output of a function. For example:
>> x = 17
x =
17
>> x = 'hat'
x =
hat
>> y = x + 0
y =
104 97 116
>> x = [3*4, pi/2]
x =
12.0000 1.5708
>> y = 3*sin(x)
y =
-1.6097 3.0000
8
3.2.2 Vectors/matrices
As suggested by its name (a contraction of "Matrix Laboratory"), MATLAB can create and
manipulate arrays of 1 (vectors), 2 (matrices), or more dimensions. In the MATLAB
vernacular, a vector refers to a one dimensional (1×N or N×1) matrix, commonly referred to
as an array in other programming languages. A matrix generally refers to a 2-dimensional
array, i.e. an m×n array where m and n are greater than 1. Arrays with more than two
dimensions are referred to as multidimensional arrays. Arrays are a fundamental type and
many standard functions natively support array operations allowing work on arrays without
explicit loops. Therefore the MATLAB language is also an example of array programming
language.
A simple array is defined using the syntax: init:increment:terminator. For instance:
>> array = 1:2:9
array =
1 3 5 7 9
defines a variable named array (or assigns a new value to an existing variable with
the name array) which is an array consisting of the values 1, 3, 5, 7, and 9. That is, the array
starts at 1 (the init value), increments with each step from the previous value by 2 (the
increment value), and stops once it reaches (or to avoid exceeding) 9 (the terminator value).
>> array = 1:3:9
array =
1 4 7
the increment value can actually be left out of this syntax (along with one of the
colons), to use a default value of 1.
>> ari = 1:5
ari =
1 2 3 4 5
assigns to the variable named ari an array with the values 1, 2, 3, 4, and 5, since the default
value of 1 is used as the incrementer.
Indexing is one-based,which is the usual convention for matrices in mathematics, although
not for some programming languages.
9
Matrices can be defined by separating the elements of a row with blank space or comma and
using a semicolon to terminate each row. The list of elements should be surrounded by square
brackets: []. Parentheses: () are used to access elements and subarrays (they are also used to
denote a function argument list).
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
>> A(2,3)
ans =
11
Sets of indices can be specified by expressions such as "2:4", which evaluates to [2,
3, 4]. For example, a submatrix taken from rows 2 through 4 and columns 3 through 4 can be
written as:
>> A(2:4,3:4)
ans =
11 8
7 12
14 1
A square identity matrix of size n can be generated using the function eye, and
matrices of any size with zeros or ones can be generated with the functions zeros and ones,
respectively.
10
3.2.3 Semicolons
Unlike many other languages, where the semicolon is used to terminate commands, in MATLAB the semicolon serves to suppress the output of the line that it concludes (it serves a similar purpose in mathematica). Commands that have return values would be: numbers /vectors/matrices and various mathematical functions executed with these (addition, multiplication etc.), strings and strings functions etc. Each number/vector/matrix/string/function with a return value, if it appears in a line not terminated by a semicolon, will have its value displayed on the screen once the line is interpreted. Some Matlab commands (such as the graphical "plot" command), however, will not have any return value associated with them, in which case the semicolon is redundant in that sense.
However, a semicolon, as it symbolizes the end of a command, can allow another command to be listed in the same line. That will hardly be used at all in a Matlab program file (i.e., a Matlab file with extension ".m") which typically groups several commands, each in a separate line - for better "readability"; but it could be handy when typing commands in the command line prompt window in the desktop, whereby each line is interpreted and executed immediately after the pressing of the enter key (and therefore the semicolon allows to type a command and not execute it before typing another one).
3.2.4Structures
MATLAB supports structure data types. Since all variables in MATLAB are
arrays, a more adequate name is "structure array", where each element of the array has the
same field names. In addition, MATLAB supports dynamic field names (field look-ups by
name, field manipulations etc). Unfortunately, MATLAB JIT does not support MATLAB
structures, therefore just a simple bundling of various variables into a structure will come at a
cost.
11
4.CRYPTOGRAPHY
It is about constructing and analyzing protocols that overcome the
influence of adversaries and which are related to various aspects in information
security such as data confidentiality, data integrity, and authentication. Modern
cryptography intersects the disciplines of mathematics, computer science, and
electrical engineering. Applications of cryptography include ATM cards, computer
passwords, and electronic commerce.
Cryptography prior to the modern age was effectively synonymous with
encryption, the conversion of information from a readable state to apparent nonsense.
The originator of an encrypted message shared the decoding technique needed to
recover the original information only with intended recipients, thereby precluding
unwanted persons to do the same. Since World War I and the advent of the computer,
the methods used to carry out cryptology have become increasingly complex and its
application more widespread.
Modern cryptography is heavily based on mathematical theory and computer
science practice; cryptographic algorithms are designed around computational
hardness assumptions, making such algorithms hard to break in practice by any
adversary. It is theoretically possible to break such a system but it is infeasible to do
so by any known practical means. These schemes are therefore termed
computationally secure; theoretical advances (e.g., improvements in integer
factorization algorithms) and faster computing technology require these solutions to
be continually adapted. There exist information-theoretically secure schemes that
provably cannot be broken even with unlimited computing power—an example is the
one-time pad—but these schemes are more difficult to implement than the best
theoretically breakable but computationally secure mechanisms.
Cryptology-related technology has raised a number of legal issues. In the United
Kingdom, additions to the Regulation of Investigatory Powers Act 2000 require a
suspected criminal to hand over their encryption key if asked by law enforcement.
Otherwise the user will face a criminal charge. The Electronic Frontier Foundation is
involved in a case in the Supreme Court of the United States, which may determine
12
whether requiring suspected criminals to provide their encryption keys to law
enforcement is unconstitutional. The EFF is arguing that this is a violation of the right
of not being forced to incriminate oneself, as given in the fifth amendment.
13
5. SYSTEM ANALYSIS
5.1 EXISTING SYSTEM
Considering fingerprint as a secret image in the existing system, we distribute
it among the two shares following one of the advanced VC methods. First share, being a
random image, is stored in the administrative database, whereas the second share of the
image is kept on the ID card of the participant. We fix the same administrative share valid for
all of the participants, thus utilizing economically the size of the administrative database.
Since shares of images are being stored at different locations, the security of the both shares
is ensured. The VC does not require any computation during the decoding process and hence
when the participant inserts his ID card, the share of the image stored therein is extracted and
corresponding share from the data base is also pulled out and are simply superimposed to
obtain the secret fingerprint image.
From this image now the minutiae of the finger can be extracted. On the next
step the application requests the participant to affix his thumb impression. This thumb
impression is scanned and the live image is processed by the system and the minutiae are
extracted and compared with the minutiae of the secret fingerprint image obtained earlier.
Minutiae extraction and matching can be done with the help of any fingerprint scanner. The
authentication succeeds only in case if minutiae are matching.
14
EXISTING MODEL
Share Stored in Database
Process 1 - When one share of the image from ID card is received, it searches the Database in the Data Server and retrieves the other share of the image and reconstructs the image.
Process2 - From the retrieved image above, minutiae extracted.
Process 3 - Thumb impression received through online scanner is processed and minutiae extracted.
Process4 - Minutiae output of Process 2 and Process 3 are compared. If found matching, person is authenticated.
15
Application Server
ID card with share of image
Scanner Application Client
Thumb impression of the person to be authenticated
Data Server
PROCESS 1
PROCESS 2
PROCESS 3
PROCESS 4
5.2 DISADVANTAGES OF EXISTING SYSTEM
The performance of currently available minutiae extraction algorithms
depends heavily on the quality of input fingerprint images. Since only two shares are
available it will be easy for any intruder to reconstruct the image with one share that is
available on the card.
5.3 PROPOSED SYSTEM
In the proposed system a technique called threshold visual cryptography is used. It
is a method to encode a secret image SI into n shadow images called shares such that any k
or more number of shares enable the “visual” recovery of the secret image, but by inspecting
less than that k share one cannot gain any information on the secret image. The “visual”
recovery consists of xeroxing the shares onto transparencies and then stacking them. Any k
shares will reveal the secret image without any cryptographic computation.
So in this system the fingerprints of the people eligible to enter the building are
collected and each fingerprint will be considered as a secret image. Randomly unique dummy
shares will be created and saved securely in the database. The shares of the participants will
be created from these dummy shares and the fingerprint images are reconstructed with the
help of standard threshold Visual Cryptography technique. For better security we are
incorporating compressed share of the image on the ID card of the participant.
16
TVC
PROPOSED SYSTEM
Nshares
t – 1 shares
-1 shares
Process 1 - When one share of the image from ID card is received, it searches the Database in the Data Server and retrieves t-1 shares of the image and reconstructs the image using Threshold Visual Cryptography (TVC) Techniques. (Module 2)Process2 - From the retrieved image above, minutiae extracted. (Module4)
Process 3 - Thumb impression received through online scanner is processed and minutiae extracted. (Module 1)Process4 - Minutiae output of Process 2 and Process 3 are compared. If found matching, person is authenticated. (Module 5)
17
Application Server
ID card with One share of image
Scanner Application Client
Thumb impression of the person to be authenticated
Data Server
PROCESS 1
PROCESS 2
PROCESS 3
PROCESS 4
6. PROBLEM FORMULATION & SYSTEM DESIGN
6..1 OBJECTIVE
The key factor in question is implementation of Threshold Visual
Cryptography Technique for enhancing the security of the data. Shamir’s theory says any
valid k shares or more of the N shares of the image will be able to reconstruct the original
image and anything less than k will not be able to do so. Therefore, effort has been made to
identify suitable algorithm for creating N shares of the image and retrieving the image with k
shares of the image which is only a sub-set of N shares.
6.2 DATA FLOW IN THE PROPOSED SYSTEM
input
output
18
ID CARD
Algorithm to Extract T-1 shares from data base
Algorithm to superimpose T shares and retrieve image
Algorithm for Minutiae Extraction
Algorithm for Minutiae Extraction
Thumb Impression
Algorithm for comparing the Minutiae
Authentication Process
6.3 SYSTEM REQUIREMENTS
6.3.1 HARDWARE REQUIREMENTS
Processor Type : Pentium -IV
Speed : 2.4GHZ
Ram : 512 MB RAM
Hard disk : 20 GB HD
6.3.2 SOFTWARE REQUIREMENTS
Operating System : Windows xp
Programming Package : Matlab
19
6.4 MODULE DESCRIPTION
6.4.1 MODULE 1
Extraction Of The Minutiae Points From The Fingerprint Image
The input for this module is fingerprint of a participant. This is processed in
various aspects and finally minutiae points are extracted.
Figure 1. A fingerprint image
Fingerprint identification and authentication systems rely on representing the two most
prominent structures: 1.Ridge endings 2.Ridge bifurcations.
20
Both the structures are treated equivalently and are collectively called minutiae. Fingerprint
images are rarely of good quality. Therefore, various techniques are employed to enhance the
quality of the image to extract the
minutiae points. The various steps involved in minutiae extraction are
21
Figure : Steps involved in fingerprint recognition algorithm
22
6.4.2 MODULE 2
Division of The Fingerprint Into N Number of Shares
In the proposed approach the secret image is divided into n- shares, which are
printed into transparencies (shares) and given to the participants. Only these participants who
possess the transparencies can reconstruct the secret image by superimposition of shares. One
cannot recover the secret image without the other shares.
Original image Share 1 Share2
Share 3 Share4 Share N
The division of the fingerprint into n number of shares is done using various
cryptographic algorithms. This helps in dividing the image into shares that consist of the
portion of the fingerprint. The image is first preprocessed and divided in terms of pixels
called shares. .The shares are images represented on transparencies consisting of black and
white (transparent, actually) pixels.
23
6.4.3 MODULE 3
Compression Technique Used For Compressing the share image on ID Card
The share of the image to be placed in the ID card is compressed so that it is
not ordinarily identified. Also, this compressed image cannot be replicated. In order to
achieve this objective, a DCT compression technique is used for compressing the share. DCT
compression is a data encoding method which compresses data by using cosine transform.
The procedure aims to minimise the amount of data that needs to be held, handled, and/or
transmitted by a computer.
Usage of DCT compression has its own advantages hence it has been implemented
for betterment in compression.
6.4.4 MODULE 4
Extraction of T-Shares from N-Shares
A (k,n)-threshold visual cryptography scheme (VCS) is a method to encode a
secret image SI into n shadow images called shares such that any k or more shares enable the
visual recovery of the secret image. However, by inspecting less than k shares one cannot
gain any information on the secret image. The visual recovery consists of copying the shares
onto transparencies and then stacking them. Any k shares will reveal the secret image without
any cryptographic computation.
In this paper we analyze the contrast of the reconstructed image for a (k,n)-
threshold VCS. We define a canonical form for a (k,n)-threshold VCS and provide a
characterization of a (k,,n)-threshold VCS. We completely characterize a contrast optimal (n-
1,n)-threshold VCS in canonical form. We first describe a family of (k,n)-threshold VCS
achieving various values of contrast and pixel expansion. Then we prove an upper bound on
the contrast of any (k,n)-threshold VCS and show that a scheme in the described family has
optimal contrast.
24
6.4.5 MODULE 5
Superimposing of the T-Shares with ID Card Share and Detection of Minutiae Points
The t-shares extracted are stored separately in the database. For
authentication, user provides one share which is available on the IDcard. The share extracted
from this card is superimposed with t- shares that is extracted and stored in the database. This
generates the Fingerprint template image. From this fingerprint template image minutiae
detection is done and from which minutiae points are obtained.
SUPERIMPOSING OF SHARES
25
6.4.6 MODULE 6
Minutiae Matching
Given two sets of minutia, one set taken from the stored data base and the
other from the live thumb impression of the person to be authenticated, the minutia match
algorithm determines whether the two minutia sets are the same or not. An alignment-based
match algorithm is used. It includes two consecutive stages: one is alignment stage and the
second is match stage.
1. Alignment stage: Given two fingerprint images to be matched, any one minutia from each
image is chosen, and the similarity of the two ridges associated with the two referenced
minutia points is calculated. If the similarity is larger than a threshold, each set of minutia is
transformed to a new coordination system whose origin is at the referenced point and whose
x-axis is coincident with the direction of the referenced point.
2. Match stage: After obtaining two sets of transformed minutia points, the elastic match
algorithm is used to count the matched minutia pairs by assuming two minutia having nearly
the same position and direction are identical. For each fingerprint, all other minutia are
translated and rotated with respect to the reference minutia according to the following
formula:
xi_new (xi - x)yi_new =TM * (yi - y)i_new (θi - θ)
for each minutiae the distance of one of the minutiae from both other
minutiae and the angle formed in between these two distances are calculated and matched
26
27
Fingerprint
Storing image for a new user
Minutiae extraction for regular useruserSystem
Manager
6.5 MODULE DESIGN
USECASE FOR MINUTIAE EXTRACTION (MODULE – 1)
28
ALGORITHM
To extract the ROI, a two-step method is used. The first step is block direction estimation and
direction variety check, while the second is using some Morphological methods.
Block direction estimation
The direction for each block of the fingerprint image with WxW in size(W is 16 pixels by
default)is estimated. The algorithm is:
I. The gradient values along x-direction (gx) and y-direction (gy) for each pixel of
the block is calculated. Two Sobel filters are used to fulfill the task.
II. For each block, following formula is used to get the Least Square approximation of
the block direction for all the pixels in each block.
tg2ß = 2 (gx*gy)/ (gx2-gy2)
III. The formula is easy to understand by regarding gradient values along x-direction and
y directions cosine value and sine value. So the tangent value of the block direction is
estimated nearly the same as the way illustrated by the following formula.
tg2 = 2sin cos /(cos2 -sin2 )
IV. After the estimation of each block direction, those blocks without significant
information on ridges and furrows are discarded based on the following formula:
E = {2 (gx*gy)+ (gx2-gy2)}/ W*W* (gx2+gy2)15
For each block, if its certainty level E is below a threshold, then the block is regarded as a
background block.
29
INPUT:
1. FINGER PRINT IMAGE:
30
OUTPUT:
1. MINUTIAE POINTS:
USECASE FOR DIVISION OF N - SHARES (MODULE – 2)
31
ALGORITHM
Step-1 Assign the pixel values of Share 1U randomly.
Step- 2 Assign the pixel value of Share 2U.
Step-3. Reverse Share 2U,that is
Temp[x][y]= Share 2U[20-x][y].
Step-4. Assign the pixel value of Share 2L.
Step-5. Assign the pixel value of Share 2L.
INPUT:
32
Stored image of a new user
Image processing
Creation of N shares of the processed image & storing
System Manager
Administrator
OUTPUT:
33
One of the shares of n-shares
USECASE FOR COMPRESSING THE SHARE FOR ID CARD (MODULE – 3)
34
N shares of the new user
One share from the N-shares
Compression technique userSystem
Manager
Compressed image in the ID card
FORWARD DCT ALGORITHM
35
Step 1: Generate a sequence from the given sequence :
step 2: Obtain DFT of using FFT. (As is real, is symmetric
and only half of the data points need be computed.)
step 3: Obtain DCT from by
INVERSE DCT ALGORITHM
step 1: Obtain from . In step 3 above there are N equations but 2N
variables (both real and imaginary parts of ). However, note that as are
real, the real part of its spectrum is even (N+1 independent variables) and
imaginary part odd (N-1 independent variables). So there are only N variables which
can be obtained by solving the N equations.
36
step 2: Obtain from by inverse DFT also using FFT in
complexity.
Step 3: Obtain from by
INPUT:
SHARE FOR COMPRESSION
OUTPUT:
COMPRESSED SHARE
37
USECASE FOR EXTRACTION OF T-SHARES FROM N-SHARES
(MODULE – 4)
38
N-1shares of the user
Extraction of t-shares
Storing of all t-sharesSystem Manager
Administrator
ALGORITHM: Step 1: N-shares of the image are stored separate in the database
39
Step 2: The value of ‘t’, obtained interactively in this project, is used to identify t number of shares in the N shares starting from image share 1.Step 3: The images are superimposed using a technique called “image addition” and secret image is reconstructed.
INPUT: All N-shares
OUTPUT:
t<n hence
USECASE FOR SUPERIMPOSING OF T-SHARES (MODULE – 5)
40
Share of the user from ID card
Stored t-shares in the database
Superimposing of both t-shares and ID card shareUser Administrator
ALGORITHM:
Step 1: Select pixel Pi share si and the corresponding pixel Pj from share sj.
41
Step 2: Let P denote the corresponding pixel in the secret image I. When superimposing pi and pj, the
number of black sub-pixels in the result is given by wt (Pi OR Pj).
Step 3: Recall that Pi and Pj were obtained by applying the same permutation to rows iand j of Mp. Hence
we have,
wt (Pi OR Pj) =wt (Mp[i] OR Mp[j])
for all 1≤i<j≤n. hence, if P=0, then
wt (Pi OR Pj) =w,
Whereas if P=1, then
wt (Pi OR Pj) ≥w+γm.
Step 4: Reconstructed white pixel is w/m black and a reconstructed black pixel is (at least) (w+γm)/m
black.
Step 5: The difference between white and black reconstructed pixels is (at least) γm of the m sub-pixels.
The fraction γ is therefore a measure of the relative contrast.
INPUT:
42
1. COMPRESSED IMAGE
2. ALL T-SHARES
OUTPUT:
43
SUPERIMPOSED IMAGE
USECASE FOR MINUTIAE MATCHING (MODULE – 6)
44
Detection of minutiae points from superimposed share
New fingerprint
Detection of minutiae points from the new fingerprintSystem Manager
User
Minutiae matching and authentication process
ALGORITHM
Step 1: Let T and I be the representation of the template and input
fingerprint, respectively.
Step 2: A minutia mj’ in I and a minutia mi in T are considered to
be matched by calculating local and global minutiae features.
step 3: For each of these minutiae stored the distance of one of the minutiae from other
minutiae and the angle formed in between these two distances is calculated.
when there are n minutiae points in the image, the below is used formula
n(n-1)(n-1)/6
step 4: Compute and store these for both the
incoming image and the stored image in a table.
Step 5: The two tables containing the minutiae are matched using bruteforce
method and the number of matching is computed
45
INPUT:1. Minutiae detection from the superimposed image
2. Finger print
46
OUTPUT:
47
AUTHENTICATED PERSON’S FINGERPRINT
7.SYSTEM
IMPLEMENTATION
48
7.1 PROGRAMMING LANGUAGE
MATLAB (matrix laboratory) is a numerical computing environment and
fourth-generation programming language. Developed by MathWorks, MATLAB allows
matrix manipulations, plotting of functions and data, implementation of algorithms, creation
of user interfaces, and interfacing with programs written in other languages, including C, C+
+, and Fortran.
Although MATLAB is intended primarily for numerical computing, an optional
toolbox uses the MuPAD symbolic engine, allowing access to symbolic computing
capabilities. An additional package, Simulink,adds graphical multi-domain simulation and
Model-Based Design for dynamic and embedded systems.
MATLAB users come from various backgrounds of engineering, science, and
economics. MATLAB is widely used in academic and research institutions as well as
industrial enterprises. The MATLAB application is built around the MATLAB language. The
simplest way to execute MATLAB code is to type it in the Command Window, which is one
of the elements of the MATLAB Desktop. When code is entered in the Command Window,
MATLAB can be used as an interactive mathematical shell. Sequences of commands can be
saved in a text file, typically using the MATLAB Editor, as a script or encapsulated into a
function, extending the commands available.
MATLAB is a "Matrix Laboratory", and as such it provides many convenient
ways for creating vectors, matrices, and multi-dimensional arrays. In the MATLAB
vernacular, a vector refers to a one dimensional (1×N or N×1) matrix, commonly referred to
as an array in other programming languages. A matrix generally refers to a 2-dimensional
array, i.e. an m x n array where m and n are greater than or equal to 1. Arrays with more than
two dimensions are referred to as multidimensional arrays.
MATLAB provides a simple way to define simple arrays using the syntax:
init:increment:terminator
49
7.2INPUT AND OUTPUT DATA SET
INPUT
FINGERPRINT
ID CARD WITH FINGERPRINT SHARE
OUTPUT
AUTHENTICATION
REJECTION
8.SYSTEM TESTING
50
The fingerprint images of various persons have been taken and stored in the
database. While storing, it is verified that fingerprint images of the person is not already
available in the database. Whenever new image is added to the database, a share of the
image is placed on the id card and given to the user, while the n shares are stored in the
database. When the user offers the id card and affixes his thumb impression on the
scanner, extraction of t-shares of the already stored image takes place and minutiae is
detected from it. These minutiae are compared with the minutiae extracted from original
fingerprint affixed by the person and when they are the same, the person is authenticated.
But when it cannot extract t shares of the fingerprint image or when minutiae are not
matching, the person is rejected.
9.SOURCE CODE
warning off;
51
clear all;close all;clc;warning off;clear all;close all;clc; % Registration PhaseX=input('Enter the User Name\n','s');%Enter a,b,c,...Y=input('Enter the Password\n','s');%Enter tifD='.';U=strcat(D,Y);Ix=strcat(X,U); InIm=imread(Ix); IM=InIm; IM=255-double(IM); figure,imshow(InIm);title('Input Image');[R C]=size(IM);[final]=fftenhance(IM,0);figure,imshow(final);title('Image Enhancement using Modified Histogram Equalization');title('Low Quality Digital Image'); % PROPOSED ALGORITHMInIm=medfilt2(InIm);figure,imshow(InIm);title('Median Filter');IM=FineEnhance(InIm);figure,imshow(IM);title('The Enhanced Image ...');If=IM;BW=im2bw(IM);figure;imshow(BW);title('Secret Image');% close all;% Create N number of SharesN=input('Enter N number of Shares ...'); % Store all N Shares to the DataBasefor i=1:N DataBase_{i} = FingerPrintShr(BW); DataBase{i}= imcompr(DataBase_{i},200);%CompS1=imcompr(S1,200); figure(i),imshow(DataBase{i});end z=IM(1:150,1:150);
52
disp('Enter the Part of the Version of the ID card Fingerprint Image ...');low = 1;high = N; % Random selection of Share Selectionx = low + (high-low)*rand;Sel=round(x);Sx=DataBase{Sel};figure,imshow(Sx);title('Random Share'); % Select t Share from N-1 share T=length(DataBase)-1; disp('T'); disp(T); Tin=input('Select t Shares ...<T...');% SuperImposing of Shares if Tin==1; SIM=DataBase{1}; end if Tin==2% SIM=imadd(DataBase{1},DataBase{2});SIM=DataBase{2}; end if Tin==3% SIM=imadd(DataBase{1},DataBase{2});% SIM=imadd(SIM,DataBase{3});SIM=DataBase{3}; end if Tin==4% SIM=imadd(DataBase{1},DataBase{2});% SIM=imadd(SIM,DataBase{3});% SIM=imadd(SIM,DataBase{4});SIM=DataBase{4}; end % ID CardID=rand(R,C);figure,imshow(ID,[]); G=imadd(ID,imresize(SIM,[R C]));IM=G;IM=double(IM);IM=SegTh(IM); %contrast enhancement filter is Used for the filterization[F_16,Area]=SurfaceDirect(IM); %contrast enhancement filter is used for the enhancement[o2,F_16,Area]=ROI_(IM,F_16,Area);a_=bwmorph(o2,'thin',Inf);A=double(a_);a__=bwmorph(A,'clean');
53
A=double(a__);a___=bwmorph(A,'hbreak');A=double(a___);b_=bwmorph(A,'spur');A=double(b_);[E,Bl,RidM,EW]=MinutiaDet(A,Area);% figure,imshow(RidM,[]);% title('Ridge Map');MinutiaOut(A,E,Bl);[Pmap,Real1,Real2]=FiltUnauthenMunutia(A,E,Bl,RidM,EW); %Filter the Detected Minutia MinutiaOutEx(A,Real1,Real2);Nm='Person';G=inputdlg(Nm);X='.dat';G=strcat(G,X);G=char(G);save(G,'Real1','Pmap','-ASCII');Fea1=Template;Fea2=Template;Match(Fea1,Fea2,If);
10. SAMPLE SCREENS
1.INPUT FINGERPRINT IMAGE
54
2.ENHANCED FINGERPRINT IMAGE
55
3.HISTOGRAM OF ORIGINAL IMAGE
4.HISTOGRAM OF ENHANCED IMAGE
56
5.RIDGE MAP
6.MINUTIAE POINTS FROM FINGERPRINT
57
7. COMMAND SCREEN FOR INPUT
58
8. IMAGE OF A SHARE
59
9. SECRET IMAGE
60
10. RANDOM SHARE FOR ID CARD
61
11. SUPERIMPOSED IMAGE
62
12. ROI IN SUPERIMPOSED IMAGE
63
13. MINUTIAE DETECTION
14. MATCH STAGE
64
15. AUTHENTICATION
65
11. FUTURE ENHANCEMENTS
66
1. In this project, for constraint of time and simplicity, we have adopted the technique of
image addition for reconstruction of the image. The t shares of the image of the person are
added to get the desired image and minutiae extracted. This could as well be enhanced to
pulling out any valid sub set of n shares such that the t-1 shares available in the data base and
the one share from ID card of the person are superimposed to create the original image itself.
2.We have created only a sample data base for purpose of this project. The practical aspects
of implementation of this project to a large establishment for online authentication purpose
will have to be worked out.
12. CONCLUSION
67
In this project, we have made an attempt to devise a system of online fingerprint
authentication system using the principles of Threshold Visual Cryptography techniques.
Since this is a pioneer attempt, within the limitation of time and resource, we have devised
the system. The system definitely enhances the quality of authentication and also reduces the
chances of hacking. The aspects of this system could be further enhanced to higher
applications so that many more applications could be developed using the Threshold visual
cryptography techniques.
13.REFERENCES
68
[1] “Fingerprint based authentication application using visual cryptography methods (Improved ID card)” by Mr. Y.V. Subba Rao, Ms. Yulia SukonkinaDepartment of Computer and Information Sciences, University of Hyderabad, Gachibowli, Hyderabad, India
[2] “Contrast Optimal Threshold Visual Cryptography Schemes” by Mr.Carlo Blundo, University Salerno Baronissi(SA) Italy & others – April24, 1998
[3]”Secret sharing,Threshold Cryptography,MPC” – Lecture Notes 9 by Mr.Helger Nipmaa, Helsinki University of Technology – 24-03-2004
[4]”Latent Palmprint matching” by Mr.Anil K.Jain and Mr.Jianjiang Feng, Michigan State University, USA
[5]”Fingerprint Mosaicking” by Mr.A.K.Jain and Mr.A.Ross in proc. International Conference on Acoustic Speech and Signal Processing, Vol.4, May 2002 pp 4064-4067
[6]”Threshold schmes in Visual Secret Sharing” by Mr.Siddarth Kandoi & Sumit Sourab, IIT Kanpur – July 2008
[7]”Fingerprint Image enhancement and Minutiae Extraction” by Mr.Raymond Thai, University of Western Australia – 2003
[8]”A short survey on Visual Cryptography Schemes” by Jim CAI, 2004
[9] “Fingerprint Recognition” – paper submitted by Neeta Murmu at NIT Rourkela, Orissa.
WEBSITES REFERENCE
[10]http://fourier.eng.hmc.edu/e161/lectures/dct/node2.html
[11]http://www.springerlink.com/content/q1k6h202266430w2/
[12]http://www.sciencedirect.com/science?_ob=ArticleURL
69