Skip to main content

Secure memory, not just storage

ZeroKeyUSB uses an industrial-grade ST M24C64-WMN6TP EEPROM, a 64-kilobit non-volatile memory chip (8 KB total).
It was selected not for capacity, but for reliability and long-term data integrity β€” critical for a device expected to safeguard your credentials for years.
All information inside this chip is encrypted by the MCU before being written.
Even if the memory were physically removed, it would reveal only ciphertext blocks β€” never readable data.

Key characteristics

SpecificationDescription
Chip modelST M24C64-WMN6TP
Capacity64 Kbit (8 192 bytes)
InterfaceIΒ²C, 2-byte addressing
Endurance> 1 000 000 write cycles
Data retention> 40 years
Operating voltage1.8 V – 5.5 V
Page size32 bytes
All inter-chip communication uses IΒ²C for memory access and USB HID for host interaction.
The IΒ²C bus itself is not encrypted β€” instead, data is encrypted in firmware before transmission, ensuring confidentiality even if the bus were intercepted.

Internal structure overview

ZeroKeyUSB’s EEPROM is divided into isolated regions.
Each serves a dedicated security function and is accessed exclusively through firmware routines.
Address rangeSizePurpose
0x0000–0x00012 BConfiguration flags / setup marker
0x00021 BFailed-attempts counter (persistent across power cycles)
0x0005–0x000C8 BPIN verification signature
0x0010–0x001F16 BAES Initialization Vector (IV)
0x0020–0x03DFβ‰ˆ 960 BSystem & TOTP metadata (including 2 bytes per slot status)
0x03E0–0x03EF8 BLast TOTP epoch (Unix time, 64-bit)
0x0400–0x1FFFβ‰ˆ 7 KBEncrypted credential storage (user data)
Each credential occupies three 32-byte encrypted pages (96 B total):
  1. Site / service name
  2. Username or email
  3. Password
An optional fourth page is used for the TOTP secret when 2FA is enabled.

Data segmentation

Storing each field in a separate encrypted page offers key advantages:
  • πŸ” Independent encryption: Every field (site, user, password, TOTP) is encrypted separately.
  • 🧩 No pattern correlation: Even identical credentials produce different ciphertext.
  • πŸ’₯ Corruption isolation: If a page fails, others remain intact.
  • ⚑ Efficient writes: Editing one field only rewrites that page, prolonging EEPROM life.

Security metadata

πŸ”‘ Initialization Vector (IV)

A unique 16-byte value generated from analog noise on a floating pin during first startup.
It ensures that even identical data encrypted twice produces different ciphertext.

🧩 PIN signature block

An 8-byte cryptographic fingerprint stored at address 0x0005.
It lets ZeroKeyUSB verify the correct Master PIN without storing the PIN itself.

πŸ•’ Failed-attempts counter

Stored at 0x0002, this byte tracks consecutive failed PIN entries.
If a user enters an incorrect PIN multiple times, the firmware applies exponential delays before the next attempt.
Because the counter is stored in EEPROM, lockout timers persist even after power cycling or unplugging the device.

⏱️ Last TOTP epoch

A 64-bit Unix timestamp representing the last synchronized time.
It allows offline TOTP generation without re-syncing on every use.

Credential layout example

PageContentEncrypted?Size
0Site / domainβœ…32 B
1Usernameβœ…32 B
2Passwordβœ…32 B
3TOTP secret (optional)βœ…32 B
β€”β€”β€”β€”
Total per slotβ€”β€”96–128 B
Up to 64 credentials fit securely within the 8 KB memory, depending on TOTP usage.

Data integrity and error handling

Every EEPROM write is acknowledged at the IΒ²C level to confirm success.
If a write fails or times out, the firmware retries automatically.
Persistent errors trigger an on-screen message (EEPROM Error) and abort the operation safely.
ZeroKeyUSB never stores plaintext or partial records β€” credentials are either fully encrypted or not written at all.

Why it matters

Typical password managers depend on OS storage and software encryption.
ZeroKeyUSB keeps everything in hardware, with:
  • A dedicated EEPROM rated for 40 + years of retention.
  • Encryption and IV generation handled by the SAMD21 microcontroller.
  • No wireless interfaces and no Internet connectivity to exploit.
Even with physical access to the memory chip, the contents cannot be decrypted without the correct PIN-derived key and IV.
Transparency builds trust: the memory map is public so that anyone can verify firmware behavior, yet all regions remain encrypted and locked during normal operation.
⌘I