Encryption

Encryption is the process of obfuscating information so that only users with the decryption key can read the information. Most website connections use HTTPS, which as an encrypted version of original HTTP. Most modern communications is encrypted between the user and the server, but the server has the decryption key. The encrypted connection helps protect against digital eavesdroppers listening in.

Randomness

Encrypted content can be decrypted without the decryption key using brute force to guess the decryption key. The better the encryption standard that is used, the less likely this will be cost effective.

Encryption requires random numbers to work. One major topic in computer security is ensuring good randomness. Your operating system is capable of generating random numbers, but there are ways to increase randomness. If a service uses random numbers that are not so random, then the decryption key is easier to guess by brute force. With proper randomness and a good encryption standard, it can takes hundreds of servers years to brute force the encryption.

End to End Encryption

End to End Encryption is when two users have encryption and decryption keys, but not the server. This is not common. Even if a service uses it, that service will likely still have Metadata on you which is often a worse threat.

You can encrypt content manually, and thus have End to End Encryption with more certainty than using a service that claims to provide it. The Tails operating system has a built in feature where you can encrypt a file using a passphrase, then it can only be decrypted using that passphrase. It's worth reminding you that for secure internet communication, Tails is an excellent choice in operating system.

Weak Encryption

Several messaging apps that encrypt messages before passing them to the server have been accused of having weak encryption, perhaps due to insufficient randomness, or weak communications standard. Relying on computers for encryption is not ideal.

One Time Pads

The highest level of encryption ever, which is impossible to beat without the key, is called "One Time Pad". Often abbreviated "OTP". This is best done by hand, not using a computer. You generate random numbers or letters with physical processes such as a ten sided die. Each letter of the message is encrypted using one of the random numbers, followed by the next, until the entire message is encrypted. Because is letter is entirely randomized by this process, you can only decrypt if you have the same random numbers as the original.

For this example, we shall generate random letters in "blocks" of five, such as "BZRUO", this would be done for an entire sheet of paper, with space in between each line.

The random letters would then be copied to a second piece of paper. The person who created both sheets of paper would then give one to the person he intends on communicating with. These papers are the One Time Pad. As long as the One Time Pads are secure with no one else ever seeing the letters on them, the communication is secure.

The message to send is written using only the 26 letters of the alphabet. The unencrypted message is referred to as the plaintext. There will be no whitespace in the message, and the word STOP will indicate the end of a sentence.

On the One Time Pad, a random block is selected as the "identifying block".

For an example, we have these randomly typed letters as our one time pad, and we shall select OBHHB as the identifying block.

ZBWEI OBHHB NRZDK LGJBN XDPZP WGRAK LHBJM ASERW

The message will be: CHRIST IS KING STOP

The message will be encrypted starting with the block after the identifying block. To encrypt the first letter, will add the two letters together. The letter A will have the value of 1, the letter B will have the value of 2, etc. So with the first letter in the one time pad after the identifying block is N (14), and the first of the message C (3), we will combine those to Q (17). If number goes above Z (26), wrap around to A (1). So the ciphertext so far says OBHHB Q. Lets do this for the rest of the letters and get the result:

OBHHB QZRMD FPCMW LKITE M

After encrypting the message, you would cross out every block used so far on the one time pad, including the identifying block. You would never use them again, hence why it's called a One Time Pad.

The ciphertext would be sent to the other person with the same One Time Pad. For the second person to decrypt, you would find the identifying block in the One Time Pad, then you would decrypt the letters of the ciphertext back into the plaintext using subtraction instead of addition. Subtract the letters of the ciphertext with the One Time Pad. So Q (17) minus N (14) results in C (3). If you go below zero, you would wrap back to Z (26). Repeat this for all the letters, and you will get the plaintext again:

CHRIS TISKI NGSTO P

This would be read as:

CHRIST IS KING STOP

There are several methodologies for One Time Pads, many use numbers instead of letters. The methodology would need to be determined beforehand between the persons who want to communicate using One Time Pads. I used the simplest one off the top of my head to get you started.

Last updated