NIST SP 800-108 Key Derivation Function in Pipeline Mode. Uses HMAC with pipelined PRF expansion where each iteration computes an intermediate value, following the NIST standardized specification.
| Property | Value |
|---|---|
| Category | Key Derivation Functions |
| Sub-category | NIST SP 800-108 Pipeline Mode |
| Security status | π‘οΈ Secure |
| Complexity | Intermediate |
| Inventor | NIST |
| Year | 2009 |
| Origin | πΊπΈ United States |
| Source | algorithms/kdf/sp800-108-pipeline.js |
| Parameter | Supported values |
|---|---|
| Key derivation sizes | 1 byte (8 bits) to 65535 bytes (524280 bits) |
| Flag | Value |
|---|---|
SaltRequired |
Yes |
NeedsKey |
Yes |
Status: π‘οΈ Secure
No vulnerabilities are recorded for this implementation.
6 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 β SP 800-108 Pipeline Mode - HMAC-SHA1 Test Vector 1 (2 bytes)
| Field | Value |
|---|---|
label |
fd7dbfdd60fed4cada6db78a |
context |
b65a30885b0849c7099b |
outputLength |
2 |
counterBits |
32 |
outputLengthBits |
32 |
hashAlgorithm |
SHA-1 |
input |
63cb90f9cd34b95007277ae6fc17fb45a9248725 |
expected |
4b0d |
Vector 2 β SP 800-108 Pipeline Mode - HMAC-SHA1 Test Vector 2 (2 bytes)
| Field | Value |
|---|---|
label |
f441ebb9d176afc02ca826c6 |
context |
644e398df79d9477a706 |
outputLength |
2 |
counterBits |
32 |
outputLengthBits |
32 |
hashAlgorithm |
SHA-1 |
input |
954418fcd0ea5b6800d99b5502afc98ff7e9302d |
expected |
17f5 |
Vector 3 β SP 800-108 Pipeline Mode - HMAC-SHA1 Test Vector 3 (2 bytes)
| Field | Value |
|---|---|
label |
1e1a50a04838fd3d15de70ed |
context |
6303ad8d6f85b06a8133 |
outputLength |
2 |
counterBits |
32 |
outputLengthBits |
32 |
hashAlgorithm |
SHA-1 |
input |
486dee7bf8590ad8146f4419131a8ed35fb67407 |
expected |
096f |
Vector 4 β SP 800-108 Pipeline Mode - HMAC-SHA1, 20 bytes (exactly one PRF block)
| Field | Value |
|---|---|
label |
2894f522fc3244125e79fda2 |
context |
e97ff4ecbe1af9b60f178b36c82a9da1 3ece72b4eaa7cbe6dae081b51b6e5a07 76ddd88252cd2ee81503a10d2679d97b 3a647d885bdf529f22dc8db7fcfd013f 7a11a4feb91a6f1611262bb4ee0f17c5 26cd606b2eb6bc2fcef15e1d585ccbae 5807285a |
outputLength |
20 |
counterBits |
32 |
outputLengthBits |
32 |
hashAlgorithm |
SHA-1 |
input |
e46a6b8aa59e92e64f066319962564f87aff921a |
expected |
9334c17d345653ed331e714a17184ac75d9b9908 |
Vector 5 β SP 800-108 Pipeline Mode - HMAC-SHA256, 36 bytes (one group past the first block)
| Field | Value |
|---|---|
label |
ba99b90163142fa41257855bf43d865d |
context |
06849bae8a99c78d89ca12ec321c74b0 f14282ea26f120e837374138aada472c d397f163ec138b36a3a0501ffecccd3a |
outputLength |
36 |
counterBits |
32 |
outputLengthBits |
32 |
hashAlgorithm |
SHA-256 |
input |
5f55c3256b553dc14191bb6bf7a2683d5fb23175674a989f4039979b88afb41a |
expected |
c526b989ccc815bfaabe89f9a88b1ff9 786b95d09ca03fd9235df54edf89ac7b 95d4e0ae |
Vector 6 β SP 800-108 Pipeline Mode - HMAC-SHA256, 48 bytes (two PRF blocks)
| Field | Value |
|---|---|
label |
76088a05cc92d29510c998144c95b9bc |
context |
d8037597ab1b305806983009732e64ac 9ed3a3bdbc6208d6439b2b57138585fb 408619fd882e1253b81055d4025d7831 087f68442d0d88b3b428b5b0b04abb54 |
outputLength |
48 |
counterBits |
32 |
outputLengthBits |
32 |
hashAlgorithm |
SHA-256 |
input |
5b5a55801cbf928335b51b03fa90e663d8f15ec10d1ff37e13d4cae60cc7c4c9 |
expected |
f255ffa7fb16595048ea36da923c358d b664f6ff3f36f76203de596f352f1feb 87084379051f511dd2a58bfaa5ec7ac8 |