Performance measurements › x86_1 › sign-31 · system: x86_1 · arm_1
sign-31 TSUOV — 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
- Category: public-key algorithm; function: digital signature
- Algorithm: TSUOV
- Implementation versions measured: reference
- Parameter sets:
TSUOV_128,TSUOV_256,TSUOV_512 - Security evaluation: sign-31 report
- Measurement method: x86_1 method
- Submission: NICCS page
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-31/kat.sha256 in the harness) before timing.
| instance | build flags | KAT |
|---|---|---|
TSUOV_128 |
guide | PASS |
TSUOV_256 |
guide | PASS |
TSUOV_512 |
guide | PASS |
4. Performance
| instance | operation | mean cycles | mean time | ops/s | median trial | n (trials × iters) |
|---|---|---|---|---|---|---|
TSUOV_128 |
keygen | 10.52 M | 5.02 ms | 199 | 5.02 ms | 995 (5 × 199) |
TSUOV_128 |
sign | 14.54 M | 6.95 ms | 144 | 6.95 ms | 720 (5 × 144) |
TSUOV_128 |
verify | 11.83 M | 5.65 ms | 177 | 5.65 ms | 880 (5 × 176) |
TSUOV_256 |
keygen | 67.40 M | 32.2 ms | 31.1 | 32.2 ms | 160 (5 × 32) |
TSUOV_256 |
sign | 94.37 M | 45.1 ms | 22.2 | 45.1 ms | 115 (5 × 23) |
TSUOV_256 |
verify | 79.44 M | 37.9 ms | 26.4 | 37.9 ms | 135 (5 × 27) |
TSUOV_512 |
keygen | 918.12 M | 441 ms | 2.27 | 439 ms | 100 (5 × 20) |
TSUOV_512 |
sign | 862.97 M | 414 ms | 2.42 | 412 ms | 100 (5 × 20) |
TSUOV_512 |
verify | 898.63 M | 431 ms | 2.32 | 429 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 |
|---|---|---|---|---|
TSUOV_128 |
keygen | 41693 | 1712 KiB | 1792 KiB |
TSUOV_128 |
sign | 41693 | 1720 KiB | 1880 KiB |
TSUOV_128 |
verify | 41693 | 1776 KiB | 1868 KiB |
TSUOV_256 |
keygen | 50789 | 1716 KiB | 1856 KiB |
TSUOV_256 |
sign | 50789 | 1780 KiB | 2028 KiB |
TSUOV_256 |
verify | 50789 | 1900 KiB | 1972 KiB |
TSUOV_512 |
keygen | 166297 | 1728 KiB | 2128 KiB |
TSUOV_512 |
sign | 166297 | 2044 KiB | 2324 KiB |
TSUOV_512 |
verify | 166297 | 2252 KiB | 2384 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 |
|---|---|---|---|
TSUOV_128 |
779 | 32 | 896 |
TSUOV_256 |
2170 | 64 | 2412 |
TSUOV_512 |
21319 | 128 | 2939 |
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 |
|---|---|---|---|---|
TSUOV_128 |
keygen | 77% | 0.1% | drng 2, pseudoXOF 123 |
TSUOV_128 |
sign | 56% | 0.1% | drng 3, pseudoXOF 126, pseudohash 1, sm3hash 1.35 |
TSUOV_128 |
verify | 69% | 0.0% | pseudoXOF 123, pseudohash 1 |
TSUOV_256 |
keygen | 75% | 0.0% | drng 2, pseudoXOF 229 |
TSUOV_256 |
sign | 54% | 0.0% | drng 3, pseudoXOF 234, pseudohash 1, sm3hash 4.17 |
TSUOV_256 |
verify | 64% | 0.0% | pseudoXOF 229, pseudohash 1 |
TSUOV_512 |
keygen | 74% | 0.0% | drng 2, pseudoXOF 437 |
TSUOV_512 |
sign | 79% | 0.0% | drng 3, pseudoXOF 439, pseudohash 1, sm3hash 2 |
TSUOV_512 |
verify | 75% | 0.0% | pseudoXOF 437, 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 |
|---|---|---|
TSUOV_128 |
KAT log (sha256 2cadb0d4c4d3a9ee…) |
kat/sign-31/TSUOV_128.log |
TSUOV_128 |
timing keygen | records/sign-31/TSUOV_128__keygen.json |
TSUOV_128 |
timing sign | records/sign-31/TSUOV_128__sign.json |
TSUOV_128 |
timing verify | records/sign-31/TSUOV_128__verify.json |
TSUOV_128 |
hash profile keygen | profile/sign-31/TSUOV_128__keygen.json |
TSUOV_128 |
hash profile sign | profile/sign-31/TSUOV_128__sign.json |
TSUOV_128 |
hash profile verify | profile/sign-31/TSUOV_128__verify.json |
TSUOV_256 |
KAT log (sha256 d282e795801b7da9…) |
kat/sign-31/TSUOV_256.log |
TSUOV_256 |
timing keygen | records/sign-31/TSUOV_256__keygen.json |
TSUOV_256 |
timing sign | records/sign-31/TSUOV_256__sign.json |
TSUOV_256 |
timing verify | records/sign-31/TSUOV_256__verify.json |
TSUOV_256 |
hash profile keygen | profile/sign-31/TSUOV_256__keygen.json |
TSUOV_256 |
hash profile sign | profile/sign-31/TSUOV_256__sign.json |
TSUOV_256 |
hash profile verify | profile/sign-31/TSUOV_256__verify.json |
TSUOV_512 |
KAT log (sha256 78508e695ef81c4a…) |
kat/sign-31/TSUOV_512.log |
TSUOV_512 |
timing keygen | records/sign-31/TSUOV_512__keygen.json |
TSUOV_512 |
timing sign | records/sign-31/TSUOV_512__sign.json |
TSUOV_512 |
timing verify | records/sign-31/TSUOV_512__verify.json |
TSUOV_512 |
hash profile keygen | profile/sign-31/TSUOV_512__keygen.json |
TSUOV_512 |
hash profile sign | profile/sign-31/TSUOV_512__sign.json |
TSUOV_512 |
hash profile verify | profile/sign-31/TSUOV_512__verify.json |
Scripts: performance/campaign.py, performance/ngcc_perf.c, performance/hashprof/ in the harness.