Skip to content

systemslibrarian/cipher-museum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

104 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏛️ The Cipher Museum

"The heart of the discerning acquires knowledge, for the ears of the wise seek it out." — Proverbs 18:15

Exploring the history and evolution of cryptography — from classical ciphers to modern secure systems.

An open-source, interactive educational website spanning 37 historically important ciphers across 10 exhibit halls — from the Spartan scytale in 500 BC to post-quantum cryptography. Modern cryptography uses more than ciphers — secure systems combine key exchange, encryption, and hashing.

Live Site →


📰 Latest Update

  • Added a premium six-stage cryptography evolution strip to timeline.html, positioned above the historical event timeline.
  • Sequence is explicit and ordered: Ancient → Classical → Mechanical → Modern → Symmetric (AES) → Asymmetric (Public-Key).
  • Implemented mathematically even horizontal spacing, straight directional connectors, and clear arrowheads.
  • Enforced strict two-line node labels, including exact wording for:
    • AES / Modern Symmetric Encryption
    • Public-Key Cryptography / Asymmetric Encryption
  • Standardized icon style using consistent inline SVG sizing and stroke weight.
  • Added subtle exhibit-style glow, responsive mobile behavior, and reduced-motion support.

✨ Features

🗺️ Ten Exhibit Halls · 37 Ciphers

Hall Title Ciphers
I Birth of Cryptography Scytale, Caesar, Polybius
II Classical Substitution Monoalphabetic, Homophonic, Playfair, Hill
III Polyalphabetic Revolution Vigenère, Beaufort, Porta, Gronsfeld, Running Key
IV Transposition & Fractionation Rail Fence, Columnar, Double Transposition, Bifid, Trifid, Fractionated Morse
V Military & Spy Ciphers Nihilist, ADFGX, ADFGVX, Bazeries, VIC
Civil War Gallery Stager, Confederate Vigenère, Dictionary Code
VI Mechanical Cipher Machines Alberti Disk, Jefferson Disk, Enigma, Lorenz, Vernam
VII Puzzle & Novelty Ciphers Pigpen, Bacon's Cipher, Tap Code, Zodiac
The Unbreakable One-Time Pad, Vernam, Shannon's Proof
Hall of Codebreakers 10 stories — from Al-Kindi to the Zodiac solvers

🔐 Every Exhibit Follows Four-Part Structure

  1. Historical Context — When, where, who used it, why
  2. How It Works — Encryption steps, diagrams, interactive demo
  3. How It Was Broken — The specific technique, with context
  4. What It Teaches Modern Crypto — The direct line from this cipher to AES/RSA

🎯 35 Interactive Demos

35 of 37 cipher pages have fully interactive encrypt/decrypt demos built with vanilla JavaScript — no frameworks, no build tools. Type a message, set a key, and watch the cipher work in real time. Demos are dynamically generated by demo-loader.js from cipher engine implementations in all-engines.js.

📊 Additional Tools

  • Cryptanalysis Techniques — 7 interactive techniques: frequency analysis, Kasiski examination, index of coincidence, crib dragging, known-plaintext attack, hill climbing, and simulated annealing
  • Cipher Challenges — 10 progressive puzzles from Caesar to Enigma with hints and solutions
  • Timeline — Interactive 2,400-year history with era filtering, scroll-spy, and 23 clickable events
  • Comparison Table — Sortable, filterable table comparing all 37 ciphers by type, era, security level, and key method
  • Cipher Flow Explorer — Visual relationship map between cipher families
  • Museum Map — Architectural floor plan with all exhibit halls and cipher exhibits
  • Guided Tours — Structured learning paths through the collection
  • Glossary — Comprehensive cryptography term reference
  • Community — Discussion space for cipher enthusiasts

🚀 Running Locally

git clone https://github.com/systemslibrarian/cipher-museum
cd cipher-museum
python3 -m http.server 8000   # or just open index.html

