Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29167-17 defines the Digital Signature Algorithm (DSA) cryptographic suite for RFID systems operating under the ISO/IEC 18000 series air-interface standards. Unlike symmetric-key-based suites, DSA provides asymmetric authentication where the tag uses a private key to generate signatures and any reader with the corresponding public key can verify them. This property is invaluable in open-loop supply chains where many different readers must authenticate tags without sharing secret keys.
The standard supports DSA key sizes of 1024, 2048, and 3072 bits, paired with SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 hash functions respectively. The DSA suite defined in this standard is compatible with FIPS 186-4 and provides both tag authentication (signature generation) and data integrity (signature verification of command parameters).
The DSA signature process in ISO/IEC 29167-17 consists of three phases. First, the tag generates a random per-message secret k and computes the signature component r = (g^k mod p) mod q. Second, it computes the hash H(m) of the message using the agreed hash function. Third, it computes s = k^(-1) * (H(m) + x*r) mod q, where x is the tag’s private key. The signature (r, s) is returned to the reader along with the message.
Verification at the reader side involves computing w = s^(-1) mod q, u1 = H(m)*w mod q, u2 = r*w mod q, and checking whether v = ((g^u1 * y^u2) mod p) mod q equals r, where y is the tag’s public key. The standard specifies that the reader MUST reject signatures where r = 0 or s = 0, as these indicate invalid signature generation.
| DSA Key Size | Hash Function | Signature Size | Security Level | Tag Computation | Typical Application |
|---|---|---|---|---|---|
| 1024 bits | SHA-1 / SHA-224 | 40 bytes | 80-bit | ~50 ms @ 1 MHz | Low-cost tags, basic auth |
| 2048 bits | SHA-256 | 56 bytes | 112-bit | ~200 ms @ 1 MHz | Supply chain, pharmaceuticals |
| 3072 bits | SHA-512 | 64 bytes | 128-bit | ~500 ms @ 1 MHz | High-security, government |
DSA on passive RFID tags presents significant implementation challenges due to the large operand sizes (up to 3072 bits) and the computational cost of modular exponentiation. Unlike ECC-based suites which operate on 160-521 bit operands, DSA requires arithmetic on operands of 1024-3072 bits. This directly impacts silicon area: a DSA 2048-bit modular multiplier requires approximately 4x the logic of an ECC-256 multiplier.
To mitigate the computational burden, the standard allows for pre-computation of the exponentiation component r before the message is known. Since r = (g^k mod p) mod q depends only on the random k and not on the message, a tag can pre-compute r during idle periods and store it in volatile memory. When a signature request arrives, only the modular inversion and multiplication for s need to be computed in real-time, reducing response latency by approximately 70%.