From 9d9ab04c55e44ce90b92065cee70d8ee510fd6fb Mon Sep 17 00:00:00 2001 From: Lexzach <53662039+Lexzach@users.noreply.github.com> Date: Fri, 9 Aug 2024 22:06:53 -0400 Subject: [PATCH] updated README.md --- README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d0cf4d7..36facb1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,16 @@ -# Decrypting/Encrypting using a dice-generated One-Time Pad +# 🎲 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. -Using dice, one can generate a One-Time Pad and encrypt a message that is impossible to decrypt without the One-Time Pad given to a recipient. - -### [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) +### 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.