Select a function
Choose an HSM function from the sidebar to get started.
An open, educational simulator for payment HSM cryptography and payment network message flows.
Explore how terminals, acquirers, schemes and issuers communicate using AS2805 messages — for card issuance, PIN set, terminal provisioning and purchase transactions.
Explore →Step through individual HSM operations — generate LMKs and zone keys, encrypt PIN blocks, compute MACs, wrap keys with TR-31, and more. All inputs and outputs are visible.
Explore →Explore how money moves through a 4-party card scheme. Follow a transaction from clearing through settlement, and see how interchange fees, scheme fees, and merchant service fees are calculated at each step.
Explore →Paste raw hex bytes from an AS2805.2 message and decode it into human-readable fields, bitmaps, and a colour-coded hex dump.
Explore →The payment scheme simulator needs a screen width of at least 900px to display the network topology, activity records, and key material properly.
Try rotating to landscape, or use a tablet / desktop browser.
Financial Flows needs a screen width of at least 900px to display the settlement network, transaction flows, and account ledgers properly.
Try rotating to landscape, or use a tablet / desktop browser.
Paste the raw hex bytes of an AS2805.2 message (whitespace is ignored). Click Decode to parse it into human-readable fields.
Module-Lattice-based Key Encapsulation Mechanism — the post-quantum KEM standardised by NIST in FIPS 203 (August 2024). Originally proposed as CRYSTALS-Kyber. Three parameter sets at increasing security levels: ML-KEM-512 (Cat 1, ~AES-128), ML-KEM-768 (Cat 3, ~AES-192), and ML-KEM-1024 (Cat 5, ~AES-256). Vispay exposes 512 and 1024; 768 is omitted because its natural AES match (AES-192) is not user-facing elsewhere in the simulator. No payments standard profiles ML-KEM yet, but ASD ISM and US CNSA 2.0 point to ML-KEM-1024 for systems intended for use beyond 2030. See references/MLKEM_Payments_Status.md.
Choose an HSM function from the sidebar to get started.