This repository was archived by the owner on Jun 18, 2026. It is now read-only.
Commit 01b91ce
committed
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
- Gvisual/src
- gvisual
- test/gvisual
0 commit comments