Aller au contenu
← Back to blog

Argon2id Explained — The Key Derivation Function Protecting Your Vault

encryptionsecuritycryptography

Argon2id Explained: The Key Derivation Function Protecting Your Vault

Your master password is probably between 12 and 30 characters. Your encryption key needs to be exactly 256 bits of high-entropy randomness. The gap between these two realities is bridged by a Key Derivation Function (KDF) — and the choice of KDF might be the most important security decision a password manager makes.

VaultKeepR uses Argon2id. Here's why it matters.

What Is a Key Derivation Function?

A KDF takes a low-entropy input (your master password) and produces a high-entropy output (an encryption key). But it does it slowly and expensively on purpose.

"MyP@ssw0rd2026!" → Argon2id → 256-bit encryption key

↑ (slow + expensive = good)

The "slow and expensive" part is the point. If deriving a key takes 0.5 seconds on your laptop, an attacker trying billions of passwords faces a wall of computational cost.

The KDF Landscape

PBKDF2 (2000)

  • Simple: runs a hash function (SHA-256) thousands of times
  • Problem: trivially parallelizable on GPUs
  • A $500 GPU can test millions of PBKDF2 derivations per second
  • Still used as default by many password managers (including Bitwarden until recently)

bcrypt (1999)

  • Better: requires a small amount of memory (4KB)
  • Problem: memory requirement is too small to deter modern GPUs
  • Maximum password length of 72 bytes

scrypt (2009)

  • Progress: requires significant memory, making GPU attacks harder
  • Problem: memory access pattern is predictable, ASIC-vulnerable

Argon2 (2015)

  • Winner of the Password Hashing Competition (PHC)
  • Designed specifically to resist GPU and ASIC attacks
  • Three variants:
- Argon2d — Data-dependent access (resists GPU, vulnerable to side-channels)

- Argon2i — Data-independent access (resists side-channels, slightly weaker against GPU) - Argon2idHybrid (best of both worlds)

Why Argon2id Is the Best Choice

Memory-Hardness

Argon2id's key advantage: it requires a configurable amount of memory to compute. This is devastating for attackers because:

  • CPUs have plenty of cache/RAM → single derivation is feasible
  • GPUs have thousands of cores but limited memory per core → can't run many Argon2id instances in parallel
  • ASICs would need to include the memory → dramatically increases cost
KDFMemory requiredGPU attack efficiency
PBKDF2~0Very high (fully parallel)
bcrypt4 KBHigh
scryptConfigurableMedium
Argon2idConfigurable (64MB+ recommended)Very low

How VaultKeepR Configures Argon2id

VaultKeepR uses aggressive parameters:

Algorithm: Argon2id

Memory: 64 MB (65536 KiB) Iterations: 3 Parallelism: 4 threads Output: 256 bits (32 bytes) Salt: 16 bytes (random, unique per vault)

With these parameters:

  • On your device: ~0.5 seconds to derive the key (barely noticeable)
  • On an attacker's GPU: each attempt requires 64MB of dedicated memory. A GPU with 8GB VRAM can run only ~125 parallel attempts — instead of millions with PBKDF2
  • On a GPU cluster: 1,000 GPUs × 125 attempts = 125,000/second. A random 14-char password has ~82 bits of entropy → would take ~1.5 × 10¹⁶ years to brute-force

Side-Channel Resistance

The "id" in Argon2id means it starts with data-independent memory access (Argon2i-style) for the first pass, then switches to data-dependent access (Argon2d-style). This provides:

  • First pass (Argon2i): Resistant to side-channel attacks (cache timing, power analysis)
  • Subsequent passes (Argon2d): Resistant to GPU/ASIC time-memory trade-off attacks

The hybrid approach means Argon2id is safe to use both on shared servers and on personal devices.

The Full Key Derivation Pipeline

In VaultKeepR, Argon2id is part of a larger security chain:

Inputs:

├── Master Password: "MySecurePassphrase2026!" └── Wallet Signature: 0x1a2b3c... (EIP-191 signature)

Step 1: Concatenate combined = password || signature

Step 2: Generate salt salt = random(16 bytes) [stored alongside encrypted vault]

Step 3: Argon2id masterKey = Argon2id(combined, salt, memory=64MB, iterations=3, parallelism=4) → 256-bit key

Step 4: Encrypt XChaCha20-Poly1305(masterKey, nonce, vaultData) → ciphertext

The wallet signature adds ~256 bits of additional entropy to the input. Even if your master password is moderately weak, the combined input is extremely strong.

Comparing Attack Costs

Let's compare how expensive it is to brute-force a 12-character random password with different KDFs:

KDFAttempts/sec (single GPU)Time to crack 12-char passwordCost (cloud GPUs @ $2/hr)
PBKDF2 (100K rounds)~5,000,000~500 years~$8.7M
bcrypt (cost=12)~50,000~50,000 years~$876M
Argon2id (64MB)~125~20 million years~$350 billion

These are rough estimates, but the relative difference is clear: Argon2id makes brute-force attacks economically infeasible even with modest passwords.

Frequently Asked Questions

Is Argon2id quantum-resistant?

Argon2id's security relies on the computational cost of running the algorithm, not on mathematical hardness assumptions. Grover's algorithm (quantum) could theoretically halve the effective entropy of brute-force search, but doubling the Argon2id memory parameter compensates. In practice, Argon2id with VaultKeepR's parameters remains secure against foreseeable quantum capabilities.

Why not scrypt?

scrypt was a significant improvement over PBKDF2, but Argon2id improved upon it with better GPU resistance, side-channel protection, and won the formal Password Hashing Competition. Argon2id is the current academic consensus for best-in-class password hashing.

Can I tune the Argon2id parameters in VaultKeepR?

Advanced users can adjust memory and iteration parameters in VaultKeepR's settings. Higher values increase security but also increase the derivation time on your own device. The defaults (64MB, 3 iterations) are already well above industry recommendations.

Keep Reading


The strength of your vault starts with key derivation. VaultKeepR uses Argon2id because we believe brute-force attacks should be economically impossible — not just technically difficult.

Experience Argon2id-protected security →

Share𝕏in

Ready to take control of your passwords?

VaultKeepR is the first decentralized password manager. Zero-knowledge. Wallet-native. Yours.

Try VaultKeepR →