Performance measurements › arm_1 › sign-30 · system: x86_1 · arm_1

sign-30 TRINE — 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 sign-30/kat.sha256 in the harness) before timing.

instance build flags KAT
TRINE-128-Balanced guide PASS
TRINE-128-ShortSig guide PASS
TRINE-256-Balanced guide PASS
TRINE-256-ShortSig guide PASS
TRINE-512-Balanced harness-default TIMEOUT [1]
TRINE-512-ShortSig guide PASS

[1] KAT TIMEOUT only: the ICCS build buffers the whole signing transcript and hashes it at the end (hundreds of MB per signature at level 512, sign-30/pseudocode.md), so even the reduced KAT runs exceed their time limits on a loaded machine; the other three TRINE instances pass. One-record checks with a 4-hour limit reproduced the first submitted KAT record of all three (PASS; logs in performance/data/x86_1/katcheck/). On arm_1 only TRINE-512-Balanced exceeds its limit; the same one-record check passes there too (performance/data/arm_1/katcheck/). These instances are timed anyway; their output is not validated.

4. Performance

instance operation mean cycles mean time ops/s median trial n (trials × iters)
TRINE-128-Balanced keygen 8.49 M 3.15 ms 318 3.15 ms 965 (5 × 193)
TRINE-128-Balanced sign 31.87 G 11.8 s 0.0846 11.8 s 30 (5 × 6)
TRINE-128-Balanced verify 20.38 G 7.56 s 0.132 7.56 s 50 (5 × 10)
TRINE-128-ShortSig keygen 16.64 M 6.17 ms 162 6.15 ms 495 (5 × 99)
TRINE-128-ShortSig sign 14.43 G 5.36 s 0.187 5.33 s 60 (5 × 12)
TRINE-128-ShortSig verify 7.05 G 2.62 s 0.382 2.61 s 100 (5 × 20)
TRINE-256-Balanced keygen 45.79 M 17 ms 58.8 17 ms 185 (5 × 37)
TRINE-256-Balanced sign 330.30 G 123 s 0.00816 123 s 2 (2 × 1)
TRINE-256-Balanced verify 213.24 G 79.1 s 0.0126 79.1 s 3 (3 × 1)
TRINE-256-ShortSig keygen 111.66 M 41.4 ms 24.1 41.4 ms 100 (5 × 20)
TRINE-256-ShortSig sign 134.44 G 49.9 s 0.02 49.9 s 5 (5 × 1)
TRINE-256-ShortSig verify 50.92 G 18.9 s 0.0529 18.9 s 15 (5 × 3)
TRINE-512-Balanced keygen 862.57 M 320 ms 3.12 321 ms 100 (5 × 20)
TRINE-512-Balanced sign 6234.95 G 2.31e+03 s 0.000432 2.31e+03 s 1 (1 × 1)
TRINE-512-Balanced verify 4120.90 G 1.53e+03 s 0.000654 1.53e+03 s 1 (1 × 1)
TRINE-512-ShortSig keygen 1.85 G 688 ms 1.45 687 ms 100 (5 × 20)
TRINE-512-ShortSig sign 2508.52 G 931 s 0.00107 931 s 1 (1 × 1)
TRINE-512-ShortSig verify 1150.27 G 427 s 0.00234 427 s 1 (1 × 1)

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
TRINE-128-Balanced keygen 49048 1456 KiB 3632 KiB
TRINE-128-Balanced sign 49048 1584 KiB 9580 KiB
TRINE-128-Balanced verify 49048 3060 KiB 8816 KiB
TRINE-128-ShortSig keygen 53848 3480 KiB 3548 KiB
TRINE-128-ShortSig sign 53848 1740 KiB 7884 KiB
TRINE-128-ShortSig verify 53848 3384 KiB 6480 KiB
TRINE-256-Balanced keygen 49488 1548 KiB 4152 KiB
TRINE-256-Balanced sign 49488 2160 KiB 88408 KiB
TRINE-256-Balanced verify 49488 28244 KiB 89068 KiB
TRINE-256-ShortSig keygen 50168 1824 KiB 4892 KiB
TRINE-256-ShortSig sign 50168 4412 KiB 42856 KiB
TRINE-256-ShortSig verify 50168 15496 KiB 43224 KiB
TRINE-512-Balanced keygen 49672 2264 KiB 11188 KiB
TRINE-512-Balanced sign 49672 2476 KiB 1372492 KiB
TRINE-512-Balanced verify 49672 16944 KiB 1374600 KiB
TRINE-512-ShortSig keygen 50720 1468 KiB 18428 KiB
TRINE-512-ShortSig sign 50720 6212 KiB 633708 KiB
TRINE-512-ShortSig verify 50720 11724 KiB 639188 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 signature
TRINE-128-Balanced 16004 32 3156
TRINE-128-ShortSig 63920 32 1652
TRINE-256-Balanced 96064 64 11712
TRINE-256-ShortSig 384064 64 5968
TRINE-512-Balanced 797290 128 46565
TRINE-512-ShortSig 3188776 128 23672

