VPR Research Ltd

Vortex-Pattern-Resonance

High-performance prime generation and computational mathematics

πŸ“‚ Data & other works

β”œβ”€β”€ Data/
β”‚   └── Full audit log (long β€” all structural, population, and timing checks).
β”‚   └── Download a list of 1,000 prime numbers, 2048-bits each β€” generated by the VPR RSA Engine.
β”‚   └── Download a list of 50,000 prime numbers, 2048-bits each β€” generated by the VPR RSA Engine.
β”‚
└── Other works/
    └── Preprint: Closed-Form Phase Prediction and Spectral-Leakage Modeling for the Explicit Formula of L(s, χ₃), with Blind FFT Detection
        └── Code: GitHub repository

└── Executive Summary β€” Vortex-Pattern-Resonance (VPR) Cryptographic Engine (PDF)

VPR RSA Engine

Complete RSA-2048 / RSA-4096 key generation · Measured against OpenSSL · Independently audited key population
⚑ 49.8 RSA-2048 keys/s (1 core) 🧬 ~1.9Γ— faster than OpenSSL πŸ”’ OS-level CSPRNG βœ… 30,000+ keys audited

VPR RSA Engine is a production-grade cryptographic prime engine developed at VPR Research Ltd. It generates complete RSA-2048 and RSA-4096 keys β€” p, q, n, e, d, dP, dQ, qInv β€” measurably faster than the OpenSSL implementation on the same hardware, with the same acceptance rules and the same FIPS 186-5 Miller-Rabin round counts.

The engine is a closed-source commercial implementation. This page summarises the measured performance and the independent audit of the generated key population. For licensing inquiries, please contact us directly.


πŸ“Š Performance highlights

RSA-2048 throughput
49.8
keys/second (1 core)
1.91Γ— faster than OpenSSL
RSA-2048 (4 cores)
141.5
keys/second
2.84Γ— scaling
RSA-4096 throughput
4.58
keys/second (1 core)
1.73Γ— faster than OpenSSL
RSA-4096 (4 cores)
13.97
keys/second
3.05Γ— scaling
βœ… Complete RSA-2048 keys generated in ~20 ms (vs. ~39 ms for OpenSSL). Full key includes p, q, n, e, d, dP, dQ, qInv.

⚑ Benchmark: VPR RSA Engine vs. OpenSSL

Same machine, same session, complete RSA keys on both sides. The VPR FIPS profile uses the same Miller-Rabin test and round counts as OpenSSL's FIPS 186-5 path.

Metric VPR RSA (FIPS) OpenSSL bundled Speed-up
RSA-2048 (1 core) 49.8 keys/s 26.0 keys/s 1.91Γ—
RSA-2048 (4 cores) 141.5 keys/s 82.6 keys/s 1.71Γ—
RSA-4096 (1 core) 4.58 keys/s 2.65 keys/s 1.73Γ—
RSA-4096 (4 cores) 13.97 keys/s 8.05 keys/s 1.74Γ—

Note on the numbers. Single-core figures are the mean of two independent runs of 1000 keys per contender. Ratio and confidence interval are reported in the full methodology document. The VPR gmpy2 profile (Baillie-PSW + 1 Miller-Rabin round) shows essentially the same numbers and is reported separately in the full document.


πŸ“Œ Benchmark methodology

Only the generation call is timed. Converting numbers to Python integers, writing files, hashing and printing are all outside the timed region for both contenders.

Equal conditions. Every contender produces the same complete RSA key structure. VPR applies the same FIPS 186-5 / SP 800-56B acceptance rules that OpenSSL uses: exact modulus length, |p βˆ’ q| > 2(nlen/2 βˆ’ 100), d > 2nlen/2, and gcd(p βˆ’ 1, e) = 1. Both compute d modulo Ξ»(n) = lcm(p βˆ’ 1, q βˆ’ 1).

Same primality confirmation in the FIPS profile. The Miller-Rabin round counts are the FIPS 186-5 Table B.1 values: 5 rounds for a 2048-bit modulus, 4 for 3072 bits and above. We verified the values against the OpenSSL source for releases 3.5 and 3.6.5.

Interleaved blocks. Keys are generated in blocks, and inside each block the order of the contenders is randomised, so that thermal throttling or background load cannot favour whichever contender runs last.

Statistics. Generation time is random, so single timings mean little. The full document reports mean, median, the 10th–90th percentile range, and the speed ratio of mean times with a 95% confidence interval from 4000 bootstrap resamples.

