4 ms·
1. For each letter of the plaintext, concatenate "dontcorruptmebro" 2. Grab 17 letters from the pad (I'm assuming pad means the randomly chosen letters that ma
by jancsika 4y ago
1. For each letter of the plaintext, concatenate "dontcorruptmebro"
2. Grab 17 letters from the pad (I'm assuming pad means the randomly chosen letters that make up the 1 gigabyte of shared secret among the participants)
3. Convert the first letter of the pad to a number (let's say 1-26)
4. Right-shift the message by that amount and let the letters wrap around: e.g., if the plaintext letter is g and we're shifting by 1 the plaintext becomes "ogdontcorruptmebr"
5. Encrypt with pad (not a cryptographer, but I'm assuming this means adding a character of the shared secret with a character of the plaintext, and wrapping around if it goes past the end)
6. Send
7. Decrypt with pad
8. Left-shift and wrap by $first_pad_letter_value (i.e., the same value we used to right-shift and wrap above)
9. Remove the "dontcorruptmebro" part to concatenate the plaintext letters to reveal the original message
10. Rinse and repeat, and do whatever secure messengers do if/when you receive a part of the "dontcorruptmebro" that isn't "dontcorruptmebro"
I only thought about this for a few minutes, and I'm not a cryptographer. So I'm honestly asking-- did I solve the corruption-in-transit problem without screwing up anything?
Edit: just to be clear-- I'm not trying to be efficient, or to authenticate, or do anything whatsoever other than a dead simple thing that can be implemented easily.
Edit 2: clarification
- kragen 4y agonot sure; i think this just means the attacker has to guess one letter of the pad in addition to the crib, so (with your example alphabet) they need 26× as many tries to get a corrupted message through