# Cryptography

## Terms

- Plaintext is the original message
- Ciphertext is the coded message
- Cipher is the algorithm use to transform plaintext to ciphertext
- Key is the info used in cipher known only to sender/receiver
- Cryptanalysis (codebreaking) is the study of principles/methods of deciphering ciphertext without knowing the key
- Cryptology is the field of cryptography and cryptanalysis
**Symmetric Encryption** is when both sender and receiver use the same keys
**Asymmetric Encrpytion** is when sender/receiver use different keys

## Block vs. Stream ciphers

- Block ciphers encrypt block at a time
- Message is broken into blocks and encrypted
- Stream ciphers process a bit or byte at a time during encryption and decryption

## Confusion and Diffusion

**Diffusion** dissipates statistical structure of plaintext over bul of cipher text
**Confusion** makes relationships between ciphertext and key as complex as possible

## Fiestel Cipher

- Partitions input block into two halves
- Employs multiple rounds of processing
- Performs a substitution on left data half based on a fn of right half & subkey
- Employs permutation swapping halves

## Cipher parameters

- Block Size
- Increasing size improves security, but slows cipher

- Key Size
- Increasing size improves security, makes exhaustive key searching harder, but may slow cipher

- Number of rounds
- Increasing number improves security, but slows cipher

- Subkey generation
- Greater complexity can make analysis harder but slows cipher

- Round function
- Greater complexity can make analysis harder, but slows cipher

## DES cipher

- Data Encryption Standard
- Encrypts 64-bit data using 56 bit key
- The 56-bit key has 2^56 or 7.2*10^16 values

Source