Summary
deidproof implements distinct l-diversity (the count of distinct sensitive
values per equivalence class). It does not offer entropy l-diversity or
recursive (c,l)-diversity, nor t-closeness. Distinct l-diversity is known
to be vulnerable to a skewness attack: a class can have l distinct values yet
be 99% one value, still leaking the sensitive attribute in practice.
Why it matters
A steward who gates only on distinct-l can ship a class that is technically
"2-diverse" but effectively homogeneous (e.g. 49 Negative + 1 Positive).
The README/docs should either (a) state clearly that only distinct l-diversity
is computed and what it does/does not defend against, or (b) add an entropy-l
and/or t-closeness metric behind a flag.
Suggested direction
- Short term: document the limitation in
docs/ADVANCED.md and the l-diversity
docstring.
- Longer term: add
--l-metric {distinct,entropy} to the CLI and a
l_diversity(..., metric=...) parameter, computing Shannon entropy per class
and reporting min entropy. Optionally add a t-closeness check comparing
each class's sensitive-value distribution to the global distribution.
This is a genuine methodological gap, not a bug in the current (correct) distinct
implementation.
Summary
deidproof implements distinct l-diversity (the count of distinct sensitive
values per equivalence class). It does not offer entropy l-diversity or
recursive (c,l)-diversity, nor t-closeness. Distinct l-diversity is known
to be vulnerable to a skewness attack: a class can have l distinct values yet
be 99% one value, still leaking the sensitive attribute in practice.
Why it matters
A steward who gates only on distinct-l can ship a class that is technically
"2-diverse" but effectively homogeneous (e.g. 49
Negative+ 1Positive).The README/
docsshould either (a) state clearly that only distinct l-diversityis computed and what it does/does not defend against, or (b) add an entropy-l
and/or t-closeness metric behind a flag.
Suggested direction
docs/ADVANCED.mdand the l-diversitydocstring.
--l-metric {distinct,entropy}to the CLI and al_diversity(..., metric=...)parameter, computing Shannon entropy per classand reporting
min entropy. Optionally add at-closenesscheck comparingeach class's sensitive-value distribution to the global distribution.
This is a genuine methodological gap, not a bug in the current (correct) distinct
implementation.