Files
notes/docs/lectures/cryptography/01_intro.md
T
2026-10-04 15:45:20 +01:00

196 lines
5.3 KiB
Markdown

# Cryptography
**Cryptology**
> “The science and art of writing and solving codes to hide the meaning of messages.”
**Symmetric**
> “Encryption methods in which both the encryption and decryption algorithms use the same key.”
**Asymmetric**
> “Methods which use separate, but related, private and public keys.”
**Protocols**
> “The application of cryptographic algorithms in secure systems.”
**Cryptanalysis**
> “The science and art of breaking cryptosystems.”
### Modern Cryptography (1970-)
**Fundamentally different** - a scientific and mathematical discipline
**Rigorously tested** - New approaches tested, justified through mathematical proofs and theory
**Extremely powerful** - Ciphers usually take milliseconds to use and lifetimes of the universe to break
**Wider uses** - including message integrity and authenticity
**Civilian use** - everyone benefits from cryptography now
## Ciphers
- Ciphers have been used for thousands of years
- Usually based around either transposition or substitution
#### Caesar Cipher
- An early substitution cipher, we replace each letter of plain text with a shifted letter $n$ letters away from the letter
- Therefore our key is an integer $-25\leq n \leq 25$
### Modular Arithmetic
- Modular arithmetic is a system of arithmetic for finite sets of integers
- Common sets include
- $\mathbb{N} = \{1,2,3,...\}$
- $\mathbb{Z} = \{..., -3, -2, -1, 0,1,2,3,...\}$
- Also $\mathbb{Q}, \mathbb{R}, \mathbb{C}$
- Cryptography is almost always interested in finite sets
- This is useful as it avoids overflow errors
- When we add or multiply two 1 byte binary digits, the result will always be 1 byte
###### Congruence
Let $a, r, m \in \mathbb{Z}$ and $m > 0$
$a \equiv r (mod\space m)$ if $\frac{m}{a-r}$
Check:
$a=12, m=7$
$a\equiv 5 (mod\space 7)$
$\frac{7}{12-5}$ ✅
This can be rewritten as: $a = q\cdot m+r$
###### Equivalence Classes
- The sets of all integers **mod 5** form a series of equivalence classes
- All these numbers act the same in any modulo sum
For example
$74\cdot 62 - 47 (mod \space 5) \equiv 74\%5 \cdot 62\%5 - 47\%5$
Also works with exponentiation
$3^8\space (mod\space 7)$
$3^2 = 3\cdot 3 = 9 \equiv 2\space (mod\space 7)$
$3^4 = 3^2\cdot 3^2 = 2\cdot 2 \equiv 4\space (mod\space 7)$
$3^8 = 3^4 \cdot 3^4 = 4\cdot 4 = 16 \equiv 2 \space (mod\space 7)$
#### Integer Rings
- Modular arithmetic forms what in mathematics we would call a Ring
###### Ring Definition
The integer ring $\mathbb{Z}_m$ consists of:
1. The set $\mathbb{Z}_m = \{0, 1,\ldots m-1\}$
2. Two operations $+$ and $\cdot$ for all $a, b \in \mathbb{Z}_m$ such that:
1. $a+b \equiv c \space (mod\space m), (c\in \mathbb{Z})$
2. $a\cdot b \equiv d \space (mod\space m), (d\in \mathbb{Z})$
Any time you add or multiply any two numbers in the set, the result is always in the set. We use $\equiv$ instead of $=$ as it could be an intermediate number, e.g. 12 instead of 2.
##### Properties of Rings
- We can add or multiply any two numbers in the ring, and the result is in the ring
- It is closed
- Addition and multiplication are associative
- (a+b)+c = a + (b+c)
- There is a neutral element 0 for addition
- $a + 0 \equiv a\space mod \space m$
- The additive inverse always exists
- $a + (-a) = 0\space mod \space m$
- There is a neutral element for multiplication
- $a\cdot 1 \equiv a\space mod\space m$
- The multiplicative inverse exists for some but not all elements
- $a\cdot a^{-1} \equiv 1 \space mod \space m$
#### Modular Inversion
> In rings, the multiplicative inverse exists for some but not all elements
- Multiplicative inverses allow us to *divide* by a number
$$
\frac{b}{a} \equiv b \cdot a^{-1} \space (mod \space m)
$$
- Not all numbers in a ring have an inverse, you can determine whether one exists quite simply:
$$
gcd(a,m)=1
$$
Example
$3\cdot 9 \equiv 1 \space (mod\space 26)$
$5\cdot 9 \equiv 19 \space (mod\space 26)$
$19\cdot 3 \equiv 57 \equiv 5\space (mod\space 26)$
Here a=3 and b=5, we can *divide* by 19 to get back to 5.
#### Shift Cipher
We can formalise the shift cipher using modular arithmetic
Let $x, y, k \in \mathbb{Z}_{26}$
$$
e_k(x) = y \equiv x+k \space (mod \space 26) \\
d_k(y) = x \equiv y-k \space (mod \space 26)
$$
##### Frequency Analysis
- The frequency of occurrences of each character is very consistent
- The longer a cipher text is, the easier this becomes
#### Affine Cipher
We can extend the shift cipher into an affine cipher
Let $x,y,a,b \in \mathbb{Z}_{26}$
$$
e_k(x) = y \equiv a\cdot x+b\space (mod \space 26)\\
d_k(y) = x \equiv a^{-1}\cdot(y-b)\space (mod \space m)
$$
where $k=(a,b)$ and $gcd(a,26)=1$
This is a multiplication and an addition analogous to $y=mx+c$
In an Affine cipher, letters can be themselves
- The keyspace of an affine cipher
- a can be 0-25
- b can be 0-12
- 25*12=300
- More secure than a Caesar cipher
Frequency analysis can still be used; in this case the columns will not only be shifted, but jumbled as well.
- This is not hard to crack
#### The Vigenere Cipher
- An early stream cipher, the Vigenere cipher is a shift cipher with a running key
- Unlike the Caesar cipher, the key is repeated for as long as required.
- It is the equivalent to multiple interleaved Caesar ciphers
- Spreads out occurrences of characters, making frequency analysis hard.