No build tools. No framework. No dependencies beyond Google Fonts. Pure HTML + CSS + Vanilla JavaScript. GitHub Pages ready.


📁 Project Structure

cipher-museum/
├── index.html               ← Entrance Hall (hero + 10 hall cards)
├── museum-map.html          ← Interactive floor plan with all exhibits
├── timeline.html            ← 2,400-year timeline with era filtering & scroll-spy
├── comparison.html          ← Sortable 37-cipher comparison table
├── challenges.html          ← 10 progressive cipher challenges
├── glossary.html            ← Cryptography glossary
├── cryptanalysis.html       ← Cryptanalysis Techniques (7 interactive techniques)
├── cipher-flow.html         ← Visual cipher family relationships
├── modern.html              ← Modern Cryptography overview
├── favicon.svg              ← Gold cipher wheel icon
├── css/
│   └── museum.css           ← Complete design system (~400 rules)
├── js/
│   ├── nav.js               ← Navigation system (sticky nav, hamburger, ARIA)
│   ├── demo-loader.js       ← Dynamic demo UI generator for all cipher pages
│   └── ciphers/
│       └── all-engines.js   ← 35 cipher engine implementations
├── halls/                   ← 10 exhibit halls
│   ├── ancient.html          ← Hall I: Birth of Cryptography
│   ├── substitution.html     ← Hall II: Classical Substitution
│   ├── polyalphabetic.html   ← Hall III: Polyalphabetic Revolution
│   ├── transposition.html    ← Hall IV: Transposition & Fractionation
│   ├── military.html         ← Hall V: Military & Spy Ciphers
│   ├── civil-war.html        ← Special Exhibition: Civil War
│   ├── machines.html         ← Hall VI: Mechanical Machines
│   ├── puzzle.html           ← Hall VII: Puzzle & Novelty
│   ├── unbreakable.html      ← Final Hall: The Unbreakable
│   └── codebreakers.html     ← Special Exhibition: Hall of Codebreakers
├── ciphers/                  ← 37 cipher exhibit pages
│   ├── caesar.html            ← with interactive demo + SVG wheel diagram
│   ├── enigma.html            ← with rotor wiring SVG diagram
│   ├── vigenere.html          ← with tabula recta SVG + Kasiski analysis
│   ├── playfair.html          ← with key square builder SVG
│   └── [33 more exhibits]
├── tours/                    ← Guided learning paths
├── community/                ← Community discussion pages
└── tests/
    ├── test-all-engines.js    ← Engine roundtrip & known-answer tests
    └── test-deep-ciphers.js   ← Edge cases & stress tests

🎨 Design System

Element Value
Aesthetic Smithsonian Dark / Scholarly Gold
Display Cinzel (serif)
Body Cormorant Garamond (serif)
Code JetBrains Mono (monospace)
Background #060608 with subtle radial gold gradients
Accent #C9A84C (gold) with 6 tonal variants
Text #EDE5D4 (headings), #C8C0B0 (body), #ACA4B4 (labels)

Accessibility

  • WCAG AA contrast ratios on all text
  • Skip links on every page
  • ARIA labels on navigation, demos, and interactive elements
  • 44px minimum touch targets on all interactive elements
  • prefers-reduced-motion support
  • Keyboard navigation throughout
  • aria-hidden on decorative SVGs

SEO

  • Unique meta descriptions on every page
  • Open Graph + Twitter cards
  • Canonical URLs
  • XML sitemap (54+ pages)
  • Structured data (JSON-LD)
  • Custom 404 page

🧪 Testing

node tests/test-all-engines.js      # Engine roundtrip & known-answer tests
node tests/test-deep-ciphers.js     # Edge cases & stress tests

📜 License

MIT License — free to use, fork, and build upon.


Built to honor the brilliant, flawed, and often fatal history of human secrecy.

About

An interactive museum of historical ciphers with visual explanations, encryption demos, and cryptanalysis labs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages