# 🎲 Dice One-Time Pads:
A technique to make uncrackable encrypted messages using two six-sided die. 
### 📄 [Main Instructions](https://git.lexza.ch/Lexzach/dice-one-time-pad/raw/branch/main/Instructions/dice-one-time-pad.pdf)
### 🔢 [Alternate Chart](https://git.lexza.ch/Lexzach/dice-one-time-pad/raw/branch/main/Instructions/alternate-chart.pdf)
If you have a less security critical use of this One-Time Pad technique, you can use the [program written in Go](https://git.lexza.ch/Lexzach/dice-one-time-pad/src/branch/main/Go) within this repository to greatly speed up the key generation, encryption, and decryption process. This program is 100% compatible with the manual method, but is less secure because of the [CSPRNG](https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator) utilized as opposed to the (effectively) true random numbers of a dice.

### How does this all work?
([Wikipedia](https://en.wikipedia.org/wiki/One-time_pad))<br>
One-time pads are a method of encryption which, if done right, result in a message that is *literally impossible* to decrypt without the key. The absolute beauty of this encryption method is that it's *extremely* easy to implement ***by hand***.<br>
However, there are four conditions that must be true for this encryption method to truly be unbreakable:
- The key must be as long as the message you wish to encrypt.
- The key must be generated using truly random methods. (which the Go program is ***not***)
- The key must never be reused.
- The key must be kept a complete secret.
<br><br>
In order to comply with the second condition, two regular 6 sided die will be used to generate the key for encryption and decryption.
