An open API service indexing awesome lists of open source software.

https://github.com/fordcois/cryptography

This repository is a documentation of my exploration of cryptography, focusing on creating and cracking ciphers
https://github.com/fordcois/cryptography

cryptography

Last synced: 12 months ago
JSON representation

This repository is a documentation of my exploration of cryptography, focusing on creating and cracking ciphers

Awesome Lists containing this project

README

          

## About
This repository is a documentation of my exploration of cryptography, focusing on creating and cracking ciphers. It serves as a record of my learning and experiments, with the goal of improving decryption accuracy and speed while addressing increasingly complex ciphers. This is an evolving and ongoing project.

You can learn more about my thought processes and methodologies in the accompanying posts:

[Checking Results](https://github.com/Fordcois/cryptography/blob/main/documentation/000_checking_results.md)

[Caesar Ciphers & Frequency Analysis](https://github.com/Fordcois/cryptography/blob/main/documentation/001_Frequency_Analysis.md)

## Current Scope & Goals

### Establishing A Framework

The first step is to log each symbol in the cipher and transform it into an object. This object will track the likelihood of what the symbol represents. This approach will be helpful when dealing with more complex ciphers such as homophonic Substitution ciphers.

I'm also aiming to developing testing and accurcy tools to assist in checking the validity of solutions

### Substitution Ciphers

A substitution cipher is a basic encryption method where letters are replaced by other letters. These ciphers can be generated by randomizing the alphabet using a key or by offsetting the alphabet.

#### Breaking Substitution Ciphers:

##### Frequency Analysis
Commonly used letters in English (e.g., 'E', 'T', 'A', 'O') can be identified by their frequency and matched to their ciphertext equivalents.

##### Bigraph Analysis
Bigraphs (common letter pairs) can provide additional clues. For instance, 'U' frequently follows 'Q'.

##### Repeating Patterns
Identifying repeating patterns, such as double letters, can help assign probabilities. For example, 'LL' is one of the most common double letters in English.

## Future Scope
### Advanced Cipher Types

#### Homophonic Substitution Ciphers:
Ciphers where multiple characters can represent the same letter, making them less susceptible to frequency analysis.

#### Transposition Ciphers:
Ciphers that rearrange the order of letters in the plaintext according to a specific pattern.

### Tools and Automation:

Develop a tool to automatically verify the validity of potential outputs. For example, the tool could check whether each word is a real word, allowing the program to refine and solve ciphers without human intervention.

Utilities & Acknowledgements

[Cryptii](https://www.cryptii.com) is a user-friendly web tool that allows you to create, decode, and test a variety of ciphers.

[Word Counter](https://www.wordcounter.net/) calculates the length of text including word count & character count.

[Just Words](http://www.gwicks.net/justwords.html) features extensive wordlists in plain text formats

This Repo contains extract from a number of literary works, these extracts are all public domain have have been obtained from [Project Gutenberg](https://www.gutenberg.org/)