$ cargo test --test aes_timing -- --nocapture
[aes128_block_encrypt_constant_time]
tacet
──────────────────────────────────────────────────────────────
Samples: 6000 per class
Quality: Good
✓ No timing leak detected
Probability of leak: 0.0%
95% CI: 0.0–12.5 ns
──────────────────────────────────────────────────────────────
Installation
Quick Start
use ;
Why Another Tool?
Existing tools like DudeCT output t-statistics and p-values that are hard to interpret. tacet gives you what you actually want: the probability your code has a timing leak, plus how exploitable it would be.
| DudeCT | tacet | |
|---|---|---|
| Output | t-statistic + p-value | Probability of leak (0-100%) |
| False positives | Unbounded (more samples = more FPs) | Converges to correct answer |
| Effect size | Not provided | Estimated in nanoseconds |
| Exploitability | Manual interpretation | Automatic classification |
| CI-friendly | Flaky without tuning | Works out of the box |
Attacker Model Presets
Choose your threat model to define what timing differences matter:
| Preset | Threshold | Use case |
|---|---|---|
SharedHardware |
0.6 ns (~2 cycles) | SGX, cross-VM, containers |
AdjacentNetwork |
100 ns | LAN, HTTP/2 APIs |
RemoteNetwork |
50 μs | Public internet APIs |
Research |
0 | Detect any difference |
Beyond Timing
Experimental support for power and EM side-channel analysis is available via the power feature. See the documentation for details.
Documentation
License
MPL-2.0