---
kind: concept
slug: biometric-template-protection
title: Biometric template protection
summary: >-
  How to measure whether protected biometric templates of one person, enrolled in two services with different keys, can be linked. Gives a score-wise D(s) and a system-wide D_sys in [0, 1] from mated and non-mated scores. Author-reported D_sys: 0 for iris XOR and signature HE, 0.07 for face Bloom filters, 0.92 for fingervein block re-mapping. Measurement only.
tags: [biometrics, privacy, evaluation]
papers: ["2311.04633"]
related: [homomorphic-encryption]
status: draft
updated_at: 2026-11-06
---

## Overview

A stored biometric template (iris, face, fingerprint, signature) should be
protected so that it cannot be turned back into the biometric and cannot be
linked to another template of the same person enrolled elsewhere with a
different key [arxiv:2311.04633 §1]. The standard covering this asks for
unlinkability but gives no quantitative way to measure it [arxiv:2311.04633 §1].
Earlier analyses were binary curve comparisons, assumed uniform data, or covered
one scheme type [arxiv:2311.04633 §2].

The core idea of the measure: given comparison scores for mated pairs (same
person, different keys) and non-mated pairs (different people, different keys),
turn the ratio of their densities into a per-score value, then average it over
the mated distribution [arxiv:2311.04633 §3] [arxiv:2311.04633 §4]. The shared
invariant is that a value of 0 means no score favours "same person" and a value
of 1 means the mated and non-mated distributions do not overlap
[arxiv:2311.04633 §4.2].

Card: [General Framework to Evaluate Unlinkability in Biometric Template Protection Systems](/papers/2311.04633).

## Variants

The paper does not propose a protection scheme. It measures four schemes, each
with one linkage function, and the variants below are those measured
[arxiv:2311.04633 §6.1]. The same card covers all of them.

### Iris XOR with random strings

Iris codes from Log-Gabor features, combined with random strings by XOR, scored
with the paper's PIC score [arxiv:2311.04633 §6.1]. Reported D_sys = 0, because
the distributions fully overlap [arxiv:2311.04633 §6.2] [arxiv:2311.04633 fig. 4].
Card: [General Framework to Evaluate Unlinkability in Biometric Template Protection Systems](/papers/2311.04633).

### Signature with homomorphic encryption

On-line signature global features (40 of 100) protected with homomorphic
encryption, compared by Euclidean distance [arxiv:2311.04633 §6.1]. Reported
D_sys = 0 under the PIC score [arxiv:2311.04633 §6.2]. The encryption parameters
are not stated in the paper [arxiv:2311.04633 §6.1].
Card: [General Framework to Evaluate Unlinkability in Biometric Template Protection Systems](/papers/2311.04633).

### Face with Bloom filters

LGBPHS face features protected by a Bloom filter. Three linkage functions are
reported: the PIC score gives D_sys = 0.07 [arxiv:2311.04633 §6.2]. Reconstruct
then Hamming distance gives 0.25. Hamming weight difference gives 0.07, and
permutation with XOR gives 0.06 [arxiv:2311.04633 §6.3] [arxiv:2311.04633 fig. 5].
The maximum over these functions is 0.25 [arxiv:2311.04633 §6.3]. Bloom filter
size and hashing are not stated [arxiv:2311.04633 §6.1].
Card: [General Framework to Evaluate Unlinkability in Biometric Template Protection Systems](/papers/2311.04633).

### Fingervein with block re-mapping

Maximum-curvature vein extraction, block re-mapping, and rotated
cross-correlation on the UTFVP data (60 subjects, 2 sessions) [arxiv:2311.04633 §6.1].
Reported D_sys = 0.92 [arxiv:2311.04633 §6.5]. Block size is not stated
[arxiv:2311.04633 §6.1].
Card: [General Framework to Evaluate Unlinkability in Biometric Template Protection Systems](/papers/2311.04633).

## When to use which

The paper's evaluation protocol is one fixed setting. Choose the parts that vary
by the constraints you have.

