Biometry and Cryptography

Biometrics is always "fuzzy comparison". If I have a password based authentication system, the password is either correct or not. If the PIN/password is difficult enough, one can encrypt data with it. If the authentication system stores a hash of the password, then the device will not "know" the correct password to decrypt my secrets but can verify that the user knows it. Biometrics on the other hand always compares to a reference pattern or model stored somewhere. Most likely biometric authentication systems will make some comparison and then allow or deny access. The reference is in the clear, because (to the best of my knowledge) there is no hash-function out there that will hash your fuzzy fingerprint to a constant value is it accepts and to something random if it rejects. Also note that gummy fingers seem to be incredibly easy make. Also note that biometric measurements are no secrets; you leave your fingerprints on everything you touch. It is also possible to restore the biometric information, given an unlimited number of trials as well as the fitness-score that some systems output.

Given so much things that can go wrong, how could biometry be used to improve security? I became interested in finding a method to transform a fuzzy input signal, like a fingerprint scan, into a constant value (suitable for encryption), if the input fits a certain characteristic (i.e. it was from the right person), and some random output, if it did not have that characteristic. That would solve the problem and allow to encrypt data with your biometric measurements. It also seems to require the combination of machine learning techniques (the algorithms are made to deal with fuzzy inputs) and cryptography.

Existing Solution

I found a few existing solutions out there.

A company called Bioscrypt claims to have solved the problem. They call it Biometric Encryption. I have no idea how good it is.

An interesting paper that solves the problem as well is here. They propose a system that allows to retrieve a secret key, if the right inputs are given (i.e. correct fingerprint). The system works based on error correcting codes and a nearest neighbor classifier. This should actualy generalize nicely to arbitrary biometric measurements as long as you can map some noise-resistant features (for fingerprints it would be minutiaes) to something that nearest neighbor with the euclidean metric can deal with.

Another interesting paper (with code) proposes techniques that apply not just to biometric information not reproducible precisely and not distributed uniformly. In Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data two new primitives are introduced: a fuzzy extractor to reliably extracts nearly uniform randomness from input. This extraction is error-tolerant in the sense that will be the same even if the input changes, as long as it remains reasonably close to the original. A secure sketch produces public information about its input wihtout revealing the input, allowing exact recovery of said input if a value is close enough. These techniques can be used to reliably reproduce error-prone biometric inputs without incurring the security risk inherent in storing the full biometric in a database.

Related Work

Back to the top   [Sitemap]

This page is Copyright © Markus Breitenbach 2010. All rights reserved. Any opinions expressed here are my own and might not reflect my employers opinion.
[This page: http://markus-breitenbach.com/biometrics_encryption.php was last modified: October 06 2024 09:47:17.]   [Home].   Email me