Encryption

Symmetric encryption
AKA: Single Key Encryption / Shared Key Encryption

A block cipher is a deterministic algorithm operating on fixed-length groups of bits, called a block, with an unvarying transformation that is specified by a symmetric key.

Pros/cons
Symmetric keys are great for speed and bulk. However, distributing the secret key is full of strife. It's also not scalable, as you need a key for each communication pair. The formula for determining the number of keys you'll need is:

N(N - 1) / 2

So if you're communicating with two other people, you'd need 3 keys:

3 * (3 - 1) / 2 = 3

If you're communicating with three other people:

4 * (4 - 1) / 2 = 6

And so forth.

Symmetric encryption also doesn't deal with nonrepudiation at all--as in, there's no way to provie the identity of either party in a communication.

Asymmetric encryption
With asymmetric encryption, two keys are generated together: one is used to encrypt, and one is used to decrypt.