crypto

PRACTICES

01

Steganography

Hide secret messages inside images using LSB encoding. Upload a file and embed hidden data invisible to the naked eye.

LSBimagesencoding
02

Affine Cipher

Encrypt and decrypt messages using the affine cipher. Validate coprimality, compute multiplicative inverses, and see e_k and d_k in action.

modular arithmeticaffineencryption
03

Matrix Calculator

Modular matrix algebra with reusable result slots. Invert, solve systems, and reduce non-square matrices via RREF — chain computations without re-typing.

linear algebramodularhill
04

RSA Hybrid Encryption

Generate RSA keypairs and encrypt/decrypt files with AES-256-GCM wrapped by RSA. Pure WebAssembly — keys and plaintext never leave the browser.

rsaaes-gcmpublic-key
05

AES Modes of Operation

Encrypt and decrypt files with AES-128 in ECB, CBC, CFB, OFB and CTR. Inspect per-block trace, derive keys via PBKDF2, randomize IVs — pure WebAssembly.

aesblock ciphermodes
06

Elliptic Curve

Compute quadratic residues, enumerate rational points, generate curves, and add or double points.

elliptic curvesCWebAssembly
07

Toy ECDH

Compare RTL and LTR scalar multiplication step by step and simulate an ECDH exchange with secrets r and s.

ECDHCWebAssembly
08

Toy ECDSA

Generate ECDSA keys, sign integers, verify signatures and test modified messages.

ECDSACWebAssembly
09

ECDSA & ECDH · OpenSSL

Sign files with ECDSA and simulate ECDH using OpenSSL, NIST curves and HKDF-SHA-256.

OpenSSLNISTSHA-2
10

RSA-PSS · OpenSSL

Generate RSA keys and sign files with RSA-PSS, SHA-256 and OpenSSL in your browser.

RSA-PSSSHA-256OpenSSL
11

RSA with CRT

Generate schoolbook RSA keys with random e, encrypt integers and decrypt with the Chinese remainder theorem step by step.

RSACRTCWebAssembly
12

RSA-OAEP · OpenSSL

Alice and Bob exchange a file encrypted with AES-128-GCM and a key K wrapped with RSA-OAEP and CRT.

RSA-OAEPAES-128OpenSSL

LEARN BY
DOING.

Each practice is implemented in Rust or C, compiled to WebAssembly, and runs entirely in your browser.

Upload files, transform data, and see results in real time — no servers involved. Understand the algorithms, see them work, and experiment with your own inputs.