Sei sulla pagina 1di 8


The use of Biometrics in encryption is an expanding horizon that demonstrates potential as a template for key derivation. Asides from a handful of research-oriented projects, there has been limited commercial application. This is because biometrics systems are hindered by an inherent degree of noise. This contrasts the congruence needed for cryptography. The goal of this project is to develop a cryptographic system that defeats noise associated with biometric measurements. Specifically, the system should be sufficiently consistent in producing templates for key derivation. For this implementation, a biometrics system producing pairs of integer coordinates in the form (x,y) was used in conjunction with the AES cipher in Galois\Counter Mode (GCM) mode. The biometrics system produced 66 integer pairs, which were then hashed in units of 24 bits, and collectively XORd to produce a cryptographic key of 128 bits. The IV was produced by seeding a CSPRNG with the concatenation of the 66 (x,y) pairs, then taking the first 128 bits of the output. Then the AES cipher was run in GCM mode to produce the ciphertext and authentication tag. To combat the problem of incongruent templates, the system was implemented in a loop structure, with the authentication tag verified on each iteration. The file would then be decrypted if the proportion of successful authentications were over a user-defined threshold. Rejection was based on the failure for p to reach the defined threshold. This approach was limitedly successful. Although the method used was provable in its consistency, the system proved far too slow for practical usage. Future research topics feature optimization.

Key Derivation
SHA-256 AES(x,y)

(x1,y1) (x2,y2) (x3,y3)

(x1(SHA256),y1(SHA256)) (x2(SHA256),y2(SHA256)) (x3(SHA256),y3(SHA256))


Encryption process
K = , GF(2128 )

= (1 1 2 )
Msg M=

(xk1,yk2) (xk2,yk2) (xk3,yk3)

= (, , )

The use of biometrics in cryptographic applications is an emerging field of research. Using biometric data in the place of bulky crypto keys has its inherent advantages, namely in portability. Despite this advantage, applications combining biometric tools with encryption schemes are rare, and no standards exist as of yet to coordinate this effort. The few implementations that do exist are either entirely research oriented with no intent of distributed use, or gimmicky OEM software functions bundled with commercial software. The goal of this project was to effectively integrate these two techniques under a single BioEncrypt function. A common issue is the tendency for biometric systems to produce inconsistent outputs. The system should also have a counter against this inconsistency to produce congruent templates for each use by a single individual.

Design Goals
The system should be Chosen-Plaintext Attack (CPA) secure The system should be secure against tampering The system should be able to normalize incongruent biometric templates The biometric functions of the system should not affect the provable security theorems of the cryptographic primitives

Developing Environment
The system was coded entirely in the Java language using the Eclipse IDE in Windows 7 Home Premium. All of the cryptographic primitive function implementations used were from the BouncyCastle crypto package, and biometric functions provided by the Luxand FaceSDK. Testing was conducted on a Lenovo Ideapad Y480 laptop, with a Intel Core i73610M processor and 8GB RAM.

On a technical level, each of the design goals were met by the system. The AES cipher in GCM mode gave the CPA-security and security against tampering. The key and IV derivation function protected the system from deterministic properties associated with biometric processes. The iterative design of the system normalized the data for cryptographic usage. However, in application the system proved far too slow and unreliable for practical use. Inefficient program design gave the key derivation function a running time of roughly 4 seconds per key generated, and the biometric extraction process an additional roughly 15 seconds to generate each template. The combined running time of each iteration summed to nearly 20 seconds, and a basic definition of 20 iterations required over 6 minutes in total running time. Not only is this excessively long, the user must constantly maintain a fixed posture for the extraction of biometric templates. After user authentication, the decryption function had an efficiency of close to 1 MB per second. Although this produced running times somewhat reasonable for smaller files such as documents, any mildly large filesize results in unreasonably long encryption/decryption times. It should then be noted that these speeds were produced on relatively highpowered, modern hardware. Older systems may experience even slower speeds. Future research topics feature optimization of running-time of the system.