| Situation | Use | Why |
|---|---|---|
| You need one number to compare schemes | D_sys, with K > 5 keys, plus the D(s) plot | The paper gives one global value in [0, 1] and recommends more than five keys [arxiv:2311.04633 §4.2] [arxiv:2311.04633 §5] |
| Prior probabilities are unknown | omega = 1 | The paper calls this the worst case for unlinkability [arxiv:2311.04633 §4.1] [arxiv:2311.04633 §5] |
| Priors are known, N subjects in the second database | omega = 1/(N − 1) (our reading of the stated priors) | The paper gives p(H_m) = 1/N and p(H_nm) = (N − 1)/N [arxiv:2311.04633 §4.1]. It does not state the ratio explicitly |
| An attacker can run several linkage functions | Evaluate each, report the maximum | The paper reports the maximum over functions [arxiv:2311.04633 §5] [arxiv:2311.04633 §6.3] |
| Scores are discrete, such as a count of matching bits | Map them to a continuous distance first | The method needs continuous, normalisable scores. The paper does not say how to map them [arxiv:2311.04633 §5] |
| Only binary accept curves (DET or ROC) are available | Do not rely on them alone for unlinkability | The paper reports the fingervein case, where DET analyses call the system unlinkable and this measure gives 0.92 [arxiv:2311.04633 §6.5]. This is the authors' reading of those analyses |
| You need a claim that a scheme is unlinkable | Report D_sys = 0 only with the attacks tested | D_sys = 0 is measured for the functions tried, and says nothing about other attacks [arxiv:2311.04633 §5] [arxiv:2311.04633 §6.2] |

## Implementation sketch

The steps follow the paper's evaluation protocol [arxiv:2311.04633 §5]. The
formulas are from [arxiv:2311.04633 §4]. Write your own estimator for the
densities. The paper does not fix a bin count or bandwidth.

```pseudocode
# Inputs: mated scores (different keys, same person),
#         non-mated scores (different people, different keys), omega
# Estimate p(s | H_m) and p(s | H_nm) on one shared score grid [§5]
# Likelihood ratio  LR(s) = p(s | H_m) / p(s | H_nm)  [eq. 4]
# Prior-scaled odds  x(s) = omega * LR(s)  [eq. 6]
# Local measure: D(s) = 0 if x <= 1, else 2x / (1 + x) - 1  [eq. 13]
# If p(s | H_nm) is zero, the limit is D(s) = 1  [eq. 13] [§6.3]
# Global measure: D_sys = integral of p(s | H_m) * D(s) ds, over p(H_m)
#                                                              [eqs. 16-18]
```

Notes on the sketch:

- Use mated pairs enrolled with different keys. The paper's non-mated pairing
  is one sample against the first sample of other subjects. Report that choice
  [arxiv:2311.04633 §5] [arxiv:2311.04633 §6.1].
- Empty tails in the non-mated distribution set D(s) = 1 by rule. With finite
  samples, this can come from sampling alone, not only from true
  unlinkability [arxiv:2311.04633 §6.3].
- Scores below a certain value can favour mated pairs and still give a small
  D_sys, because they carry little probability mass. The paper's face example
  has such scores with p(s | H_m) < 0.005 [arxiv:2311.04633 §6.2].

## Contradictions

- **Fingervein.** DET-based analyses report that the system is unlinkable, with
  EER rising from 1.91 % to 4.48 %. This measure gives D_sys = 0.92
  [arxiv:2311.04633 §6.5] [arxiv:2311.04633 fig. 7]. The paper does not resolve
  the disagreement, and only the authors' own readings of the earlier analyses
  are given.
- **Face, Hamming weight difference.** The table-level result is 0.07, but the
  text says the value rises to 0.08 [arxiv:2311.04633 §6.3] [arxiv:2311.04633 fig. 5].
  Both are reported; the source of the difference is not stated.

## Papers

- [General Framework to Evaluate Unlinkability in Biometric Template Protection Systems](/papers/2311.04633): defines the score-wise D(s) and system-wide D_sys unlinkability measures and applies them to iris XOR, signature HE, face Bloom filters and fingervein block re-mapping.
