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

sign-30 TRINE — performance on x86-64 (system x86_1)

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

1. Basic information

2. Assessment environment

item value
processor 12th Gen Intel(R) Core(TM) i7-12700 (CPU 2, one core)
clock max 2.10 GHz, governor performance, turbo off, SMT off
memory 31788 MiB
OS / kernel Debian GNU/Linux 13 (trixie) / 6.12.107+deb13-amd64
compiler / build tool gcc (Debian 14.2.0-19) 14.2.0 / cmake version 3.31.6
campaign start / end (UTC) 2026-09-25T10:02:21 / 2026-09-28T10:51:21

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 harness-default TIMEOUT [1]
TRINE-256-ShortSig guide PASS
TRINE-512-Balanced harness-default TIMEOUT [1]
TRINE-512-ShortSig harness-default TIMEOUT [1]

[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 9.54 M 4.56 ms 219 4.56 ms 1070 (5 × 214)
TRINE-128-Balanced sign 39.46 G 18.9 s 0.0528 18.9 s 45 (5 × 9)
TRINE-128-Balanced verify 25.46 G 12.2 s 0.0819 12.2 s 70 (5 × 14)
TRINE-128-ShortSig keygen 19.87 M 9.49 ms 105 9.49 ms 520 (5 × 104)
TRINE-128-ShortSig sign 18.23 G 8.74 s 0.114 8.74 s 95 (5 × 19)
TRINE-128-ShortSig verify 8.77 G 4.21 s 0.238 4.21 s 100 (5 × 20)
TRINE-256-Balanced keygen 56.62 M 27.1 ms 36.9 27.1 ms 185 (5 × 37)
TRINE-256-Balanced sign 534.99 G 256 s 0.00391 247 s 3 (3 × 1)
TRINE-256-Balanced verify 329.94 G 158 s 0.00635 158 s 5 (5 × 1)
TRINE-256-ShortSig keygen 125.49 M 60.4 ms 16.5 60.4 ms 100 (5 × 20)
TRINE-256-ShortSig sign 158.21 G 75.9 s 0.0132 75.9 s 10 (5 × 2)
TRINE-256-ShortSig verify 58.42 G 28 s 0.0357 28 s 30 (5 × 6)
TRINE-512-Balanced keygen 991.87 M 475 ms 2.1 475 ms 100 (5 × 20)
TRINE-512-Balanced sign 8385.08 G 4e+03 s 0.00025 4e+03 s 1 (1 × 1)
TRINE-512-Balanced verify 5525.78 G 2.64e+03 s 0.000379 2.64e+03 s 1 (1 × 1)
TRINE-512-ShortSig keygen 2.25 G 1.08 s 0.926 1.08 s 100 (5 × 20)
TRINE-512-ShortSig sign 3367.79 G 1.61e+03 s 0.000622 1.61e+03 s 1 (1 × 1)
TRINE-512-ShortSig verify 1560.87 G 745 s 0.00134 745 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 50845 1712 KiB 1968 KiB
TRINE-128-Balanced sign 50845 1852 KiB 8584 KiB
TRINE-128-Balanced verify 50845 2828 KiB 7232 KiB
TRINE-128-ShortSig keygen 51205 1772 KiB 2080 KiB
TRINE-128-ShortSig sign 51205 2004 KiB 6624 KiB
TRINE-128-ShortSig verify 51205 2080 KiB 5208 KiB
TRINE-256-Balanced keygen – 1844 KiB 2412 KiB
TRINE-256-Balanced sign – 2196 KiB 87828 KiB
TRINE-256-Balanced verify – 27624 KiB 87436 KiB
TRINE-256-ShortSig keygen 53829 1744 KiB 3372 KiB
TRINE-256-ShortSig sign 53829 2372 KiB 41740 KiB
TRINE-256-ShortSig verify 53829 13284 KiB 41268 KiB
TRINE-512-Balanced keygen – 1760 KiB 9640 KiB
TRINE-512-Balanced sign – 2764 KiB 1370616 KiB
TRINE-512-Balanced verify – 15008 KiB 1374708 KiB
TRINE-512-ShortSig keygen – 1724 KiB 17352 KiB
TRINE-512-ShortSig sign – 5088 KiB 633364 KiB
TRINE-512-ShortSig verify – 9992 KiB 637392 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 64% 0.1% drng 1, pseudoXOF 29
TRINE-128-Balanced sign 16% 0.0% drng 2, pseudoXOF 1.7e+03, sm3hash 1
TRINE-128-Balanced verify 16% 0.0% pseudoXOF 1.06e+03, sm3hash 1
TRINE-128-ShortSig keygen 35% 0.0% drng 1, pseudoXOF 83
TRINE-128-ShortSig sign 16% 0.0% drng 2, pseudoXOF 775, sm3hash 1
TRINE-128-ShortSig verify 16% 0.0% pseudoXOF 326, sm3hash 1
TRINE-256-Balanced keygen 46% 0.0% drng 1, pseudoXOF 37
TRINE-256-Balanced sign 7.1% 0.0% drng 2, pseudoXOF 3.54e+03, pseudohash 1
TRINE-256-Balanced verify 6.8% 0.0% pseudoXOF 2.19e+03, pseudohash 1
TRINE-256-ShortSig keygen 25% 0.0% drng 1, pseudoXOF 109
TRINE-256-ShortSig sign 9.2% 0.0% drng 2, pseudoXOF 1.54e+03, pseudohash 1
TRINE-256-ShortSig verify 8.8% 0.0% pseudoXOF 533, pseudohash 1
TRINE-512-Balanced keygen 57% 0.0% drng 1, pseudoXOF 47
TRINE-512-Balanced sign 2.5% 0.0% drng 2, pseudoXOF 7.56e+03, pseudohash 1
TRINE-512-Balanced verify 2.5% 0.0% pseudoXOF 4.6e+03, pseudohash 1
TRINE-512-ShortSig keygen 27% 0.0% drng 1, pseudoXOF 137
TRINE-512-ShortSig sign 2.5% 0.0% drng 2, pseudoXOF 3.31e+03, pseudohash 1
TRINE-512-ShortSig verify 2.5% 0.0% pseudoXOF 1.21e+03, pseudohash 1

7. Raw evidence index

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

instance item file
TRINE-128-Balanced KAT log (sha256 de04dec3db84fdb9…) 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 441f4563c576ff3b…) 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 8a9d645ae0473cbe…) 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 e5f2432da30f4a9f…) 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 bfa4cfcf64503204…) 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 3db85609c95c76ac…) 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.