1{2 "experiment": "signature_benchmarks",3 "timestamp_utc": "2026-11-01T05:49:56+00:00",4 "command": "experiments/signature_benchmarks/run_bench.py --no-build --seed 34 --label Laptop (Apple M5 Max)",5 "cwd": "/Users/simon-pierreboucher/Desktop/UQO/Recherche/Recherche-UQO/mathematiques/beyond-square-root-barrier",6 "seed": 34,7 "host": {8 "hostname": "MacBookPro-de-simon-pierre-2.local",9 "os": "Darwin 27.0.0 (27.0)",10 "machine": "arm64",11 "python": "3.12.13",12 "cpu": "Apple M5 Max",13 "cores": 18,14 "ram_gb": 48.015 },16 "software": {17 "numpy": "2.5.4",18 "scipy": "1.18.1",19 "sympy": "1.14.0",20 "gmpy2": "2.3.2",21 "z3": "5.3.3",22 "pysat": "1.9.dev17",23 "ecdsa": "0.19.2",24 "coincurve": "21.0.0"25 },26 "params": {27 "seed": 34,28 "reps": 7,29 "batch_ops": 2000,30 "batch_min_sigs": 2000,31 "batch_sizes": [32 1,33 2,34 4,35 8,36 16,37 32,38 64,39 128,40 256,41 512,42 1024,43 204844 ],45 "crosscheck_n": 1000,46 "python_crosscheck_n": 200,47 "bootstrap": 2000,48 "python_ops": 20,49 "rust_command": "/Users/simon-pierreboucher/Desktop/UQO/Recherche/Recherche-UQO/mathematiques/beyond-square-root-barrier/experiments/signature_benchmarks/sigbench/target/release/sigbench --seed 34 --reps 7 --batch-ops 2000 --batch-min-sigs 2000 --batch-sizes 1,2,4,8,16,32,64,128,256,512,1024,2048 --crosscheck-n 1000 --python-crosscheck-n 200 --bootstrap 2000 --vectors /Users/simon-pierreboucher/Desktop/UQO/Recherche/Recherche-UQO/mathematiques/beyond-square-root-barrier/data/vectors/bip340_test_vectors.csv --crosscheck-out /Users/simon-pierreboucher/Desktop/UQO/Recherche/Recherche-UQO/mathematiques/beyond-square-root-barrier/results/signature_benchmarks/crosscheck_triples_MacBookPro-de-simon-pierre-2.json"50 },51 "measurements": {52 "correctness_gates": {53 "bip340_vectors_both_libraries": true,54 "cross_library_1000": true,55 "python_reference_200": true,56 "own_scalar_mult_agrees_with_k256": true,57 "batch_negative_controls_rejected": true,58 "all": true59 },60 "bip340_vectors": {61 "both_all_pass": true,62 "file": "/Users/simon-pierreboucher/Desktop/UQO/Recherche/Recherche-UQO/mathematiques/beyond-square-root-barrier/data/vectors/bip340_test_vectors.csv",63 "k256": {64 "all_pass": true,65 "details": [66 {67 "comment": "",68 "expected": true,69 "index": 0,70 "sign_checked": true,71 "sign_ok": true,72 "verify_ok": true73 },74 {75 "comment": "",76 "expected": true,77 "index": 1,78 "sign_checked": true,79 "sign_ok": true,80 "verify_ok": true81 },82 {83 "comment": "",84 "expected": true,85 "index": 2,86 "sign_checked": true,87 "sign_ok": true,88 "verify_ok": true89 },90 {91 "comment": "test fails if msg is reduced modulo p or n",92 "expected": true,93 "index": 3,94 "sign_checked": true,95 "sign_ok": true,96 "verify_ok": true97 },98 {99 "comment": "",100 "expected": true,101 "index": 4,102 "sign_checked": false,103 "sign_ok": null,104 "verify_ok": true105 },106 {107 "comment": "public key not on the curve",108 "expected": false,109 "index": 5,110 "sign_checked": false,111 "sign_ok": null,112 "verify_ok": true113 },114 {115 "comment": "has_even_y(R) is false",116 "expected": false,117 "index": 6,118 "sign_checked": false,119 "sign_ok": null,120 "verify_ok": true121 },122 {123 "comment": "negated message",124 "expected": false,125 "index": 7,126 "sign_checked": false,127 "sign_ok": null,128 "verify_ok": true129 },130 {131 "comment": "negated s value",132 "expected": false,133 "index": 8,134 "sign_checked": false,135 "sign_ok": null,136 "verify_ok": true137 },138 {139 "comment": "sG - eP is infinite. Test fails in single verification if has_even_y(inf) is defined as true and x(inf) as 0",140 "expected": false,141 "index": 9,142 "sign_checked": false,143 "sign_ok": null,144 "verify_ok": true145 },146 {147 "comment": "sG - eP is infinite. Test fails in single verification if has_even_y(inf) is defined as true and x(inf) as 1",148 "expected": false,149 "index": 10,150 "sign_checked": false,151 "sign_ok": null,152 "verify_ok": true153 },154 {155 "comment": "sig[0:32] is not an X coordinate on the curve",156 "expected": false,157 "index": 11,158 "sign_checked": false,159 "sign_ok": null,160 "verify_ok": true161 },162 {163 "comment": "sig[0:32] is equal to field size",164 "expected": false,165 "index": 12,166 "sign_checked": false,167 "sign_ok": null,168 "verify_ok": true169 },170 {171 "comment": "sig[32:64] is equal to curve order",172 "expected": false,173 "index": 13,174 "sign_checked": false,175 "sign_ok": null,176 "verify_ok": true177 },178 {179 "comment": "public key is not a valid X coordinate because it exceeds the field size",180 "expected": false,181 "index": 14,182 "sign_checked": false,183 "sign_ok": null,184 "verify_ok": true185 },186 {187 "comment": "message of size 0 (added 2022-12)",188 "expected": true,189 "index": 15,190 "sign_checked": true,191 "sign_ok": true,192 "verify_ok": true193 },194 {195 "comment": "message of size 1 (added 2022-12)",196 "expected": true,197 "index": 16,198 "sign_checked": true,199 "sign_ok": true,200 "verify_ok": true201 },202 {203 "comment": "message of size 17 (added 2022-12)",204 "expected": true,205 "index": 17,206 "sign_checked": true,207 "sign_ok": true,208 "verify_ok": true209 },210 {211 "comment": "message of size 100 (added 2022-12)",212 "expected": true,213 "index": 18,214 "sign_checked": true,215 "sign_ok": true,216 "verify_ok": true217 }218 ],219 "library": "k256 (RustCrypto)",220 "n_vectors": 19,221 "sign_cases": 8,222 "sign_pass": 8,223 "verify_pass": 19224 },225 "libsecp256k1": {226 "all_pass": true,227 "details": [228 {229 "comment": "",230 "expected": true,231 "index": 0,232 "sign_checked": true,233 "sign_ok": true,234 "verify_ok": true235 },236 {237 "comment": "",238 "expected": true,239 "index": 1,240 "sign_checked": true,241 "sign_ok": true,242 "verify_ok": true243 },244 {245 "comment": "",246 "expected": true,247 "index": 2,248 "sign_checked": true,249 "sign_ok": true,250 "verify_ok": true251 },252 {253 "comment": "test fails if msg is reduced modulo p or n",254 "expected": true,255 "index": 3,256 "sign_checked": true,257 "sign_ok": true,258 "verify_ok": true259 },260 {261 "comment": "",262 "expected": true,263 "index": 4,264 "sign_checked": false,265 "sign_ok": null,266 "verify_ok": true267 },268 {269 "comment": "public key not on the curve",270 "expected": false,271 "index": 5,272 "sign_checked": false,273 "sign_ok": null,274 "verify_ok": true275 },276 {277 "comment": "has_even_y(R) is false",278 "expected": false,279 "index": 6,280 "sign_checked": false,281 "sign_ok": null,282 "verify_ok": true283 },284 {285 "comment": "negated message",286 "expected": false,287 "index": 7,288 "sign_checked": false,289 "sign_ok": null,290 "verify_ok": true291 },292 {293 "comment": "negated s value",294 "expected": false,295 "index": 8,296 "sign_checked": false,297 "sign_ok": null,298 "verify_ok": true299 },300 {301 "comment": "sG - eP is infinite. Test fails in single verification if has_even_y(inf) is defined as true and x(inf) as 0",302 "expected": false,303 "index": 9,304 "sign_checked": false,305 "sign_ok": null,306 "verify_ok": true307 },308 {309 "comment": "sG - eP is infinite. Test fails in single verification if has_even_y(inf) is defined as true and x(inf) as 1",310 "expected": false,311 "index": 10,312 "sign_checked": false,313 "sign_ok": null,314 "verify_ok": true315 },316 {317 "comment": "sig[0:32] is not an X coordinate on the curve",318 "expected": false,319 "index": 11,320 "sign_checked": false,321 "sign_ok": null,322 "verify_ok": true323 },324 {325 "comment": "sig[0:32] is equal to field size",326 "expected": false,327 "index": 12,328 "sign_checked": false,329 "sign_ok": null,330 "verify_ok": true331 },332 {333 "comment": "sig[32:64] is equal to curve order",334 "expected": false,335 "index": 13,336 "sign_checked": false,337 "sign_ok": null,338 "verify_ok": true339 },340 {341 "comment": "public key is not a valid X coordinate because it exceeds the field size",342 "expected": false,343 "index": 14,344 "sign_checked": false,345 "sign_ok": null,346 "verify_ok": true347 },348 {349 "comment": "message of size 0 (added 2022-12)",350 "expected": true,351 "index": 15,352 "sign_checked": true,353 "sign_ok": true,354 "verify_ok": true355 },356 {357 "comment": "message of size 1 (added 2022-12)",358 "expected": true,359 "index": 16,360 "sign_checked": true,361 "sign_ok": true,362 "verify_ok": true363 },364 {365 "comment": "message of size 17 (added 2022-12)",366 "expected": true,367 "index": 17,368 "sign_checked": true,369 "sign_ok": true,370 "verify_ok": true371 },372 {373 "comment": "message of size 100 (added 2022-12)",374 "expected": true,375 "index": 18,376 "sign_checked": true,377 "sign_ok": true,378 "verify_ok": true379 }380 ],381 "library": "libsecp256k1 (rust-secp256k1)",382 "n_vectors": 19,383 "sign_cases": 8,384 "sign_pass": 8,385 "verify_pass": 19386 },387 "n_vectors": 19388 },389 "cross_library_checks": {390 "all_pass": true,391 "ecdsa_k256_sign_libsecp_verify_pass": 1000,392 "ecdsa_libsecp_sign_k256_verify_pass": 1000,393 "ecdsa_signatures_byte_identical": 1000,394 "n": 1000,395 "schnorr_k256_sign_libsecp_verify_pass": 1000,396 "schnorr_libsecp_sign_k256_verify_pass": 1000,397 "schnorr_signatures_byte_identical": 1000398 },399 "python_reference_crosscheck": {400 "n": 200,401 "source": "/Users/simon-pierreboucher/Desktop/UQO/Recherche/Recherche-UQO/mathematiques/beyond-square-root-barrier/results/signature_benchmarks/crosscheck_triples_MacBookPro-de-simon-pierre-2.json",402 "ecdsa_k256_sig_verified_by_python": 200,403 "ecdsa_libsecp_sig_verified_by_python": 200,404 "ecdsa_python_resign_identical": 200,405 "schnorr_k256_sig_verified_by_python": 200,406 "schnorr_libsecp_sig_verified_by_python": 200,407 "schnorr_python_resign_identical": 200,408 "tampered_sig_rejected_by_python": 200,409 "elapsed_s": 11.27,410 "resign_checked": true,411 "all_pass": true412 },413 "sign_verify": {414 "ecdsa_sign_k256": {415 "iqr_ns": 304.8125,416 "mean_ns": 15284.860142857144,417 "median_ns": 15267.4375,418 "min_ns": 15064.0625,419 "ns_per_op_samples": [420 15743.146,421 15066.979,422 15087.896,423 15064.0625,424 15334.375,425 15430.125,426 15267.4375427 ],428 "ops_per_rep": 2000,429 "ops_per_s": 65498.87628490374,430 "q1_ns": 15077.4375,431 "q3_ns": 15382.25,432 "reps": 7,433 "sd_ns": 247.9589146798846434 },435 "ecdsa_sign_libsecp256k1": {436 "iqr_ns": 16.53074999999808,437 "mean_ns": 23624.657714285713,438 "median_ns": 23630.833,439 "min_ns": 23605.9795,440 "ns_per_op_samples": [441 23635.979,442 23631.604,443 23605.9795,444 23634.833,445 23616.4585,446 23630.833,447 23616.917448 ],449 "ops_per_rep": 2000,450 "ops_per_s": 42317.594136440304,451 "q1_ns": 23616.68775,452 "q3_ns": 23633.2185,453 "reps": 7,454 "sd_ns": 11.504451674087065455 },456 "ecdsa_verify_k256": {457 "iqr_ns": 503.8962500000016,458 "mean_ns": 24928.16671428571,459 "median_ns": 25012.0835,460 "min_ns": 24629.3125,461 "ns_per_op_samples": [462 24629.3125,463 25012.0835,464 25263.0625,465 25127.417,466 24655.729,467 24636.729,468 25172.8335469 ],470 "ops_per_rep": 2000,471 "ops_per_s": 39980.67574018773,472 "q1_ns": 24646.229,473 "q3_ns": 25150.12525,474 "reps": 7,475 "sd_ns": 279.0554955178958476 },477 "ecdsa_verify_libsecp256k1": {478 "iqr_ns": 88.03099999999904,479 "mean_ns": 12607.327357142856,480 "median_ns": 12615.604,481 "min_ns": 12460.521,482 "ns_per_op_samples": [483 12771.9375,484 12615.604,485 12660.5,486 12562.8125,487 12629.1455,488 12460.521,489 12550.771490 ],491 "ops_per_rep": 2000,492 "ops_per_s": 79266.9142119553,493 "q1_ns": 12556.79175,494 "q3_ns": 12644.82275,495 "reps": 7,496 "sd_ns": 97.63935664121043497 },498 "schnorr_sign_k256": {499 "iqr_ns": 198.40599999999904,500 "mean_ns": 11589.74107142857,501 "median_ns": 11569.0835,502 "min_ns": 11451.0625,503 "ns_per_op_samples": [504 11724.208,505 11460.4585,506 11473.25,507 11843.8125,508 11569.0835,509 11606.3125,510 11451.0625511 ],512 "ops_per_rep": 2000,513 "ops_per_s": 86437.27050634564,514 "q1_ns": 11466.85425,515 "q3_ns": 11665.26025,516 "reps": 7,517 "sd_ns": 148.8012614021435518 },519 "schnorr_sign_libsecp256k1": {520 "iqr_ns": 381.5829999999987,521 "mean_ns": 20523.824285714283,522 "median_ns": 20548.1875,523 "min_ns": 20246.0205,524 "ns_per_op_samples": [525 20275.1875,526 20256.5,527 20246.0205,528 20548.1875,529 21046.021,530 20634.208,531 20660.6455532 ],533 "ops_per_rep": 2000,534 "ops_per_s": 48666.092812322255,535 "q1_ns": 20265.84375,536 "q3_ns": 20647.42675,537 "reps": 7,538 "sd_ns": 292.8722850149957539 },540 "schnorr_verify_k256": {541 "iqr_ns": 716.9579999999987,542 "mean_ns": 24617.791714285715,543 "median_ns": 24486.6875,544 "min_ns": 24107.1045,545 "ns_per_op_samples": [546 24330.7915,547 25160.667,548 25005.6455,549 24996.354,550 24486.6875,551 24237.292,552 24107.1045553 ],554 "ops_per_rep": 2000,555 "ops_per_s": 40838.51684716441,556 "q1_ns": 24284.04175,557 "q3_ns": 25000.99975,558 "reps": 7,559 "sd_ns": 426.9255283433374560 },561 "schnorr_verify_libsecp256k1": {562 "iqr_ns": 116.33324999999968,563 "mean_ns": 13187.339285714286,564 "median_ns": 13197.0415,565 "min_ns": 13020.3545,566 "ns_per_op_samples": [567 13243.1045,568 13124.9585,569 13274.208,570 13020.3545,571 13197.0415,572 13159.6875,573 13292.0205574 ],575 "ops_per_rep": 2000,576 "ops_per_s": 75774.55901764044,577 "q1_ns": 13142.323,578 "q3_ns": 13258.65625,579 "reps": 7,580 "sd_ns": 95.0860352276898581 }582 },583 "scalar_mult": {584 "glv_note": "k256: every constant-time multiplication goes through lincomb(), which always applies the GLV decomposition (no public feature toggle); the vartime path uses GLV + wNAF-5; the only non-GLV reference is our own wNAF-5 double-and-add above. libsecp256k1: the GLV endomorphism has been unconditional since v0.1 (USE_ENDOMORPHISM removed) and ecmult is not exposed by rust-secp256k1's public API; mul_tweak maps to secp256k1_ec_pubkey_tweak_mul (constant-time ecmult_const) and from_secret_key to ecmult_gen (precomputed generator table).",585 "k256_generator_mul_ct_glv": {586 "iqr_ns": 6.63550000000032,587 "mean_ns": 16414.24692857143,588 "median_ns": 16409.729,589 "min_ns": 16409.375,590 "ns_per_op_samples": [591 16409.375,592 16429.4375,593 16409.458,594 16409.5,595 16419.6665,596 16412.5625,597 16409.729598 ],599 "ops_per_rep": 2000,600 "ops_per_s": 60939.45853706664,601 "q1_ns": 16409.479,602 "q3_ns": 16416.1145,603 "reps": 7,604 "sd_ns": 7.665692496596951605 },606 "k256_mul_by_generator_precomputed_table": {607 "iqr_ns": 338.90625,608 "mean_ns": 8261.479214285715,609 "median_ns": 8293.0625,610 "min_ns": 7994.396,611 "ns_per_op_samples": [612 8293.0625,613 8606.5835,614 8386.3125,615 8420.75,616 8029.4375,617 7994.396,618 8099.8125619 ],620 "ops_per_rep": 2000,621 "ops_per_s": 120582.71597494894,622 "q1_ns": 8064.625,623 "q3_ns": 8403.53125,624 "reps": 7,625 "sd_ns": 228.1658502745058626 },627 "k256_mul_by_generator_vartime_table": {628 "iqr_ns": 316.4375,629 "mean_ns": 6602.491071428572,630 "median_ns": 6577.479,631 "min_ns": 6422.6455,632 "ns_per_op_samples": [633 6611.146,634 6577.479,635 6428.0835,636 6423.8125,637 6422.6455,638 6880.646,639 6873.625640 ],641 "ops_per_rep": 2000,642 "ops_per_s": 152033.93275752,643 "q1_ns": 6425.948,644 "q3_ns": 6742.3855,645 "reps": 7,646 "sd_ns": 202.59678569295977647 },648 "k256_point_mul_ct_glv": {649 "iqr_ns": 248.96875,650 "mean_ns": 17254.71121428571,651 "median_ns": 17153.25,652 "min_ns": 16850.646,653 "ns_per_op_samples": [654 16850.646,655 17905.354,656 17073.0625,657 17454.9165,658 17230.9165,659 17153.25,660 17114.833661 ],662 "ops_per_rep": 2000,663 "ops_per_s": 58297.990176788655,664 "q1_ns": 17093.94775,665 "q3_ns": 17342.9165,666 "reps": 7,667 "sd_ns": 339.1434369828955668 },669 "k256_point_mul_vartime_glv_wnaf": {670 "iqr_ns": 196.0,671 "mean_ns": 13868.470214285713,672 "median_ns": 13955.729,673 "min_ns": 13498.625,674 "ns_per_op_samples": [675 14025.625,676 13895.271,677 13955.729,678 13967.125,679 14031.4375,680 13705.479,681 13498.625682 ],683 "ops_per_rep": 2000,684 "ops_per_s": 71655.16040043483,685 "q1_ns": 13800.375,686 "q3_ns": 13996.375,687 "reps": 7,688 "sd_ns": 196.92330397641646689 },690 "libsecp256k1_generator_mul_ecmult_gen": {691 "iqr_ns": 208.21875,692 "mean_ns": 19722.449285714283,693 "median_ns": 19804.583,694 "min_ns": 19531.0415,695 "ns_per_op_samples": [696 19531.0415,697 19580.5625,698 19646.354,699 19851.25,700 19809.229,701 19804.583,702 19834.125703 ],704 "ops_per_rep": 2000,705 "ops_per_s": 50493.36307661717,706 "q1_ns": 19613.45825,707 "q3_ns": 19821.677,708 "reps": 7,709 "sd_ns": 132.85145081125296710 },711 "libsecp256k1_point_mul_tweak_ecmult_const": {712 "iqr_ns": 111.74974999999904,713 "mean_ns": 11528.723214285714,714 "median_ns": 11468.0835,715 "min_ns": 11425.875,716 "ns_per_op_samples": [717 11635.4165,718 11811.0625,719 11451.4375,720 11434.8335,721 11474.354,722 11468.0835,723 11425.875724 ],725 "ops_per_rep": 2000,726 "ops_per_s": 87198.52798420939,727 "q1_ns": 11443.1355,728 "q3_ns": 11554.88525,729 "reps": 7,730 "sd_ns": 143.23537223042376731 },732 "own_wnaf5_agrees_with_k256_64_cases": true,733 "own_wnaf5_point_mul_no_glv": {734 "iqr_ns": 256.1875,735 "mean_ns": 21225.032642857142,736 "median_ns": 21122.021,737 "min_ns": 20927.8955,738 "ns_per_op_samples": [739 21647.479,740 21092.104,741 20927.8955,742 21122.021,743 21322.4375,744 21372.6665,745 21090.625746 ],747 "op_counts_example": {748 "adds": 52,749 "doublings": 257,750 "identity_adds": 1,751 "mixed_adds": 0752 },753 "ops_per_rep": 2000,754 "ops_per_s": 47343.954444510775,755 "q1_ns": 21091.3645,756 "q3_ns": 21347.552,757 "reps": 7,758 "sd_ns": 239.57660758542949759 }760 },761 "batch_verification": {762 "equation": "sum_i a_i s_i G = sum_i a_i R_i + sum_i a_i e_i P_i, a_1 = 1, a_i uniform 128-bit from ChaCha20(seed); R_i = lift_x(r_i), P_i = lift_x(pk_i); merged into one MSM with 2b+1 terms whose result must be the identity",763 "msm_algorithms": {764 "k256_lincomb_ct": "k256 0.14 library: constant-time GLV + radix-16 fixed-window interleaving (benchmarked up to ct_lincomb_max_batch)",765 "k256_lincomb_vartime": "k256 0.14 library: GLV decomposition + wNAF-5 multiscalar (wnaf crate), variable time",766 "pippenger": "own implementation: bucket method with c-bit windows (c = pippenger_window(2b+1)), mixed additions into buckets, running-sum trick",767 "straus_wnaf5": "own implementation: interleaved Straus with width-5 wNAF recoding, per-term odd-multiple tables (1 dbl + 7 adds), projective additions"768 },769 "negative_controls": {770 "all_invalid_batches_rejected": true,771 "batch_size": 64,772 "cases": {773 "r_plus_one": {774 "k256_lincomb_ct": true,775 "k256_lincomb_vartime": true,776 "pippenger": true,777 "straus_wnaf5": true,778 "unmodified_batch_accepted": true779 },780 "s_plus_one": {781 "k256_lincomb_ct": true,782 "k256_lincomb_vartime": true,783 "pippenger": true,784 "straus_wnaf5": true,785 "unmodified_batch_accepted": true786 },787 "wrong_message": {788 "k256_lincomb_ct": true,789 "k256_lincomb_vartime": true,790 "pippenger": true,791 "straus_wnaf5": true,792 "unmodified_batch_accepted": true793 }794 }795 },796 "results": [797 {798 "algorithm": "straus_wnaf5",799 "batch_size": 1,800 "msm_only_ns_per_sig_median": 27251.2275,801 "msm_only_ns_per_sig_samples": [802 27680.5905,803 27248.0795,804 27251.2275,805 27441.3385,806 27224.7355,807 27624.9845,808 27247.457809 ],810 "n_batches_per_rep": 2000,811 "n_terms": 3,812 "op_counts_per_batch": {813 "adds": 107,814 "doublings": 259,815 "identity_adds": 1,816 "mixed_adds": 0817 },818 "op_counts_per_signature": {819 "adds": 107.0,820 "doublings": 259.0,821 "mixed_adds": 0.0,822 "total": 366.0823 },824 "per_signature": {825 "iqr_ns": 326.28099999999904,826 "mean_ns": 30507.928499999998,827 "median_ns": 30351.3125,828 "min_ns": 30322.5,829 "ns_per_op_samples": [830 30837.292,831 30348.4165,832 30351.3125,833 30575.208,834 30322.5,835 30773.2705,836 30347.5837 ],838 "ops_per_rep": 2000,839 "ops_per_s": 32947.50432950799,840 "q1_ns": 30347.95825,841 "q3_ns": 30674.23925,842 "reps": 7,843 "sd_ns": 221.17372698137854844 },845 "sigs_per_rep": 2000,846 "speedup_vs_k256_single_verify": {847 "bootstrap_resamples": 2000,848 "ci95_high": 0.8239528536645611,849 "ci95_low": 0.7906469187277316,850 "point": 0.8067752424215592851 },852 "speedup_vs_libsecp256k1_single_verify": {853 "bootstrap_resamples": 2000,854 "ci95_high": 0.4373937599017728,855 "ci95_low": 0.4276336991870916,856 "point": 0.4348095819579466857 },858 "window_bits": 5859 },860 {861 "algorithm": "pippenger",862 "batch_size": 1,863 "msm_only_ns_per_sig_median": 88626.9345,864 "msm_only_ns_per_sig_samples": [865 89859.5965,866 89077.3015,867 88865.7205,868 87142.452,869 86287.388,870 86582.1635,871 88626.9345872 ],873 "n_batches_per_rep": 2000,874 "n_terms": 3,875 "op_counts_per_batch": {876 "adds": 630,877 "doublings": 255,878 "identity_adds": 234,879 "mixed_adds": 154880 },881 "op_counts_per_signature": {882 "adds": 630.0,883 "doublings": 255.0,884 "mixed_adds": 154.0,885 "total": 1039.0886 },887 "per_signature": {888 "iqr_ns": 2179.083249999996,889 "mean_ns": 91279.25600000001,890 "median_ns": 91869.8125,891 "min_ns": 89442.8125,892 "ns_per_op_samples": [893 93140.9585,894 92328.2915,895 92101.396,896 90324.8125,897 89442.8125,898 89746.7085,899 91869.8125900 ],901 "ops_per_rep": 2000,902 "ops_per_s": 10884.968334946803,903 "q1_ns": 90035.7605,904 "q3_ns": 92214.84375,905 "reps": 7,906 "sd_ns": 1427.3093451899567907 },908 "sigs_per_rep": 2000,909 "speedup_vs_k256_single_verify": {910 "bootstrap_resamples": 2000,911 "ci95_high": 0.2785211225880223,912 "ci95_low": 0.2628992431938523,913 "point": 0.2665368180652377914 },915 "speedup_vs_libsecp256k1_single_verify": {916 "bootstrap_resamples": 2000,917 "ci95_high": 0.14756089355633584,918 "ci95_low": 0.14218346808187507,919 "point": 0.14364937884247886920 },921 "window_bits": 3922 },923 {924 "algorithm": "k256_lincomb_vartime",925 "batch_size": 1,926 "msm_only_ns_per_sig_median": 22011.5455,927 "msm_only_ns_per_sig_samples": [928 22011.5455,929 21803.892,930 21790.2325,931 22094.897,932 22056.5555,933 22018.8555,934 21992.209935 ],936 "n_batches_per_rep": 2000,937 "n_terms": 3,938 "op_counts_per_batch": {939 "adds": 0,940 "doublings": 0,941 "identity_adds": 0,942 "mixed_adds": 0943 },944 "op_counts_per_signature": {945 "adds": 0.0,946 "doublings": 0.0,947 "mixed_adds": 0.0,948 "total": 0.0949 },950 "per_signature": {951 "iqr_ns": 160.41675000000032,952 "mean_ns": 25085.595142857142,953 "median_ns": 25136.854,954 "min_ns": 24882.104,955 "ns_per_op_samples": [956 25136.854,957 24901.0625,958 24882.104,959 25232.0415,960 25189.396,961 25145.104,962 25112.604963 ],964 "ops_per_rep": 2000,965 "ops_per_s": 39782.22573119134,966 "q1_ns": 25006.83325,967 "q3_ns": 25167.25,968 "reps": 7,969 "sd_ns": 138.1908992682207970 },971 "sigs_per_rep": 2000,972 "speedup_vs_k256_single_verify": {973 "bootstrap_resamples": 2000,974 "ci95_high": 1.0038268045791219,975 "ci95_low": 0.9638970671984495,976 "point": 0.9741349295341414977 },978 "speedup_vs_libsecp256k1_single_verify": {979 "bootstrap_resamples": 2000,980 "ci95_high": 0.5318288928434278,981 "ci95_low": 0.5219687498608079,982 "point": 0.5250076839369983 },984 "window_bits": 0985 },986 {987 "algorithm": "k256_lincomb_ct",988 "batch_size": 1,989 "msm_only_ns_per_sig_median": 35306.3995,990 "msm_only_ns_per_sig_samples": [991 35710.54,992 35067.621,993 35191.772,994 35618.7335,995 34949.98,996 36050.416,997 35306.3995998 ],999 "n_batches_per_rep": 2000,1000 "n_terms": 3,1001 "op_counts_per_batch": {1002 "adds": 0,1003 "doublings": 0,1004 "identity_adds": 0,1005 "mixed_adds": 01006 },1007 "op_counts_per_signature": {1008 "adds": 0.0,1009 "doublings": 0.0,1010 "mixed_adds": 0.0,1011 "total": 0.01012 },1013 "per_signature": {1014 "iqr_ns": 579.8545000000013,1015 "mean_ns": 38591.381,1016 "median_ns": 38468.8125,1017 "min_ns": 38089.292,1018 "ns_per_op_samples": [1019 38914.3125,1020 38213.5205,1021 38355.3125,1022 38814.2295,1023 38089.292,1024 39284.1875,1025 38468.81251026 ],1027 "ops_per_rep": 2000,1028 "ops_per_s": 25995.08367979906,1029 "q1_ns": 38284.4165,1030 "q3_ns": 38864.271,1031 "reps": 7,1032 "sd_ns": 428.08689720517031033 },1034 "sigs_per_rep": 2000,1035 "speedup_vs_k256_single_verify": {1036 "bootstrap_resamples": 2000,1037 "ci95_high": 0.6541232964913557,1038 "ci95_low": 0.6244434660232017,1039 "point": 0.63653349060358951040 },1041 "speedup_vs_libsecp256k1_single_verify": {1042 "bootstrap_resamples": 2000,1043 "ci95_high": 0.3465554685023067,1044 "ci95_low": 0.33814811395393024,1045 "point": 0.343058198118280871046 },1047 "window_bits": 01048 },1049 {1050 "algorithm": "straus_wnaf5",1051 "batch_size": 2,1052 "msm_only_ns_per_sig_median": 18207.731,1053 "msm_only_ns_per_sig_samples": [1054 17927.763,1055 18207.731,1056 18313.5365,1057 18298.3275,1058 17917.3565,1059 19653.395,1060 18084.18051061 ],1062 "n_batches_per_rep": 1000,1063 "n_terms": 5,1064 "op_counts_per_batch": {1065 "adds": 187,1066 "doublings": 261,1067 "identity_adds": 1,1068 "mixed_adds": 01069 },1070 "op_counts_per_signature": {1071 "adds": 93.5,1072 "doublings": 130.5,1073 "mixed_adds": 0.0,1074 "total": 224.01075 },1076 "per_signature": {1077 "iqr_ns": 350.09375,1078 "mean_ns": 21492.455285714288,1079 "median_ns": 21329.2085,1080 "min_ns": 20996.646,1081 "ns_per_op_samples": [1082 21001.9375,1083 21329.2085,1084 21454.875,1085 21440.3955,1086 20996.646,1087 23030.979,1088 21193.14551089 ],1090 "ops_per_rep": 2000,1091 "ops_per_s": 46884.06510724484,1092 "q1_ns": 21097.5415,1093 "q3_ns": 21447.63525,1094 "reps": 7,1095 "sd_ns": 704.01800703242271096 },1097 "sigs_per_rep": 2000,1098 "speedup_vs_k256_single_verify": {1099 "bootstrap_resamples": 2000,1100 "ci95_high": 1.1901927619773176,1101 "ci95_low": 1.1296869359527846,1102 "point": 1.14803545101075821103 },1104 "speedup_vs_libsecp256k1_single_verify": {1105 "bootstrap_resamples": 2000,1106 "ci95_high": 0.6305658466034384,1107 "ci95_low": 0.611747143714424,1108 "point": 0.6187309529090121109 },1110 "window_bits": 51111 },1112 {1113 "algorithm": "pippenger",1114 "batch_size": 2,1115 "msm_only_ns_per_sig_median": 55311.5885,1116 "msm_only_ns_per_sig_samples": [1117 55182.61,1118 55129.7245,1119 55763.123,1120 56691.914,1121 55466.805,1122 55275.806,1123 55311.58851124 ],1125 "n_batches_per_rep": 1000,1126 "n_terms": 5,1127 "op_counts_per_batch": {1128 "adds": 766,1129 "doublings": 255,1130 "identity_adds": 296,1131 "mixed_adds": 2541132 },1133 "op_counts_per_signature": {1134 "adds": 383.0,1135 "doublings": 127.5,1136 "mixed_adds": 127.0,1137 "total": 637.51138 },1139 "per_signature": {1140 "iqr_ns": 411.6877499999973,1141 "mean_ns": 58686.08921428571,1142 "median_ns": 58441.25,1143 "min_ns": 58247.3545,1144 "ns_per_op_samples": [1145 58298.6455,1146 58247.3545,1147 58916.3125,1148 59899.2705,1149 58602.75,1150 58397.0415,1151 58441.251152 ],1153 "ops_per_rep": 2000,1154 "ops_per_s": 17111.201420229718,1155 "q1_ns": 58347.8435,1156 "q3_ns": 58759.53125,1157 "reps": 7,1158 "sd_ns": 579.92134828424881159 },1160 "sigs_per_rep": 2000,1161 "speedup_vs_k256_single_verify": {1162 "bootstrap_resamples": 2000,1163 "ci95_high": 0.428763889548686,1164 "ci95_low": 0.41297206949263837,1165 "point": 0.418996641926721261166 },1167 "speedup_vs_libsecp256k1_single_verify": {1168 "bootstrap_resamples": 2000,1169 "ci95_high": 0.2273095975247308,1170 "ci95_low": 0.22279390841229438,1171 "point": 0.22581723525763051172 },1173 "window_bits": 31174 },1175 {1176 "algorithm": "k256_lincomb_vartime",1177 "batch_size": 2,1178 "msm_only_ns_per_sig_median": 16485.7545,1179 "msm_only_ns_per_sig_samples": [1180 16535.5915,1181 16473.7425,1182 16485.7545,1183 16476.593,1184 17325.2845,1185 16478.729,1186 16511.66251187 ],1188 "n_batches_per_rep": 1000,1189 "n_terms": 5,1190 "op_counts_per_batch": {1191 "adds": 0,1192 "doublings": 0,1193 "identity_adds": 0,1194 "mixed_adds": 01195 },1196 "op_counts_per_signature": {1197 "adds": 0.0,1198 "doublings": 0.0,1199 "mixed_adds": 0.0,1200 "total": 0.01201 },1202 "per_signature": {1203 "iqr_ns": 44.92725000000064,1204 "mean_ns": 19710.461285714286,1205 "median_ns": 19563.6875,1206 "min_ns": 19545.9165,1207 "ns_per_op_samples": [1208 19613.75,1209 19545.9165,1210 19555.229,1211 19563.6875,1212 20568.0625,1213 19547.625,1214 19578.95851215 ],1216 "ops_per_rep": 2000,1217 "ops_per_s": 51115.108028586124,1218 "q1_ns": 19551.427,1219 "q3_ns": 19596.35425,1220 "reps": 7,1221 "sd_ns": 378.89227742007551222 },1223 "sigs_per_rep": 2000,1224 "speedup_vs_k256_single_verify": {1225 "bootstrap_resamples": 2000,1226 "ci95_high": 1.2787412281543153,1227 "ci95_low": 1.2357296284494297,1228 "point": 1.25163967682472951229 },1230 "speedup_vs_libsecp256k1_single_verify": {1231 "bootstrap_resamples": 2000,1232 "ci95_high": 0.6788060625626016,1233 "ci95_low": 0.6691712956471864,1234 "point": 0.67456820193023431235 },1236 "window_bits": 01237 },1238 {1239 "algorithm": "k256_lincomb_ct",1240 "batch_size": 2,1241 "msm_only_ns_per_sig_median": 26563.9235,1242 "msm_only_ns_per_sig_samples": [1243 28305.747,1244 26491.5025,1245 27363.853,1246 26427.541,1247 26484.4295,1248 26563.9235,1249 26856.671250 ],1251 "n_batches_per_rep": 1000,1252 "n_terms": 5,1253 "op_counts_per_batch": {1254 "adds": 0,1255 "doublings": 0,1256 "identity_adds": 0,1257 "mixed_adds": 01258 },1259 "op_counts_per_signature": {1260 "adds": 0.0,1261 "doublings": 0.0,1262 "mixed_adds": 0.0,1263 "total": 0.01264 },1265 "per_signature": {1266 "iqr_ns": 692.3644999999997,1267 "mean_ns": 30075.303714285717,1268 "median_ns": 29666.7085,1269 "min_ns": 29516.1045,1270 "ns_per_op_samples": [1271 31621.375,1272 29587.3125,1273 30557.9585,1274 29516.1045,1275 29581.792,1276 29666.7085,1277 29995.8751278 ],1279 "ops_per_rep": 2000,1280 "ops_per_s": 33707.817636729065,1281 "q1_ns": 29584.55225,1282 "q3_ns": 30276.91675,1283 "reps": 7,1284 "sd_ns": 773.62178863322541285 },1286 "sigs_per_rep": 2000,1287 "speedup_vs_k256_single_verify": {1288 "bootstrap_resamples": 2000,1289 "ci95_high": 0.8451475780370387,1290 "ci95_low": 0.7962178330728474,1291 "point": 0.8253927967775731292 },1293 "speedup_vs_libsecp256k1_single_verify": {1294 "bootstrap_resamples": 2000,1295 "ci95_high": 0.4486452765860367,1296 "ci95_low": 0.4306468149696584,1297 "point": 0.444843468226345351298 },1299 "window_bits": 01300 },1301 {1302 "algorithm": "straus_wnaf5",1303 "batch_size": 4,1304 "msm_only_ns_per_sig_median": 13287.044,1305 "msm_only_ns_per_sig_samples": [1306 13308.124,1307 13287.044,1308 13281.2515,1309 13276.2285,1310 13255.3535,1311 13497.919,1312 13303.7011313 ],1314 "n_batches_per_rep": 500,1315 "n_terms": 9,1316 "op_counts_per_batch": {1317 "adds": 345,1318 "doublings": 265,1319 "identity_adds": 1,1320 "mixed_adds": 01321 },1322 "op_counts_per_signature": {1323 "adds": 86.25,1324 "doublings": 66.25,1325 "mixed_adds": 0.0,1326 "total": 152.51327 },1328 "per_signature": {1329 "iqr_ns": 30.3125,1330 "mean_ns": 16382.73807142857,1331 "median_ns": 16338.042,1332 "min_ns": 16309.521,1333 "ns_per_op_samples": [1334 16360.354,1335 16338.042,1336 16336.3125,1337 16334.958,1338 16309.521,1339 16628.4375,1340 16371.54151341 ],1342 "ops_per_rep": 2000,1343 "ops_per_s": 61206.8447369642,1344 "q1_ns": 16335.63525,1345 "q3_ns": 16365.94775,1346 "reps": 7,1347 "sd_ns": 110.144879078810131348 },1349 "sigs_per_rep": 2000,1350 "speedup_vs_k256_single_verify": {1351 "bootstrap_resamples": 2000,1352 "ci95_high": 1.5306786950849525,1353 "ci95_low": 1.481465009864701,1354 "point": 1.4987528799350621355 },1356 "speedup_vs_libsecp256k1_single_verify": {1357 "bootstrap_resamples": 2000,1358 "ci95_high": 0.8125584032504276,1359 "ci95_low": 0.8016935057703638,1360 "point": 0.80774927007777311361 },1362 "window_bits": 51363 },1364 {1365 "algorithm": "pippenger",1366 "batch_size": 4,1367 "msm_only_ns_per_sig_median": 41195.204,1368 "msm_only_ns_per_sig_samples": [1369 40957.681,1370 41195.204,1371 41034.9805,1372 41305.6265,1373 41545.5815,1374 41328.191,1375 40009.39051376 ],1377 "n_batches_per_rep": 500,1378 "n_terms": 9,1379 "op_counts_per_batch": {1380 "adds": 1224,1381 "doublings": 252,1382 "identity_adds": 380,1383 "mixed_adds": 3831384 },1385 "op_counts_per_signature": {1386 "adds": 306.0,1387 "doublings": 63.0,1388 "mixed_adds": 95.75,1389 "total": 464.751390 },1391 "per_signature": {1392 "iqr_ns": 350.38525000000664,1393 "mean_ns": 44195.387,1394 "median_ns": 44337.875,1395 "min_ns": 43079.3125,1396 "ns_per_op_samples": [1397 44092.521,1398 44337.875,1399 44176.667,1400 44472.2915,1401 44711.375,1402 44497.667,1403 43079.31251404 ],1405 "ops_per_rep": 2000,1406 "ops_per_s": 22554.080456043506,1407 "q1_ns": 44134.594,1408 "q3_ns": 44484.979250000004,1409 "reps": 7,1410 "sd_ns": 534.03337734553951411 },1412 "sigs_per_rep": 2000,1413 "speedup_vs_k256_single_verify": {1414 "bootstrap_resamples": 2000,1415 "ci95_high": 0.5671176184278508,1416 "ci95_low": 0.5449975969868789,1417 "point": 0.55227471997699481418 },1419 "speedup_vs_libsecp256k1_single_verify": {1420 "bootstrap_resamples": 2000,1421 "ci95_high": 0.3004800701691687,1422 "ci95_low": 0.29512665206379124,1423 "point": 0.29764713577274511424 },1425 "window_bits": 41426 },1427 {1428 "algorithm": "k256_lincomb_vartime",1429 "batch_size": 4,1430 "msm_only_ns_per_sig_median": 13860.942,1431 "msm_only_ns_per_sig_samples": [1432 13992.518,1433 13883.1215,1434 13858.1675,1435 13831.3145,1436 13860.942,1437 13840.379,1438 13869.9571439 ],1440 "n_batches_per_rep": 500,1441 "n_terms": 9,1442 "op_counts_per_batch": {1443 "adds": 0,1444 "doublings": 0,1445 "identity_adds": 0,1446 "mixed_adds": 01447 },1448 "op_counts_per_signature": {1449 "adds": 0.0,1450 "doublings": 0.0,1451 "mixed_adds": 0.0,1452 "total": 0.01453 },1454 "per_signature": {1455 "iqr_ns": 31.16675000000032,1456 "mean_ns": 16937.154642857142,1457 "median_ns": 16919.25,1458 "min_ns": 16887.375,1459 "ns_per_op_samples": [1460 17076.833,1461 16943.354,1462 16919.25,1463 16887.375,1464 16914.979,1465 16892.1665,1466 16926.1251467 ],1468 "ops_per_rep": 2000,1469 "ops_per_s": 59104.274716668886,1470 "q1_ns": 16903.57275,1471 "q3_ns": 16934.7395,1472 "reps": 7,1473 "sd_ns": 64.529592329613731474 },1475 "sigs_per_rep": 2000,1476 "speedup_vs_k256_single_verify": {1477 "bootstrap_resamples": 2000,1478 "ci95_high": 1.479760100635996,1479 "ci95_low": 1.4319457052337734,1480 "point": 1.4472679049012221481 },1482 "speedup_vs_libsecp256k1_single_verify": {1483 "bootstrap_resamples": 2000,1484 "ci95_high": 0.784760536799957,1485 "ci95_low": 0.7746375658562054,1486 "point": 0.780001566263281487 },1488 "window_bits": 01489 },1490 {1491 "algorithm": "k256_lincomb_ct",1492 "batch_size": 4,1493 "msm_only_ns_per_sig_median": 22442.3925,1494 "msm_only_ns_per_sig_samples": [1495 22672.3985,1496 22604.3195,1497 22112.876,1498 22234.2665,1499 22442.3925,1500 22181.9185,1501 22658.6941502 ],1503 "n_batches_per_rep": 500,1504 "n_terms": 9,1505 "op_counts_per_batch": {1506 "adds": 0,1507 "doublings": 0,1508 "identity_adds": 0,1509 "mixed_adds": 01510 },1511 "op_counts_per_signature": {1512 "adds": 0.0,1513 "doublings": 0.0,1514 "mixed_adds": 0.0,1515 "total": 0.01516 },1517 "per_signature": {1518 "iqr_ns": 489.59375,1519 "mean_ns": 25514.5,1520 "median_ns": 25549.6045,1521 "min_ns": 25170.5625,1522 "ns_per_op_samples": [1523 25806.9375,1524 25732.458,1525 25170.5625,1526 25305.625,1527 25549.6045,1528 25241.979,1529 25794.33351530 ],1531 "ops_per_rep": 2000,1532 "ops_per_s": 39139.54910730614,1533 "q1_ns": 25273.802,1534 "q3_ns": 25763.39575,1535 "reps": 7,1536 "sd_ns": 273.481857955575151537 },1538 "sigs_per_rep": 2000,1539 "speedup_vs_k256_single_verify": {1540 "bootstrap_resamples": 2000,1541 "ci95_high": 0.9902691861046236,1542 "ci95_low": 0.9418957178517499,1543 "point": 0.95839790788150951544 },1545 "speedup_vs_libsecp256k1_single_verify": {1546 "bootstrap_resamples": 2000,1547 "ci95_high": 0.524646046968029,1548 "ci95_low": 0.5100545971939409,1549 "point": 0.51652625386040711550 },1551 "window_bits": 01552 },1553 {1554 "algorithm": "straus_wnaf5",1555 "batch_size": 8,1556 "msm_only_ns_per_sig_median": 11011.455,1557 "msm_only_ns_per_sig_samples": [1558 11398.392,1559 10984.706,1560 11236.0195,1561 10987.4205,1562 11177.1245,1563 10990.901,1564 11011.4551565 ],1566 "n_batches_per_rep": 250,1567 "n_terms": 17,1568 "op_counts_per_batch": {1569 "adds": 662,1570 "doublings": 273,1571 "identity_adds": 1,1572 "mixed_adds": 01573 },1574 "op_counts_per_signature": {1575 "adds": 82.75,1576 "doublings": 34.125,1577 "mixed_adds": 0.0,1578 "total": 116.8751579 },1580 "per_signature": {1581 "iqr_ns": 271.8857500000013,1582 "mean_ns": 14188.639857142856,1583 "median_ns": 14054.333,1584 "min_ns": 14028.125,1585 "ns_per_op_samples": [1586 14548.5415,1587 14028.125,1588 14352.792,1589 14044.479,1590 14263.8335,1591 14028.375,1592 14054.3331593 ],1594 "ops_per_rep": 2000,1595 "ops_per_s": 71152.43391486454,1596 "q1_ns": 14036.427,1597 "q3_ns": 14308.312750000001,1598 "reps": 7,1599 "sd_ns": 205.10149148992741600 },1601 "sigs_per_rep": 2000,1602 "speedup_vs_k256_single_verify": {1603 "bootstrap_resamples": 2000,1604 "ci95_high": 1.781842444331578,1605 "ci95_low": 1.6951957152308763,1606 "point": 1.74228741413768961607 },1608 "speedup_vs_libsecp256k1_single_verify": {1609 "bootstrap_resamples": 2000,1610 "ci95_high": 0.9451548896901053,1611 "ci95_low": 0.9144533342362936,1612 "point": 0.93900162320047491613 },1614 "window_bits": 51615 },1616 {1617 "algorithm": "pippenger",1618 "batch_size": 8,1619 "msm_only_ns_per_sig_median": 27119.503,1620 "msm_only_ns_per_sig_samples": [1621 27119.503,1622 27130.751,1623 26885.7695,1624 27056.5015,1625 27183.1655,1626 26822.1255,1627 27610.41451628 ],1629 "n_batches_per_rep": 250,1630 "n_terms": 17,1631 "op_counts_per_batch": {1632 "adds": 1492,1633 "doublings": 252,1634 "identity_adds": 581,1635 "mixed_adds": 7451636 },1637 "op_counts_per_signature": {1638 "adds": 186.5,1639 "doublings": 31.5,1640 "mixed_adds": 93.125,1641 "total": 311.1251642 },1643 "per_signature": {1644 "iqr_ns": 209.33299999999872,1645 "mean_ns": 30216.1845,1646 "median_ns": 30217.0835,1647 "min_ns": 29889.229,1648 "ns_per_op_samples": [1649 30217.0835,1650 30227.583,1651 29957.4585,1652 30151.25,1653 30299.7915,1654 29889.229,1655 30770.8961656 ],1657 "ops_per_rep": 2000,1658 "ops_per_s": 33093.86228488928,1659 "q1_ns": 30054.35425,1660 "q3_ns": 30263.68725,1661 "reps": 7,1662 "sd_ns": 286.612759669151441663 },1664 "sigs_per_rep": 2000,1665 "speedup_vs_k256_single_verify": {1666 "bootstrap_resamples": 2000,1667 "ci95_high": 0.8343950138493891,1668 "ci95_low": 0.8018269935773562,1669 "point": 0.81035906393811961670 },1671 "speedup_vs_libsecp256k1_single_verify": {1672 "bootstrap_resamples": 2000,1673 "ci95_high": 0.44206368507528765,1674 "ci95_low": 0.4331699279184809,1675 "point": 0.436741073968968551676 },1677 "window_bits": 41678 },1679 {1680 "algorithm": "k256_lincomb_vartime",1681 "batch_size": 8,1682 "msm_only_ns_per_sig_median": 12545.7275,1683 "msm_only_ns_per_sig_samples": [1684 12558.628,1685 12542.729,1686 12559.227,1687 12545.7275,1688 12585.141,1689 12516.1035,1690 12545.6881691 ],1692 "n_batches_per_rep": 250,1693 "n_terms": 17,1694 "op_counts_per_batch": {1695 "adds": 0,1696 "doublings": 0,1697 "identity_adds": 0,1698 "mixed_adds": 01699 },1700 "op_counts_per_signature": {1701 "adds": 0.0,1702 "doublings": 0.0,1703 "mixed_adds": 0.0,1704 "total": 0.01705 },1706 "per_signature": {1707 "iqr_ns": 16.38550000000032,1708 "mean_ns": 15600.119071428573,1709 "median_ns": 15600.5415,1710 "min_ns": 15557.667,1711 "ns_per_op_samples": [1712 15608.396,1713 15588.104,1714 15608.854,1715 15600.5415,1716 15640.896,1717 15557.667,1718 15596.3751719 ],1720 "ops_per_rep": 2000,1721 "ops_per_s": 64100.33908117869,1722 "q1_ns": 15592.2395,1723 "q3_ns": 15608.625,1724 "reps": 7,1725 "sd_ns": 25.0609299315834061726 },1727 "sigs_per_rep": 2000,1728 "speedup_vs_k256_single_verify": {1729 "bootstrap_resamples": 2000,1730 "ci95_high": 1.603553196719755,1731 "ci95_low": 1.5528368193631172,1732 "point": 1.56960497172485971733 },1734 "speedup_vs_libsecp256k1_single_verify": {1735 "bootstrap_resamples": 2000,1736 "ci95_high": 0.8512352214571548,1737 "ci95_low": 0.8408909217833787,1738 "point": 0.84593483501838711739 },1740 "window_bits": 01741 },1742 {1743 "algorithm": "k256_lincomb_ct",1744 "batch_size": 8,1745 "msm_only_ns_per_sig_median": 20033.061,1746 "msm_only_ns_per_sig_samples": [1747 21291.2455,1748 20030.8965,1749 20058.728,1750 20899.711,1751 20027.7975,1752 20031.398,1753 20033.0611754 ],1755 "n_batches_per_rep": 250,1756 "n_terms": 17,1757 "op_counts_per_batch": {1758 "adds": 0,1759 "doublings": 0,1760 "identity_adds": 0,1761 "mixed_adds": 01762 },1763 "op_counts_per_signature": {1764 "adds": 0.0,1765 "doublings": 0.0,1766 "mixed_adds": 0.0,1767 "total": 0.01768 },1769 "per_signature": {1770 "iqr_ns": 529.4585000000006,1771 "mean_ns": 23434.779714285716,1772 "median_ns": 23098.896,1773 "min_ns": 23083.083,1774 "ns_per_op_samples": [1775 24467.229,1776 23083.083,1777 23117.2085,1778 24109.375,1779 23083.208,1780 23098.896,1781 23084.45851782 ],1783 "ops_per_rep": 2000,1784 "ops_per_s": 43292.11231567084,1785 "q1_ns": 23083.83325,1786 "q3_ns": 23613.29175,1787 "reps": 7,1788 "sd_ns": 592.2721608417491789 },1790 "sigs_per_rep": 2000,1791 "speedup_vs_k256_single_verify": {1792 "bootstrap_resamples": 2000,1793 "ci95_high": 1.0832242610325904,1794 "ci95_low": 1.0091838340894361,1795 "point": 1.06008042548873331796 },1797 "speedup_vs_libsecp256k1_single_verify": {1798 "bootstrap_resamples": 2000,1799 "ci95_high": 0.5750279132603435,1800 "ci95_low": 0.5458327932598833,1801 "point": 0.57132780285256921802 },1803 "window_bits": 01804 },1805 {1806 "algorithm": "straus_wnaf5",1807 "batch_size": 16,1808 "msm_only_ns_per_sig_median": 9834.4355,1809 "msm_only_ns_per_sig_samples": [1810 9834.4355,1811 9839.649,1812 9883.5425,1813 10002.167,1814 9826.854,1815 9829.899,1816 9831.62151817 ],1818 "n_batches_per_rep": 125,1819 "n_terms": 33,1820 "op_counts_per_batch": {1821 "adds": 1296,1822 "doublings": 289,1823 "identity_adds": 1,1824 "mixed_adds": 01825 },1826 "op_counts_per_signature": {1827 "adds": 81.0,1828 "doublings": 18.0625,1829 "mixed_adds": 0.0,1830 "total": 99.06251831 },1832 "per_signature": {1833 "iqr_ns": 40.02049999999872,1834 "mean_ns": 12923.282785714287,1835 "median_ns": 12881.854,1836 "min_ns": 12862.125,1837 "ns_per_op_samples": [1838 12873.396,1839 12881.854,1840 12932.1665,1841 13135.2085,1842 12878.4795,1843 12862.125,1844 12899.751845 ],1846 "ops_per_rep": 2000,1847 "ops_per_s": 77628.57737713841,1848 "q1_ns": 12875.937750000001,1849 "q3_ns": 12915.95825,1850 "reps": 7,1851 "sd_ns": 96.175070918810061852 },1853 "sigs_per_rep": 2000,1854 "speedup_vs_k256_single_verify": {1855 "bootstrap_resamples": 2000,1856 "ci95_high": 1.9424280508422174,1857 "ci95_low": 1.8788962576794126,1858 "point": 1.9008667153035581859 },1860 "speedup_vs_libsecp256k1_single_verify": {1861 "bootstrap_resamples": 2000,1862 "ci95_high": 1.0307278898879328,1863 "ci95_low": 1.017458361596155,1864 "point": 1.02446755723205671865 },1866 "window_bits": 51867 },1868 {1869 "algorithm": "pippenger",1870 "batch_size": 16,1871 "msm_only_ns_per_sig_median": 21733.2095,1872 "msm_only_ns_per_sig_samples": [1873 21195.4365,1874 21622.1445,1875 21733.2095,1876 21746.644,1877 21266.4365,1878 22656.455,1879 22452.20251880 ],1881 "n_batches_per_rep": 125,1882 "n_terms": 33,1883 "op_counts_per_batch": {1884 "adds": 2429,1885 "doublings": 255,1886 "identity_adds": 897,1887 "mixed_adds": 12281888 },1889 "op_counts_per_signature": {1890 "adds": 151.8125,1891 "doublings": 15.9375,1892 "mixed_adds": 76.75,1893 "total": 244.51894 },1895 "per_signature": {1896 "iqr_ns": 726.625250000001,1897 "mean_ns": 24955.96128571429,1898 "median_ns": 24855.0835,1899 "min_ns": 24254.6665,1900 "ns_per_op_samples": [1901 24254.6665,1902 24769.104,1903 24875.896,1904 24855.0835,1905 24340.2915,1906 25909.9375,1907 25686.751908 ],1909 "ops_per_rep": 2000,1910 "ops_per_s": 40233.21828711619,1911 "q1_ns": 24554.69775,1912 "q3_ns": 25281.323,1913 "reps": 7,1914 "sd_ns": 628.02452801269771915 },1916 "sigs_per_rep": 2000,1917 "speedup_vs_k256_single_verify": {1918 "bootstrap_resamples": 2000,1919 "ci95_high": 1.0269537651182197,1920 "ci95_low": 0.9472117531412109,1921 "point": 0.98517824331589951922 },1923 "speedup_vs_libsecp256k1_single_verify": {1924 "bootstrap_resamples": 2000,1925 "ci95_high": 0.5440815899842448,1926 "ci95_low": 0.5123142281526468,1927 "point": 0.53095945141363131928 },1929 "window_bits": 51930 },1931 {1932 "algorithm": "k256_lincomb_vartime",1933 "batch_size": 16,1934 "msm_only_ns_per_sig_median": 11788.519,1935 "msm_only_ns_per_sig_samples": [1936 11848.565,1937 11811.581,1938 11802.0815,1939 11788.519,1940 11785.71,1941 11783.292,1942 11783.00051943 ],1944 "n_batches_per_rep": 125,1945 "n_terms": 33,1946 "op_counts_per_batch": {1947 "adds": 0,1948 "doublings": 0,1949 "identity_adds": 0,1950 "mixed_adds": 01951 },1952 "op_counts_per_signature": {1953 "adds": 0.0,1954 "doublings": 0.0,1955 "mixed_adds": 0.0,1956 "total": 0.01957 },1958 "per_signature": {1959 "iqr_ns": 23.35425000000032,1960 "mean_ns": 14831.479214285715,1961 "median_ns": 14817.521,1962 "min_ns": 14811.0,1963 "ns_per_op_samples": [1964 14883.667,1965 14849.1875,1966 14828.25,1967 14817.521,1968 14814.2085,1969 14816.5205,1970 14811.01971 ],1972 "ops_per_rep": 2000,1973 "ops_per_s": 67487.6721956392,1974 "q1_ns": 14815.3645,1975 "q3_ns": 14838.71875,1976 "reps": 7,1977 "sd_ns": 26.406586471397811978 },1979 "sigs_per_rep": 2000,1980 "speedup_vs_k256_single_verify": {1981 "bootstrap_resamples": 2000,1982 "ci95_high": 1.6876884747822565,1983 "ci95_low": 1.6345348911705697,1984 "point": 1.6525495391570561985 },1986 "speedup_vs_libsecp256k1_single_verify": {1987 "bootstrap_resamples": 2000,1988 "ci95_high": 0.8959058909951226,1989 "ci95_low": 0.8851319946723316,1990 "point": 0.89063761070424661991 },1992 "window_bits": 01993 },1994 {1995 "algorithm": "k256_lincomb_ct",1996 "batch_size": 16,1997 "msm_only_ns_per_sig_median": 19377.0215,1998 "msm_only_ns_per_sig_samples": [1999 19609.5175,2000 19744.9145,2001 19195.833,2002 19377.0215,2003 19345.582,2004 19306.959,2005 19571.62752006 ],2007 "n_batches_per_rep": 125,2008 "n_terms": 33,2009 "op_counts_per_batch": {2010 "adds": 0,2011 "doublings": 0,2012 "identity_adds": 0,2013 "mixed_adds": 02014 },2015 "op_counts_per_signature": {2016 "adds": 0.0,2017 "doublings": 0.0,2018 "mixed_adds": 0.0,2019 "total": 0.02020 },2021 "per_signature": {2022 "iqr_ns": 319.8542500000003,2023 "mean_ns": 22566.943428571427,2024 "median_ns": 22480.7915,2025 "min_ns": 22271.1875,2026 "ns_per_op_samples": [2027 22752.0835,2028 22889.2915,2029 22271.1875,2030 22480.7915,2031 22441.771,2032 22402.0415,2033 22731.43752034 ],2035 "ops_per_rep": 2000,2036 "ops_per_s": 44482.41958028924,2037 "q1_ns": 22421.90625,2038 "q3_ns": 22741.7605,2039 "reps": 7,2040 "sd_ns": 224.721283571529342041 },2042 "sigs_per_rep": 2000,2043 "speedup_vs_k256_single_verify": {2044 "bootstrap_resamples": 2000,2045 "ci95_high": 1.115806967860496,2046 "ci95_low": 1.0662454585197263,2047 "point": 1.0892271075064242048 },2049 "speedup_vs_libsecp256k1_single_verify": {2050 "bootstrap_resamples": 2000,2051 "ci95_high": 0.5914955642315395,2052 "ci95_low": 0.577392366848775,2053 "point": 0.58703633722148972054 },2055 "window_bits": 02056 },2057 {2058 "algorithm": "straus_wnaf5",2059 "batch_size": 32,2060 "msm_only_ns_per_sig_median": 9238.860119047618,2061 "msm_only_ns_per_sig_samples": [2062 9241.980654761905,2063 9234.602182539682,2064 9238.838789682539,2065 9314.628968253968,2066 9311.504960317461,2067 9238.860119047618,2068 9236.3159722222232069 ],2070 "n_batches_per_rep": 63,2071 "n_terms": 65,2072 "op_counts_per_batch": {2073 "adds": 2565,2074 "doublings": 321,2075 "identity_adds": 1,2076 "mixed_adds": 02077 },2078 "op_counts_per_signature": {2079 "adds": 80.15625,2080 "doublings": 10.03125,2081 "mixed_adds": 0.0,2082 "total": 90.18752083 },2084 "per_signature": {2085 "iqr_ns": 57.901289682538845,2086 "mean_ns": 12301.540107709749,2087 "median_ns": 12275.276785714286,2088 "min_ns": 12263.434027777777,2089 "ns_per_op_samples": [2090 12280.753968253968,2091 12275.276785714286,2092 12263.434027777777,2093 12378.927083333334,2094 12373.71875,2095 12265.45982142857,2096 12273.2103174603182097 ],2098 "ops_per_rep": 2016,2099 "ops_per_s": 81464.55818933381,2100 "q1_ns": 12269.335069444445,2101 "q3_ns": 12327.236359126984,2102 "reps": 7,2103 "sd_ns": 51.440521440190542104 },2105 "sigs_per_rep": 2016,2106 "speedup_vs_k256_single_verify": {2107 "bootstrap_resamples": 2000,2108 "ci95_high": 2.038704285371632,2109 "ci95_low": 1.9663281501367564,2110 "point": 1.9947971787077832111 },2112 "speedup_vs_libsecp256k1_single_verify": {2113 "bootstrap_resamples": 2000,2114 "ci95_high": 1.0815595640136326,2115 "ci95_low": 1.0608760188421742,2116 "point": 1.07509115520380322117 },2118 "window_bits": 52119 },2120 {2121 "algorithm": "pippenger",2122 "batch_size": 32,2123 "msm_only_ns_per_sig_median": 14947.916666666666,2124 "msm_only_ns_per_sig_samples": [2125 14932.250496031746,2126 14950.74751984127,2127 14956.970238095239,2128 14920.738095238095,2129 14938.928075396825,2130 14947.916666666666,2131 14963.2718253968252132 ],2133 "n_batches_per_rep": 63,2134 "n_terms": 65,2135 "op_counts_per_batch": {2136 "adds": 2811,2137 "doublings": 255,2138 "identity_adds": 1254,2139 "mixed_adds": 24202140 },2141 "op_counts_per_signature": {2142 "adds": 87.84375,2143 "doublings": 7.96875,2144 "mixed_adds": 75.625,2145 "total": 171.43752146 },2147 "per_signature": {2148 "iqr_ns": 23.974950396826898,2149 "mean_ns": 18005.36196145125,2150 "median_ns": 18007.089285714286,2151 "min_ns": 17978.774305555555,2152 "ns_per_op_samples": [2153 17988.488095238095,2154 18010.56150793651,2155 18017.79513888889,2156 17978.774305555555,2157 17991.91865079365,2158 18007.089285714286,2159 18042.9067460317462160 ],2161 "ops_per_rep": 2016,2162 "ops_per_s": 55533.683658321075,2163 "q1_ns": 17990.203373015873,2164 "q3_ns": 18014.1783234127,2165 "reps": 7,2166 "sd_ns": 21.4731114481878932167 },2168 "sigs_per_rep": 2016,2169 "speedup_vs_k256_single_verify": {2170 "bootstrap_resamples": 2000,2171 "ci95_high": 1.3900915612034945,2172 "ci95_low": 1.3457266165366155,2173 "point": 1.3598359574651652174 },2175 "speedup_vs_libsecp256k1_single_verify": {2176 "bootstrap_resamples": 2000,2177 "ci95_high": 0.7377872397958211,2178 "ci95_low": 0.7287367744873682,2179 "point": 0.73288032788673512180 },2181 "window_bits": 52182 },2183 {2184 "algorithm": "k256_lincomb_vartime",2185 "batch_size": 32,2186 "msm_only_ns_per_sig_median": 11845.693452380952,2187 "msm_only_ns_per_sig_samples": [2188 11735.740575396825,2189 11667.96875,2190 11725.983630952382,2191 11845.693452380952,2192 11968.914682539682,2193 12049.996527777777,2194 11992.6021825396822195 ],2196 "n_batches_per_rep": 63,2197 "n_terms": 65,2198 "op_counts_per_batch": {2199 "adds": 0,2200 "doublings": 0,2201 "identity_adds": 0,2202 "mixed_adds": 02203 },2204 "op_counts_per_signature": {2205 "adds": 0.0,2206 "doublings": 0.0,2207 "mixed_adds": 0.0,2208 "total": 0.02209 },2210 "per_signature": {2211 "iqr_ns": 282.65550595238165,2212 "mean_ns": 14971.002905328798,2213 "median_ns": 14977.595734126984,2214 "min_ns": 14738.033234126984,2215 "ns_per_op_samples": [2216 14857.74255952381,2217 14738.033234126984,2218 14800.760416666666,2219 14977.595734126984,2220 15087.735615079366,2221 15199.074404761905,2222 15136.0783730158732223 ],2224 "ops_per_rep": 2016,2225 "ops_per_s": 66766.39013039085,2226 "q1_ns": 14829.251488095237,2227 "q3_ns": 15111.906994047618,2228 "reps": 7,2229 "sd_ns": 177.492623499620182230 },2231 "sigs_per_rep": 2016,2232 "speedup_vs_k256_single_verify": {2233 "bootstrap_resamples": 2000,2234 "ci95_high": 1.688856065250026,2235 "ci95_low": 1.6064234301518483,2236 "point": 1.6348877306259652237 },2238 "speedup_vs_libsecp256k1_single_verify": {2239 "bootstrap_resamples": 2000,2240 "ci95_high": 0.8947583858655911,2241 "ci95_low": 0.8693220681829901,2242 "point": 0.88111882135595842243 },2244 "window_bits": 02245 },2246 {2247 "algorithm": "k256_lincomb_ct",2248 "batch_size": 32,2249 "msm_only_ns_per_sig_median": 19180.184523809523,2250 "msm_only_ns_per_sig_samples": [2251 19048.053075396827,2252 19145.31994047619,2253 19271.7435515873,2254 19122.12400793651,2255 19180.184523809523,2256 20316.38839285714,2257 19787.5327380952372258 ],2259 "n_batches_per_rep": 63,2260 "n_terms": 65,2261 "op_counts_per_batch": {2262 "adds": 0,2263 "doublings": 0,2264 "identity_adds": 0,2265 "mixed_adds": 02266 },2267 "op_counts_per_signature": {2268 "adds": 0.0,2269 "doublings": 0.0,2270 "mixed_adds": 0.0,2271 "total": 0.02272 },2273 "per_signature": {2274 "iqr_ns": 444.26884920634984,2275 "mean_ns": 22596.55775226757,2276 "median_ns": 22322.130952380954,2277 "min_ns": 22171.833333333332,2278 "ns_per_op_samples": [2279 22171.833333333332,2280 22286.685515873014,2281 22423.218253968254,2282 22273.29265873016,2283 22322.130952380954,2284 23673.445932539682,2285 23025.297619047622286 ],2287 "ops_per_rep": 2016,2288 "ops_per_s": 44798.5903376907,2289 "q1_ns": 22279.989087301587,2290 "q3_ns": 22724.257936507936,2291 "reps": 7,2292 "sd_ns": 552.23404337441962293 },2294 "sigs_per_rep": 2016,2295 "speedup_vs_k256_single_verify": {2296 "bootstrap_resamples": 2000,2297 "ci95_high": 1.1226739523039884,2298 "ci95_low": 1.056698241323596,2299 "point": 1.09696908203955172300 },2301 "speedup_vs_libsecp256k1_single_verify": {2302 "bootstrap_resamples": 2000,2303 "ci95_high": 0.5956115812082442,2304 "ci95_low": 0.5715317003813094,2305 "point": 0.59120885582800322306 },2307 "window_bits": 02308 },2309 {2310 "algorithm": "straus_wnaf5",2311 "batch_size": 64,2312 "msm_only_ns_per_sig_median": 9023.00927734375,2313 "msm_only_ns_per_sig_samples": [2314 9007.7724609375,2315 9019.1630859375,2316 9023.00927734375,2317 9935.99365234375,2318 9625.87548828125,2319 9016.58154296875,2320 9023.640136718752321 ],2322 "n_batches_per_rep": 32,2323 "n_terms": 129,2324 "op_counts_per_batch": {2325 "adds": 5059,2326 "doublings": 385,2327 "identity_adds": 1,2328 "mixed_adds": 02329 },2330 "op_counts_per_signature": {2331 "adds": 79.046875,2332 "doublings": 6.015625,2333 "mixed_adds": 0.0,2334 "total": 85.06252335 },2336 "per_signature": {2337 "iqr_ns": 429.840087890625,2338 "mean_ns": 12364.234584263393,2339 "median_ns": 12078.2470703125,2340 "min_ns": 12052.44970703125,2341 "ns_per_op_samples": [2342 12052.44970703125,2343 12078.2470703125,2344 12103.6376953125,2345 13287.90283203125,2346 12891.7236328125,2347 12064.208984375,2348 12071.472167968752349 ],2350 "ops_per_rep": 2048,2351 "ops_per_s": 82793.47112031937,2352 "q1_ns": 12067.840576171875,2353 "q3_ns": 12497.6806640625,2354 "reps": 7,2355 "sd_ns": 508.92735689785372356 },2357 "sigs_per_rep": 2048,2358 "speedup_vs_k256_single_verify": {2359 "bootstrap_resamples": 2000,2360 "ci95_high": 2.0719430534048366,2361 "ci95_low": 1.8873187320020073,2362 "point": 2.0273378543635352363 },2364 "speedup_vs_libsecp256k1_single_verify": {2365 "bootstrap_resamples": 2000,2366 "ci95_high": 1.0996345611617007,2367 "ci95_low": 1.0207857284890491,2368 "point": 1.0926288743039062369 },2370 "window_bits": 52371 },2372 {2373 "algorithm": "pippenger",2374 "batch_size": 64,2375 "msm_only_ns_per_sig_median": 12919.73828125,2376 "msm_only_ns_per_sig_samples": [2377 12977.7236328125,2378 12901.59228515625,2379 12919.73828125,2380 12925.02880859375,2381 12989.0546875,2382 12881.26611328125,2383 12569.45800781252384 ],2385 "n_batches_per_rep": 32,2386 "n_terms": 129,2387 "op_counts_per_batch": {2388 "adds": 4710,2389 "doublings": 252,2390 "identity_adds": 2063,2391 "mixed_adds": 40982392 },2393 "op_counts_per_signature": {2394 "adds": 73.59375,2395 "doublings": 3.9375,2396 "mixed_adds": 64.03125,2397 "total": 141.56252398 },2399 "per_signature": {2400 "iqr_ns": 77.4638671875,2401 "mean_ns": 16081.830775669643,2402 "median_ns": 16124.6337890625,2403 "min_ns": 15678.263671875,2404 "ns_per_op_samples": [2405 16213.31787109375,2406 16124.6337890625,2407 16114.82763671875,2408 16129.35400390625,2409 16239.501953125,2410 16072.91650390625,2411 15678.2636718752412 ],2413 "ops_per_rep": 2048,2414 "ops_per_s": 62016.912326921185,2415 "q1_ns": 16093.8720703125,2416 "q3_ns": 16171.3359375,2417 "reps": 7,2418 "sd_ns": 187.20500170763182419 },2420 "sigs_per_rep": 2048,2421 "speedup_vs_k256_single_verify": {2422 "bootstrap_resamples": 2000,2423 "ci95_high": 1.555184710498873,2424 "ci95_low": 1.5006670253087837,2425 "point": 1.5185887518642172426 },2427 "speedup_vs_libsecp256k1_single_verify": {2428 "bootstrap_resamples": 2000,2429 "ci95_high": 0.8239391087971799,2430 "ci95_low": 0.8116591313775462,2431 "point": 0.81843976568024032432 },2433 "window_bits": 62434 },2435 {2436 "algorithm": "k256_lincomb_vartime",2437 "batch_size": 64,2438 "msm_only_ns_per_sig_median": 12128.51904296875,2439 "msm_only_ns_per_sig_samples": [2440 12093.32177734375,2441 12453.61181640625,2442 12220.37646484375,2443 12128.51904296875,2444 12067.34130859375,2445 12271.36279296875,2446 11746.621093752447 ],2448 "n_batches_per_rep": 32,2449 "n_terms": 129,2450 "op_counts_per_batch": {2451 "adds": 0,2452 "doublings": 0,2453 "identity_adds": 0,2454 "mixed_adds": 02455 },2456 "op_counts_per_signature": {2457 "adds": 0.0,2458 "doublings": 0.0,2459 "mixed_adds": 0.0,2460 "total": 0.02461 },2462 "per_signature": {2463 "iqr_ns": 177.886962890625,2464 "mean_ns": 15364.257742745536,2465 "median_ns": 15343.017578125,2466 "min_ns": 14851.806640625,2467 "ns_per_op_samples": [2468 15274.0068359375,2469 15817.97265625,2470 15437.41845703125,2471 15343.017578125,2472 15316.60986328125,2473 15508.97216796875,2474 14851.8066406252475 ],2476 "ops_per_rep": 2048,2477 "ops_per_s": 65176.22722571406,2478 "q1_ns": 15295.308349609375,2479 "q3_ns": 15473.1953125,2480 "reps": 7,2481 "sd_ns": 290.29433367234362482 },2483 "sigs_per_rep": 2048,2484 "speedup_vs_k256_single_verify": {2485 "bootstrap_resamples": 2000,2486 "ci95_high": 1.6371372468660534,2487 "ci95_low": 1.5688203729097714,2488 "point": 1.59594990850505212489 },2490 "speedup_vs_libsecp256k1_single_verify": {2491 "bootstrap_resamples": 2000,2492 "ci95_high": 0.8670353917114214,2493 "ci95_low": 0.8485209308183032,2494 "point": 0.86013337551117832495 },2496 "window_bits": 02497 },2498 {2499 "algorithm": "k256_lincomb_ct",2500 "batch_size": 64,2501 "msm_only_ns_per_sig_median": 18811.72900390625,2502 "msm_only_ns_per_sig_samples": [2503 18683.8984375,2504 18811.25927734375,2505 19072.875,2506 18744.6904296875,2507 18811.72900390625,2508 19065.4697265625,2509 18935.7480468752510 ],2511 "n_batches_per_rep": 32,2512 "n_terms": 129,2513 "op_counts_per_batch": {2514 "adds": 0,2515 "doublings": 0,2516 "identity_adds": 0,2517 "mixed_adds": 02518 },2519 "op_counts_per_signature": {2520 "adds": 0.0,2521 "doublings": 0.0,2522 "mixed_adds": 0.0,2523 "total": 0.02524 },2525 "per_signature": {2526 "iqr_ns": 287.577392578125,2527 "mean_ns": 22025.739397321428,2528 "median_ns": 21944.27490234375,2529 "min_ns": 21799.5810546875,2530 "ns_per_op_samples": [2531 21799.5810546875,2532 21923.48193359375,2533 22254.39453125,2534 21879.9033203125,2535 21944.27490234375,2536 22249.369140625,2537 22129.17089843752538 ],2539 "ops_per_rep": 2048,2540 "ops_per_s": 45569.97232536471,2541 "q1_ns": 21901.692626953125,2542 "q3_ns": 22189.27001953125,2543 "reps": 7,2544 "sd_ns": 183.711874917991882545 },2546 "sigs_per_rep": 2048,2547 "speedup_vs_k256_single_verify": {2548 "bootstrap_resamples": 2000,2549 "ci95_high": 1.1424343898628793,2550 "ci95_low": 1.093549724768355,2551 "point": 1.11585767171485382552 },2553 "speedup_vs_libsecp256k1_single_verify": {2554 "bootstrap_resamples": 2000,2555 "ci95_high": 0.6054790037553155,2556 "ci95_low": 0.591463399111474,2557 "point": 0.60138881593168952558 },2559 "window_bits": 02560 },2561 {2562 "algorithm": "straus_wnaf5",2563 "batch_size": 128,2564 "msm_only_ns_per_sig_median": 9073.751953125,2565 "msm_only_ns_per_sig_samples": [2566 9017.3330078125,2567 9073.751953125,2568 9426.3310546875,2569 9407.837890625,2570 9112.91455078125,2571 8979.77734375,2572 8985.188964843752573 ],2574 "n_batches_per_rep": 16,2575 "n_terms": 257,2576 "op_counts_per_batch": {2577 "adds": 10120,2578 "doublings": 513,2579 "identity_adds": 1,2580 "mixed_adds": 02581 },2582 "op_counts_per_signature": {2583 "adds": 79.0625,2584 "doublings": 4.0078125,2585 "mixed_adds": 0.0,2586 "total": 83.07031252587 },2588 "per_signature": {2589 "iqr_ns": 344.31982421875,2590 "mean_ns": 12263.645717075893,2591 "median_ns": 12170.87841796875,2592 "min_ns": 12016.5,2593 "ns_per_op_samples": [2594 12091.9189453125,2595 12170.87841796875,2596 12731.791015625,2597 12600.9521484375,2598 12206.54296875,2599 12016.5,2600 12026.93652343752601 ],2602 "ops_per_rep": 2048,2603 "ops_per_s": 82163.33822903263,2604 "q1_ns": 12059.427734375,2605 "q3_ns": 12403.74755859375,2606 "reps": 7,2607 "sd_ns": 286.183064023627942608 },2609 "sigs_per_rep": 2048,2610 "speedup_vs_k256_single_verify": {2611 "bootstrap_resamples": 2000,2612 "ci95_high": 2.078364174558362,2613 "ci95_low": 1.9308692877638602,2614 "point": 2.01190798717112562615 },2616 "speedup_vs_libsecp256k1_single_verify": {2617 "bootstrap_resamples": 2000,2618 "ci95_high": 1.1011203455004932,2619 "ci95_low": 1.0443407248103693,2620 "point": 1.084312984387082621 },2622 "window_bits": 52623 },2624 {2625 "algorithm": "pippenger",2626 "batch_size": 128,2627 "msm_only_ns_per_sig_median": 9612.99609375,2628 "msm_only_ns_per_sig_samples": [2629 10118.5908203125,2630 9614.64404296875,2631 9282.4912109375,2632 10044.39208984375,2633 9558.0869140625,2634 9612.99609375,2635 9314.147949218752636 ],2637 "n_batches_per_rep": 16,2638 "n_terms": 257,2639 "op_counts_per_batch": {2640 "adds": 5163,2641 "doublings": 252,2642 "identity_adds": 2506,2643 "mixed_adds": 81802644 },2645 "op_counts_per_signature": {2646 "adds": 40.3359375,2647 "doublings": 1.96875,2648 "mixed_adds": 63.90625,2649 "total": 106.21093752650 },2651 "per_signature": {2652 "iqr_ns": 568.257568359375,2653 "mean_ns": 12830.014229910714,2654 "median_ns": 12765.58447265625,2655 "min_ns": 12329.1826171875,2656 "ns_per_op_samples": [2657 13434.08203125,2658 12779.70361328125,2659 12329.1826171875,2660 13429.17919921875,2661 12713.8876953125,2662 12765.58447265625,2663 12358.479980468752664 ],2665 "ops_per_rep": 2048,2666 "ops_per_s": 78335.62201103989,2667 "q1_ns": 12536.183837890625,2668 "q3_ns": 13104.44140625,2669 "reps": 7,2670 "sd_ns": 450.41483574659762671 },2672 "sigs_per_rep": 2048,2673 "speedup_vs_k256_single_verify": {2674 "bootstrap_resamples": 2000,2675 "ci95_high": 2.0226074759601547,2676 "ci95_low": 1.8117854515944993,2677 "point": 1.91817989630245542678 },2679 "speedup_vs_libsecp256k1_single_verify": {2680 "bootstrap_resamples": 2000,2681 "ci95_high": 1.0715803659454322,2682 "ci95_low": 0.9799323774580037,2683 "point": 1.03379845460800682684 },2685 "window_bits": 62686 },2687 {2688 "algorithm": "k256_lincomb_vartime",2689 "batch_size": 128,2690 "msm_only_ns_per_sig_median": 12079.447265625,2691 "msm_only_ns_per_sig_samples": [2692 11504.8212890625,2693 11788.81884765625,2694 12079.447265625,2695 12004.59765625,2696 12768.12646484375,2697 12355.71240234375,2698 12155.9667968752699 ],2700 "n_batches_per_rep": 16,2701 "n_terms": 257,2702 "op_counts_per_batch": {2703 "adds": 0,2704 "doublings": 0,2705 "identity_adds": 0,2706 "mixed_adds": 02707 },2708 "op_counts_per_signature": {2709 "adds": 0.0,2710 "doublings": 0.0,2711 "mixed_adds": 0.0,2712 "total": 0.02713 },2714 "per_signature": {2715 "iqr_ns": 454.65087890625,2716 "mean_ns": 15267.458984375,2717 "median_ns": 15261.41357421875,2718 "min_ns": 14550.21142578125,2719 "ns_per_op_samples": [2720 14550.21142578125,2721 14905.70068359375,2722 15261.41357421875,2723 15171.24462890625,2724 15997.3955078125,2725 15618.306640625,2726 15367.94042968752727 ],2728 "ops_per_rep": 2048,2729 "ops_per_s": 65524.72974648361,2730 "q1_ns": 15038.47265625,2731 "q3_ns": 15493.12353515625,2732 "reps": 7,2733 "sd_ns": 469.14901766767872734 },2735 "sigs_per_rep": 2048,2736 "speedup_vs_k256_single_verify": {2737 "bootstrap_resamples": 2000,2738 "ci95_high": 1.67696605014434,2739 "ci95_low": 1.5578379948510443,2740 "point": 1.60448358082409832741 },2742 "speedup_vs_libsecp256k1_single_verify": {2743 "bootstrap_resamples": 2000,2744 "ci95_high": 0.8884590386667486,2745 "ci95_low": 0.8425253503969763,2746 "point": 0.86473257774062862747 },2748 "window_bits": 02749 },2750 {2751 "algorithm": "k256_lincomb_ct",2752 "batch_size": 128,2753 "msm_only_ns_per_sig_median": 18683.67431640625,2754 "msm_only_ns_per_sig_samples": [2755 18973.572265625,2756 18588.86669921875,2757 18683.67431640625,2758 19045.2265625,2759 18641.5390625,2760 18800.76025390625,2761 18665.445800781252762 ],2763 "n_batches_per_rep": 16,2764 "n_terms": 257,2765 "op_counts_per_batch": {2766 "adds": 0,2767 "doublings": 0,2768 "identity_adds": 0,2769 "mixed_adds": 02770 },2771 "op_counts_per_signature": {2772 "adds": 0.0,2773 "doublings": 0.0,2774 "mixed_adds": 0.0,2775 "total": 0.02776 },2777 "per_signature": {2778 "iqr_ns": 264.68896484375,2779 "mean_ns": 21948.489188058036,2780 "median_ns": 21892.1708984375,2781 "min_ns": 21715.189453125,2782 "ns_per_op_samples": [2783 22159.72900390625,2784 21715.189453125,2785 21814.8193359375,2786 22337.85009765625,2787 21767.5986328125,2788 21952.06689453125,2789 21892.17089843752790 ],2791 "ops_per_rep": 2048,2792 "ops_per_s": 45678.43018580549,2793 "q1_ns": 21791.208984375,2794 "q3_ns": 22055.89794921875,2795 "reps": 7,2796 "sd_ns": 225.250422165685082797 },2798 "sigs_per_rep": 2048,2799 "speedup_vs_k256_single_verify": {2800 "bootstrap_resamples": 2000,2801 "ci95_high": 1.148328505208676,2802 "ci95_low": 1.097973332422569,2803 "point": 1.1185134454503862804 },2805 "speedup_vs_libsecp256k1_single_verify": {2806 "bootstrap_resamples": 2000,2807 "ci95_high": 0.6084949774547164,2808 "ci95_low": 0.5938559762026083,2809 "point": 0.60282013881692782810 },2811 "window_bits": 02812 },2813 {2814 "algorithm": "straus_wnaf5",2815 "batch_size": 256,2816 "msm_only_ns_per_sig_median": 9294.84033203125,2817 "msm_only_ns_per_sig_samples": [2818 9313.72119140625,2819 9433.45068359375,2820 9294.84033203125,2821 9067.810546875,2822 9048.42138671875,2823 9052.71337890625,2824 9853.718752825 ],2826 "n_batches_per_rep": 8,2827 "n_terms": 513,2828 "op_counts_per_batch": {2829 "adds": 20212,2830 "doublings": 769,2831 "identity_adds": 1,2832 "mixed_adds": 02833 },2834 "op_counts_per_signature": {2835 "adds": 78.953125,2836 "doublings": 3.00390625,2837 "mixed_adds": 0.0,2838 "total": 81.957031252839 },2840 "per_signature": {2841 "iqr_ns": 345.3876953125,2842 "mean_ns": 12433.782645089286,2843 "median_ns": 12388.5498046875,2844 "min_ns": 12140.29931640625,2845 "ns_per_op_samples": [2846 12388.5498046875,2847 12611.26708984375,2848 12475.7080078125,2849 12194.4990234375,2850 12201.70068359375,2851 12140.29931640625,2852 13024.454589843752853 ],2854 "ops_per_rep": 2048,2855 "ops_per_s": 80719.69808941046,2856 "q1_ns": 12198.099853515625,2857 "q3_ns": 12543.487548828125,2858 "reps": 7,2859 "sd_ns": 311.30075837721972860 },2861 "sigs_per_rep": 2048,2862 "speedup_vs_k256_single_verify": {2863 "bootstrap_resamples": 2000,2864 "ci95_high": 2.0498057322369436,2865 "ci95_low": 1.9292900012873688,2866 "point": 1.97655802220974122867 },2868 "speedup_vs_libsecp256k1_single_verify": {2869 "bootstrap_resamples": 2000,2870 "ci95_high": 1.0878981827384382,2871 "ci95_low": 1.0434865431244345,2872 "point": 1.06526120555342052873 },2874 "window_bits": 52875 },2876 {2877 "algorithm": "pippenger",2878 "batch_size": 256,2879 "msm_only_ns_per_sig_median": 8209.06494140625,2880 "msm_only_ns_per_sig_samples": [2881 8232.91015625,2882 8022.6240234375,2883 8093.5263671875,2884 8134.19580078125,2885 8319.53857421875,2886 8324.5234375,2887 8209.064941406252888 ],2889 "n_batches_per_rep": 8,2890 "n_terms": 513,2891 "op_counts_per_batch": {2892 "adds": 8866,2893 "doublings": 252,2894 "identity_adds": 4282,2895 "mixed_adds": 141642896 },2897 "op_counts_per_signature": {2898 "adds": 34.6328125,2899 "doublings": 0.984375,2900 "mixed_adds": 55.328125,2901 "total": 90.94531252902 },2903 "per_signature": {2904 "iqr_ns": 200.53125,2905 "mean_ns": 11310.212681361607,2906 "median_ns": 11349.3447265625,2907 "min_ns": 11079.9970703125,2908 "ns_per_op_samples": [2909 11377.54345703125,2910 11079.9970703125,2911 11198.1201171875,2912 11226.6640625,2913 11448.30322265625,2914 11491.51611328125,2915 11349.34472656252916 ],2917 "ops_per_rep": 2048,2918 "ops_per_s": 88110.81380403897,2919 "q1_ns": 11212.39208984375,2920 "q3_ns": 11412.92333984375,2921 "reps": 7,2922 "sd_ns": 147.50651090844022923 },2924 "sigs_per_rep": 2048,2925 "speedup_vs_k256_single_verify": {2926 "bootstrap_resamples": 2000,2927 "ci95_high": 2.2321919874420884,2928 "ci95_low": 2.125274901161706,2929 "point": 2.15754196299018862930 },2931 "speedup_vs_libsecp256k1_single_verify": {2932 "bootstrap_resamples": 2000,2933 "ci95_high": 1.1826185432386767,2934 "ci95_low": 1.1494880284055469,2935 "point": 1.1628020663706752936 },2937 "window_bits": 72938 },2939 {2940 "algorithm": "k256_lincomb_vartime",2941 "batch_size": 256,2942 "msm_only_ns_per_sig_median": 11865.3154296875,2943 "msm_only_ns_per_sig_samples": [2944 12353.12841796875,2945 11882.93408203125,2946 11716.45068359375,2947 11793.29443359375,2948 11899.71923828125,2949 11694.1728515625,2950 11865.31542968752951 ],2952 "n_batches_per_rep": 8,2953 "n_terms": 513,2954 "op_counts_per_batch": {2955 "adds": 0,2956 "doublings": 0,2957 "identity_adds": 0,2958 "mixed_adds": 02959 },2960 "op_counts_per_signature": {2961 "adds": 0.0,2962 "doublings": 0.0,2963 "mixed_adds": 0.0,2964 "total": 0.02965 },2966 "per_signature": {2967 "iqr_ns": 169.4541015625,2968 "mean_ns": 15022.4638671875,2969 "median_ns": 15002.33935546875,2970 "min_ns": 14778.40185546875,2971 "ns_per_op_samples": [2972 15579.7119140625,2973 15033.3251953125,2974 14811.1572265625,2975 14917.78564453125,2976 15034.52587890625,2977 14778.40185546875,2978 15002.339355468752979 ],2980 "ops_per_rep": 2048,2981 "ops_per_s": 66656.27115250353,2982 "q1_ns": 14864.471435546875,2983 "q3_ns": 15033.925537109375,2984 "reps": 7,2985 "sd_ns": 266.573359049049262986 },2987 "sigs_per_rep": 2048,2988 "speedup_vs_k256_single_verify": {2989 "bootstrap_resamples": 2000,2990 "ci95_high": 1.6876705592707673,2991 "ci95_low": 1.6121088350385178,2992 "point": 1.63219128162661862993 },2994 "speedup_vs_libsecp256k1_single_verify": {2995 "bootstrap_resamples": 2000,2996 "ci95_high": 0.8941303030832501,2997 "ci95_low": 0.8729878551351319,2998 "point": 0.87966557663484182999 },3000 "window_bits": 03001 },3002 {3003 "algorithm": "k256_lincomb_ct",3004 "batch_size": 256,3005 "msm_only_ns_per_sig_median": 18714.68017578125,3006 "msm_only_ns_per_sig_samples": [3007 19003.54052734375,3008 19322.896484375,3009 18819.5390625,3010 18617.25,3011 18665.58935546875,3012 18635.04931640625,3013 18714.680175781253014 ],3015 "n_batches_per_rep": 8,3016 "n_terms": 513,3017 "op_counts_per_batch": {3018 "adds": 0,3019 "doublings": 0,3020 "identity_adds": 0,3021 "mixed_adds": 03022 },3023 "op_counts_per_signature": {3024 "adds": 0.0,3025 "doublings": 0.0,3026 "mixed_adds": 0.0,3027 "total": 0.03028 },3029 "per_signature": {3030 "iqr_ns": 307.373046875,3031 "mean_ns": 21985.674176897322,3032 "median_ns": 21844.25830078125,3033 "min_ns": 21740.29541015625,3034 "ns_per_op_samples": [3035 22195.9638671875,3036 22566.67041015625,3037 21985.65673828125,3038 21740.29541015625,3039 21809.7333984375,3040 21757.14111328125,3041 21844.258300781253042 ],3043 "ops_per_rep": 2048,3044 "ops_per_s": 45778.62000305295,3045 "q1_ns": 21783.437255859375,3046 "q3_ns": 22090.810302734375,3047 "reps": 7,3048 "sd_ns": 301.43271363145833049 },3050 "sigs_per_rep": 2048,3051 "speedup_vs_k256_single_verify": {3052 "bootstrap_resamples": 2000,3053 "ci95_high": 1.1488804466475346,3054 "ci95_low": 1.0961808933185566,3055 "point": 1.12096676219600673056 },3057 "speedup_vs_libsecp256k1_single_verify": {3058 "bootstrap_resamples": 2000,3059 "ci95_high": 0.6086785221940758,3060 "ci95_low": 0.5928865075985319,3061 "point": 0.60414234799301993062 },3063 "window_bits": 03064 },3065 {3066 "algorithm": "straus_wnaf5",3067 "batch_size": 512,3068 "msm_only_ns_per_sig_median": 9581.11572265625,3069 "msm_only_ns_per_sig_samples": [3070 9373.27099609375,3071 9673.62451171875,3072 9581.11572265625,3073 9621.17578125,3074 9534.953125,3075 9542.6435546875,3076 9703.002441406253077 ],3078 "n_batches_per_rep": 4,3079 "n_terms": 1025,3080 "op_counts_per_batch": {3081 "adds": 40393,3082 "doublings": 1281,3083 "identity_adds": 1,3084 "mixed_adds": 03085 },3086 "op_counts_per_signature": {3087 "adds": 78.892578125,3088 "doublings": 2.501953125,3089 "mixed_adds": 0.0,3090 "total": 81.394531253091 },3092 "per_signature": {3093 "iqr_ns": 173.27880859375,3094 "mean_ns": 12760.965890066964,3095 "median_ns": 12847.615234375,3096 "min_ns": 12441.162109375,3097 "ns_per_op_samples": [3098 12441.162109375,3099 12869.07958984375,3100 12852.0302734375,3101 12847.615234375,3102 12694.091796875,3103 12680.46044921875,3104 12942.321777343753105 ],3106 "ops_per_rep": 2048,3107 "ops_per_s": 77835.4567565509,3108 "q1_ns": 12687.276123046875,3109 "q3_ns": 12860.554931640625,3110 "reps": 7,3111 "sd_ns": 170.101484026610023112 },3113 "sigs_per_rep": 2048,3114 "speedup_vs_k256_single_verify": {3115 "bootstrap_resamples": 2000,3116 "ci95_high": 1.971249711325746,3117 "ci95_low": 1.8858726196820041,3118 "point": 1.90593250601742573119 },3120 "speedup_vs_libsecp256k1_single_verify": {3121 "bootstrap_resamples": 2000,3122 "ci95_high": 1.0468238163084869,3123 "ci95_low": 1.0212361954302727,3124 "point": 1.02719775298765773125 },3126 "window_bits": 53127 },3128 {3129 "algorithm": "pippenger",3130 "batch_size": 512,3131 "msm_only_ns_per_sig_median": 6513.04150390625,3132 "msm_only_ns_per_sig_samples": [3133 6513.04150390625,3134 6459.14697265625,3135 6465.73876953125,3136 6501.09765625,3137 6987.9560546875,3138 6613.48486328125,3139 7111.043457031253140 ],3141 "n_batches_per_rep": 4,3142 "n_terms": 1025,3143 "op_counts_per_batch": {3144 "adds": 9163,3145 "doublings": 252,3146 "identity_adds": 4577,3147 "mixed_adds": 283133148 },3149 "op_counts_per_signature": {3150 "adds": 17.896484375,3151 "doublings": 0.4921875,3152 "mixed_adds": 55.298828125,3153 "total": 73.68753154 },3155 "per_signature": {3156 "iqr_ns": 450.144775390625,3157 "mean_ns": 9821.27748325893,3158 "median_ns": 9614.15625,3159 "min_ns": 9496.84619140625,3160 "ns_per_op_samples": [3161 9614.15625,3162 9496.84619140625,3163 9506.44921875,3164 9548.2177734375,3165 10227.9462890625,3166 9727.01025390625,3167 10628.316406253168 ],3169 "ops_per_rep": 2048,3170 "ops_per_s": 104013.28769750336,3171 "q1_ns": 9527.33349609375,3172 "q3_ns": 9977.478271484375,3173 "reps": 7,3174 "sd_ns": 437.30442505335763175 },3176 "sigs_per_rep": 2048,3177 "speedup_vs_k256_single_verify": {3178 "bootstrap_resamples": 2000,3179 "ci95_high": 2.6294101430320125,3180 "ci95_low": 2.378854054603192,3181 "point": 2.54694087169635933182 },3183 "speedup_vs_libsecp256k1_single_verify": {3184 "bootstrap_resamples": 2000,3185 "ci95_high": 1.3930652965441634,3186 "ci95_low": 1.2866402626764504,3187 "point": 1.37266767429539123188 },3189 "window_bits": 73190 },3191 {3192 "algorithm": "k256_lincomb_vartime",3193 "batch_size": 512,3194 "msm_only_ns_per_sig_median": 12672.7294921875,3195 "msm_only_ns_per_sig_samples": [3196 12324.46337890625,3197 13232.8896484375,3198 12837.44287109375,3199 12335.77490234375,3200 12562.052734375,3201 13010.8642578125,3202 12672.72949218753203 ],3204 "n_batches_per_rep": 4,3205 "n_terms": 1025,3206 "op_counts_per_batch": {3207 "adds": 0,3208 "doublings": 0,3209 "identity_adds": 0,3210 "mixed_adds": 03211 },3212 "op_counts_per_signature": {3213 "adds": 0.0,3214 "doublings": 0.0,3215 "mixed_adds": 0.0,3216 "total": 0.03217 },3218 "per_signature": {3219 "iqr_ns": 515.0654296875,3220 "mean_ns": 15827.95933314732,3221 "median_ns": 15830.4853515625,3222 "min_ns": 15376.8310546875,3223 "ns_per_op_samples": [3224 15376.8310546875,3225 16402.54736328125,3226 16043.8232421875,3227 15419.880859375,3228 15657.9794921875,3229 16064.16796875,3230 15830.48535156253231 ],3232 "ops_per_rep": 2048,3233 "ops_per_s": 63169.257151126956,3234 "q1_ns": 15538.93017578125,3235 "q3_ns": 16053.99560546875,3236 "reps": 7,3237 "sd_ns": 372.265013714872053238 },3239 "sigs_per_rep": 2048,3240 "speedup_vs_k256_single_verify": {3241 "bootstrap_resamples": 2000,3242 "ci95_high": 1.6210471551602608,3243 "ci95_low": 1.5106930333330797,3244 "point": 1.54680585946678623245 },3246 "speedup_vs_libsecp256k1_single_verify": {3247 "bootstrap_resamples": 2000,3248 "ci95_high": 0.8588331272318773,3249 "ci95_low": 0.8180692533116236,3250 "point": 0.83364730814759413251 },3252 "window_bits": 03253 },3254 {3255 "algorithm": "straus_wnaf5",3256 "batch_size": 1024,3257 "msm_only_ns_per_sig_median": 9625.30517578125,3258 "msm_only_ns_per_sig_samples": [3259 9888.08154296875,3260 9625.30517578125,3261 9624.08447265625,3262 9613.9326171875,3263 9634.1552734375,3264 9589.25390625,3265 9648.579589843753266 ],3267 "n_batches_per_rep": 2,3268 "n_terms": 2049,3269 "op_counts_per_batch": {3270 "adds": 80876,3271 "doublings": 2305,3272 "identity_adds": 1,3273 "mixed_adds": 03274 },3275 "op_counts_per_signature": {3276 "adds": 78.98046875,3277 "doublings": 2.2509765625,3278 "mixed_adds": 0.0,3279 "total": 81.23144531253280 },3281 "per_signature": {3282 "iqr_ns": 35.308837890625,3283 "mean_ns": 12709.48716517857,3284 "median_ns": 12660.8681640625,3285 "min_ns": 12626.77001953125,3286 "ns_per_op_samples": [3287 13026.611328125,3288 12660.8681640625,3289 12655.47705078125,3290 12635.29443359375,3291 12674.9267578125,3292 12626.77001953125,3293 12686.462402343753294 ],3295 "ops_per_rep": 2048,3296 "ops_per_s": 78983.52522447634,3297 "q1_ns": 12645.3857421875,3298 "q3_ns": 12680.694580078125,3299 "reps": 7,3300 "sd_ns": 141.37413926420883301 },3302 "sigs_per_rep": 2048,3303 "speedup_vs_k256_single_verify": {3304 "bootstrap_resamples": 2000,3305 "ci95_high": 1.978296123716881,3306 "ci95_low": 1.910484675028265,3307 "point": 1.93404489982011963308 },3309 "speedup_vs_libsecp256k1_single_verify": {3310 "bootstrap_resamples": 2000,3311 "ci95_high": 1.0488903695005756,3312 "ci95_low": 1.0345640954704,3313 "point": 1.04234886020371123314 },3315 "window_bits": 53316 },3317 {3318 "algorithm": "pippenger",3319 "batch_size": 1024,3320 "msm_only_ns_per_sig_median": 5581.09521484375,3321 "msm_only_ns_per_sig_samples": [3322 5576.23291015625,3323 5582.07177734375,3324 5581.09521484375,3325 5568.96923828125,3326 5586.873046875,3327 5592.7939453125,3328 5578.613281253329 ],3330 "n_batches_per_rep": 2,3331 "n_terms": 2049,3332 "op_counts_per_batch": {3333 "adds": 16281,3334 "doublings": 248,3335 "identity_adds": 8122,3336 "mixed_adds": 489713337 },3338 "op_counts_per_signature": {3339 "adds": 15.8994140625,3340 "doublings": 0.2421875,3341 "mixed_adds": 47.8232421875,3342 "total": 63.964843753343 },3344 "per_signature": {3345 "iqr_ns": 8.910888671875,3346 "mean_ns": 8619.78306361607,3347 "median_ns": 8620.46337890625,3348 "min_ns": 8608.33740234375,3349 "ns_per_op_samples": [3350 8620.46337890625,3351 8616.55712890625,3352 8623.98291015625,3353 8608.33740234375,3354 8626.0986328125,3355 8627.33935546875,3356 8615.702636718753357 ],3358 "ops_per_rep": 2048,3359 "ops_per_s": 116003.04485335895,3360 "q1_ns": 8616.1298828125,3361 "q3_ns": 8625.040771484375,3362 "reps": 7,3363 "sd_ns": 6.747162379721423364 },3365 "sigs_per_rep": 2048,3366 "speedup_vs_k256_single_verify": {3367 "bootstrap_resamples": 2000,3368 "ci95_high": 2.902046040652679,3369 "ci95_low": 2.8104522298457186,3370 "point": 2.8405303083726843371 },3372 "speedup_vs_libsecp256k1_single_verify": {3373 "bootstrap_resamples": 2000,3374 "ci95_high": 1.5405466245292536,3375 "ci95_low": 1.5219137881805243,3376 "point": 1.53089699705613953377 },3378 "window_bits": 83379 },3380 {3381 "algorithm": "k256_lincomb_vartime",3382 "batch_size": 1024,3383 "msm_only_ns_per_sig_median": 12786.1943359375,3384 "msm_only_ns_per_sig_samples": [3385 12847.73779296875,3386 12723.2666015625,3387 12846.76123046875,3388 12841.67431640625,3389 12742.6552734375,3390 12781.90087890625,3391 12786.19433593753392 ],3393 "n_batches_per_rep": 2,3394 "n_terms": 2049,3395 "op_counts_per_batch": {3396 "adds": 0,3397 "doublings": 0,3398 "identity_adds": 0,3399 "mixed_adds": 03400 },3401 "op_counts_per_signature": {3402 "adds": 0.0,3403 "doublings": 0.0,3404 "mixed_adds": 0.0,3405 "total": 0.03406 },3407 "per_signature": {3408 "iqr_ns": 84.177734375,3409 "mean_ns": 15837.823939732143,3410 "median_ns": 15835.65283203125,3411 "min_ns": 15772.90869140625,3412 "ns_per_op_samples": [3413 15886.31201171875,3414 15772.90869140625,3415 15881.24609375,3416 15889.4453125,3417 15779.11376953125,3418 15820.0888671875,3419 15835.652832031253420 ],3421 "ops_per_rep": 2048,3422 "ops_per_s": 63148.64379808011,3423 "q1_ns": 15799.601318359375,3424 "q3_ns": 15883.779052734375,3425 "reps": 7,3426 "sd_ns": 49.802046089174783427 },3428 "sigs_per_rep": 2048,3429 "speedup_vs_k256_single_verify": {3430 "bootstrap_resamples": 2000,3431 "ci95_high": 1.5843005549735723,3432 "ci95_low": 1.526145910325231,3433 "point": 1.54630110673240083434 },3435 "speedup_vs_libsecp256k1_single_verify": {3436 "bootstrap_resamples": 2000,3437 "ci95_high": 0.8392806271269703,3438 "ci95_low": 0.8264438711245256,3439 "point": 0.83337527287198093440 },3441 "window_bits": 03442 },3443 {3444 "algorithm": "straus_wnaf5",3445 "batch_size": 2048,3446 "msm_only_ns_per_sig_median": 10377.62451171875,3447 "msm_only_ns_per_sig_samples": [3448 10435.1396484375,3449 10377.62451171875,3450 10408.8134765625,3451 10866.65869140625,3452 10361.87744140625,3453 10319.580078125,3454 10228.63769531253455 ],3456 "n_batches_per_rep": 1,3457 "n_terms": 4097,3458 "op_counts_per_batch": {3459 "adds": 161617,3460 "doublings": 4353,3461 "identity_adds": 1,3462 "mixed_adds": 03463 },3464 "op_counts_per_signature": {3465 "adds": 78.91455078125,3466 "doublings": 2.12548828125,3467 "mixed_adds": 0.0,3468 "total": 81.04003906253469 },3470 "per_signature": {3471 "iqr_ns": 88.11474609375,3472 "mean_ns": 13471.720424107143,3473 "median_ns": 13424.2353515625,3474 "min_ns": 13279.1953125,3475 "ns_per_op_samples": [3476 13482.177734375,3477 13424.2353515625,3478 13452.53515625,3479 13905.416015625,3480 13410.80712890625,3481 13347.67626953125,3482 13279.19531253483 ],3484 "ops_per_rep": 2048,3485 "ops_per_s": 74492.138569636,3486 "q1_ns": 13379.24169921875,3487 "q3_ns": 13467.3564453125,3488 "reps": 7,3489 "sd_ns": 202.890540470062523490 },3491 "sigs_per_rep": 2048,3492 "speedup_vs_k256_single_verify": {3493 "bootstrap_resamples": 2000,3494 "ci95_high": 1.8727120358065017,3495 "ci95_low": 1.7977282659761333,3496 "point": 1.82406571836137383497 },3498 "speedup_vs_libsecp256k1_single_verify": {3499 "bootstrap_resamples": 2000,3500 "ci95_high": 0.9921655449668076,3501 "ci95_low": 0.9735043372507832,3502 "point": 0.98307584412723693503 },3504 "window_bits": 53505 },3506 {3507 "algorithm": "pippenger",3508 "batch_size": 2048,3509 "msm_only_ns_per_sig_median": 4870.89013671875,3510 "msm_only_ns_per_sig_samples": [3511 4875.447265625,3512 4870.76806640625,3513 4866.47509765625,3514 4870.89013671875,3515 5023.49853515625,3516 4862.99658203125,3517 4929.58593753518 ],3519 "n_batches_per_rep": 1,3520 "n_terms": 4097,3521 "op_counts_per_batch": {3522 "adds": 16351,3523 "doublings": 248,3524 "identity_adds": 8192,3525 "mixed_adds": 979033526 },3527 "op_counts_per_signature": {3528 "adds": 7.98388671875,3529 "doublings": 0.12109375,3530 "mixed_adds": 47.80419921875,3531 "total": 55.90917968753532 },3533 "per_signature": {3534 "iqr_ns": 37.801025390625,3535 "mean_ns": 7939.583844866072,3536 "median_ns": 7911.19384765625,3537 "min_ns": 7906.94140625,3538 "ns_per_op_samples": [3539 7911.19384765625,3540 7908.14208984375,3541 7907.16552734375,3542 7912.55712890625,3543 8052.734375,3544 7906.94140625,3545 7978.35253906253546 ],3547 "ops_per_rep": 2048,3548 "ops_per_s": 126403.17242337039,3549 "q1_ns": 7907.65380859375,3550 "q3_ns": 7945.454833984375,3551 "reps": 7,3552 "sd_ns": 56.195417228776363553 },3554 "sigs_per_rep": 2048,3555 "speedup_vs_k256_single_verify": {3556 "bootstrap_resamples": 2000,3557 "ci95_high": 3.1620126719920965,3558 "ci95_low": 3.0472144867417086,3559 "point": 3.09519498213968853560 },3561 "speedup_vs_libsecp256k1_single_verify": {3562 "bootstrap_resamples": 2000,3563 "ci95_high": 1.678549506216861,3564 "ci95_low": 1.6458141148769065,3565 "point": 1.66814791220287463566 },3567 "window_bits": 83568 },3569 {3570 "algorithm": "k256_lincomb_vartime",3571 "batch_size": 2048,3572 "msm_only_ns_per_sig_median": 14036.9462890625,3573 "msm_only_ns_per_sig_samples": [3574 14012.61376953125,3575 14299.458984375,3576 14115.29541015625,3577 13874.51171875,3578 14104.57373046875,3579 14036.9462890625,3580 14002.90917968753581 ],3582 "n_batches_per_rep": 1,3583 "n_terms": 4097,3584 "op_counts_per_batch": {3585 "adds": 0,3586 "doublings": 0,3587 "identity_adds": 0,3588 "mixed_adds": 03589 },3590 "op_counts_per_signature": {3591 "adds": 0.0,3592 "doublings": 0.0,3593 "mixed_adds": 0.0,3594 "total": 0.03595 },3596 "per_signature": {3597 "iqr_ns": 108.40869140625,3598 "mean_ns": 17105.881417410714,3599 "median_ns": 17075.98876953125,3600 "min_ns": 16918.64013671875,3601 "ns_per_op_samples": [3602 17044.291015625,3603 17354.7158203125,3604 17161.66162109375,3605 16918.64013671875,3606 17142.65966796875,3607 17075.98876953125,3608 17043.2128906253609 ],3610 "ops_per_rep": 2048,3611 "ops_per_s": 58561.76257179928,3612 "q1_ns": 17043.751953125,3613 "q3_ns": 17152.16064453125,3614 "reps": 7,3615 "sd_ns": 135.43523688375253616 },3617 "sigs_per_rep": 2048,3618 "speedup_vs_k256_single_verify": {3619 "bootstrap_resamples": 2000,3620 "ci95_high": 1.4670980140550636,3621 "ci95_low": 1.4138583200883146,3622 "point": 1.43398357954484523623 },3624 "speedup_vs_libsecp256k1_single_verify": {3625 "bootstrap_resamples": 2000,3626 "ci95_high": 0.7788066976696858,3627 "ci95_low": 0.7656313987568761,3628 "point": 0.77284201097318183629 },3630 "window_bits": 03631 }3632 ],3633 "single_verify_reference_ns": {3634 "k256_verify_raw": 24486.6875,3635 "libsecp256k1_schnorr_verify": 13197.04153636 },3637 "sizes": [3638 1,3639 2,3640 4,3641 8,3642 16,3643 32,3644 64,3645 128,3646 256,3647 512,3648 1024,3649 20483650 ]3651 },3652 "python_baselines": {3653 "seed": 34,3654 "ops": 20,3655 "reps": 7,3656 "python": "3.12.13",3657 "results": {3658 "wp34_pure_python_ecdsa_sign": {3659 "reps": 7,3660 "ops_per_rep": 20,3661 "ns_per_op_samples": [3662 3801920.8,3663 3812612.5,3664 3854562.5,3665 3812591.65,3666 3804981.25,3667 3800593.75,3668 3900514.553669 ],3670 "median_ns": 3812591.65,3671 "q1_ns": 3803451.025,3672 "q3_ns": 3833587.5,3673 "iqr_ns": 30136.475000000093,3674 "min_ns": 3800593.75,3675 "mean_ns": 3826825.285714286,3676 "sd_ns": 37393.29075653937,3677 "ops_per_s": 262.28877671701353678 },3679 "wp34_pure_python_ecdsa_verify": {3680 "reps": 7,3681 "ops_per_rep": 20,3682 "ns_per_op_samples": [3683 8599947.9,3684 8206531.25,3685 7140266.7,3686 7175522.9,3687 7237068.75,3688 7099704.15,3689 7252956.253690 ],3691 "median_ns": 7237068.75,3692 "q1_ns": 7157894.800000001,3693 "q3_ns": 7729743.75,3694 "iqr_ns": 571848.9499999993,3695 "min_ns": 7099704.15,3696 "mean_ns": 7530285.414285714,3697 "sd_ns": 609336.3884085865,3698 "ops_per_s": 138.177490714040833699 },3700 "wp34_pure_python_ecdsa_verify_shamir": {3701 "reps": 7,3702 "ops_per_rep": 20,3703 "ns_per_op_samples": [3704 4504793.75,3705 4374181.25,3706 4508685.4,3707 4517350.0,3708 4376629.15,3709 4327158.35,3710 4389137.53711 ],3712 "median_ns": 4389137.5,3713 "q1_ns": 4375405.2,3714 "q3_ns": 4506739.575,3715 "iqr_ns": 131334.375,3716 "min_ns": 4327158.35,3717 "mean_ns": 4428276.485714286,3718 "sd_ns": 79167.60234257094,3719 "ops_per_s": 227.835195411399163720 },3721 "wp34_pure_python_schnorr_sign": {3722 "reps": 7,3723 "ops_per_rep": 20,3724 "ns_per_op_samples": [3725 14907475.0,3726 14713058.3,3727 14788443.75,3728 14512383.35,3729 14396831.25,3730 14651887.5,3731 15177497.93732 ],3733 "median_ns": 14713058.3,3734 "q1_ns": 14582135.425,3735 "q3_ns": 14847959.375,3736 "iqr_ns": 265823.94999999925,3737 "min_ns": 14396831.25,3738 "mean_ns": 14735368.15,3739 "sd_ns": 258106.1490264036,3740 "ops_per_s": 67.966834604332393741 },3742 "wp34_pure_python_schnorr_verify": {3743 "reps": 7,3744 "ops_per_rep": 20,3745 "ns_per_op_samples": [3746 7513406.25,3747 7377645.85,3748 7493079.2,3749 7417233.35,3750 7353604.15,3751 7340768.75,3752 7494881.253753 ],3754 "median_ns": 7417233.35,3755 "q1_ns": 7365625.0,3756 "q3_ns": 7493980.225,3757 "iqr_ns": 128355.22499999963,3758 "min_ns": 7340768.75,3759 "mean_ns": 7427231.257142857,3760 "sd_ns": 72794.21829425759,3761 "ops_per_s": 134.821159428670263762 },3763 "wp34_pure_python_schnorr_batch_verify_per_sig": {3764 "reps": 7,3765 "ops_per_rep": 16,3766 "ns_per_op_samples": [3767 5586445.3125,3768 5942755.1875,3769 5719567.75,3770 5673229.125,3771 5656442.75,3772 5712385.4375,3773 5768197.8753774 ],3775 "median_ns": 5712385.4375,3776 "q1_ns": 5664835.9375,3777 "q3_ns": 5743882.8125,3778 "iqr_ns": 79046.875,3779 "min_ns": 5586445.3125,3780 "mean_ns": 5722717.633928572,3781 "sd_ns": 112556.11319446212,3782 "ops_per_s": 175.05821533598152,3783 "batch_size": 163784 },3785 "python_ecdsa_pkg_ecdsa_sign": {3786 "reps": 7,3787 "ops_per_rep": 20,3788 "ns_per_op_samples": [3789 118562.5,3790 118614.6,3791 118029.2,3792 117841.65,3793 116395.85,3794 118050.0,3795 117793.753796 ],3797 "median_ns": 118029.2,3798 "q1_ns": 117817.7,3799 "q3_ns": 118306.25,3800 "iqr_ns": 488.5500000000029,3801 "min_ns": 116395.85,3802 "mean_ns": 117898.22142857143,3803 "sd_ns": 737.7771698697045,3804 "ops_per_s": 8472.479691466183805 },3806 "python_ecdsa_pkg_ecdsa_verify": {3807 "reps": 7,3808 "ops_per_rep": 20,3809 "ns_per_op_samples": [3810 420854.15,3811 419358.35,3812 415862.5,3813 414627.1,3814 414229.2,3815 442475.0,3816 444735.43817 ],3818 "median_ns": 419358.35,3819 "q1_ns": 415244.8,3820 "q3_ns": 431664.575,3821 "iqr_ns": 16419.775000000023,3822 "min_ns": 414229.2,3823 "mean_ns": 424591.67142857146,3824 "sd_ns": 13227.571538578595,3825 "ops_per_s": 2384.59541821451743826 },3827 "coincurve_ecdsa_sign_der": {3828 "reps": 7,3829 "ops_per_rep": 20,3830 "ns_per_op_samples": [3831 12095.8,3832 11950.0,3833 12045.85,3834 11935.4,3835 11945.85,3836 11931.25,3837 11933.353838 ],3839 "median_ns": 11945.85,3840 "q1_ns": 11934.375,3841 "q3_ns": 11997.925,3842 "iqr_ns": 63.54999999999927,3843 "min_ns": 11931.25,3844 "mean_ns": 11976.785714285714,3845 "sd_ns": 66.18371976479365,3846 "ops_per_s": 83711.07957993783847 },3848 "coincurve_ecdsa_verify_der": {3849 "reps": 7,3850 "ops_per_rep": 20,3851 "ns_per_op_samples": [3852 13354.2,3853 12802.05,3854 12689.6,3855 12606.25,3856 12568.75,3857 12677.05,3858 12660.43859 ],3860 "median_ns": 12677.05,3861 "q1_ns": 12633.325,3862 "q3_ns": 12745.825,3863 "iqr_ns": 112.5,3864 "min_ns": 12568.75,3865 "mean_ns": 12765.471428571429,3866 "sd_ns": 269.75449773380836,3867 "ops_per_s": 78882.705361263073868 },3869 "coincurve_schnorr_sign": {3870 "reps": 7,3871 "ops_per_rep": 20,3872 "ns_per_op_samples": [3873 28385.4,3874 28341.65,3875 28493.75,3876 28347.9,3877 28220.85,3878 27952.1,3879 27862.53880 ],3881 "median_ns": 28341.65,3882 "q1_ns": 28086.475,3883 "q3_ns": 28366.65,3884 "iqr_ns": 280.1750000000029,3885 "min_ns": 27862.5,3886 "mean_ns": 28229.164285714283,3887 "sd_ns": 235.3872159412481,3888 "ops_per_s": 35283.7608254988663889 },3890 "coincurve_schnorr_verify": {3891 "reps": 7,3892 "ops_per_rep": 20,3893 "ns_per_op_samples": [3894 12550.0,3895 12658.35,3896 12520.85,3897 12516.65,3898 12516.65,3899 12504.15,3900 12472.93901 ],3902 "median_ns": 12516.65,3903 "q1_ns": 12510.4,3904 "q3_ns": 12535.425,3905 "iqr_ns": 25.024999999999636,3906 "min_ns": 12472.9,3907 "mean_ns": 12534.221428571429,3908 "sd_ns": 59.32646863713034,3909 "ops_per_s": 79893.581749110193910 }3911 },3912 "versions": {3913 "ecdsa": "0.19.2",3914 "coincurve": "21.0.0"3915 },3916 "pure_python_batch_negative_control_rejected": true,3917 "coincurve_schnorr_identical_to_wp34": 203918 },3919 "rust_elapsed_s": 20.08,3920 "threading": "single thread (all work on the main thread; no rayon; macOS offers no hard CPU pinning from user space - affinity tags are hints only)"3921 },3922 "elapsed_s": 39.823,3923 "label": "Laptop (Apple M5 Max)",3924 "toolchain": {3925 "rustc": "rustc 1.95.0 (59807616e 2026-04-14)",3926 "cargo": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)",3927 "crates": {3928 "clap": "4.6.7",3929 "k256": "0.14.0",3930 "ecdsa": "0.17.0",3931 "elliptic-curve": "0.14.3",3932 "crypto-bigint": "0.7.10",3933 "primeorder": "0.14.0",3934 "wnaf": "0.14.1",3935 "sha2": "0.11.1",3936 "rand": "0.9.5",3937 "rand_chacha": "0.9.0",3938 "secp256k1": "0.33.1",3939 "secp256k1-sys": "0.14.1",3940 "serde": "1.0.229",3941 "serde_json": "1.0.154"3942 },3943 "profile": "release (opt-level 3, lto fat, codegen-units 1)",3944 "target": "aarch64-apple-darwin"3945 },3946 "crate": "experiments/signature_benchmarks/sigbench"3947}