Generation Of Cryptographic Key And Fuzzy Vault Using Iris Textures Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Crypto-biometric is an emerging architecture where cryptography and biometrics are merged to achieve high security. This paper explores the realization of cryptographic construction called fuzzy vault through iris biometric key. The proposed algorithm aims at generating a secret encryption key from iris textures and data units for locking and unlocking the vault. The algorithm has two phases: The first to extract binary key from iris textures, and the second to generate fuzzy vault by using Lagrange interpolating polynomial projections.

Current cryptographic algorithms require their keys to be very long and random for higher security, that is, 128 bits for Advanced Encryption Standards [1]. These keys are stored in smart cards and can be used during encryption/decryption procedures by using proper authentication. There are two major problems with these keys: One is their randomness. The randomness provided by current mathematical algorithms is not sufficient to support the users for commercial applications. The second is authentication. Most of the authentication mechanisms use passwords to release the correct decrypting key, but these mechanisms are unable to provide non-repudiation. Such limitations can be overcome by using biometric authentication.

Positive biometric matching extracts secret key from the biometric templates. The performance of these algorithms depends on the correspondence between query minutiae sets and template minutiae sets. This correspondence is more in iris textures when compared with that of other biometric templates such as fingerprints and others. To improve the degree of correspondence, morphological operations [2] can be used to extract the skeletons from iris pseudo structures, with unique paths among the end points and nodes.

Biometric based random key is generated and combined with biometric authentication mechanism called fuzzy vault as proposed by Jules and Sudan [3]. The advantages of cryptography and iris based authentication can be utilized in such biometric systems.


The scheme proposed by Juels and Sudan [3] can tolerate differences between locking and unlocking the vault. This fuzziness comes from the variability of biometric data. Even though the same biometric entity is analyzed during different acquisitions, the extracted biometric data will vary due to acquisition characteristics, noise etc. If the keys are not exactly the same, the decryption operation will produce useless random data. Fuzzy vault scheme requires alignment of biometric data at the time of enrolment with that of verification. This is a very difficult problem in case of other biometric templates such as fingerprint when compared to that of iris structures.

Using multiple minutiae fixed location sets per iris, they first find the nodes of the pseudo structures, and use these as the elements of the set A. As many chaff points as possible are added to form final point set. There is no need to worry about the alignment of the iris structures since they are acquired from fixed locations in the iris that is from origin of the pupil traveling in clock wise direction.

The algorithms are implemented using Matlab for its ease in image manipulation and large predefined functions.


The proposed method involves mainly two phases - one is feature extraction and the other is polynomial projection to generate vault. A random key combined with lock/unlock data both of 128 bit are extracted from iris textures and are projected on to a polynomial with cyclic redundancy code for error checking. To these projections, chaff points are added and scrambled to obtain vault.


We use the iris image data base from CASIA Iris image Database [CAS03a] and MMU Iris Database [MMU04a]. CASIA Iris Image Data base contributes a total number of 756 iris image which were taken in two different time frames. Each of the iris images is 8-bit gray scale with resolution 320X280. MMU data base contributes a total number of 450 iris images which were captured by LG Iris Access®2200.


The eye image is acquired, converted to gray scale and its contrast is enhanced using histogram equalization [4]. Algorithm based on thresholding and morphological operators, is used to segment the eye image and to obtain region of interest. Initially the pupil boundary and limbic boundary were found to fix the iris area. Many algorithms are available today to fix these boundaries. But one of the easiest and simple algorithms is by using morphological operations. By using bit plane method, we can find the pupil boundary. The LSB bit plane is used to determine the pupillary boundary [9]. Similarly the limbic boundary can be obtained by calculating standard deviation windows in vertical and horizontal directions. The resulting standard deviation windows are thresholded in order to produce a binary image. A single row or column vector is obtained by eroding and dilating the windows. These vectors determine limbic boundary.

Further the iris image is normalized to a standard size of (87x360) using interpolation technique.

(a) (b)

Fig. 1 Iris a)after localization b)after normalization

5. Feature extraction

The feature extraction involves two stages - one to extract 128 bit secret code from iris texture and the other is to extract lock/unlock data from the same texture.

5.1 Extraction of Secret Code

The gray level value of I(x,y,h) for all pixels in the iris template is normalized as, I(x,y,h)=I(x,y,h) * L/H, Where the L is window size and H is the maximum gray level,[8].

The pixels within each row along the angular direction are positioned into an appropriate square with LXL window size. L may be of any size in binary sequence, 16, 32,….128 bits. If the size of each row is 16, then each row can be used to generate 16 bit words of 128 bit secret code.

5.2 Extraction of lock/unlock data

On the highlighted iris structures as a whole, the following sequences of operations are used to extract the pseudo structures. Close - by - reconstruction top-hat (fig2.2) opening (fig 2.3), area opening to remove structures in according to its size resulting image with structures disposed in layers (fig3.4) and thresholding is applied to obtain binary image (fig 2.5).

Fig. 2.1-2.6 Iris textures after Opening - Closing operations

Fig.3 Iris pseudo structures

The image is submitted to normalization that takes, as reference, an image containing pseudo structures (fig 3). For appropriate representation of structures, thinning is used so that every structure presents itself as an agglomerate of pixels.

To have a single path between nodes and end points, redundant pixels are removed using 3 x 3 masks run over them [5]. When the foreground and background pixels in mask exactly match with the pixels in the image, the pixel to be modified is the image pixel underneath the origin of mask


