Add the rest of university notes
This commit is contained in:
366 files changed
+9844
-110
No files matched your search
@@ -0,0 +1,196 @@
|
||||
# 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 Cyptography (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}$ :white_check_mark:
|
||||
|
||||
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 modluo 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 intermediatary 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 are 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 a addition analagous to $y=mx+c$
|
||||
|
||||
In a 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 aswell.
|
||||
|
||||
- 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 caesar cipher, the key is repeated for as long as required.
|
||||
- It is the equivalent to multiple interleaved Caesar ciphers
|
||||
- Spreads outs occurrances of characters making frequency analysis hard.
|
||||
Reference in new issue
Block a user