# 🎲 Dice One-Time Pads: A technique to make uncrackable encrypted messages using two six-sided die. ### 📄 [Main Instructions](https://code.lexza.ch/Lexzach/dice-one-time-pad/raw/branch/main/Instructions/dice-one-time-pad.pdf) ### 🔢 [Alternate Chart](https://code.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://code.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))
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***.
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.

In order to comply with the second condition, two regular 6 sided die will be used to generate the key for encryption and decryption.