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

sign-12 Galas Signature Scheme — 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-12/kat.sha256 in the harness) before timing.

instance build flags KAT
Galas-160F harness-default MISMATCH [1]
Galas-160S harness-default MISMATCH [1]
Galas-256F harness-default MISMATCH [1]
Galas-256S harness-default MISMATCH [1]
Galas-384F harness-default MISMATCH [1]
Galas-384S harness-default MISMATCH [1]
Galas-512F harness-default MISMATCH [1]
Galas-512S harness-default MISMATCH [1]

[1] API deviation: sig_keygen does not draw from drng_algorithm but seeds a private DRNG from 32 zero bytes (or from a seed set by a non-API helper used only by the submitters' own KAT generator), so the official KAT flow yields different keys; with keygen drawing from the DRNG the first KAT records reproduce exactly (sign-12/Makefile). Galas-512S additionally exceeds the 900 s KAT time limit. Timed anyway; note that key generation always produces the same key pair. 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)
Galas-160F keygen 17.40 M 6.45 ms 155 6.46 ms 485 (5 × 97)
Galas-160F sign 1.58 G 585 ms 1.71 589 ms 100 (5 × 20)
Galas-160F verify 968.28 M 359 ms 2.78 360 ms 100 (5 × 20)
Galas-160S keygen 17.39 M 6.45 ms 155 6.46 ms 490 (5 × 98)
Galas-160S sign 2.04 G 758 ms 1.32 758 ms 100 (5 × 20)
Galas-160S verify 1.40 G 519 ms 1.92 519 ms 100 (5 × 20)
Galas-256F keygen 45.48 M 16.9 ms 59.3 16.9 ms 190 (5 × 38)
Galas-256F sign 6.53 G 2.42 s 0.413 2.44 s 100 (5 × 20)
Galas-256F verify 3.90 G 1.45 s 0.692 1.47 s 100 (5 × 20)
Galas-256S keygen 45.24 M 16.8 ms 59.6 16.9 ms 190 (5 × 38)
Galas-256S sign 10.48 G 3.89 s 0.257 3.89 s 80 (5 × 16)
Galas-256S verify 7.81 G 2.9 s 0.345 2.9 s 100 (5 × 20)
Galas-384F keygen 106.98 M 39.7 ms 25.2 39.7 ms 100 (5 × 20)
Galas-384F sign 24.98 G 9.27 s 0.108 9.27 s 30 (5 × 6)
Galas-384F verify 14.31 G 5.31 s 0.188 5.31 s 65 (5 × 13)
Galas-384S keygen 107.01 M 39.7 ms 25.2 39.7 ms 100 (5 × 20)
Galas-384S sign 33.17 G 12.3 s 0.0813 12.3 s 25 (5 × 5)
Galas-384S verify 22.25 G 8.26 s 0.121 8.26 s 40 (5 × 8)
Galas-512F keygen 195.39 M 72.5 ms 13.8 73 ms 100 (5 × 20)
Galas-512F sign 66.84 G 24.8 s 0.0403 25 s 10 (5 × 2)
Galas-512F verify 35.30 G 13.1 s 0.0763 13.1 s 30 (5 × 6)
Galas-512S keygen 196.94 M 73.1 ms 13.7 73.1 ms 100 (5 × 20)
Galas-512S sign 83.19 G 30.9 s 0.0324 30.8 s 10 (5 × 2)
Galas-512S verify 50.62 G 18.8 s 0.0532 18.8 s 15 (5 × 3)

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
Galas-160F keygen 590452 3620 KiB 3684 KiB
Galas-160F sign 590452 1592 KiB 7388 KiB
Galas-160F verify 590452 6844 KiB 7192 KiB
Galas-160S keygen 590452 1592 KiB 1656 KiB
Galas-160S sign 590452 1592 KiB 9596 KiB
Galas-160S verify 590452 7992 KiB 9512 KiB
Galas-256F keygen 590452 1600 KiB 1728 KiB
Galas-256F sign 590452 1664 KiB 13848 KiB
Galas-256F verify 590452 13444 KiB 14012 KiB
Galas-256S keygen 590452 1596 KiB 1724 KiB
Galas-256S sign 590452 1660 KiB 26608 KiB
Galas-256S verify 590452 12280 KiB 26264 KiB
Galas-384F keygen 590452 1620 KiB 1876 KiB
Galas-384F sign 590452 1812 KiB 38896 KiB
Galas-384F verify 590452 35064 KiB 38068 KiB
Galas-384S keygen 590452 1612 KiB 1868 KiB
Galas-384S sign 590452 1804 KiB 64592 KiB
Galas-384S verify 590452 36452 KiB 64100 KiB
Galas-512F keygen 590452 1644 KiB 2028 KiB
Galas-512F sign 590452 1964 KiB 84780 KiB
Galas-512F verify 590452 78904 KiB 83928 KiB
Galas-512S keygen 590452 1632 KiB 2020 KiB
Galas-512S sign 590452 1956 KiB 134496 KiB
Galas-512S verify 590452 80608 KiB 134100 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
Galas-160F 40 40 5964
Galas-160S 40 40 4812
Galas-256F 64 64 15950
Galas-256S 64 64 12114
Galas-384F 96 96 33384
Galas-384S 96 96 27784
Galas-512F 128 128 59416
Galas-512S 128 128 49516

Symmetric primitives

Survey verdict: ICCS-only

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
Galas-160F keygen 0.0% 0.1% drng 6
Galas-160F sign 4.7% 0.0% pseudoXOF 3.69e+04, pseudohash 102
Galas-160F verify 7.5% 0.0% pseudoXOF 3.65e+04, pseudohash 28
Galas-160S keygen 0.0% 0.1% drng 6
Galas-160S sign 25% 0.0% pseudoXOF 2.49e+05, pseudohash 1.85e+03
Galas-160S verify 34% 0.0% pseudoXOF 2.49e+05, pseudohash 22
Galas-256F keygen 0.0% 0.1% drng 6
Galas-256F sign 3.6% 0.0% pseudoXOF 6.18e+04, pseudohash 297
Galas-256F verify 5.7% 0.0% pseudoXOF 6.11e+04, pseudohash 44
Galas-256S keygen 0.0% 0.1% drng 6
Galas-256S sign 38% 0.0% pseudoXOF 1.12e+06, pseudohash 5.65e+03
Galas-256S verify 50% 0.0% pseudoXOF 1.12e+06, pseudohash 30
Galas-384F keygen 0.0% 0.0% drng 6
Galas-384F sign 3.2% 0.0% pseudoXOF 2.3e+05, pseudohash 266
Galas-384F verify 5.8% 0.0% pseudoXOF 2.29e+05, pseudohash 57
Galas-384S keygen 0.0% 0.0% drng 6
Galas-384S sign 25% 0.0% pseudoXOF 2.38e+06, pseudohash 3.04e+03
Galas-384S verify 39% 0.0% pseudoXOF 2.37e+06, pseudohash 41
Galas-512F keygen 0.0% 0.0% drng 6
Galas-512F sign 2.3% 0.0% pseudoXOF 4.22e+05, pseudohash 178
Galas-512F verify 4.4% 0.0% pseudoXOF 4.19e+05, pseudohash 73
Galas-512S keygen 0.0% 0.0% drng 6
Galas-512S sign 21% 0.0% pseudoXOF 4.64e+06, pseudohash 3.29e+03
Galas-512S verify 34% 0.0% pseudoXOF 4.64e+06, pseudohash 51

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
Galas-160F KAT log (sha256 ce820a23f0eb5a0a…) kat/sign-12/Galas-160F.log
Galas-160F timing keygen records/sign-12/Galas-160F__keygen.json
Galas-160F timing sign records/sign-12/Galas-160F__sign.json
Galas-160F timing verify records/sign-12/Galas-160F__verify.json
Galas-160F hash profile keygen profile/sign-12/Galas-160F__keygen.json
Galas-160F hash profile sign profile/sign-12/Galas-160F__sign.json
Galas-160F hash profile verify profile/sign-12/Galas-160F__verify.json
Galas-160S KAT log (sha256 fe7595055ff70d19…) kat/sign-12/Galas-160S.log
Galas-160S timing keygen records/sign-12/Galas-160S__keygen.json
Galas-160S timing sign records/sign-12/Galas-160S__sign.json
Galas-160S timing verify records/sign-12/Galas-160S__verify.json
Galas-160S hash profile keygen profile/sign-12/Galas-160S__keygen.json
Galas-160S hash profile sign profile/sign-12/Galas-160S__sign.json
Galas-160S hash profile verify profile/sign-12/Galas-160S__verify.json
Galas-256F KAT log (sha256 047d8cb9dbadb4c6…) kat/sign-12/Galas-256F.log
Galas-256F timing keygen records/sign-12/Galas-256F__keygen.json
Galas-256F timing sign records/sign-12/Galas-256F__sign.json
Galas-256F timing verify records/sign-12/Galas-256F__verify.json
Galas-256F hash profile keygen profile/sign-12/Galas-256F__keygen.json
Galas-256F hash profile sign profile/sign-12/Galas-256F__sign.json
Galas-256F hash profile verify profile/sign-12/Galas-256F__verify.json
Galas-256S KAT log (sha256 5b3011221b86b9b0…) kat/sign-12/Galas-256S.log
Galas-256S timing keygen records/sign-12/Galas-256S__keygen.json
Galas-256S timing sign records/sign-12/Galas-256S__sign.json
Galas-256S timing verify records/sign-12/Galas-256S__verify.json
Galas-256S hash profile keygen profile/sign-12/Galas-256S__keygen.json
Galas-256S hash profile sign profile/sign-12/Galas-256S__sign.json
Galas-256S hash profile verify profile/sign-12/Galas-256S__verify.json
Galas-384F KAT log (sha256 119f01db3d3f3732…) kat/sign-12/Galas-384F.log
Galas-384F timing keygen records/sign-12/Galas-384F__keygen.json
Galas-384F timing sign records/sign-12/Galas-384F__sign.json
Galas-384F timing verify records/sign-12/Galas-384F__verify.json
Galas-384F hash profile keygen profile/sign-12/Galas-384F__keygen.json
Galas-384F hash profile sign profile/sign-12/Galas-384F__sign.json
Galas-384F hash profile verify profile/sign-12/Galas-384F__verify.json
Galas-384S KAT log (sha256 2d1a95e4e5f779f3…) kat/sign-12/Galas-384S.log
Galas-384S timing keygen records/sign-12/Galas-384S__keygen.json
Galas-384S timing sign records/sign-12/Galas-384S__sign.json
Galas-384S timing verify records/sign-12/Galas-384S__verify.json
Galas-384S hash profile keygen profile/sign-12/Galas-384S__keygen.json
Galas-384S hash profile sign profile/sign-12/Galas-384S__sign.json
Galas-384S hash profile verify profile/sign-12/Galas-384S__verify.json
Galas-512F KAT log (sha256 046f335400853e85…) kat/sign-12/Galas-512F.log
Galas-512F timing keygen records/sign-12/Galas-512F__keygen.json
Galas-512F timing sign records/sign-12/Galas-512F__sign.json
Galas-512F timing verify records/sign-12/Galas-512F__verify.json
Galas-512F hash profile keygen profile/sign-12/Galas-512F__keygen.json
Galas-512F hash profile sign profile/sign-12/Galas-512F__sign.json
Galas-512F hash profile verify profile/sign-12/Galas-512F__verify.json
Galas-512S KAT log (sha256 6fee394bdc94afbe…) kat/sign-12/Galas-512S.log
Galas-512S timing keygen records/sign-12/Galas-512S__keygen.json
Galas-512S timing sign records/sign-12/Galas-512S__sign.json
Galas-512S timing verify records/sign-12/Galas-512S__verify.json
Galas-512S hash profile keygen profile/sign-12/Galas-512S__keygen.json
Galas-512S hash profile sign profile/sign-12/Galas-512S__sign.json
Galas-512S hash profile verify profile/sign-12/Galas-512S__verify.json

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