pub struct DpEngine { /* private fields */ }Expand description
The DPE-RB differential privacy engine.
Manages Rényi composition tracking, chaos-modulated noise injection, and anomaly flagging for privacy budget breaches.
Implementations§
Source§impl DpEngine
impl DpEngine
pub fn new() -> Self
pub fn with_config(config: DpConfig) -> Self
Sourcepub fn apply_dp(
&mut self,
query: PrivacyQuery,
chaos_perturbation: f64,
) -> Result<DpNoiseFrame, PrivacyError>
pub fn apply_dp( &mut self, query: PrivacyQuery, chaos_perturbation: f64, ) -> Result<DpNoiseFrame, PrivacyError>
Apply differential privacy to a query result.
Injects Gaussian or Laplace noise calibrated to sensitivity and ε. Chaos modulation from oracle perturbs noise scale for adaptivity.
Sourcepub fn noise_sample(&self, noise_scale: f64, chaos_seed: &[u8; 32]) -> f64
pub fn noise_sample(&self, noise_scale: f64, chaos_seed: &[u8; 32]) -> f64
Generate a noise sample for DP injection.
Returns a noise value drawn from the configured distribution,
scaled by noise_scale and modulated by chaos perturbation.
Sourcepub fn check_budget(&self) -> Result<(), PrivacyError>
pub fn check_budget(&self) -> Result<(), PrivacyError>
Check if privacy budget is approaching exhaustion.
Sourcepub fn prove_compliance(&self) -> PrivacyProof
pub fn prove_compliance(&self) -> PrivacyProof
Generate a ZKP proof of DP compliance.
Sourcepub fn epsilon_consumed(&self) -> f64
pub fn epsilon_consumed(&self) -> f64
Returns current ε consumed.
Sourcepub fn query_count(&self) -> u64
pub fn query_count(&self) -> u64
Returns total queries processed.
Sourcepub fn reset_budget(&mut self)
pub fn reset_budget(&mut self)
Reset the privacy budget (governance-approved reset).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DpEngine
impl RefUnwindSafe for DpEngine
impl Send for DpEngine
impl Sync for DpEngine
impl Unpin for DpEngine
impl UnsafeUnpin for DpEngine
impl UnwindSafe for DpEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more