What problem does it solve? Cryptographic implementations can leak secret keys through timing variations caused by secret-dependent branches, array accesses, division, and shifts. This Skill guides you through detecting these timing side channels before attackers exploit them to extract private keys. ## Core Features & Use Cases - Violation Pattern Recognition: Identify the four common constant-time violations (conditional jumps, secret-dependent array access, variable-time division, and variable-time shifts) in C/C++ crypto code. - Tool Selection Guidance: Choose between formal verification (ct-verif, SideTrail, FaCT), symbolic execution (Binsec, pitchfork), dynamic tracing (Timecop/Valgrind), and statistical testing (dudect) based on your assurance needs. - Phased Testing Workflow: Follow a four-phase process from initial dudect statistical screening through Timecop root-cause analysis, remediation, and CI integration. - Use Case: When auditing an RSA implementation, write a dudect harness comparing fixed versus random exponents, detect a statistically significant timing difference, then use Timecop's poison/unpoison markers under Valgrind to pinpoint the exact conditional branch leaking exponent bits. ## Quick Start Audit my modular exponentiation function for timing side channels and show me how to write a dudect test harness for it.