# How is biometric data used to generate encryption keys?

I understand that biometric data such as fingerprints and face patterns are matched for recognition with a certain degree of tolerance to account for differences given by empiric factors (positioning, aging, dirt, different measurement tool, etc.).

Given that's the case, how are biometric characteristics used to generate encryption keys to encrypt and decrypt data?

I.e. If you encrypt data using a particular reading of a biometric characteristic, wouldn't the small differences in future readings prevent you from successfully decrypting the data?

• It was a wide-scale belief that any small change would prevent a signature to verify, still "difference is small enough" could be considered an NP instance provable in zero knowledge or converted into a signature. For encryption, we have a well-established research in error correction waiting for someone to do the homework. Apr 29, 2018 at 10:05

We do not know how to extract a cryptographically secure key $K\in\{0,1\}^k$ for traditional symmetric encryption from biometric data $b$ such as fingerprints, by way of a function $F(b)\mapsto K$. As noted in the question, problem is that when the biometric data is re-acquired, the naturally occurring $b'$ will be slightly different from $b$ and we'll have $F(b)\ne F(b')$ unacceptably often, for about uniform $K$ of cryptographic interest (e.g. $k\ge80$ bits). That's including if how $F$ operates (e.g. minutiae extraction) is carefully tailored to the characteristics of the biometric data [#].

Allowing $F(b')$ used for decryption to generate several guesses of $K$ (with the right one sorted out thanks to authenticated encryption) does not seem enough to get a workable system.

What does work is extracting a secure sketch as $S(b)\mapsto s$ so that

• for naturally occurring variations $b'$ of $b$, with high likelihood, the same key $K\in\{0,1\}^k$ can be extracted from $(b,s)$ and $(b',s)$ (and some public nonce $n$ if we want multiple $K$), using a function $F(b,s)$ or $F(b,s,n)$
• $s$ can be published without compromising the confidentiality of $K$ or/and $b$; including if $s'=S(b')$ gets published for several naturally occurring variations $b'$ of $b$.

A search for articles on secure sketch returns a lot of bibliography.

However the interest of biometric data as encryption key is dubious: biometric data, in particular fingerprint, is hard to keep secret, which is the primary attribute desired for an encryption key. Using fingerprints as a means of identification makes much more sense.

[#] Note: all claims to the contrary that I met fall into at least one of these pitfalls:

• the error rate is unacceptable, like for >5% of a population, an attempt to obtain the same $K$ a day after fails, even will allowance of two retries;
• some ancillary data (similar to $s$ above) is required along $K$ or stored in the scanning device (thus in the later case the number of users is limited, replacement of a failed single scanning device cause disruption, and multiple scanning devices must communicate in order to produce the same $K$);
• $K$ has very low entropy (say <40 bits), making it vulnerable to better-than-brute-force key search, and even conceivable that two users accidentally end up with the same $K$ if nothing but their biometrics is an input;
• some part of the method must remain secret, and is how the previous issue is masked.
• And of course people share fingerprints. There are documented cases in the legal press where this has happened. And the fingerprint birthday paradox too. Apr 27, 2018 at 20:50

how are biometric characteristics used to generate encryption keys

I don't think any biometrical characteristics are used to generate any encryption keys.

One of the most valuable properties of encryption key is high entropy (randomness, uniqueness) which imho cannot be directly achieved by biometric readings

, wouldn't the small differences in future readings prevent you from successfully decrypting the data

yes they would

I could only imagine the biometric data are used to authenticate a user (as you already stated - with certain degree of confidence and tolerance) and the user identity could have assigned encryption keys - e. g. public key / certificate.

if you've read / refer to an article about the encryption using biometric data, please refer, it could be interesting

• Search for "Minutiae Hash" in your favorite search engine. There have certainly been many (academic) attempts to create unique values from biometric features. If it is a good idea to use that as encryption key is of course a different matter. Apr 26, 2018 at 11:52
• @maartenbodewes I know about biometric hashes, but indeed using them as a seed for encryption key may be... risky without proof that it's not Apr 26, 2018 at 12:32
• @Maarten Bodewes: Despite some reports (few credible), I very much doubt that any "Minutiae Hash" is actually usable as a deterministic function producing a traditional encryption key (for e.g. AES-GCM) from the output of a fingerprint sensor, independently of if this was a good idea (it is not). That's including with the leeway in the second paragraph of my answer.
– fgrieu
Apr 27, 2018 at 11:38
• As I've indicated in my comment, I doubt that it would be a good idea to use the biometrics as base of a key derivation. It's just that retrieving a unique value from biometrics is certainly not impossible, so blindly stating that changes in the readout would block the creation of a key is not enough. But yes, just generating a unique value from a biometric is certainly not enough in itself to create a key; there are many reasons why doing so is not a good idea. Apr 27, 2018 at 12:06
• @gusto2 I was thinking of an application such as logging into an encrypted user account on a computer (e.g. Windows Hello). The implication of what you're saying is that the account is encrypted but the key is stored right next to the data and used upon biometric identification, which in turn means that the data is not really protected from physical theft. Is that so? May 2, 2018 at 10:44

The challenge of biometric fingerptinting/hash remains unsolved to this day.

We are pretty good, and improving at the matching problem, matching faces/fingerprints/iris scans etc. Match a new scan to a database of old ones. It's not perfect, especially when the database of possible matches is large but it's not bad at all. This makes biometrics a reasonable secondary authentication in addition to card/key or passcode. Especially in situations where the scanning is supervised such as building access making it harder to manipulate the scan with photos etc.

The key challenge in biometrics is extracting a high entropy stable hash/fingerprint. We want something which will produce the exact same bit results when given different scans of the same person and yet preserve sufficient entropy to discern many different people apart

We can do low entropy, just extract a few very prominent discrete featutes, for instance categorize fingerprints as right loop/left loop/tent/... but we don't have enough of these to get good results in operational setting. This is an area of active research, there are some promising directions but not solved yet.

• "Extracting" is not the only option, and probably not the best design idea. Apr 29, 2018 at 10:32