Vous êtes sur la page 1sur 67

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.

TABLE OF CONTENTS

CHAPTER TITLE NO ABSTRACT

PAGE NO

1.

INTRODUCTION

2. 3. 4. 5.

LITERATURE SURVEY MATLAB CRYPTOGRAPHY SYSTEM ANALYSIS 5.1 EXISTING SYSTEM 5.2 DISADVANTAGES SYSTEM 5.3 PROPOSED SYSTEM

5 7 12 14 14 EXISTING 17 17

OF

6.

PROBLEM FORMULATION & SYSTEM DESIGN 6.1 OBJECTIVE 6.2 DATA FLOW IN THE PROPOSED SYSTEM 6.3 SYSTEM REQUIREMENTS 6.4 MODULE DESCRIPTION 6.5 MODULE DESIGN

18 19 19 20 21 29

7.

SYSTEM IMPLEMENTATION 7.1 PROGRAMMING LANGUAGE 7.2 INPUT & OUTPUT DATA SETS

49 50 50

8. 9.

SYSTEM TESTING SOURCE CODE

51 53

10.

SAMPLE SCREENS

55

11.

FUTURE ENHANCEMENTS

65

12.

CONCLUSION

66

13.

REFERENCES

67

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. superimposed to get the original image for authentication. The shares will be

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.

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 is needed. Unless more than a certain number of share images are obtained, it is impossible to disclose the secret image. This feature enables visual threshold schemes to be used conveniently in 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 in such a way that:

pieces

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 required to reconstruct the secret. then all participants are

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.

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.

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 >> x = [3*4, pi/2] x = 12.0000 1.5708 >> y = 3*sin(x) y = -1.6097 3.0000

116

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 (1N or N1) matrix, commonly referred to as an array in other programming languages. A matrix generally refers to a 2-dimensional array, i.e. an mn 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. 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 9

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 poweran example is the one-time padbut 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 whether requiring suspected criminals to provide their encryption keys to law

12

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

Thumb impression of the person to be authenticated Applicatio n Client

Data Server

Scanner

PROCESS 1 PROCESS 3 Application Server

PROCESS 2 PROCESS 4

ID card with share of image

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. matching, person is authenticated. If found

15

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

PROPOSED SYSTEM

TVC

N shares t1 shares

Data Server Thumb impression of the person to be shares authenticated Application Client

-1

Scanner

PROCESS 1 PROCESS 3 Application Server

PROCESS 2

ID card with One share of image

PROCESS 4

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

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. Shamirs 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

ID CARD

Algorithm to Extract T-1 shares from data base

Algorithm to superimpose T shares and retrieve image

input
Thumb Impression Algorithm for Minutiae Extraction Algorithm for Minutiae Extraction

output

Authenticatio n Process

Algorithm for comparing the Minutiae

18

6.3 SYSTEM REQUIREMENTS

6.3.1 HARDWARE REQUIREMENTS


Processor Type Speed Ram Hard disk : Pentium -IV

: 2.4GHZ : 512 MB RAM : 20 GB HD

6.3.2 SOFTWARE REQUIREMENTS

Operating System Programming Package

