Tidy up
This commit is contained in:
103 files changed
+3663
-3779
No files matched your search
@@ -2,7 +2,7 @@
|
||||
|
||||
- Two parties can jointly agree a *shared secret* over an *insecure channel*
|
||||
- Mathematically, what we are doing is both calculating the same value, mod a prime $p$
|
||||
- Remember $p$ is $\times 10^{600}$
|
||||
- Remember $p$ is $\times 10^{600}$
|
||||
- The parties separately compute the same key, rather than share it
|
||||
|
||||
### $\mathbb{Z}_n^*$
|
||||
@@ -12,7 +12,7 @@
|
||||
> This set forms an *abelian* group under multiplication modulo $n$. The identity element is 1
|
||||
|
||||
- In the majority of cases, we use a prime number as the modulus:
|
||||
- $\mathbb{Z}_p^* = \{1,2,...,p-1\}$
|
||||
- $\mathbb{Z}_p^* = \{1,2,...,p-1\}$
|
||||
|
||||
**Group Cardinality** - The number of elements in that group
|
||||
|
||||
@@ -21,11 +21,11 @@ $$
|
||||
|\mathbb{Z}_m^*| = \Phi(n) \\
|
||||
$$
|
||||
|
||||
- The security of ciphers often depend on the cardinality of the group
|
||||
- The security of ciphers often depends on the cardinality of the group
|
||||
|
||||
#### Cyclic Groups
|
||||
|
||||
- Lets consider group $\mathbb{Z}_{11}^*$
|
||||
- Let's consider group $\mathbb{Z}_{11}^*$
|
||||
- Consider calculating powers of 3 in this group
|
||||
|
||||
$$
|
||||
@@ -71,28 +71,30 @@ $$
|
||||
|
||||
- A group that contains an element $g$ of maximum order is called a cyclic group
|
||||
- Any element of maximum order is called a primitive root, or a generator
|
||||
- $2$ is a generator of $\mathbb{Z}_{11}^* \quad ord(2)=10$
|
||||
- 3 is not a generator $\mathbb{Z}_{11}^* \quad ord(3)=5$
|
||||
- $2$ is a generator of $\mathbb{Z}_{11}^* \quad ord(2)=10$
|
||||
- 3 is not a generator $\mathbb{Z}_{11}^* \quad ord(3)=5$
|
||||
|
||||
##### Cyclic Subgroups
|
||||
|
||||
- For all primes, $(\mathbb{Z}_{11}^*, \cdot)$ is an *abelian finite cyclic group*
|
||||
- Let $g \in G$ where $G$ is a cyclic group:
|
||||
1. $g^{|G|}=1$
|
||||
2. $ord(g)$ divides $|G|$
|
||||
- These are called **cyclic subgroups**
|
||||
- Let $g \in G$ where $G$ is a cyclic group:
|
||||
1. $g^{|G|}=1$
|
||||
2. $ord(g)$ divides $|G|$
|
||||
- These are called **cyclic subgroups**
|
||||
- Orders of $\mathbb{Z}_{11}^*$
|
||||
- 
|
||||
- Note the neutral element generates an order of $1$
|
||||
|
||||
- 
|
||||
|
||||
- Note the neutral element generates an order of $1$
|
||||
|
||||
## Diffie-Hellman
|
||||
|
||||
1. Alice and Bob agree on a large prime $p$, and a generator $g$ that is a primitive root of $p$
|
||||
2. Alice and Bob choose private numbers $a$ and $b$ at random in $\mathbb{Z}_p^*$
|
||||
- Where $a\in \{1,2,...,p-1\}$
|
||||
- and $b\in \{1,2,...,p-1\}$
|
||||
- Where $a\in \{1,2,...,p-1\}$
|
||||
- and $b\in \{1,2,...,p-1\}$
|
||||
3. Alice calculates $A=g^a\space mod \space p$ and sends $A$ publicly to Bob
|
||||
4. Bob calculates $B=g^b\space mod \space p$ and sends $B$ pubicly to Alice
|
||||
4. Bob calculates $B=g^b\space mod \space p$ and sends $B$ publicly to Alice
|
||||
5. Alice computes $k_{ab}=B^a\space mod \space p$
|
||||
6. Bob computes $k_{ab}=A^b\space mod \space p$
|
||||
|
||||
@@ -105,13 +107,13 @@ $$
|
||||
|
||||
- Why is Diffie-Hellman so hard to break
|
||||
- Consider $\mathbb{Z}^*_{10000079},\space g=3$
|
||||
- Alice calculates $A=3^a\space mod \space 10000079 = 4675535$
|
||||
- What is $a$?
|
||||
- Alice calculates $A=3^a\space mod \space 10000079 = 4675535$
|
||||
- What is $a$?
|
||||
- This is the discrete logarithm problem
|
||||
|
||||
**Brute Force** requires $O(|G|)$
|
||||
|
||||
**Shank’s Baby-Step Giant-Step** requires $O(\sqrt{|G|})$ and $\sim \sqrt{|G|}$ space
|
||||
**Shanks’ Baby-Step Giant-Step** requires $O(\sqrt{|G|})$ and $\sim \sqrt{|G|}$ space
|
||||
|
||||
- Using 128 bits, this is $2^{64}$, which would need a cluster
|
||||
|
||||
@@ -121,15 +123,13 @@ $$
|
||||
|
||||
- The discrete log problem is solved mod each prime factor and the results combined using the Chinese remainder theorem
|
||||
|
||||
**Index calculus** directly attacks $\mathbb{Z}_p^*$ and is the reason Elliptic Curves is so much more efficient
|
||||
**Index calculus** directly attacks $\mathbb{Z}_p^*$ and is the reason elliptic curves are so much more efficient
|
||||
|
||||
##### Choosing Primes
|
||||
|
||||
- To avoid any unexpected small subgroup attacks, commonly used DH primes are **safe primes**
|
||||
- A safe prime is a prime $p$ where $\frac{(p-1)}{2}$ is also a prime
|
||||
- Consider the order of $\mathbb{Z}_p^*$ for a safe prime
|
||||
- This will have two subgroups of order $p-1$ and $2$
|
||||
- By choosing a generator of the **subgroup of large prime order**, we avoid attacks on small factors of the group order
|
||||
- Basically this ensures the prime factorisation has one massive prime in it
|
||||
|
||||
|
||||
- This will have two subgroups of order $p-1$ and $2$
|
||||
- By choosing a generator of the **subgroup of large prime order**, we avoid attacks on small factors of the group order
|
||||
- Basically this ensures the prime factorisation has one massive prime in it
|
||||
Reference in new issue
Block a user