88
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

project ece

Embed Size (px)

DESCRIPTION

this project is used for security purpose

Citation preview

Page 1: project ece

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

Page 2: project ece

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

Page 3: project ece

8. SYSTEM TESTING 51

9. SOURCE CODE 53

10. SAMPLE SCREENS 55

11. FUTURE ENHANCEMENTS 65

12. CONCLUSION 66

13. REFERENCES 67

3

Page 4: project ece

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

Page 5: project ece

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

Page 6: project ece

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

Page 7: project ece

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

Page 8: project ece

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

Page 9: project ece

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

Page 10: project ece

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

Page 11: project ece

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

Page 12: project ece

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

Page 13: project ece

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

Page 14: project ece

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

Page 15: project ece

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

Page 16: project ece

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

Page 17: project ece

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

Page 18: project ece

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

Page 19: project ece

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

Page 20: project ece

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

Page 21: project ece

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

Page 22: project ece

Figure : Steps involved in fingerprint recognition algorithm

22

Page 23: project ece

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

Page 24: project ece

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

Page 25: project ece

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

Page 26: project ece

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

Page 27: project ece

27

Page 28: project ece

Fingerprint

Storing image for a new user

Minutiae extraction for regular useruserSystem

Manager

6.5 MODULE DESIGN

USECASE FOR MINUTIAE EXTRACTION (MODULE – 1)

28

Page 29: project ece

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

Page 30: project ece

INPUT:

1. FINGER PRINT IMAGE:

30

Page 31: project ece

OUTPUT:

1. MINUTIAE POINTS:

USECASE FOR DIVISION OF N - SHARES (MODULE – 2)

31

Page 32: project ece

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

Page 33: project ece

OUTPUT:

33

Page 34: project ece

One of the shares of n-shares

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

34

Page 35: project ece

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

Page 36: project ece

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

Page 37: project ece

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

Page 38: project ece

USECASE FOR EXTRACTION OF T-SHARES FROM N-SHARES

(MODULE – 4)

38

Page 39: project ece

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

Page 40: project ece

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

Page 41: project ece

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

Page 42: project ece

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

Page 43: project ece

1. COMPRESSED IMAGE

2. ALL T-SHARES

OUTPUT:

43

Page 44: project ece

SUPERIMPOSED IMAGE

USECASE FOR MINUTIAE MATCHING (MODULE – 6)

44

Page 45: project ece

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

Page 46: project ece

INPUT:1. Minutiae detection from the superimposed image

2. Finger print

46

Page 47: project ece

OUTPUT:

47

Page 48: project ece

AUTHENTICATED PERSON’S FINGERPRINT

7.SYSTEM

IMPLEMENTATION

48

Page 49: project ece

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

Page 50: project ece

7.2INPUT AND OUTPUT DATA SET

INPUT

FINGERPRINT

ID CARD WITH FINGERPRINT SHARE

OUTPUT

AUTHENTICATION

REJECTION

8.SYSTEM TESTING

50

Page 51: project ece

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

Page 52: project ece

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

Page 53: project ece

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

Page 54: project ece

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

Page 55: project ece

2.ENHANCED FINGERPRINT IMAGE

55

Page 56: project ece

3.HISTOGRAM OF ORIGINAL IMAGE

4.HISTOGRAM OF ENHANCED IMAGE

56

Page 57: project ece

5.RIDGE MAP

6.MINUTIAE POINTS FROM FINGERPRINT

57

Page 58: project ece

7. COMMAND SCREEN FOR INPUT

58

Page 59: project ece

8. IMAGE OF A SHARE

59

Page 60: project ece

9. SECRET IMAGE

60

Page 61: project ece

10. RANDOM SHARE FOR ID CARD

61

Page 62: project ece

11. SUPERIMPOSED IMAGE

62

Page 63: project ece

12. ROI IN SUPERIMPOSED IMAGE

63

Page 64: project ece

13. MINUTIAE DETECTION

14. MATCH STAGE

64

Page 65: project ece

15. AUTHENTICATION

65

Page 66: project ece

11. FUTURE ENHANCEMENTS

66

Page 67: project ece

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

Page 68: project ece

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

Page 69: project ece

[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