| # Security Notes |
|
|
| HVCE v4 includes password-based authenticated encryption, but it is a reference implementation, not a professionally audited security product. |
|
|
| ## Password mode |
|
|
| The archive encrypts the private manifest and payload together. File names and directory structure are not visible without the password. |
|
|
| Primitive stack: |
|
|
| ```text |
| PBKDF2-HMAC-SHA256 -> 64 bytes |
| 32-byte key 1 -> ChaCha20 stream encryption |
| 32-byte key 2 -> HMAC-SHA256 authentication |
| ``` |
|
|
| Default KDF iterations: `300000`. |
|
|
| Use: |
|
|
| ```bash |
| python hvce.py compress folder secure.hvce --ask-password --recovery-percent 10 |
| python hvce.py extract secure.hvce restored --ask-password |
| ``` |
|
|
| ## Why symmetric-only is used |
|
|
| The v4 “post-quantum” security stance avoids RSA/ECC public-key wrapping in the archive format. Symmetric 256-bit keys retain a large margin against generic quantum search, assuming strong passwords and sufficient KDF work. |
|
|
| ## Threat model |
|
|
| Provides: |
|
|
| - confidentiality against attackers without the password; |
| - filename and metadata privacy when encrypted; |
| - tamper detection before decryption; |
| - extraction verification with SHA-256; |
| - recovery against limited storage corruption when recovery records are present. |
|
|
| Does not provide: |
|
|
| - protection from weak passwords; |
| - protection from malware on the machine that captures passwords; |
| - deniable encryption; |
| - independently audited cryptographic assurance; |
| - legal/compliance certification. |
|
|
| ## Recommended use |
|
|
| For important personal archives, use: |
|
|
| ```bash |
| python hvce.py compress input output.secure.hvce --profile balanced --ask-password --recovery-percent 10 |
| ``` |
|
|
| Keep at least one external backup. Recovery records are not a substitute for backups. |
|
|