commit bfdfe03baa0c982fee02d40d5e5e4190bd9c3a12 Author: James Devine Date: Sat Feb 11 19:48:04 2017 +0100 diff --git a/OneTimePadInstructions.txt b/OneTimePadInstructions.txt new file mode 100644 index 0000000..8a8fdaa --- /dev/null +++ b/OneTimePadInstructions.txt @@ -0,0 +1,31 @@ +Specification for one time pad use. + +One Time Pad must be smaller than 4Gb! + +File format for transmission data (cyphertext): +Part 1 - 32 bits, indicating the address of the start bit. +Part 2 - The message, no minimum length imposed. + +Message input format: Ascii text (for starters) + +File extension to be used .bin + +To ensure security, the USB stick must be connected for less than 20 minutes at any time. +This prevents the contents being copied, as it's rather slow! + +Encryption process: +1) Scan the OTP for the first 1 (binary value >0). This is the start location. +2) Encode the start location in the first 32bits of the output file. +3) Bitwise XOR the message with the OTP to produce the cyphertext. +4) Erase all bits used in the OTP, setting to 0. +5) Output file contains 32 bits of start address and the cyphertext. +6) Erase the original message by writing all bits to 0. + +Decryption Process: +1) Read the first 32 bits of the cyphertext to obtain position P. +2) Go to P within the OTP. +3) XOR the data from bits 33 onwards of the cyhertext with position P > of the OTP. +4) Erase all bits used in the OTP, setting to 0. +5) Output file contains only the decrypted cyphertext. +6) Display the output file for reading. +7) Erase the output file after reading by writing all bits to 0. \ No newline at end of file