Caesar Cipher
A simple shift substitution cipher where each letter in the plaintext is shifted by a fixed number of positions.
Standardized security classification badges for every algorithm in CryptoViz based on NIST SP 800-57 guidelines and modern cryptanalysis standards.
Understanding security status criteria and operational recommendations.
Actively recommended by NIST or equivalent standards bodies for new systems.
No known practical attacks. Suitable for production use in current systems.
Standardised but not yet widely deployed; may see parameter or API changes.
No longer recommended for new systems but still in use for interoperability.
Officially deprecated. Migrate away; support may be withdrawn in future tooling.
Practical attacks exist. Do NOT use for security-sensitive purposes.
Filter algorithms by lifecycle stage or search by name.
A simple shift substitution cipher where each letter in the plaintext is shifted by a fixed number of positions.
A special case of Caesar cipher with a fixed shift value of 13.
A polyalphabetic substitution cipher that uses a keyword to shift characters in repeating cycles.
A monoalphabetic substitution cipher formed by reversing the alphabet (A becomes Z, B becomes Y, etc.).
A polygraphic substitution cipher that encrypts pairs of letters using a dynamic 5x5 key matrix.
A transposition cipher where plaintext is written diagonally down and up on successive "rails" of a fence.
A simple stream cipher performing byte-wise XOR operations between plaintext and key.
An unbreakable cipher when used with a truly random, single-use key of equal length to the plaintext.
Data Encryption Standard. A legacy 64-bit block cipher utilizing a 56-bit key size.
Applies the DES algorithm three times to each data block with two or three keys to increase security.
A tweakable mode (IEEE P1619) for disk-sector encryption, composed from the existing AES module β the sector number IS the tweak, so no IV needs to be stored per sector. Confidentiality-only, no authentication tag (unlike AES-GCM).
Advanced Encryption Standard. A highly secure, standard block cipher supporting key sizes of 128, 192, or 256 bits.
A symmetric key block cipher jointly developed by Mitsubishi Electric and NTT, widely used and standardized (RFC 3713).
An AES finalist (1998, runner-up to Rijndael) with the largest security margin of the finalists β 32 rounds using 8 different S-boxes cycled per round, versus AES's single S-box.
RFC 8439 AEAD combining the existing ChaCha20 and Poly1305 modules β the software-oriented alternative to AES-GCM, used by TLS 1.3 and WireGuard when hardware AES acceleration isn't available.
An NSA lightweight ARX cipher (2013) using only addition, rotation, and XOR β no S-boxes or lookup tables at all, unlike every other symmetric cipher in this registry.
Counter with CBC-MAC (NIST SP 800-38C) β an authenticated mode composed from AES, contrasted with AES-GCM: authentication here is literal CBC-MAC re-running the block cipher, not GHASH polynomial evaluation.
A tweakable, large-block ARX cipher (2008) underlying the Skein hash function (a SHA-3 finalist). 256-bit block, 72 rounds, and a 128-bit tweak that varies ciphertext without changing the key β no other cipher here exposes a tweak input.
The 192-bit-nonce extension of ChaCha20 (used by libsodium) β an HChaCha20 subkey-derivation step, the ChaCha20 sibling of this batch's XSalsa20, lets you pick nonces randomly instead of managing a counter.
AES finalist by Bruce Schneier et al. (1998). 128-bit block, 128/192/256-bit keys, 16-round Feistel. Uses key-dependent S-boxes (derived via RS matrix over GF(2^8)), MDS matrix diffusion, PHT, and 40 subkeys. Used in GnuPG and VeraCrypt. Never broken.
The Soviet/Russian government standard block cipher (declassified 1994) β 256-bit key, 32-round Feistel. Uniquely, the S-boxes are a negotiated parameter, not fixed by the standard; this demo uses a published reference set.
Ron Rivest's 1987 variable-key block cipher (RFC 2268). First cipher exportable from the US under 1990s export controls via "effective key bits" parameter. Used in SSL 2/3, TLS, and S/MIME. Mix-and-mash round structure. Historical/educational only β broken at β€40-bit effective keys.
The historical WWII 3-rotor Wehrmacht cipher machine, with plugboard and reflector. Self-reciprocal (same settings encrypt and decrypt), and β a real historical weakness β no letter ever maps to itself.
NIST-selected lightweight cryptography standard (SP 800-232, 2023). Authenticated encryption with associated data (AEAD) β encrypts and authenticates simultaneously using a 320-bit sponge permutation. Designed for IoT and constrained devices. Output = nonce + ciphertext + 128-bit tag.
The 192-bit-nonce extension of Salsa20 (used by NaCl/libsodium) β an HSalsa20 subkey-derivation step lets you pick nonces randomly instead of managing a counter.
eSTREAM Phase 3 stream cipher (ISO/IEC 29192-3). Three coupled 93/84/111-bit NLFSRs with 288-bit total state. 80-bit key, 80-bit IV, 1152 warm-up clocks before keystream. Most analysed stream cipher β one AND gate per output bit in hardware. Output = IV(20 hex) + ciphertext.
Chinese national standard block cipher (GB/T 32907-2016, ISO/IEC 18033-3, RFC 8998). Mandatory in Chinese internet and financial infrastructure; now part of TLS 1.3 cipher suites. 128-bit block, 128-bit key, 32-round SPN with a single S-box and linear transform.
Ultra-lightweight block cipher (ISO/IEC 29192-2:2012). Smallest standardised cipher: PRESENT-80 fits in 1,075 gate equivalents β vs AES's ~3,400 GE. 64-bit block, 80 or 128-bit key, 31-round SPN with a 4-bit S-box and a 64-bit bit-permutation P-layer.
NSA lightweight block cipher targeting 8/16-bit microcontrollers. Uses 16-bit words, a 32-bit block, and a 64-bit key across 32 Feistel rounds. The smallest variant of the SIMON family.
The original 1994 predecessor to XTEA (also in this registry). Simple ARX Feistel cipher, no S-boxes β but has a documented equivalent-key weakness (4 related keys produce identical ciphertext), which XTEA's extra key mixing was designed specifically to fix.
NESSIE-submitted 128-bit block cipher. Unique for having ZERO lookup tables; its non-linear Gamma layer uses exactly 5 bitwise AND/OR/XOR operations. Ideal for VLSI/FPGA environments.
Korean lightweight ARX block cipher (IETF RFC 9998, 2024). Pure Add/Rotate/XOR β no S-boxes, making it 3β4Γ faster than AES on 32-bit processors. 128-bit block, 128/192/256-bit keys, 24/28/32 rounds. Used in Korean IoT and mobile applications.
Ultra-lightweight 64-bit block cipher (CHES 2017). Uses a 4-bit S-box and 28-round SPN. 5x more hardware-efficient than PRESENT and underlies the NIST Lightweight Finalist GIFT-COFB.
Corrected Block TEA (Wheeler & Needham, 1998). The final and strongest member of the TEA family. Unlike TEA/XTEA, it operates on the entire message as a single variable-length block (min 2 words) for full diffusion. Widely used historically but unauthenticated.
Bruce Schneier's 1993 Feistel block cipher β pre-AES era workhorse used in SSH, OpenSSH, and the bcrypt key schedule. Unique for its key-dependent S-box structure: the 4Γ256 S-boxes are entirely re-derived from each key, making it immune to weak-key attacks that plagued DES.
Russian national hash function (GOST R 34.11-2012, RFC 6986). 512-bit internal state processed through 12 rounds of a Kuznyechik-family SPN in a Miyaguchi-Preneel-like compression function, with a unique checksum-based finalization step.
Korean national block cipher (RFC 4269, 2005; ISO/IEC 18033-3). Mandatory in Korean financial and government systems for over a decade. 128-bit block, 128-bit key, 16-round Feistel with G-function using two GF(2^8)-derived S-boxes. Superseded by LEA for new Korean deployments.
Russian national block cipher (GOST R 34.12-2015, RFC 7801). 128-bit block, 256-bit key, 9-round SPN. Replaces the legacy 1989 GOST cipher. Uses a fixed 256-byte S-box and a linear transform built from 16 GF(2^8) feedback steps.
NSA hardware-optimised lightweight block cipher (IACR 2013/404). Sibling of SPECK β SIMON targets gate-minimal hardware via bitwise AND while SPECK targets software via ARX. 128-bit block, 128-bit key, 68-round Feistel. Round function: f(x)=(x<<<1 & x<<<8)βx<<<2.
eSTREAM Portfolio Phase 3 stream cipher (RFC 4503). 128-bit key, 64-bit IV. Distinctive non-linear counter system (no LFSR) using 64-bit squaring and XOR to generate 128 bits of keystream per iteration. Extremely fast in software.
eSTREAM Phase 3 software-profile stream cipher by Hongjun Wu. Uses two 512-word (2 KB each) key/IV-derived lookup tables P and Q that update themselves during keystream generation. The fastest stream cipher in the eSTREAM portfolio on 32-bit software. Output = IV(32 hex) + ciphertext.
NESSIE-submitted block cipher (2000). 128-bit block, 128/192/256-bit key. Unique involutional design: the S-box, diffusion layer, and round structure are all self-inverse. Decryption is literally the same code as encryption, just with reversed round keys.
IBM AES finalist (1998). 128-bit block, 32-round heterogeneous SPN. Unique for combining 4 different round types (forward mixing, forward E-rounds, backward E-rounds, backward mixing) for defense-in-depth. Lost to Rijndael (AES) on performance/simplicity, but unbroken.
ISO/IEC 29192-2 lightweight block cipher (Sony, 2007). 4-branch generalized Feistel network (GFN) with parallel F0/F1 functions using distinct S-boxes and diffusion matrices. Pairs with PRESENT to complete the ISO lightweight standard duo.
CRYPTREC-recommended, RFC 2994. 64-bit block, 128-bit key. Unique recursive Feistel network: main rounds call FO, which calls FI, which uses 7-bit/9-bit S-boxes. Ancestor of KASUMI (3G/GSM).
Korean national standard block cipher (KS X 1213, RFC 5794). AES-like SPN but alternates between two involutional S-box pairs (SB1/SB2) and uses a pure GF(2) involutional diffusion matrix. Completes the SEED/LEA/ARIA Korean trio.
3GPP TS 35.202 (GSM A5/3, UMTS f8/f9). MISTY1-derived hardware-optimized cipher. Status: BROKEN (2010 related-key attack). Included for educational value as a once-deployed mobile standard.
Secure Hash Algorithm 2. Produces a unique 256-bit hash output representing the input message.
Secure Hash Algorithm 2 with 64-bit words, producing a secure 512-bit digest.
Chinese National Standard cryptographic hash function (GB/T 32905-2016). Produces a 256-bit message digest using 64 ARX compression rounds.
A widely used legacy hash producing a 128-bit output. Cryptographically broken due to collision vulnerabilities.
Keyed-hash Message Authentication Code. Combines SHA-256 with a cryptographic secret key.
A MAC built entirely from AES block-cipher calls plus a GF(2^128) subkey-derivation step (NIST SP 800-38B) β no separate hash function, unlike HMAC. Composed from the existing AES module, no new dependencies.
A password hashing function incorporating a salt and cost factor, designed to be slow to prevent brute force.
A very fast non-cryptographic 32-bit hash used for checksums, hash tables, and data integrity demos.
A space-efficient probabilistic data structure testing set membership with zero false negatives and a tunable false-positive probability.
HMAC-based Extract-and-Expand Key Derivation Function (RFC 5869) that converts weak or shared input keying material into cryptographically strong output keys.
The 32-bit-word sibling of BLAKE2b (2012), optimized for 8- to 32-bit platforms β smaller blocks, fewer rounds, 256-bit max output. Used internally by Argon2.
A truncated SHA-2 family member (FIPS 180-4) with its OWN initial hash value β not simply SHA-256's output cut short, which is a deliberate design choice to prevent leaking one digest from the other.
The 384-bit truncated member of the SHA-512 family (FIPS 180-4), with its own distinct initial hash value, same design principle as SHA-224 relative to SHA-256.
An extendable-output function (XOF, NIST FIPS 202) β unlike every other hash here, output length is a parameter you choose, not fixed. Same Keccak permutation family as SHA-3.
The wider-capacity sibling of SHAKE128 (NIST FIPS 202) β same extendable-output design, larger security margin.
RFC 8018 (PKCS #5). The most widely deployed KDF in the world (WPA2, iOS keychain). Iteratively applies HMAC to a password+salt. Slower iteration counts increase brute-force resistance.
The direct predecessor to MD5 (1990) β fully broken today. Simpler than MD5: only 3 rounds (vs MD5's 4) and no additive per-step constants, illustrating exactly what MD5 was designed to fix.
PHC Winner (2015), RFC 9106. Memory-hard password hashing with hybrid addressing (Argon2i for side-channel resistance, Argon2d for GPU resistance). Modern successor to bcrypt.
SHA-3 finalist (Skein v1.3, 2010) by Schneier et al. Built on Threefish-256 via UBI (Unique Block Iteration) chaining β a Davies-Meyer construction. Pipeline: Config β Message β Output. Each block encrypted with Threefish-256 then XORed with plaintext. 256-bit output.
Korean national hash standard (KS X 3262, 2014). Wide-pipe ARX+Boolean design with 1024-bit internal state. Completes the SEED/LEA/ARIA/LSH Korean cryptographic suite.
Fast 192-bit hash designed for 64-bit processors (Anderson & Biham, 1995). Uses three 64-bit chaining variables and 3 passes of 8 rounds over four 256-entry 64-bit S-boxes. Fills the 192-bit output gap in this repo.
SHA-3 finalist (2008). AES-based wide-pipe hash using dual permutations P and Q in a Davies-Meyer-like compression function. Operates on an 8x8 byte state with AES-style SubBytes/ShiftBytes/MixBytes rounds.
An asymmetric cipher based on the difficulty of factoring large semiprimes. Supports key generation, encryption, and decryption.
The finite-field discrete-log ancestor of ECDSA (NIST FIPS 186, 1994) β same r/s signature equation, computed in a prime-order subgroup instead of on a curve. Demo uses toy parameters; real DSA needs p>=2048 bits, q>=224 bits.
A key exchange protocol enabling two parties to establish a shared secret over an insecure channel.
Diffie-Hellman key exchange over Curve448 (RFC 7748) β the higher-security sibling of X25519, targeting ~224-bit security with 56-byte keys instead of X25519's 32-byte keys.
Elliptic Curve Cryptography. Implements ECDSA signing and verification over the NIST P-256 curve.
Schnorr signatures per BIP340 over secp256k1, using x-only public keys. Provably secure under a simpler assumption than ECDSA and supports clean signature aggregation (MuSig) β compare against ecdsa.ts on the same curve.
The ElGamal signature scheme (1985) β distinct from ElGamal encryption already in this registry. Historically the direct ancestor of DSA: DSA is this scheme computed in a smaller prime-order subgroup for shorter signatures.
Post-quantum digital signatures (NIST FIPS 204, formerly Dilithium), pairing with ML-KEM the same way Ed25519 pairs with X25519 classically β except the hard problem here is lattice-based (Module-LWE/SIS), not elliptic-curve discrete log.
Hybrid encryption: ephemeral X25519 key agreement + HKDF + AEAD, letting a sender encrypt an arbitrary-length message directly to a recipient's public key β no other asymmetric module here does this end-to-end.
Post-quantum key encapsulation (NIST FIPS 203, formerly Kyber), based on the Module Learning With Errors lattice problem β secure against both classical and quantum attackers, unlike every other asymmetric module here.
Post-quantum key encapsulation mechanism (KEM) based on unstructured Learning With Errors (LWE) on standard matrices, offering conservative security without algebraic ring assumptions.
EdDSA signatures over Curve448 (RFC 8032) β the higher-security-margin sibling of Ed25519, using SHAKE256 internally instead of SHA-512. Completes the Curve25519/Curve448 x agreement/signing grid alongside x25519, x448, and ed25519.
A threshold scheme (1979): splits a secret into N shares such that any K reconstruct it, but K-1 reveal nothing. Uses GF(256) polynomial arithmetic β a different mathematical toolkit from every other module here.
Lattice-based public-key cryptosystem (IEEE P1363.1, 1996). Operates in polynomial ring Z[x]/(x^N-1). Predates NIST PQC by 20+ years. WARNING: Visualizer uses small pedagogical parameters (N=11) for teaching; NOT secure at this size.