VeraCrypt: Encrypted Containers and Hidden Volumes Explained
VeraCrypt offers plausible deniability. This guide covers encrypted containers, hidden volumes, and the exact settings that determine real encryption strength.
VeraCrypt is the most widely used open-source encrypted container and full-disk encryption tool available. It is cross-platform, actively maintained, publicly audited, and provides a capability that no other mainstream tool matches: plausible deniability through hidden volumes. This guide covers how VeraCrypt works in technical detail, how to use it correctly, and where its limits are.
What VeraCrypt is
VeraCrypt is the successor to TrueCrypt, a widely trusted encryption tool whose development was abandoned in 2014 under unclear circumstances. The VeraCrypt project forked from TrueCrypt, addressed the vulnerabilities identified in a subsequent security audit, and has continued active development since. VeraCrypt runs on Windows, macOS, and Linux, making encrypted containers genuinely portable across all three platforms.
VeraCrypt has been independently audited multiple times, including audits by Quarkslab and the OSTIF (Open Source Technology Improvement Fund). Identified issues have been addressed in subsequent releases. The source code is publicly available for review.
Standard encrypted containers vs full-disk encryption
VeraCrypt supports two fundamentally different use cases:
- File containers: VeraCrypt creates an encrypted file on your existing filesystem — a container — that appears as a regular file with no identifying header. When you mount it with your password, it appears as a drive letter or mount point. You work with the files inside normally; they are decrypted on the fly. When you unmount, the container file is just opaque encrypted data.
- Full-disk or partition encryption: VeraCrypt can encrypt an entire partition or drive, including system drives with pre-boot authentication. This is equivalent to LUKS2 on Linux, but works across platforms and adds the hidden OS feature (described below).
File containers are the right tool for portable encrypted storage: a container file can be carried on a USB drive, copied across platforms, and mounted on any system with VeraCrypt installed. Full-disk encryption is better for protecting everything on a system drive.
Creating a container: algorithm and hash selection
When creating a VeraCrypt container, you choose an encryption algorithm, a hash algorithm, and a filesystem:
- Encryption algorithm: AES-256 is the standard choice. It is the most thoroughly analysed symmetric cipher, benefits from hardware acceleration on all modern CPUs (AES-NI), and is fast. VeraCrypt also offers cascade encryption: AES-Twofish, AES-Twofish-Serpent, and others. Cascades provide marginal additional security against an attacker who breaks one cipher — in practice, a break in AES-256 that leaves cascades intact is not in any realistic threat model. Use AES unless you have a specific reason not to.
- Hash algorithm: used for key derivation. SHA-512 is the standard and well-supported choice. Whirlpool is an alternative with a different design lineage. Both are adequate.
- Filesystem: for containers that will be used on multiple platforms, exFAT works across Windows, macOS, and Linux without additional drivers. For Linux-only use, ext4 provides journaling and better large file support.
Mounting and working with containers
A mounted VeraCrypt container behaves exactly like a drive. Files written to it are encrypted in real time; files read from it are decrypted in real time. The encryption is transparent to applications. When you dismount the container, the decrypted view disappears and the container file remains as ciphertext.
A container file is portable: copy it to any machine with VeraCrypt installed and mount it with your password. This makes VeraCrypt containers well-suited for carrying sensitive data on a USB drive or transporting it across systems. The container itself gives no indication of its size, contents, or that it is a VeraCrypt container at all when analysed from outside.
Hidden volumes: plausible deniability in practice
The hidden volume feature is what makes VeraCrypt unique among mainstream encryption tools. A VeraCrypt container (or encrypted partition) can contain two independent volumes:
- Outer volume: mounted with one password. Contains plausible but non-sensitive data — documents, photos, ordinary files that look like legitimate content.
- Hidden volume: mounted with a different password. Occupies the free space of the outer volume. Contains the genuinely sensitive data.
The two volumes share the same container file. There is no cryptographic or structural way to prove that a hidden volume exists — the free space of an outer volume is indistinguishable from a hidden volume filled with random-looking ciphertext, which is also indistinguishable from unallocated encrypted space.
If you are compelled to provide your password, you provide the outer volume password. The hidden volume is never revealed, and its existence cannot be proven. This is the definition of plausible deniability.
Important caveats: if you mount the outer volume and write data to it, you risk overwriting the hidden volume. VeraCrypt provides a hidden volume protection mode that prevents this when you mount the outer volume with both passwords (for protection purposes). Also, plausible deniability is a legal and social defence, not a mathematical guarantee — it works only if an adversary cannot prove the hidden volume exists through other means (witness testimony, metadata, prior knowledge).
Key files: a second factor for container access
VeraCrypt supports key files — any file (or set of files) whose contents are combined with your password to derive the encryption key. A key file adds a second factor: an attacker needs both your password and the key file to mount the volume. The key file can be stored separately from the container — on a different physical USB drive, for instance.
Key files protect against password compromise alone but add operational complexity. If the key file is lost or modified even one byte, the container cannot be mounted. Key files used for important containers should be backed up securely and never modified.
System encryption and pre-boot authentication
VeraCrypt can encrypt the Windows system drive with pre-boot authentication — a password is required before the OS loads, equivalent to LUKS2 pre-boot prompts on Linux. VeraCrypt installs a custom bootloader that handles authentication before the Windows bootloader runs.
VeraCrypt also offers a hidden operating system feature: two full Windows installations on the same drive, each with its own password, with the outer installation containing plausible non-sensitive content. This is the full-disk equivalent of the hidden volume feature. It is the most technically complex feature VeraCrypt offers and has specific hardware and configuration requirements.
The PIM parameter: iteration count control
VeraCrypt uses a PIM (Personal Iterations Multiplier) parameter that directly controls how many iterations the key derivation function performs. A higher PIM means more iterations, a slower unlock time, and a harder brute force problem. The default PIM is set to produce roughly a 1–2 second unlock time on average hardware.
Increasing the PIM provides meaningful additional brute force resistance at the cost of unlock time. For containers with very high-value content that you don't access frequently, a high PIM is worth considering. The PIM is separate from the password and must be remembered or stored securely alongside it.
What VeraCrypt does not protect against
- Running system: a mounted container is decrypted. Memory dumps, keyloggers, and malware running on the system can access the decrypted contents.
- Keyloggers: if your passphrase is captured as you type it, encryption provides no protection.
- Memory dumps: the decryption key is in RAM while a container is mounted. Cold boot attacks or memory dump tools can potentially recover it.
- Metadata on the outer volume: if you use the hidden volume feature, take care about what filesystem metadata (file timestamps, recently opened files in applications) is written to the outer volume, as it could indicate unusual patterns.
VeraCrypt vs LUKS2
Both are strong, open-source, audited encryption tools. The practical differences:
- Plausible deniability: VeraCrypt has it; LUKS2 does not. The LUKS2 header explicitly identifies the partition as LUKS2-encrypted.
- Linux integration: LUKS2 is native to Linux, supported by the kernel's dm-crypt layer, and handles system encryption seamlessly with standard tools. VeraCrypt requires the VeraCrypt binary and FUSE drivers on Linux.
- Cross-platform portability: VeraCrypt containers work identically on Windows, macOS, and Linux. LUKS2 is Linux-native and requires third-party tools on other platforms.
- System encryption: LUKS2 is the standard for Linux system encryption and integrates with GRUB. VeraCrypt system encryption is Windows-focused.
For Linux full-disk encryption, LUKS2 is the correct tool. For portable encrypted containers or situations requiring plausible deniability, VeraCrypt is the correct tool. They are complements rather than direct competitors.
If you're running Tails for sensitive sessions, VeraCrypt is included in the default Tails installation — you can create and mount VeraCrypt containers directly from a Tails Live USB without any additional installation. For a persistent encrypted working environment, Norypt Encrypted Laptops ship with LUKS2 full-disk encryption and VeraCrypt available for container-based workflows where portability or plausible deniability is required.
Ready to take control?
Every Norypt device arrives pre-configured, verified, and ready to use — no technical knowledge required.
Related Product
Norypt
Norypt Secure Laptop
Full-disk LUKS encryption, hardened Linux, zero bloatware.
From €1,099
See detailsRelated reading
Full-disk encryption with LUKS2: how it actually works
LUKS2 encrypts every Norypt laptop. Here's what it protects, where it has limits, and why passphrase strength determines your real-world security.
Thunderbolt attacks: why physical port security matters
Thunderbolt ports can give an attacker direct RAM access, bypassing encryption entirely. Here are the real attacks, how serious they are, and how to defend against them.
Physical Device Security: Border Crossings, Seizures, and Cold Boot Attacks
Encryption fails the moment someone has physical access to your device. Here's how to harden against border seizures, evil maid attacks, and cold boot.
