https://github.com/systemslibrarian/crypto-lab-iron-serpent
Browser-based demo of Serpent-256, the AES finalist with the largest security margin — featuring encrypt/decrypt, round comparison visualization, and live performance benchmarks
https://github.com/systemslibrarian/crypto-lab-iron-serpent
aes-finalist argon2id block-cipher browser-demo crypto-lab cryptography hmac javascript serpent symmetric-encryption
Last synced: 1 day ago
JSON representation
Browser-based demo of Serpent-256, the AES finalist with the largest security margin — featuring encrypt/decrypt, round comparison visualization, and live performance benchmarks
- Host: GitHub
- URL: https://github.com/systemslibrarian/crypto-lab-iron-serpent
- Owner: systemslibrarian
- Created: 2026-04-06T02:05:22.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-11T22:13:14.000Z (about 2 months ago)
- Last Synced: 2026-04-12T00:21:13.823Z (about 2 months ago)
- Topics: aes-finalist, argon2id, block-cipher, browser-demo, crypto-lab, cryptography, hmac, javascript, serpent, symmetric-encryption
- Homepage: https://systemslibrarian.github.io/crypto-lab-iron-serpent/
- Size: 136 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# iron-serpent
## What It Is
Iron Serpent is a browser demo for password-based symmetric encryption built around Serpent-256-CTR, with Argon2id deriving the key material from a passphrase and HMAC-SHA256 authenticating the payload. It shows how to encrypt and decrypt text in the browser without sending plaintext to a server. The problem it addresses is confidential, integrity-checked handling of user-supplied text behind a shared secret. The security model is symmetric authenticated encryption with a password-derived key.
## When to Use It
- Use it for client-side text encryption demos that need to show a non-AES block cipher in a real browser workflow. Serpent-256-CTR gives you a concrete symmetric cipher example while Argon2id and HMAC-SHA256 show the surrounding pieces needed for password-based authenticated encryption.
- Use it for teaching or lab work around conservative block-cipher design choices. The demo contrasts Serpent's 32-round design and benchmark behavior with AES-256-GCM in a way that is easy to inspect locally.
- Use it when you need a passphrase-derived workflow instead of raw random keys. Argon2id makes the demo appropriate for explaining how human-entered secrets can be stretched into a 256-bit encryption key.
- Do not use it when you need a standardized interchange format or protocol integration. The JSON payload and demo wiring are suitable for a lab environment, not a substitute for established application protocols.
## Live Demo
[https://systemslibrarian.github.io/crypto-lab-iron-serpent/](https://systemslibrarian.github.io/crypto-lab-iron-serpent/)
The live demo lets you enter a passphrase and plaintext, produce an encrypted JSON payload, and decrypt that payload back in the browser. It also includes Base64 and Hex output controls, a benchmark panel with Data size and Iterations controls, and an Argon2id parameters panel that shows the KDF settings used for key derivation.
## How to Run Locally
```bash
git clone https://github.com/systemslibrarian/crypto-lab-iron-serpent.git
cd crypto-lab-iron-serpent/demos/iron-serpent
npm install
npm run dev
```
No environment variables are required.
## Part of the Crypto-Lab Suite
This demo is one part of the broader Crypto-Lab collection at [https://systemslibrarian.github.io/crypto-lab/](https://systemslibrarian.github.io/crypto-lab/).