VORTEX-256
A new lattice KEM built on Rotational Module Learning With Errors
Same footprint as Kyber-512 · Entirely different mathematics · Standalone library
A Bajpai Labs project · postquantumlabs.in/library/vortex-pqc
╭──────────────────────────────────────╮
│ │
ρ ──▶ a₀ ──σ──▶ a₁ ──σ──▶ a₂ ──σ──▶ … │
│ Frobenius orbit │
│ of a single ring element │
╰──────────────────────────────────────╯
│
bᵢ = aᵢ · s + eᵢ (K correlated instances)
│
pk · ct · 32-byte shared secret
✦ At a glance
✦ Install
pip install vortex-pqc
No runtime dependencies. Compiles an optional native extension when a C toolchain is present; otherwise falls back to a pure-Python reference.
✦ Thirty seconds to a shared secret
from vortex_pqc import generate_keypair, encapsulate, decapsulate
alice = generate_keypair()
bob = encapsulate(alice.public_key)
# bob sends bob.data (768 B) to alice
alice_secret = decapsulate(bob.data, alice.private_key)
assert alice_secret == bob.shared_secret # both parties agree
✦ How the exchange works
sequenceDiagram
participant Alice
participant Bob
Note over Alice: generate_keypair()
Alice->>Alice: pk (800 B) · sk (1248 B)
Alice->>Bob: public key
Note over Bob: encapsulate(pk)
Bob->>Bob: ct (768 B) · ss (32 B)
Bob->>Alice: ciphertext
Note over Alice: decapsulate(ct, sk)
Alice->>Alice: ss (32 B)
Note over Alice,Bob: shared secrets match
✦ PEM keys
Standard Base64 PEM — compatible with everyday tooling.
from vortex_pqc import PEMKind, write_pem_file, read_pem_file
write_pem_file("key.pem", PEMKind.PRIVATE_KEY, alice.private_key)
sk = read_pem_file("key.pem", PEMKind.PRIVATE_KEY)
-----BEGIN VORTEX256 PRIVATE KEY-----
AQDQABAAABAAAA0AAAAAAPDP/gzQAhAAAAAAAA3QAA0AAPDPAQAAASAAAADQ/wwA
...
-----END VORTEX256 PRIVATE KEY-----
Private key files are written with mode 0600.
✦ C library
cd c && make lib && make test && make demo
#include "vortex_pqc.h"
uint8_t pk[VORTEX_PUBLIC_KEY_BYTES];
uint8_t sk[VORTEX_PRIVATE_KEY_BYTES];
uint8_t ct[VORTEX_CIPHERTEXT_BYTES];
uint8_t ss[VORTEX_SHARED_SECRET_BYTES];
vortex_keypair(pk, sk);
vortex_enc(pk, ct, ss);
vortex_dec(ct, sk, ss);
✦ Documentation
Library home → · Full documentation → · Published docs →
Enterprise: Bajpai Labs
| Guide | For | You'll learn |
|---|---|---|
| Overview | Everyone | What VORTEX is, design goals, positioning |
| Quickstart | Users | Install, first exchange, PEM files |
| Integration guide | Developers | Client–server protocol, session keys |
| Core concepts | Learners | KEM, RotMLWE, Frobenius, FO transform |
| Security model | Security engineers | Threat model, guarantees, limitations |
| API reference | Integrators | Python and C API, byte layouts |
| Comparison | Evaluators | vs ML-KEM, NTRU, other PQC |
| FAQ | Everyone | Common questions answered |
✦ For developers
git clone https://github.com/bajpai-labs/vortex-pqc.git
cd vortex-pqc
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
make test
→ Full workflow in the Development Guide
✦ Security
Research prototype. VORTEX-256 introduces a novel hardness assumption that has not received the years of independent cryptanalysis behind NIST-standardised ML-KEM. Suitable for research, education, and prototyping. Not recommended for production without a formal security review.
✦ Related
This project is fully independent from Kyber-PQC (ML-KEM-512).
Institutional Backing & Maintenance
Post-Quantum Labs is an open-source research and development initiative of Bajpai Labs. All frameworks, kernel-level optimizations, and cryptographic implementations hosted here are engineered and maintained by our core systems architecture team.
| Operational Hub | Technical Documentation |
|---|---|
Enterprise Support & Custom Integrations: Need deterministic sub-microsecond performance, hardware-software co-design, or custom PQC migration frameworks? Contact our corporate consulting arm at Bajpai Labs.
Maintenance & Ownership
This library is part of the open-source ecosystem developed by Post-Quantum Labs, a wholly-owned division of Bajpai Labs.
- Primary Corporate Hub: https://bajpailabs.com
- Documentation & Benchmarks: https://postquantumlabs.com
- Inquiries: research@postquantumlabs.com / hello@bajpailabs.com
License
MIT License. See LICENSE for details.
Metadata
Release files for vortex-pqc 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vortex_pqc-1.0.1.tar.gz | 33.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vortex_pqc-1.0.1-cp310-cp310-macosx_26_0_arm64.whl | CPython 3.10 | CPython 3.10 | macOS 26.0+ ARM64 | Details |
Total release size: 70.2 kB
Release files / vortex_pqc-1.0.1.tar.gz
| Download URL | vortex_pqc-1.0.1.tar.gz |
|---|---|
| Size | 33.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5637f9cdc5616bb417810040ae2b2ff7fc7c05f511e6ddbc44cedc2fb178d1bb
|
|
BLAKE2b-256 checksum How to use checksums |
951193b5ea7c1b95f6267081ad271009d76f81d4638cbea9be9407e3784971ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Release files / vortex_pqc-1.0.1-cp310-cp310-macosx_26_0_arm64.whl
| Download URL | vortex_pqc-1.0.1-cp310-cp310-macosx_26_0_arm64.whl |
|---|---|
| Size | 37.1 kB |
| Tags | CPython 3.10 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b9d93b7d599663f986e7fcd95b508210c07c18020e7066822fd858c55df515ac
|
|
BLAKE2b-256 checksum How to use checksums |
01f60729f33912bb398a77c02fba0a04781026e0ce6c6a2c70cc5e58c37056ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|