A production-ready ECDSA vulnerability detection framework that identifies cryptographic implementation flaws through geometric signal analysis of public signature data.
Analyze ECDSA signatures for vulnerabilities in seconds:
python src/tools/analyze.py --input signatures.csvDetects known vulnerabilities:
Zero false positives on secure implementations ✅
This framework provides rigorous detection of ECDSA implementation vulnerabilities using only publicly observable signature data. The system successfully identifies known vulnerabilities (PS3 nonce reuse, Android CVE-2013-4254) while maintaining zero false positives on secure implementations.
# Install dependencies and run full analysis
make setup
make repro
# Run vulnerability detection
python src/tools/analyze.py --input signatures.csv
# Run falsification tests
make falsify- PS3 Nonce Reuse: Detects duplicate r-values across signatures
- Android RNG Bias (CVE-2013-4254): Identifies low-entropy nonce generation
- Zero False Positives: Rigorous falsification framework ensures no spurious detections
- Geometric signal analysis in (r,s) space
- Entropy measurements across multiple projections
- Statistical clustering detection
- Comparative analysis against null distributions
Geometric visualization showing nonce reuse pattern - identical r-values across multiple signatures.
Statistical clustering reveals biased random number generator - non-uniform distribution in signature space.
Comparative analysis: PS3 (red) vs. Android (orange) vs. Secure baseline (green)
vulnerability_visualizations/*.png- Visual analysis resultssecp256k1_analysis/comprehensive_report.json- Full analysis reportfalsification_results/- Falsification test results
src/
├── diagnostics/ # Core analysis framework (API v1.0.0)
│ ├── secp256k1_analyzer.py # Main vulnerability detector
│ ├── falsification.py # Falsification testing
│ └── signal_explorer.py # Signal gradient analysis
├── tools/ # Command-line utilities
└── lib/ # Supporting libraries
tests/ # Comprehensive test suite
├── test_known_vulnerable.py # Positive controls
└── test_*_baseline.py # Negative controls
The framework employs a falsification-first approach:
- Negative Controls: Verify no false positives on secure signatures
- Positive Controls: Confirm detection of known vulnerabilities
- Cross-Validation: Multiple independent detection techniques
- Statistical Rigor: Significance testing against null distributions
from src.diagnostics import SECP256K1Analyzer
analyzer = SECP256K1Analyzer()
analyzer.load_signatures_from_file('signatures.csv')
report = analyzer.run_full_analysis()
if report['summary']['verdict'] == 'FAIL':
print("Vulnerabilities detected")# Analyze signature file
python src/tools/analyze.py --input signatures.csv --output report.json
# Run comparative vulnerability demo
python src/tools/vulnerability_demo.pyVulnerable Signature Set (PS3 Nonce Reuse):
=== SECP256K1 VULNERABILITY ANALYSIS ===
Verdict: FAIL ❌
Reason: Nonce reuse detected (duplicate r-values)
Affected signatures: 15/200 (7.5%)
Confidence: 100% (mathematical certainty)
Recommendation: IMMEDIATE ACTION REQUIRED - Private key compromise possible
Secure Signature Set:
=== SECP256K1 VULNERABILITY ANALYSIS ===
Verdict: PASS ✅
Status: No vulnerabilities detected
Distribution: Uniform (as expected for secure ECDSA)
All statistical tests passed
Recommendation: Signatures conform to security standards
| Feature | geometric-cryptanalysis | lattice-attack | ecdsa-nonce-reuse | mini_ecdsa |
|---|---|---|---|---|
| Nonce Reuse Detection | ✅ Duplicate r-values | ❌ | ✅ | ✅ |
| RNG Bias Detection | ✅ CVE-2013-4254 | ❌ | ❌ | ❌ |
| Lattice Attacks | ❌ | ✅ Partial k recovery | ❌ | ❌ |
| Falsification Framework | ✅ Negative controls | ❌ | ❌ | ❌ |
| Public-Key-Only | ✅ Strict | ✅ | ||
| Visualization Suite | ✅ 3D PCA/t-SNE | ❌ | ❌ | ❌ |
| Production Ready | ✅ API v1.0.0 | ❌ Educational | ||
| CI/CD Testing | ✅ Python+Rust+JS | ❌ | ❌ | |
| Documentation | ✅ Comprehensive |
Unique Strengths:
- Only tool with rigorous falsification framework (negative/positive controls)
- Detects multiple vulnerability classes, not just nonce reuse
- Production-grade with frozen API (v1.0.0) and semantic versioning
- Comprehensive geometric visualization suite (PCA, t-SNE, clustering)
- Zero false positives guaranteed through statistical rigor
This framework builds on research in ECDSA vulnerability detection and cryptanalysis:
- PS3 ECDSA Bug (2010) - fail0verflow team, 27th Chaos Communication Congress
- Android RNG Vulnerability (CVE-2013-4254) - Bitcoin.org Security Advisory
- Nguyen & Shparlinski (2002) - "The Insecurity of the Digital Signature Algorithm with Partially Known Nonces"
- Journal of Cryptology, Vol. 15, pp. 151-176
- Howgrave-Graham & Smart (2001) - "Lattice Attacks on Digital Signature Schemes"
- Designs, Codes and Cryptography, Vol. 23, pp. 283-290
- Brumley & Tuveri (2011) - "Remote Timing Attacks are Still Practical"
- USENIX Security Symposium
- Principal Component Analysis - Applied to signature distribution analysis
- t-SNE Dimensionality Reduction - Visualization of high-dimensional signature space
- DBSCAN Clustering - Detection of non-uniform distributions
Note: This tool focuses on detection of implementation vulnerabilities using public data only. It does not perform lattice-based private key recovery or signature forgery.
docs/API.md- Complete API referencedocs/FRAMEWORK.md- Architecture documentationdocs/FALSIFICATION_FRAMEWORK.md- Testing methodologydocs/DETECTION_FRAMEWORK.md- Detection algorithms
- Python 3.8+
- NumPy, SciPy, scikit-learn, matplotlib
- See
requirements.txtfor full dependencies
pip install -r requirements.txt
# Or install as package
pip install -e .This project maintains high standards for code quality and mathematical rigor. Contributions must include appropriate tests and documentation. See docs/COLLABORATION.md for guidelines.
- This framework analyzes signatures only - it cannot forge or create signatures
- Only analyzes publicly available signature data
- Follow responsible disclosure for any vulnerabilities discovered
- See
SECURITY.mdfor security policy
Apache License 2.0 - See LICENSE file for details.
- FastNear team for initial exploratory discussions
- Security research community for vulnerability disclosures
- Open source cryptography libraries
- Version: 1.0.0 (Frozen API)
- Status: Production-ready
- Last Updated: November 2025