Performance measurements › arm_1 › kex-06 · system: x86_1 · arm_1

kex-06 MAMBA-NIKE — performance on AArch64 (system arm_1)

Independent measurement following the structure of the NICCS ARM self-assessment guide, §3.5 (1)–(7). Not a submitter self-assessment.

1. Basic information

2. Assessment environment

item value
processor Qualcomm Oryon (CPU 2, one core)
machine ASUS Vivobook S 15
clock fixed 2.71 GHz (governor performance, minimum = maximum), boost off, SMT none
memory 30562 MiB
OS / kernel Ubuntu 26.04.1 LTS / 7.0.0-34-generic
compiler / build tool gcc (Ubuntu 15.2.0-16ubuntu1) 15.2.0 / cmake version 4.2.3
campaign start / end (UTC) 2026-09-28T15:05:46 / 2026-09-29T08:43:52

3. Functional testing (KAT)

Each library was checked against the submitted KAT vectors (SHA-256 manifest kex-06/kat.sha256 in the harness) before timing.

instance build flags KAT
MAMBA-NIKE-128 guide PASS
MAMBA-NIKE-192 guide PASS
MAMBA-NIKE-256 guide PASS
MAMBA-NIKE-384 guide PASS
MAMBA-NIKE-512 guide PASS

4. Performance

instance operation mean cycles mean time ops/s median trial n (trials × iters)
MAMBA-NIKE-128 exchange 6.83 M 2.53 ms 394 2.53 ms 1245 (5 × 249)
MAMBA-NIKE-128 init_a 1.36 M 503 µs 1.99e+03 503 µs 1245 (5 × 249)
MAMBA-NIKE-128 init_b 1.35 M 514 µs 1.94e+03 503 µs 1245 (5 × 249)
MAMBA-NIKE-128 pass1 2.74 M 1.02 ms 985 1.02 ms 1245 (5 × 249)
MAMBA-NIKE-128 derive_a 4340 1.55 µs 6.45e+05 1.55 µs 1245 (5 × 249)
MAMBA-NIKE-128 derive_b 1.38 M 510 µs 1.96e+03 510 µs 1245 (5 × 249)
MAMBA-NIKE-192 exchange 6.85 M 2.54 ms 394 2.54 ms 1240 (5 × 248)
MAMBA-NIKE-192 init_a 1.36 M 505 µs 1.98e+03 505 µs 1240 (5 × 248)
MAMBA-NIKE-192 init_b 1.36 M 505 µs 1.98e+03 505 µs 1240 (5 × 248)
MAMBA-NIKE-192 pass1 2.75 M 1.02 ms 981 1.02 ms 1240 (5 × 248)
MAMBA-NIKE-192 derive_a 4325 1.56 µs 6.39e+05 1.57 µs 1240 (5 × 248)
MAMBA-NIKE-192 derive_b 1.38 M 511 µs 1.96e+03 510 µs 1240 (5 × 248)
MAMBA-NIKE-256 exchange 6.90 M 2.56 ms 390 2.56 ms 1225 (5 × 245)
MAMBA-NIKE-256 init_a 1.38 M 512 µs 1.95e+03 512 µs 1225 (5 × 245)
MAMBA-NIKE-256 init_b 1.38 M 517 µs 1.93e+03 512 µs 1225 (5 × 245)
MAMBA-NIKE-256 pass1 2.77 M 1.03 ms 974 1.03 ms 1225 (5 × 245)
MAMBA-NIKE-256 derive_a 4335 1.56 µs 6.4e+05 1.56 µs 1225 (5 × 245)
MAMBA-NIKE-256 derive_b 1.38 M 511 µs 1.96e+03 510 µs 1225 (5 × 245)
MAMBA-NIKE-384 exchange 14.48 M 5.4 ms 185 5.38 ms 585 (5 × 117)
MAMBA-NIKE-384 init_a 2.87 M 1.07 ms 934 1.07 ms 585 (5 × 117)
MAMBA-NIKE-384 init_b 2.87 M 1.07 ms 934 1.07 ms 585 (5 × 117)
MAMBA-NIKE-384 pass1 5.81 M 2.16 ms 464 2.16 ms 585 (5 × 117)
MAMBA-NIKE-384 derive_a 8567 3.11 µs 3.21e+05 3.12 µs 585 (5 × 117)
MAMBA-NIKE-384 derive_b 2.92 M 1.1 ms 913 1.09 ms 585 (5 × 117)
MAMBA-NIKE-512 exchange 14.56 M 5.49 ms 182 5.55 ms 570 (5 × 114)
MAMBA-NIKE-512 init_a 2.90 M 1.08 ms 930 1.08 ms 570 (5 × 114)
MAMBA-NIKE-512 init_b 2.90 M 1.08 ms 929 1.08 ms 570 (5 × 114)
MAMBA-NIKE-512 pass1 5.84 M 2.17 ms 462 2.17 ms 570 (5 × 114)
MAMBA-NIKE-512 derive_a 8579 3.12 µs 3.2e+05 3.12 µs 570 (5 × 114)
MAMBA-NIKE-512 derive_b 2.92 M 1.09 ms 917 1.09 ms 570 (5 × 114)

