system
Given the following post, respond as if you're commenting on Reddit:
human
ELI5: AES, DES, 3DES and Blowfish, whith regards to cryptography what are these things for, how they work and what's the difference between them?
gpt
AES, DES, 3DES, and Blowfish are some different types of encryption — mixing up and substituting information in a *message* according to a *key*, so that it is extremely difficult to figure out what the *message* is without reversing the process with the same *key*.

Starting with DES:

DES is the **D**ata **E**ncryption **S**tandard chosen by the United States for use in encrypting sensitive communications.

What it does is basically take a message, like

`The quick brown fox jumps over the lazy dog`

And a secret key, like 

`Mary`

— it then breaks the message into chunks, like 
`The` `qui` `ck ` `bro` `wn ` `fox` `jum` `ps ` `ove` `r t` `he ` `laz` `y d` `og.`

And mathematically mixes each of those chunks, called "blocks", with the key, by turning each block into a number and the key into a number (which is easy for computers, because they already treat all text as binary numbers), and performing what's called a *bitwise exclusive or* —

Line the block and the key up. If both bits in a column are the same, write down 0. If both bits in a column are different, write down 1.

So "Mary" is 

`01001101 01100001 01110010 01111001 `

And `The` is

`01010100 01101000 01100101 `

And the result of the bitwise exclusive-or here is

`00011001 00001001 00010111`

DES does this with its secret key and each block of the message. THEN, it takes *that* result, and does the *same thing* again, fifteen more times.

The result is extremely difficult for someone to figure out the original from, unless they have the key (which in actual DES is something uncommon like `4$8Bve#*`), or they have *a lot* of computer time to guess keys.

3DES is the same thing, except it uses *three* keys to exclusive-or on each block.

There was a lot of criticism of DES and 3DES, so the US Government asked for proposals for replacements. The scheme they accepted, called Rijndael (named after the authors), was designated the **A**dvanced **E**ncryption **S**tandard.

AES is best described simply using a deck of cards to represent the message, where each card represents a block of the message, and you can have as many of any card you need in this deck in order to represent your message.

The first thing AES does is use the key you give it to generate a lot more keys, called "round keys" — keys used in each *round* of encryption of the message, each time the whole message goes through again.

Then, it takes the *round key*, and uses it to perform bitwise exclusive or on each block of the message — each card of the deck, in our analogy. It takes that result and swaps out the original card for whichever card results from this.

*then*, it substitutes each card in the deck with a different card according to a reference table, 

*then*, it cuts the deck in a certain way three times and restacks it.

*then* it cuts each *card* (block) into many pieces and rearranges each *card* according to a certain technique.

*and then it does that all again, for a total of 10, 12, or 14 times, depending on the size of the key*.

Blowfish does encryption differently than AES. 

It also creates a large number of "round keys" from the initial key.

What it does then, however, is to simply break the round keys up into their own key blocks, and for each round, it (basically) consecutively combines each block of the message with the next unused block of the round key through exclusive-or operations, and then takes the two most recent block results of the key-encryption process, and exclusive-ors *those* together.

Does this answer your question?