Skip to content

JamesPiggott/CipherLabs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

   ______ _       _                _           _           
  / ____(_)     | |              | |         | |          
 | |     _ _ __ | |__   ___ _ __ | |     __ _| |__  ___   
 | |    | | '_ \| '_ \ / _ \ '__|| |    / _` | '_ \/ __|  
 | |____| | |_) | | | |  __/ |   | |___| (_| | |_) \__ \  
  \_____|_| .__/|_| |_|\___|_|   |______\__,_|_.__/|___/  
           | |                                            
           |_|                                            

 A guided cryptanalysis workbench for interactive codebreaking

πŸ” CipherLabs

A public codebreaking workbench for learning, exploring, and solving ciphers.

🌐 Website: https://cipherlabs.eu

CipherLabs is a Flask-based cryptanalysis platform focused on interactive cipher solving, guided analysis workflows, and educational codebreaking.

Instead of offering isolated tools, CipherLabs aims to provide a real cryptanalysis workbench where users progressively analyze, classify, and solve encrypted messages.


πŸš€ Vision

CipherLabs bridges the gap between:

  • πŸ“š Educational cryptography
  • 🧠 Practical codebreaking
  • πŸ›  Guided cryptanalysis workflows
  • 🌍 Collaborative solving

Users do not simply read about ciphers β€” they actively investigate them.


🧩 Current Features

πŸ” Cipher Exploration

  • Browse solved and unsolved ciphers
  • Cipher metadata and contextual information
  • Public cipher archive
  • Cipher glossary / lexicon

🧠 Guided Cryptanalysis Workbench

  • Cipher classification engine
  • Guided solving recommendations
  • Workbench phases:
    • Identify
    • Analyze
    • Solve
    • Validate
    • Notes

πŸ“Š Analysis Tools

  • Frequency analysis
  • Index of Coincidence (IoC)
  • Repeated sequence detection
  • Language frequency matching
  • Digram similarity analysis
  • Word pattern analysis

πŸ›  Interactive Solving

  • Caesar brute force analysis
  • Substitution solver workspace
  • Mapping confidence engine
  • Progressive plaintext reveal
  • Ranked substitution candidates
  • Substitution mapping assistant
  • Workspace persistence

πŸ’Ύ Workspace Features

  • Save solving progress
  • Save mappings and notes
  • Continue solving sessions later

πŸ—οΈ Tech Stack

  • Backend: Flask
  • Database: PostgreSQL
  • Authentication: Flask-Login
  • Architecture: Modular layered architecture
entities β†’ processors β†’ database

πŸ“ Project Structure

blueprints/     Flask routes
cipher/         Cipher logic and analysis tools
templates/      Workbench and UI templates
static/         CSS and front-end assets
reference/      Static datasets and dictionaries

βš™οΈ Setup

1. Clone the repository

git clone https://github.com/yourusername/cipherlab.git
cd cipherlab

2. Create virtual environment

python -m venv venv
venv\Scripts\activate

3. Install dependencies

pip install -r requirements.txt

4. Configure environment

Create a .env file:

FLASK_SECRET_KEY=your-secret-key
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=cipherlab
POSTGRES_USER=cipherlab_user
POSTGRES_PASSWORD=your-password

5. Prepare PostgreSQL

CREATE DATABASE cipherlab;
CREATE USER cipherlab_user WITH PASSWORD 'your-password';
GRANT ALL PRIVILEGES ON DATABASE cipherlab TO cipherlab_user;

6. Create tables

python setup.py

7. Run the application

python app.py

Visit:

http://127.0.0.1:5000

πŸ§ͺ Roadmap

Near-Term

  • Cipher CRUD system
  • Frequency analysis
  • IoC analysis
  • Repeated sequence detection
  • Cipher classification engine
  • Guided workbench phases
  • Substitution solver
  • Mapping confidence engine
  • Progressive plaintext reveal
  • Workspace persistence
  • Cipher glossary

Next Steps

  • Click-to-accept mappings
  • Conflict highlighting
  • Auto-detected probable plaintext words
  • Trigram analysis
  • N-gram scoring engine
  • Interactive plaintext reconstruction
  • Workspace history / undo system

Future Goals

  • Full VigenΓ¨re workflow
  • Kasiski examination tools
  • Columnar transposition workflows
  • Collaborative solving system
  • Public challenge archive
  • Team-based cryptanalysis
  • AI-assisted solving guidance

🀝 Contributing

CipherLabs is under active development.

Feedback, ideas, testing, and contributions are welcome.


πŸ“œ Inspiration

  • Codebreaking β€” Elonka Dunin & Klaus Schmeh
  • Historical cryptanalysis workflows
  • Classical cipher solving communities

⚠️ Disclaimer

CipherLabs is intended for educational, historical, and research purposes only.


🧠 Final Thought

Every cipher hides a structure.
CipherLabs is where you learn to uncover it.

Releases

No releases published

Packages

 
 
 

Contributors

Languages