~/talk

Storage and encryption in DuckDB

Talkat DuckDB Developer Meeting #1 · on Friday, 2026-01-30· [databases, security]
slides:none on file

DuckDB encrypts data at rest two ways: Parquet file encryption (since v0.10) and full database-file encryption that also covers WAL and temporary spill files. It encrypts at 256KB blocks inside ~120k-row row groups, compresses before encrypting, and uses AES modes GCM with 12-byte nonce (and CTR available) with a key-derivation step producing a 32-byte encryption key per database id. Block headers grow from 8 to 40 bytes (nonce+tag+checksum), WAL entries encrypt per-entry (length stays plaintext), keys live in a locked secure cache, OpenSSL acceleration is available via the HTTPS extension, and runtime/storage overhead is described as negligible though WAL growth can be noticeable under heavy updates.

AI-written summary · about

  1. 0:00Introduction
  2. 1:26Securing data at rest
  3. 2:30Parquet vs database encryption
  4. 3:13Encryption ciphers and AES modes
  5. 4:17GCM encryption and IVs
  6. 5:21Secure key handling
  7. 6:47Key cache and memory safety
  8. 7:31Storage structure overview
  9. 9:36DB encryption in 1.5
  10. 10:39Block-level encryption
  11. 11:24Block header changes
  12. 12:06WAL structure and encryption
  13. 13:51Encrypting WAL entries
  14. 14:34Temp file encryption
  15. 15:36Encryption API and OpenSSL
  16. 18:03Key takeaways
  17. 18:44Q&A: Block scanning
  18. 20:11Q&A: Random access and CTR
  19. 20:51Q&A: Key verification
  20. 21:34Q&A: Block header bytes
  21. 22:17Q&A: Nonce generation
  22. 22:58Q&A: Checksum necessity
  23. 23:19Q&A: Size increase
  24. 23:59Q&A: Key management
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.