5. Resource consumption

Static memory is approximated by the library's loadable ELF segments; peak memory is the process high-water mark (VmHWM) including the benchmark driver and libc, so both are upper-bound proxies rather than isolated algorithm memory.

instance operation static: ELF image (bytes) baseline RSS peak RSS
MAMBA-NIKE-128 exchange 36856 3520 KiB 3584 KiB
MAMBA-NIKE-128 init_a 36856 1764 KiB 1832 KiB
MAMBA-NIKE-128 init_b 36856 1764 KiB 3844 KiB
MAMBA-NIKE-128 pass1 36856 3528 KiB 3592 KiB
MAMBA-NIKE-128 derive_a 36856 1764 KiB 1832 KiB
MAMBA-NIKE-128 derive_b 36856 3520 KiB 3584 KiB
MAMBA-NIKE-192 exchange 36816 3620 KiB 3684 KiB
MAMBA-NIKE-192 init_a 36816 1764 KiB 1832 KiB
MAMBA-NIKE-192 init_b 36816 3668 KiB 3732 KiB
MAMBA-NIKE-192 pass1 36816 3504 KiB 3568 KiB
MAMBA-NIKE-192 derive_a 36816 1764 KiB 1832 KiB
MAMBA-NIKE-192 derive_b 36816 3520 KiB 3584 KiB
MAMBA-NIKE-256 exchange 36816 1764 KiB 1832 KiB
MAMBA-NIKE-256 init_a 36816 3628 KiB 3692 KiB
MAMBA-NIKE-256 init_b 36816 1764 KiB 3868 KiB
MAMBA-NIKE-256 pass1 36816 1764 KiB 1832 KiB
MAMBA-NIKE-256 derive_a 36816 1764 KiB 1832 KiB
MAMBA-NIKE-256 derive_b 36816 3656 KiB 3720 KiB
MAMBA-NIKE-384 exchange 40880 2116 KiB 4096 KiB
MAMBA-NIKE-384 init_a 40880 3644 KiB 3796 KiB
MAMBA-NIKE-384 init_b 40880 2112 KiB 3912 KiB
MAMBA-NIKE-384 pass1 40880 2116 KiB 2188 KiB
MAMBA-NIKE-384 derive_a 40880 2116 KiB 4076 KiB
MAMBA-NIKE-384 derive_b 40880 2116 KiB 4072 KiB
MAMBA-NIKE-512 exchange 40880 2112 KiB 4000 KiB
MAMBA-NIKE-512 init_a 40880 3724 KiB 3788 KiB
MAMBA-NIKE-512 init_b 40880 2116 KiB 2188 KiB
MAMBA-NIKE-512 pass1 40880 2116 KiB 2188 KiB
MAMBA-NIKE-512 derive_a 40880 2116 KiB 4156 KiB
MAMBA-NIKE-512 derive_b 40880 2112 KiB 4168 KiB

6. Transmission and storage overhead

Bandwidth counts all specified protocol messages and each required public key once. Public keys are transmitted bytes too. Certificates and transport framing are excluded. The published raw timing records are unchanged.

Only the responder's long-term public key is required; this exchange does not authenticate the initiator as a mutually authenticated protocol would.

instance passes messages (bytes; raw API) protocol-message bytes public key A / B bandwidth (bytes) long-term sk (API cap) shared secret
MAMBA-NIKE-128 1 1568 1568 0 / 1184 2752 3232 32
MAMBA-NIKE-192 1 1568 1568 0 / 1312 2880 3360 32
MAMBA-NIKE-256 1 1568 1568 0 / 1312 2880 3360 32
MAMBA-NIKE-384 1 3360 3360 0 / 2848 6208 6944 48
MAMBA-NIKE-512 1 3360 3360 0 / 2848 6208 6944 64

Symmetric primitives

Survey verdict: bypass — SHAKE128/256 + ChaCha20; DRNG only with -DKAT_BUILD, otherwise /dev/urandom

Share of each operation spent in the ICCS placeholder hash functions and in the ICCS DRNG (reference build, measured in the same run with link-time wrappers):

instance operation pseudohash/XOF/sm3 DRNG calls per operation
MAMBA-NIKE-128 exchange 0.0% 0.4% drng 6
MAMBA-NIKE-192 exchange 0.0% 0.4% drng 6
MAMBA-NIKE-256 exchange 0.0% 0.4% drng 6
MAMBA-NIKE-384 exchange 0.0% 0.2% drng 6
MAMBA-NIKE-512 exchange 0.0% 0.2% drng 6

7. Raw evidence index

