Fosdem 2026 Autocrypt v2 talk

Autocrypt v2

Post-Quantum Cryptography & Reliable Deletion

Autocrypt2 Logo

Daniel Kahn Gillmor
Daniel Kahn Gillmor (ACLU)
IETF OpenPGP designated expert
Friedel Ziegelmayer
Friedel Ziegelmayer (n0)
rPGP Rust maintainer
holger krekel
holger krekel (merlinux)
chatmail and Delta Chat

What is Autocrypt v2?

πŸ”’ Modern OpenPGP v6 certificate for messaging

πŸ›‘οΈ Post-quantum resistant encryption

πŸ—‘οΈ Reliable deletion (β€œforward secrecy”)

🌐 Designed for decentralized delay-tolerant messaging systems

Protection against β€œdecrypt later” attacks

πŸ“‘ Today: Adversaries collect in-transit encrypted messages

↓ months to years

πŸ”“πŸ“± Later: Obtain secret keys β†’ decrypt deleted/collected messages

↓ years to decades

πŸ–₯οΈβš›οΈ Much later: Quantum computers β†’ decrypt all collected messages

Autocrypt v2 protects against both decrypt-later attack scenarios

Reliable Deletion: what matters for users

πŸ›‘οΈ Deletion works against decrypt-later attacks

🌐 Reliable in fragmented/splintering networks

πŸ“ β€œReliable Deletion” > β€œForward Secrecy” (clearer term)

Autocrypt v2: A Simpler Path

Traditional Reliable Deletion

Network sync required 🀯

Central servers needed 😭

Multi-device complexity 😡

Autocrypt v2 solution

βŒ› Clock-time based

🌿 Works offline

πŸ•ŠοΈ Zero coordination

Autocrypt v1 β†’ v2: What Changed?

v1 (Email-focused)

πŸ“§ Bound to email address

🏷️ Email as identity layer

β†’

v2 (Universal)

🌐 Transport agnostic

πŸ” Pure cryptographic identity

Same goal: Automatic, standards-based, interoperable E2E encryption

Autocrypt v2 Key Technical Features

  • Post-Quantum: Hybrid ML-KEM-768 + X25519

  • Reliable Deletion: Automatic key expiration & destruction

  • Compact: Fixed 2938-byte certificates

  • Interoperable: Standard OpenPGP v6 (RFC 9580)

  • Easy: See rPGP and Python examples

Autocrypt v2 Certificate (6 Packets)

πŸ”‘ A. Primary Key (Ed25519) β€’ Signing & Certification

B. Direct Key Signature (defines features, no expiry)

C. Fallback Subkey (ML-KEM-768 + X25519) β€’ Long-term encryption

D. Subkey Binding (no expiry)

E. Rotating Subkey (ML-KEM-768 + X25519) β€’ Short-term encryption

F. Subkey Binding (expires: max_rd=10d)

πŸ“¦ Fixed Size: 2938 bytes

Key Rotation Schedule

⏱️ Rotating subkey: Valid for max_rd (default: 10 days)

πŸ”„ New generation: At min_rd before expiry

πŸ“¬ Delivery delay: 10 days assumed

πŸ—‘οΈ Auto-delete: After max_rd + 10 days

Autocrypt v2 Key Ratcheting Algorithm

πŸ”„ Deterministic key derivation from previous subkey

πŸ” Uses HKDF with SHA2-512 for cryptographic ratcheting

⏱️ Time-based rotation synchronized across all devices

🎯 No network coordination needed

Key Ratcheting

        
        prior rotating          
        subkey secret   ───> normalize_x25519
             |                     |
         (inputs)                  |
    info     |     salt            | IKM
      |      |       |             |
      v      v       v             v
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚                                 β”‚
    β”‚   HKDF (SHA2-512, L=160)        β”‚
    β”‚                                 β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   |
                   |
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         v                   v
     64 bytes            96 bytes
         |                   |
         |                   |
         v                   v
    SHA2-512          normalize_x25519
         |                   |
         |                   |
         v                   v
   16-byte salt      next rotating
   (for binding)     subkey secret

Two Encryption Subkeys: Fallback vs Rotating

  • Fallback Subkey: Long-term hybrid encryption key
    • Used when no rotating subkey valid
    • ⚠️ NOT reliably deletable
  • Rotating Subkey: Short-term hybrid encryption key
    • Must be used if valid
    • Rotates every 5 days (see min_rd in spec)
    • Auto-destroyed after expiry
    • βœ… Reliably deletable messages

Peer Certificate Management

πŸ“₯ Incoming certs merged into local cache

🧹 Pruning: Remove expired keys

πŸ” Encryption priority:

  1. Valid rotating subkey? β†’ Use it
  2. Pick earliest expiry (faster deletion)
  3. Never use fallback if rotating available

Beware of coordinated deletion

πŸ”„ Need to delete all copies on all devices

πŸ’Ύ What about backups & offline devices?

⚠️ Out of scope for Autocrypt v2

Delta Chat, Signal and other apps offer coordinated deletion.

Hybrid Cryptography Explained

  • ML-KEM-768: Post-quantum algorithm (NIST standard)
  • X25519: Classical elliptic curve
  • Hybrid approach: Security if either algorithm is secure
  • Protection against both classical and quantum attacks
  • Future-proof encryption

πŸ” Autocrypt v2 = ML-KEM-768 βŠ• X25519

Autocrypt v2 Practical Benefits

πŸ—‘οΈ Deleted messages = gone forever

πŸ€– Fully automatic (no user action)

🌐 Works with existing Internet messaging infrastructure

πŸ“‘ No network sync required (fewer failures)

Comparisons with other E2EE efforts

Feature Autocrypt v2 Signal Matrix MLS
Post-Quantum βœ… βœ… πŸ”„ In-dev βœ…
Reliable Deletion βœ… βœ… βœ… + UTD βœ…
Minimal metadata βœ… ⚠️ Binding ⚠️ servers ⚠️ Binding
Decentralized βœ… ❌ βœ… πŸ”„ in-dev
Formal specification βœ… ❌ βœ… βœ…
Simple implementation βœ… ❌ ❌ ❌

Autocrypt v2 status and roadmap

πŸ“

Q1 2026
Draft Spec

πŸ› οΈ

Q2 2026
Implementation

βœ…

Q3 2026
Testing & Polish

πŸš€

Q4 2026
App Releases

See chatmail.at/clients for clients and bots that will seamlessly upgrade

Get involved: other implementers welcome!

Autocrypt2 Logo

Scan to chat with holger

chatmail Logo Delta Chat Logo Arcanechat Logo DeltaTouch Logo

Experienced Rust developer?
Interested in chatmail and Delta Chat?
Talk to us :)