This document describes the security architecture, threat model, and operational security considerations for Diophantine.
- Overview
- Encryption Standards
- Security Architecture
- Threat Model
- Operational Security
- Known Limitations
- Security Best Practices
- Incident Response
- Reporting Security Issues
Diophantine is a privacy-focused tool that leverages industry-standard encryption utilities to protect sensitive data. The core philosophy is to rely exclusively on well-audited, battle-tested encryption tools rather than implementing custom cryptographic solutions.
- No custom cryptography: All encryption is delegated to established tools with proven security records
- Defense in depth: Multiple layers of protection through combined use of different encryption methods
- Minimal attack surface: Simple architecture that orchestrates existing tools rather than reimplementing them
- Transparency: All operations and security assumptions are documented
| Method | Algorithm | Implementation | Key Length | Mode |
|---|---|---|---|---|
| ZIP Archives | AES-256 | 7-Zip | 256-bit | CBC |
| Container Files | AES-256 | VeraCrypt | 256-bit | XTS |
| Hash Functions | SHA-512 | VeraCrypt | 512-bit | - |
- Algorithm: AES-256 in CBC mode
- Key derivation: PBKDF2 with SHA-256
- Iterations: Configurable (default: 256,000+)
- Use case: Portable encrypted archives for file storage and transfer
- Algorithm: AES-256 in XTS mode
- Key derivation: PBKDF2 with SHA-512
- Iterations: 500,000+ for system partitions, 200,000+ for standard volumes
- Plausible deniability: Hidden volume support (when configured)
- Use case: Persistent encrypted storage containers
- 7-Zip: Open-source, widely audited, cross-platform compatibility
- VeraCrypt: Successor to TrueCrypt, regularly audited, government-grade encryption
┌─────────────────────────────────────────────────────────┐
│ Diophantine Core │
├─────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 7-Zip │ │ VeraCrypt │ │ Other │ │
│ │ (AES-256) │ │ (AES-256) │ │ Tools │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────┐
│ Encrypted Output │
│ (ZIP / Container) │
└─────────────────────────┘
- Trusted: User, encryption tools (7-Zip, VeraCrypt)
- Untrusted: Cloud storage providers, network infrastructure, physical device access (when encrypted)
- Assumed Honest: Operating system (when not compromised)
- Keys are derived from user-provided passwords
- No keys are stored persistently by Diophantine
- Password entropy directly determines security strength
- Users are responsible for secure password storage
- Sensitive files and documents
- Personal data stored in containers
- Archived information in encrypted ZIPs
| Threat Actor | Capability | Protection Level |
|---|---|---|
| Casual user | Basic computer skills | ✓ Full protection |
| Curious family/coworker | Physical access to device | ✓ Full protection |
| Cloud provider | Access to stored files | ✓ Full protection |
| Network attacker | Intercepted transfers | ✓ Full protection |
| Law enforcement | Legal coercion | △ Partial (depends on configuration) |
| Nation-state | Advanced persistent threat | ✗ Limited protection |
| Malware | OS-level compromise | ✗ No protection |
- ✓ Unauthorized physical access to device
- ✓ Unauthorized access to cloud storage accounts
- ✓ Interception of files during transfer
- ✓ Casual inspection of device contents
- ✓ Data recovery from deleted files (when properly encrypted)
- ✗ Compromised operating system
- ✗ Hardware keyloggers
- ✗ Malware/spyware on host system
- ✗ Side-channel attacks
- ✗ Cold boot attacks
- ✗ Forensic analysis with unlimited time/resources
For adequate security, passwords should:
- Be at least 16 characters long
- Include uppercase, lowercase, numbers, and symbols
- Have at least 64 bits of entropy
- Never be reused across different containers/archives
- Be stored in a secure password manager
- Use strong, unique passwords for each encrypted item
- Enable hidden volumes in VeraCrypt when plausible deniability is needed
- Wipe original files securely after encryption (use secure delete)
- Verify encryption by attempting to open encrypted files
- Keep tools updated (7-Zip, VeraCrypt, OS)
- Use full disk encryption as an additional layer
- Maintain backups of encrypted containers in separate locations
After encrypting sensitive files:
- Verify the encrypted archive/container opens correctly
- Use secure deletion tools to remove originals:
- macOS:
srmcommand or third-party tools - Consider SSD limitations with secure delete
- macOS:
- Password-based encryption: Security is only as strong as the password
- No forward secrecy: Compromised password exposes all past and future data
- Metadata exposure: File names, sizes, and timestamps may be visible (ZIP)
- SSD wear leveling: Secure deletion may not work reliably on SSDs
- RAM residues: Encryption keys in memory may be recoverable (cold boot)
- User error: Weak passwords, password reuse, or accidental exposure
- Social engineering: Coercion or deception to obtain passwords
- Legal compulsion: Court orders may force password disclosure
- Tool vulnerabilities: Undiscovered flaws in 7-Zip or VeraCrypt
- Verify file contents are complete and correct
- Close any applications using the files
- Ensure no temporary copies exist
- Choose an appropriate password
- Work in a private environment
- Ensure no malware is running
- Use a secure network if applicable
- Verify the encrypted file opens with the password
- Securely delete original unencrypted files
- Clear clipboard if password was copied
- Log out of password manager if used
- Verify no temporary files remain
- Store passwords in a secure password manager
- Maintain multiple backups of encrypted containers
- Periodically verify backup integrity
- Consider password rotation for long-term secrets
- Document recovery procedures for trusted parties
- Immediately change passwords for affected containers
- Re-encrypt data with new passwords
- Scan for malware on all potentially affected devices
- Review access logs if available
- Assess scope of potential data exposure
- Data recovery is not possible without the password
- This is by design—there is no backdoor
- Check password manager backups
- Review any documented password hints
- Assume all data on the device is exposed
- Change all passwords from a clean device
- Re-encrypt all sensitive data
- Consider the device untrustworthy until cleaned
If you discover a security vulnerability in Diophantine:
- Do not disclose publicly until the issue is resolved
- Contact the maintainers through secure channels
- Provide detailed reproduction steps
- Allow reasonable time for patching before disclosure
For security-related inquiries, please refer to the project's contact information in the main README or repository settings.
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2026-02-16 | Initial comprehensive security documentation |
- VeraCrypt Documentation
- 7-Zip Security Information
- NIST Encryption Guidelines
- EFF Surveillance Self-Defense
Last updated: February 16, 2026