: Windows xp : 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 (n1,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 yi_new i_new


=TM *

(xi - x) (yi - y) (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

6.5 MODULE DESIGN

USECASE FOR MINUTIAE EXTRACTION (MODULE 1)

Fingerprint

Storing image for a new user


System Manager

user

Minutiae extraction for regular user

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
the block direction for all the pixels in each block.

approximation of

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
background block.

(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

29

INPUT:

1. FINGER PRINT IMAGE:

30

OUTPUT: 1. MINUTIAE POINTS:

31

USECASE FOR DIVISION OF N - SHARES (MODULE 2)

Stored image of a new user

Image processing

System Manager

Administrator Creation of N shares of the processed image & storing

ALGORITHM Step-1 Step- 2 Step-3. Assign the pixel values of Share 1U randomly. Assign the pixel value of Share 2U. Reverse Share 2U,that is Temp[x][y]= Share 2U[20-x][y]. Step-4. Step-5. Assign the pixel value of Share 2L. Assign the pixel value of Share 2L.

32

INPUT:

33

OUTPUT: One of the shares of n-shares

34

USECASE FOR COMPRESSING THE SHARE FOR ID CARD (MODULE 3)

N shares of the new user

One share from the Nshares System Manager

user

Compression technique

Compressed image in the ID card

35

FORWARD DCT ALGORITHM

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 ). However, note that as are

variables (both real and imaginary parts of 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
complexity.

from

by inverse DFT also using FFT in

Step 3: Obtain

from

by

INPUT:

SHARE FOR COMPRESSION

37

OUTPUT:

COMPRESSED SHARE

38

USECASE FOR EXTRACTION OF T-SHARES FROM N-SHARES (MODULE 4)

N-1shares of the user

Extraction of t-shares

System Manager

Administrator Storing of all t-shares

39

ALGORITHM:

Step 1: N-shares of the image are stored separate in the database 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

40

USECASE FOR SUPERIMPOSING OF T-SHARES (MODULE 5)

Share of the user from ID card Stored t-shares in the database User Superimposing of both t-shares and ID card share Administrator

41

ALGORITHM: Step 1: Select pixel Pi share si and the corresponding pixel Pj from share sj.

Step 2: Let P denote the corresponding pixel in the secret image I. When superimposing pi and pj, number of black sub-pixels in the result is given by wt (Pi OR Pj).

the

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 1i<jn. 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.

42

INPUT:

1.

COMPRESSED IMAGE

2.

ALL T-SHARES

43

OUTPUT: SUPERIMPOSED IMAGE

44

USECASE FOR MINUTIAE MATCHING (MODULE 6)

Detection of minutiae points from superimposed share New fingerprint

System Manager

Detection of minutiae points from the new fingerprint

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. 45

Step 5: The two tables containing the minutiae are matched using bruteforce method and the number of matching is computed

INPUT:
1. Minutiae detection from the superimposed image

46

2. Finger print

47

OUTPUT:

AUTHENTICATED PERSONS FINGERPRINT

48

7.SYSTEM IMPLEMENTATION

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 (1N or N1) 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.

49

MATLAB provides a simple way to define simple arrays using the syntax: init:increment:terminator

7.2 INPUT AND OUTPUT DATA SET

INPUT
FINGERPRINT ID CARD WITH FINGERPRINT SHARE

OUTPUT
AUTHENTICATION REJECTION

50

8.SYSTEM TESTING
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.

51

9.SOURCE CODE
warning off; clear all; close all; clc; warning off; clear all; close all; clc;

% Registration Phase X=input('Enter the User Name\n','s');%Enter a,b,c,... Y=input('Enter the Password\n','s');%Enter tif D='.'; 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 ALGORITHM InIm=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 Shares N=input('Enter N number of Shares ...'); % Store all N Shares to the DataBase for i=1:N DataBase_{i} = FingerPrintShr(BW); 52

DataBase{i}= imcompr(DataBase_{i},200);%CompS1=imcompr(S1,200); figure(i),imshow(DataBase{i}); end z=IM(1:150,1:150); disp('Enter the Part of the Version of the ID card Fingerprint Image ...'); low = 1; high = N; % Random selection of Share Selection x = 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 Card ID=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 53

[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'); 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);

54

10. SAMPLE SCREENS

1.INPUT FINGERPRINT IMAGE

55

2.ENHANCED FINGERPRINT IMAGE

56

3.HISTOGRAM OF ORIGINAL IMAGE

4.HISTOGRAM OF ENHANCED IMAGE

57

5.RIDGE MAP

6.MINUTIAE POINTS FROM FINGERPRINT

58

7. COMMAND SCREEN FOR INPUT

59

8. IMAGE OF A SHARE

9. SECRET IMAGE

60

10. RANDOM SHARE FOR ID CARD

61

11. SUPERIMPOSED IMAGE

12. ROI IN SUPERIMPOSED IMAGE

62

13. MINUTIAE DETECTION

14. MATCH STAGE

63

15. AUTHENTICATION

64

11. FUTURE ENHANCEMENTS

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.

65

12. CONCLUSION
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.

66

13.REFERENCES
[1] Fingerprint based authentication application using visual cryptography methods (Improved ID card) by Mr. Y.V. Subba Rao, Ms. Yulia Sukonkina Department of Computer and Information Sciences, University of Hyderabad, Gachibowli, Hyderabad, India [2] Contrast Optimal Threshold Visual Cryptography Schemes by University Salerno Baronissi(SA) Italy & others April24, 1998 Mr.Carlo Blundo,

[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

67

Vous aimerez peut-être aussi