Parallel mode. A pool of worker processes generates keys; each worker times its own generation call. Throughput is keys divided by the wall-clock time of the batch.

Both methods run in-process. OpenSSL via the Python cryptography package (a direct binding to libcrypto), VPR via Python with gmpy2, numpy and a compiled C kernel. No subprocess, no PEM encoding, no file I/O inside the timed region on either side.

β†’ Read the full methodology and results document


πŸ”’ Cryptographic audit of the key population

Every key generated during the benchmark was independently audited with code that does not call the generator. The audit script, its parameters, and its own self-test are published in the methodology document. The results below are from runs covering both RSA-2048 and RSA-4096.

βœ… Structural checks
K01–K14, all keys PASS
Length, |pβˆ’q|, primality (three independent tests), e/d, CRT, round trip
βœ… Population tests
P01–P06, all keys PASS
No shared primes, no duplicates, uniform residues, bit statistics
βœ… Cross-generator
no shared primes
Across ~30,000 keys from three independent populations
ℹ️ Selection bias (B01)
ratio β‰ˆ 1.1 (pooled)
Small, measurable; well under 1 bit of entropy loss per prime
βœ… Timing calibration
null and positive controls PASS
The audit can see a leak of the size it claims to detect
βœ… Self-test of the audit
16 / 16 controls
Feeds keys with known defects and must flag each one
🟒 VERDICT: every audited key is a valid, well-formed RSA key
No failing check was found across 12 benchmark configurations and roughly 30,000 keys. The one statistical deviation found β€” a small, measurable bias in how primes are selected β€” is quantified in the methodology document, and we know of no attack that exploits non-uniformity of that size.

Audit details

Keys audited~30,000 across 12 configurations and two key sizes
Structural checksK01–K14 on every key (lengths, |pβˆ’q|, primality with three independent tests, e/d, CRT consistency, round-trip, Fermat and Pollard pβˆ’1 screens, ROCA fingerprint, independent validator)
Population testsP01–P06 (shared primes, duplicate moduli, residue uniformity, monobit, per-position frequency, runs test)
Bias testB00–B02 (gap-before-prime vs. a uniform reference population; pooled ratio β‰ˆ 1.1 for VPR, consistent with 1 for OpenSSL)
Timing correlationT03 (generation time vs. key characteristics), no significant correlation
Timing calibration (optional)T00a, T00b β€” both controls pass; 7 WARN measurements across all runs, all consistent with a known analysis artifact, no FAIL
Fault simulation (optional)F01, F02 β€” verified CRT signing is not vulnerable to Bellcore/Lenstra; unverified CRT is, as expected
Self-test of the audit16 / 16 controls behave as expected β€” a test that cannot fail proves nothing
All 16 controls of the audit self-test pass. The controls feed the audit script keys with known defects (ROCA-like modulus, close primes, smooth pβˆ’1, composite presented as a prime, shared prime, corrupted CRT parameter, Wiener-vulnerable small d, non-uniform residues, biased bit) and healthy data, and each control must behave as expected.

What is intentionally not described

VPR's candidate-selection stage β€” the part that decides which numbers are put forward for the primality test β€” is proprietary and is deliberately not described. The validity of the keys does not depend on it: every accepted prime has passed the same primality confirmation described in the methodology document, the same acceptance rules are applied to every key, and the key tests use independent code.

The measured speed difference comes from the candidate-selection stage, not from a weaker primality test. Each VPR profile confirms every prime with a complete test as described above.


πŸ–₯️ Test environment

HardwareIntel-based MacBook Pro (x86_64), 8 logical cores
Operating systemmacOS 14.7.6 (Sonoma)
Python3.13.2
numpy2.x (Anaconda distribution)
gmpy22.2.1
cryptography45.0.3
OpenSSL (bundled and system)3.6.5 (29 Sep 2026)
C compilerApple clang 16.x

βš™οΈ Key features


πŸ“¬ Licensing & contact

VPR RSA Engine is proprietary software developed at VPR Research Ltd. The implementation is not publicly available at this time. We are open to commercial licensing discussions with qualified partners in cryptography, blockchain, and security.

πŸ“§ Contact: georgieva@vpr-research.eu  Β·  vpr.model@gmail.com  Β·  nanov@vpr-research.eu

For technical inquiries, benchmarking, or partnership proposals.