Black hole search method [8] is used to detect the center of pupil. The center of mass refers to the balance point (x, y) of the object where there is equal mass in all directions. Both the inner and outer boundaries can be taken as circles and center of pupil can be found by calculating its center of mass.

The steps of black hole search method are as follows:

Find the darkest point of image in global image analysis.

Determine a range of darkness designated as the threshold value (t) for identification of black holes.

Determine the number of black holes and their coordinates according to the predefined threshold. Calculate the center of mass of these black holes.

Ex and Ey denotes the x, y coordinates of center which satisfy I(x, y) <t.

Ex = {Σx=0 to w-1 Σy=0 to H-1 X }/WH

Ey = {Σx=0 to w-1 Σy=0 to H-1 Y }/WH

Where W and H are the sum of detected coordinates x,y and t is the threshold value.

The radius can be calculated from the

Given area (total number of black holes in the pupil, where radius =√area/∏.From the center of the pupil, the x, y coordinates of every node is found and used to form lock/unlock data as shown in fig .4



Fig. 4: Iris showing x|y coordinates

(a) (b) (c) (d)

Fig 5: Nodes and End Points

7. Encoding:

The x and y coordinates of nodes(8 bits each) are used as [x|y] to obtain 16 bit lock/unlock data unit u. Secret code is used to find the coefficients of the polynomial p. Secret code is of 128 bit size and 16 bit CRC for error check. A total of 144 bits are used to generate a polynomial of 9(144/16) coefficients with degree D=8. Hence

p(u) = c8u8 + c7u7 +…….+ c0 .

The 144 bit code is divided into non overlapping 16 bit segments and each segment is declared as a specific coefficient. Normally MSB bits are used to represent higher degree coefficients and LSB bits for lower degree coefficients. The same mapping is also used during decoding.

Genuine set G is found by projecting the polynomial p using N iris template features u1, u2, …… Thus G = { [u1, p (u1)], [u2, p(u2)],….}. Chaff set C is found by randomly assuming M points c1, c2, ….which do not overlap with u1, u2, ….. Another set of random points d1, d2, ….,are generated , with a constraint that pairs (cj,dj), j=1,2,…M do not fall onto the polynomial p(u).Chaff set C is then

C={( c1,d1), (c2,d2)….}.

Union of these two sets, G  C, and degree of polynomial D form vault V which is finally transmitted.

8. Decoding:

Let u*1, u*2, …. be the points from query features used for polynomial reconstruction. If u*i , i=1,2,…N is equal to values of vault V, then vi , i=1,2,…(M+N), the corresponding vault point is added to the list of points used. For decoding D degree polynomial, (D+1) unique projections are needed. Thus C(k,D+1) combinations are needed to construct a polynomial, where k<=N. After constructing the polynomial, the coefficients are mapped back to the decoded secret code. For checking errors the polynomial is divided with CRC primitive polynomial. A zero remainder means no errors. The first 128 bits in secret code leads to actual information If the query list overlaps with template list, then the information transmitted is correct.


Data Base: CASIA iris data base, i) Image type: Gray ii) Image Size of Database: 756 images iii) Class Information: The images are from 108 eyes of 80 subjects iv)Sensor: A digital optical sensor. Each image is of 320 x 280 pixel size and of 96 dpi resolution in both horizontal and vertical directions with a depth of 8 bits. The indices of nodes are converted to 8-bit range. Pre alignment of template and query data sets are not needed since both are acquired from a fixed position in iris and traveling in same direction, clockwise, for example.

The secret key is generated from the iris template









The CRC obtained using CRC16 primitive polynomial u16+ u15+ u2+1 is


The 144 bits are converted to polynomial p(u) as p(u)=1804u8+16384u7+52868u6+59549u5+14256u4+3167u3+40820u2+3160u1+10280

The indices of x and y coordinates of nodes are used for projections.

The co-ordinates of nodes in fig (5) are

fig-5(a) (13,0), (23,15),

fig-5(b) (12,18),(29,5),

fig-5(c ) (14,17),(20,18),

fig-5(d) (16,13)

Using these indices, genuine points are generated to which chaff points are added later to form vault. The ratio of chaff points and original points is taken as 10:1 so that the combinations are large in giving high security. During decoding 20 query points are selected on the average. Out of 100 iris templates, 82 are successful in unlocking the vault. Hence False Rejection Rate (FRR) of the system is 0.18 that is genuine acceptance ratio is 82% which is considerably higher than by other biometric templates.


Features used


Finger print



Iris texture



The vault has 220 points, hence there are a total of C(220,9) = 2.8 x 1015 combinations with 9 elements. Only C(20,9) = 167960 of these are used to open the vault. Therefore, it takes C(220,9)/C(20,9) = 1.67 x 1010 evaluations for an attacker to open the vault.

10. Conclusion

Fuzzy vault, constructed for iris templates, is superior to that of other biometric templates. When compared with other biometrics, iris provides stable structures irrespective of acquisition characteristics. But histogram processing is needed for contrast enhancement of iris after acquiring. Also pre alignment of templates is not necessary since nodes are always constant in iris texture. The time complexity and space complexity of algorithm are high due to long integers involved in genuine set calculation since the size of each template is 32 x 32. Also multiple combinations are to be verified. Quantizing the iris features to 8 x 8 level can minimize these complexities.