1
0
dice-one-time-pad/README.md

17 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

2024-08-09 22:06:53 -04:00
# 🎲 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.
2024-08-08 12:31:01 -04:00
2024-08-09 22:06:53 -04:00
### 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.