Symmetric primitives

Survey verdict: ICCS-only — with -DUSE_ICCS (SHA3 build selectable)

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
TRINE-128-Balanced keygen 68% 0.1% drng 1, pseudoXOF 29
TRINE-128-Balanced sign 19% 0.0% drng 2, pseudoXOF 1.7e+03, sm3hash 1
TRINE-128-Balanced verify 19% 0.0% pseudoXOF 1.06e+03, sm3hash 1
TRINE-128-ShortSig keygen 40% 0.0% drng 1, pseudoXOF 83
TRINE-128-ShortSig sign 20% 0.0% drng 2, pseudoXOF 772, sm3hash 1
TRINE-128-ShortSig verify 19% 0.0% pseudoXOF 326, sm3hash 1
TRINE-256-Balanced keygen 53% 0.0% drng 1, pseudoXOF 37
TRINE-256-Balanced sign 10% 0.0% drng 2, pseudoXOF 3.54e+03, pseudohash 1
TRINE-256-Balanced verify 10% 0.0% pseudoXOF 2.19e+03, pseudohash 1
TRINE-256-ShortSig keygen 27% 0.0% drng 1, pseudoXOF 109
TRINE-256-ShortSig sign 10% 0.0% drng 2, pseudoXOF 1.58e+03, pseudohash 1
TRINE-256-ShortSig verify 10% 0.0% pseudoXOF 533, pseudohash 1
TRINE-512-Balanced keygen 61% 0.0% drng 1, pseudoXOF 47
TRINE-512-Balanced sign 3.0% 0.0% drng 2, pseudoXOF 7.56e+03, pseudohash 1
TRINE-512-Balanced verify 3.0% 0.0% pseudoXOF 4.6e+03, pseudohash 1
TRINE-512-ShortSig keygen 30% 0.0% drng 1, pseudoXOF 137
TRINE-512-ShortSig sign 3.1% 0.0% drng 2, pseudoXOF 3.31e+03, pseudohash 1
TRINE-512-ShortSig verify 3.1% 0.0% pseudoXOF 1.21e+03, pseudohash 1

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
TRINE-128-Balanced KAT log (sha256 51c2205aeca42e5f…) kat/sign-30/TRINE-128-Balanced.log
TRINE-128-Balanced timing keygen records/sign-30/TRINE-128-Balanced__keygen.json
TRINE-128-Balanced timing sign records/sign-30/TRINE-128-Balanced__sign.json
TRINE-128-Balanced timing verify records/sign-30/TRINE-128-Balanced__verify.json
TRINE-128-Balanced hash profile keygen profile/sign-30/TRINE-128-Balanced__keygen.json
TRINE-128-Balanced hash profile sign profile/sign-30/TRINE-128-Balanced__sign.json
TRINE-128-Balanced hash profile verify profile/sign-30/TRINE-128-Balanced__verify.json
TRINE-128-ShortSig KAT log (sha256 90c834996d3377b2…) kat/sign-30/TRINE-128-ShortSig.log
TRINE-128-ShortSig timing keygen records/sign-30/TRINE-128-ShortSig__keygen.json
TRINE-128-ShortSig timing sign records/sign-30/TRINE-128-ShortSig__sign.json
TRINE-128-ShortSig timing verify records/sign-30/TRINE-128-ShortSig__verify.json
TRINE-128-ShortSig hash profile keygen profile/sign-30/TRINE-128-ShortSig__keygen.json
TRINE-128-ShortSig hash profile sign profile/sign-30/TRINE-128-ShortSig__sign.json
TRINE-128-ShortSig hash profile verify profile/sign-30/TRINE-128-ShortSig__verify.json
TRINE-256-Balanced KAT log (sha256 109e6e055d9448b2…) kat/sign-30/TRINE-256-Balanced.log
TRINE-256-Balanced timing keygen records/sign-30/TRINE-256-Balanced__keygen.json
TRINE-256-Balanced timing sign records/sign-30/TRINE-256-Balanced__sign.json
TRINE-256-Balanced timing verify records/sign-30/TRINE-256-Balanced__verify.json
TRINE-256-Balanced hash profile keygen profile/sign-30/TRINE-256-Balanced__keygen.json
TRINE-256-Balanced hash profile sign profile/sign-30/TRINE-256-Balanced__sign.json
TRINE-256-Balanced hash profile verify profile/sign-30/TRINE-256-Balanced__verify.json
TRINE-256-ShortSig KAT log (sha256 b2e38ee0bf2612d7…) kat/sign-30/TRINE-256-ShortSig.log
TRINE-256-ShortSig timing keygen records/sign-30/TRINE-256-ShortSig__keygen.json
TRINE-256-ShortSig timing sign records/sign-30/TRINE-256-ShortSig__sign.json
TRINE-256-ShortSig timing verify records/sign-30/TRINE-256-ShortSig__verify.json
TRINE-256-ShortSig hash profile keygen profile/sign-30/TRINE-256-ShortSig__keygen.json
TRINE-256-ShortSig hash profile sign profile/sign-30/TRINE-256-ShortSig__sign.json
TRINE-256-ShortSig hash profile verify profile/sign-30/TRINE-256-ShortSig__verify.json
TRINE-512-Balanced KAT log (sha256 3c856110aefec347…) kat/sign-30/TRINE-512-Balanced.log
TRINE-512-Balanced timing keygen records/sign-30/TRINE-512-Balanced__keygen.json
TRINE-512-Balanced timing sign records/sign-30/TRINE-512-Balanced__sign.json
TRINE-512-Balanced timing verify records/sign-30/TRINE-512-Balanced__verify.json
TRINE-512-Balanced hash profile keygen profile/sign-30/TRINE-512-Balanced__keygen.json
TRINE-512-Balanced hash profile sign profile/sign-30/TRINE-512-Balanced__sign.json
TRINE-512-Balanced hash profile verify profile/sign-30/TRINE-512-Balanced__verify.json
TRINE-512-ShortSig KAT log (sha256 017d43d0061955ce…) kat/sign-30/TRINE-512-ShortSig.log
TRINE-512-ShortSig timing keygen records/sign-30/TRINE-512-ShortSig__keygen.json
TRINE-512-ShortSig timing sign records/sign-30/TRINE-512-ShortSig__sign.json
TRINE-512-ShortSig timing verify records/sign-30/TRINE-512-ShortSig__verify.json
TRINE-512-ShortSig hash profile keygen profile/sign-30/TRINE-512-ShortSig__keygen.json
TRINE-512-ShortSig hash profile sign profile/sign-30/TRINE-512-ShortSig__sign.json
TRINE-512-ShortSig hash profile verify profile/sign-30/TRINE-512-ShortSig__verify.json

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