Performance measurements › arm_1 › kem-12 · system: x86_1 · arm_1

kem-12 CTL Algorithm — 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 kem-12/kat.sha256 in the harness) before timing.

instance build flags KAT
CTL-257-512 guide PASS
CTL-769-1024 guide PASS
CTL-3329-2048 guide PASS

4. Performance

instance operation mean cycles mean time ops/s median trial n (trials × iters)
CTL-257-512 keygen 14.17 M 5.26 ms 190 5.26 ms 475 (5 × 95)
CTL-257-512 enc 49.2 k 18.2 µs 5.48e+04 18.2 µs 100000 (5 × 20000)
CTL-257-512 dec 265.8 k 98.6 µs 1.01e+04 98.6 µs 24565 (5 × 4913)
CTL-769-1024 keygen 70.49 M 26.2 ms 38.2 26.2 ms 120 (5 × 24)
CTL-769-1024 enc 87.0 k 32.3 µs 3.1e+04 32.3 µs 59705 (5 × 11941)
CTL-769-1024 dec 539.7 k 200 µs 4.99e+03 200 µs 11860 (5 × 2372)
CTL-3329-2048 keygen 2.82 G 1.05 s 0.954 1.04 s 100 (5 × 20)
CTL-3329-2048 enc 9.01 M 3.34 ms 299 3.34 ms 745 (5 × 149)
CTL-3329-2048 dec 75.43 M 28 ms 35.7 28 ms 100 (5 × 20)

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
CTL-257-512 keygen 348024 1796 KiB 2312 KiB
CTL-257-512 enc 348024 2232 KiB 2296 KiB
CTL-257-512 dec 348024 2240 KiB 2304 KiB
CTL-769-1024 keygen 352504 1804 KiB 2360 KiB
CTL-769-1024 enc 352504 2280 KiB 2344 KiB
CTL-769-1024 dec 352504 2284 KiB 2352 KiB
CTL-3329-2048 keygen 348592 3860 KiB 8236 KiB
CTL-3329-2048 enc 348592 5780 KiB 6232 KiB
CTL-3329-2048 dec 348592 6180 KiB 6244 KiB

6. Transmission and storage overhead

External public-key, ciphertext and signature sizes follow the curated performance/external_sizes.csv catalog; secret-key and shared-secret lengths remain API figures. See the size audit for disagreements.

instance public key secret key ciphertext shared secret
CTL-257-512 521 2953 473 16
CTL-769-1024 1230 6030 1006 32
CTL-3329-2048 3009 15617 2353 48

Symmetric primitives

Survey verdict: ICCS-only — sha3.c shim has no permutation and is unused

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
CTL-257-512 keygen 10% 0.0% drng 1, pseudoXOF 266
CTL-257-512 enc 14% 12% drng 1, pseudoXOF 3
CTL-257-512 dec 7.6% 0.0% pseudoXOF 4
CTL-769-1024 keygen 2.9% 0.0% drng 1, pseudoXOF 342
CTL-769-1024 enc 13% 4.9% drng 1, pseudoXOF 2, sm3hash 1
CTL-769-1024 dec 6.4% 0.0% pseudoXOF 3, sm3hash 1
CTL-3329-2048 keygen 0.1% 0.0% drng 1, pseudoXOF 260
CTL-3329-2048 enc 0.4% 0.1% drng 1, pseudoXOF 3
CTL-3329-2048 dec 0.3% 0.0% pseudoXOF 4

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
CTL-257-512 KAT log (sha256 1898ce8c54d0ab69…) kat/kem-12/CTL-257-512.log
CTL-257-512 timing dec records/kem-12/CTL-257-512__dec.json
CTL-257-512 timing enc records/kem-12/CTL-257-512__enc.json
CTL-257-512 timing keygen records/kem-12/CTL-257-512__keygen.json
CTL-257-512 hash profile dec profile/kem-12/CTL-257-512__dec.json
CTL-257-512 hash profile enc profile/kem-12/CTL-257-512__enc.json
CTL-257-512 hash profile keygen profile/kem-12/CTL-257-512__keygen.json
CTL-769-1024 KAT log (sha256 e3752c5c8a065cce…) kat/kem-12/CTL-769-1024.log
CTL-769-1024 timing dec records/kem-12/CTL-769-1024__dec.json
CTL-769-1024 timing enc records/kem-12/CTL-769-1024__enc.json
CTL-769-1024 timing keygen records/kem-12/CTL-769-1024__keygen.json
CTL-769-1024 hash profile dec profile/kem-12/CTL-769-1024__dec.json
CTL-769-1024 hash profile enc profile/kem-12/CTL-769-1024__enc.json
CTL-769-1024 hash profile keygen profile/kem-12/CTL-769-1024__keygen.json
CTL-3329-2048 KAT log (sha256 568dfa032b2af9b2…) kat/kem-12/CTL-3329-2048.log
CTL-3329-2048 timing dec records/kem-12/CTL-3329-2048__dec.json
CTL-3329-2048 timing enc records/kem-12/CTL-3329-2048__enc.json
CTL-3329-2048 timing keygen records/kem-12/CTL-3329-2048__keygen.json
CTL-3329-2048 hash profile dec profile/kem-12/CTL-3329-2048__dec.json
CTL-3329-2048 hash profile enc profile/kem-12/CTL-3329-2048__enc.json
CTL-3329-2048 hash profile keygen profile/kem-12/CTL-3329-2048__keygen.json

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