Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29167-16 defines the Elliptic Curve Diffie-Hellman (ECDH) key agreement protocol as a cryptographic suite for RFID systems conforming to the ISO/IEC 18000 series air-interface standards. ECDH enables two parties — an RFID reader and a tag — to establish a shared secret over an insecure channel without exchanging their private keys. Each party generates an ephemeral or static key pair, exchanges public keys, and independently computes the same shared secret using their own private key and the peer’s public key.
The standard distinguishes between ephemeral-ephemeral (EE) mode, where both parties generate fresh key pairs per session, and static-static (SS) mode, where long-term key pairs are used. EE mode provides perfect forward secrecy (PFS): if a long-term key is compromised, past session keys remain secure. SS mode sacrifices PFS but reduces computational overhead since key generation occurs only once during personalization.
The ECDH protocol specified in ISO/IEC 29167-16 follows a three-message exchange. The reader initiates by sending a “Key Agreement Request” that includes its supported curve identifiers and its ephemeral public key (or an indication that static keys will be used). The tag responds with its chosen curve identifier and its ephemeral public key. Both parties then compute the shared secret as the x-coordinate of the scalar multiplication of their private key with the peer’s public key point.
The raw shared secret derived from ECDH is not directly used as a session key. Instead, the standard specifies a key derivation function (KDF) based on HMAC-SHA-256 that processes the shared secret along with the exchanged nonces and public keys to produce the final session key. This KDF step ensures that each session produces a unique key even if the same ECDH shared secret were somehow generated twice.
| Parameter | ECDHE-256 | ECDHE-384 | ECDHE-521 |
|---|---|---|---|
| Messages Exchanged | 3 (Req/Resp/Confirm) | 3 | 3 |
| KDF Algorithm | HMAC-SHA-256 | HMAC-SHA-384 | HMAC-SHA-512 |
| Session Key Size | 128 bits | 192 bits | 256 bits |
| Perfect Forward Secrecy | Yes (ephemeral mode) | Yes | Yes |
| On-Tag Computation | ~25 ms @ 1 MHz | ~60 ms @ 1 MHz | ~180 ms @ 1 MHz |
| On-Air Payload | ~96 bytes | ~128 bytes | ~196 bytes |
Implementing ECDH on passive RFID tags requires careful management of the tag’s limited computational resources. The scalar multiplication operation dominates both execution time and power consumption. Hardware architects typically implement a dedicated ECC accelerator using a pipelined Montgomery multiplier operating over the prime field, with a dedicated dual-port RAM for storing intermediate projective coordinates.
A critical implementation detail is proper random number generation for ephemeral keys. The standard requires that each ephemeral key pair be generated using a cryptographic-quality random number generator (RNG). On RFID tags, this presents a challenge because traditional analog entropy sources (ring oscillators, thermal noise) may be unavailable during the power-up transient. Many tag designs incorporate a dedicated RNG that seeds during the initial power stabilization window before the tag responds to any commands.