Skip to content
This repository was archived by the owner on Jun 18, 2026. It is now read-only.

Commit 01b91ce

Browse files
feat: GraphPrivacyExposureAuditor — agentic re-identification risk auditor
Adds an agentic privacy/exposure auditor that estimates how easy each vertex would be to re-identify in an anonymized graph release, then recommends concrete pre-publish actions. Per-vertex signals: degree-uniqueness, 1-/2-hop neighborhood-fingerprint uniqueness (textbook graph k-anonymity), local clustering outlier, betweenness percentile (Brandes), articulation-point flag, sensitive-node flag. Combined into a 0-100 exposureScore -> MINIMAL/LOW/MODERATE/HIGH/CRITICAL band -> SAFE/MONITOR/ANONYMIZE_RECOMMENDED/ANONYMIZE_REQUIRED/DO_NOT_PUBLISH verdict. Graph-wide summary surfaces kAnonymityDegree, kAnonymityFingerprint, per-band counts, mean exposure score, and an A-F grade. Ranked P0-P3 playbook covers DO_NOT_PUBLISH_RAW, ANONYMIZE_TOP_N_NODES, ADD_DEGREE_NOISE, REVIEW_ARTICULATION_POINTS, MERGE_UNIQUE_FINGERPRINTS, STRIP_SENSITIVE_NODES, and RELEASE_AS_IS. Risk appetite (CAUTIOUS/BALANCED/AGGRESSIVE) shifts band cutoffs and k thresholds. Deterministic; pure Java 8 + JUNG; never mutates input graph; no I/O. render()/toMarkdown()/toJson() formatters. 13 passing JUnit cases. Usage: new GraphPrivacyExposureAuditor(graph).withRiskAppetite(...).withSensitiveNodes(...).analyze();
1 parent 773135d commit 01b91ce

2 files changed

Lines changed: 1195 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)