SPsec
Cryptography is only as trustworthy as the silicon beneath it.

Hardware Requirements

SPsec is deliberately modest about hardware, but three security functions must be available to the sublayer.

Secure Key Storage

Long-lived keys that cannot be read out, even by an attacker with physical access to the chip.

True Random Numbers

Unpredictable entropy for nonces, salts, session establishment and counter initialization.

Synchronized Timer

A free-running tick, shared across the group by the Sync role, that supplies a non-repeating uniqueness value.

Secure Key Storage

The long-lived keys (Provisioning, Integrator and Seed) must be stored so that they cannot be read out, even by an attacker with physical access to the chip. A hardware security module or a security-hardened microcontroller with a trusted zone is preferred. Where on-die secure storage is limited, a single device-specific key can encrypt the rest of the key material held in ordinary non-volatile memory. Keys are addressed through an opaque selector rather than a raw pointer, and they are never read back out of the device.

True Random Number Generator

A source of unpredictable randomness is required for nonces, salts and session establishment, and for initializing counters safely. Hardware entropy is required at higher assurance levels; a software-only generator is acceptable only at the lowest levels, and only when its seed is genuinely non-reproducible, for example a combination of analog inputs, timer jitter and stored state.

Synchronized Timer

Grouped communication needs a uniqueness value that never repeats under one key. SPsec uses a free-running timer that ticks every 0.1 ms and is shared across the group by the Sync role. If the timer is initialized from a random value it must be at least 128 bits wide to rule out nonce reuse; preferably it reflects total runtime and continues across power cycles using cyclic non-volatile storage. The Sync role is responsible for keeping the value unique.

Frequently Asked Questions

What hardware does SPsec require?

Three security functions: secure key storage that cannot be read out, a true random number generator and a synchronized timer. The cryptographic algorithms themselves run in software or an accelerator.

Is a hardware random number generator mandatory?

At higher assurance levels, yes. A software-only generator is acceptable only at the lowest levels, and only when its seed is genuinely non-reproducible.