SPsec
Not which is best, but which one fits the network you protect.

Comparison of CAN Link-Layer Security Options

Three approaches to securing small-packet fieldbus communication, side by side: the original CANcrypt, CANcrypt V2 on the SPsec sublayer and the CiA work item CANsec.

Where Security Sits on a Fieldbus

Fieldbus systems rarely afford the luxury of stacking security at every network layer. In practice, two placements dominate. The first is at the highest layers, where established higher-layer protocols such as TLS variants can be tunneled through the fieldbus, inheriting their security guarantees end-to-end. The second is at the link layer, where security is introduced as a sublayer directly above the data link layer, protecting every addressed data unit on the bus. This page compares the link-layer answers available on the small-packet networks CANcrypt and CANsec address. For the role link-layer frame security plays within a complete defensive architecture, see the CAN Security Reference at
Frame Security.

Reading the CANsec Column

CiA 613-2 (CANsec) is in active development at the time of writing this information. The design philosophy behind it is to reuse IEEE 802.1AE / MACsec primitives as much as possible, which fits cleanly when the underlying network is CAN XL with its 2048-byte frames. On CAN FD, the same approach forces MKA control-plane messages and other Ethernet-sized constructs to be fragmented across many 64-byte frames, which limits practicability. Cells in the CANsec column marked tbd. (control plane) refer to behavior the forthcoming CiA 613-2 control-plane document might define.

Side by Side

Property CANcrypt V1 CANcrypt V2 / SPsec CANsec (CiA 613-2)
Status Established (book + product since 2016) Specification family published 2025; product available Under review / definition
Standardization EmSA proprietary (open documentation in book) Published SPsec spec family, open source CiA specification, in development
Primary network Classical CAN, secondary CAN FD CAN FD (Classical CAN with limitations) CAN XL, CAN FD under consideration
Position in stack Security sublayer directly above the Data Link Layer Security sublayer directly above the Data Link Layer Data Link-layer security
Crypto
Authentication AES-based MAC or custom AEAD tag, 64-bit (48-bit on classical CAN) Yes (under definition)
Confidentiality Optional, AES Enable/disable through AEAD Optional (under definition)
AEAD construction n/a (separate authentication and encryption) AES-GCM-128, AES-GCM-256, ChaCha20-Poly1305-256 or ASCON-128 MACsec primitives (AES-GCM for AEAD, AES-GMAC for auth-only)
Symmetric key size Custom 128-bit (ASCON or AES-GCM) or 256-bit (AES-GCM or ChaCha) AES-128 or AES-256 (via MACsec)
Key derivation function Pre-shared + RNG exchange to derive session key HKDF-SHA256 tbd. (control plane)
Key management lifecycle
Initial provisioning Integrator loads pre-shared pairing/group keys Factory-installed Provisioning Key, then Integrator Key installed at commissioning over a Provisioning-Key-protected channel tbd. (control plane)
Operational key install in the field Re-pairing SPsec Session (TLS-PSK-style, stripped down) writes parameter registers, including the Seed Key; one-shot Parameter Authentication authenticates single values tbd. (control plane)
Rotation during operation Per pairing / per session Automatic: odd/even Communication Keys re-derive from Seed Key on timestamp-bit toggle, no handshake required Planned: Per Secure Association, MKA-driven, limited practicability on CAN FD
Key hierarchy / priority tiers Single tier of pre-shared keys, plus session keys derived from them Four explicit tiers, each with a different role and lifetime: Provisioning Key, Integrator Key, Seed Key, Session & Communication Key Inherited from MACsec: CAK (Connectivity Association Key) to SAK (Secure Association Key) per SA
Security contexts
Contexts required per network One per pair (pairing) or one per group (grouping) One context per secure group, single shared Communication Key plus shared uniqueness covers entire group (Multi-Participant Grouping) One per Secure transmission Channel
Group / multicast model Pairing or grouping Secure Session & Multi-Participant Grouping MACsec Connectivity Association, members share a CAK, each transmitter runs one or more Secure Channels
Liveness detection Secure Heartbeat Secure Heartbeat Not planned
Practical limits at scale
Coverage of bus traffic (HW economy) Maximum of 16 Participants in a group Every frame exchanged can be protected Hardware supports a finite number of secure channels
Receiver-side state per source Per-pair / per-group state on each side One shared Communication Key plus one global synchronized timestamp covers all secure communication Receiver maintains per-channel state: keys, freshness window, replay window (limited scaling)
Replay protection at system scale Secure heartbeat uses input from all participants, strong replay protection 64-bit synchronized timestamp is the freshness for the whole group, authenticated upon init, strong replay protection Per-channel 32-bit Packet Number (PN) counter. Counter initialization, persistence across power cycles and recovery after counter loss are tbd. in control plane spec, which is where system-scale replay hardness actually lives
Footprint
Per-frame overhead Separate authentication frames 10-byte Security Stamp in the data field and 18 bit in CAN ID (extended from 11 bit to 29 bit) Part of the frame definition, does not require portions of CAN ID or data field
Max user payload after security 8 bytes on Classical CAN but additional security frame required 56 of 64 bytes on CAN FD (or 48 if next-smaller DLC is preferred) 2000+ on CAN XL, 64 bytes on CAN FD (planned)
Coexists with existing higher layers CANopen CC CANopen FD CAN XL upper-layer protocols, MACsec-aware applications
Safety integration
Combination with functional safety Application-level, the application owns both safety wrapping and security overlay Extension of Security Stamp to 16-byte would allow adding counter and 32-bit CRC Unknown
Standards / regulatory
EU CRA / IEC 62443 framing Pre-CRA design Explicitly framed as the CRA / IEC 62443 answer for small-packet networks Unknown

Frequently Asked Questions

How does SPsec differ from CANsec (CiA 613-2)?

CANsec reuses IEEE 802.1AE / MACsec primitives, which fit CAN XL but force Ethernet-sized constructs to be fragmented across many 64-byte frames on CAN FD. SPsec is designed for the small-packet budget from the start.

Where does link-layer security sit on a fieldbus?

As a sublayer directly above the data link layer, protecting every addressed data unit. The alternative placement is tunneling a higher-layer protocol such as TLS end-to-end.