Paths are relative to performance/data/arm_1/ in the harness; each JSON file records its commands, environment and trials.

instance item file
MAMBA-NIKE-128 KAT log (sha256 e8e1294b89f3dc9d…) kat/kex-06/MAMBA-NIKE-128.log
MAMBA-NIKE-128 timing derive_a records/kex-06/MAMBA-NIKE-128__derive_a.json
MAMBA-NIKE-128 timing derive_b records/kex-06/MAMBA-NIKE-128__derive_b.json
MAMBA-NIKE-128 timing exchange records/kex-06/MAMBA-NIKE-128__exchange.json
MAMBA-NIKE-128 timing init_a records/kex-06/MAMBA-NIKE-128__init_a.json
MAMBA-NIKE-128 timing init_b records/kex-06/MAMBA-NIKE-128__init_b.json
MAMBA-NIKE-128 timing pass1 records/kex-06/MAMBA-NIKE-128__pass1.json
MAMBA-NIKE-128 hash profile exchange profile/kex-06/MAMBA-NIKE-128__exchange.json
MAMBA-NIKE-192 KAT log (sha256 4893aa52bd3d2c2e…) kat/kex-06/MAMBA-NIKE-192.log
MAMBA-NIKE-192 timing derive_a records/kex-06/MAMBA-NIKE-192__derive_a.json
MAMBA-NIKE-192 timing derive_b records/kex-06/MAMBA-NIKE-192__derive_b.json
MAMBA-NIKE-192 timing exchange records/kex-06/MAMBA-NIKE-192__exchange.json
MAMBA-NIKE-192 timing init_a records/kex-06/MAMBA-NIKE-192__init_a.json
MAMBA-NIKE-192 timing init_b records/kex-06/MAMBA-NIKE-192__init_b.json
MAMBA-NIKE-192 timing pass1 records/kex-06/MAMBA-NIKE-192__pass1.json
MAMBA-NIKE-192 hash profile exchange profile/kex-06/MAMBA-NIKE-192__exchange.json
MAMBA-NIKE-256 KAT log (sha256 8c4070e20021de1c…) kat/kex-06/MAMBA-NIKE-256.log
MAMBA-NIKE-256 timing derive_a records/kex-06/MAMBA-NIKE-256__derive_a.json
MAMBA-NIKE-256 timing derive_b records/kex-06/MAMBA-NIKE-256__derive_b.json
MAMBA-NIKE-256 timing exchange records/kex-06/MAMBA-NIKE-256__exchange.json
MAMBA-NIKE-256 timing init_a records/kex-06/MAMBA-NIKE-256__init_a.json
MAMBA-NIKE-256 timing init_b records/kex-06/MAMBA-NIKE-256__init_b.json
MAMBA-NIKE-256 timing pass1 records/kex-06/MAMBA-NIKE-256__pass1.json
MAMBA-NIKE-256 hash profile exchange profile/kex-06/MAMBA-NIKE-256__exchange.json
MAMBA-NIKE-384 KAT log (sha256 bf883e0a813b9569…) kat/kex-06/MAMBA-NIKE-384.log
MAMBA-NIKE-384 timing derive_a records/kex-06/MAMBA-NIKE-384__derive_a.json
MAMBA-NIKE-384 timing derive_b records/kex-06/MAMBA-NIKE-384__derive_b.json
MAMBA-NIKE-384 timing exchange records/kex-06/MAMBA-NIKE-384__exchange.json
MAMBA-NIKE-384 timing init_a records/kex-06/MAMBA-NIKE-384__init_a.json
MAMBA-NIKE-384 timing init_b records/kex-06/MAMBA-NIKE-384__init_b.json
MAMBA-NIKE-384 timing pass1 records/kex-06/MAMBA-NIKE-384__pass1.json
MAMBA-NIKE-384 hash profile exchange profile/kex-06/MAMBA-NIKE-384__exchange.json
MAMBA-NIKE-512 KAT log (sha256 f6fd1a56cbfb5a0b…) kat/kex-06/MAMBA-NIKE-512.log
MAMBA-NIKE-512 timing derive_a records/kex-06/MAMBA-NIKE-512__derive_a.json
MAMBA-NIKE-512 timing derive_b records/kex-06/MAMBA-NIKE-512__derive_b.json
MAMBA-NIKE-512 timing exchange records/kex-06/MAMBA-NIKE-512__exchange.json
MAMBA-NIKE-512 timing init_a records/kex-06/MAMBA-NIKE-512__init_a.json
MAMBA-NIKE-512 timing init_b records/kex-06/MAMBA-NIKE-512__init_b.json
MAMBA-NIKE-512 timing pass1 records/kex-06/MAMBA-NIKE-512__pass1.json
MAMBA-NIKE-512 hash profile exchange profile/kex-06/MAMBA-NIKE-512__exchange.json

Scripts: performance/campaign.py, performance/ngcc_perf.c, performance/hashprof/ in the harness.