asymetric cryptography
This commit is contained in:
		
							parent
							
								
									79af4e41d9
								
							
						
					
					
						commit
						70e4807997
					
				
							
								
								
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-cipher-block-chaining-mode.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-cipher-block-chaining-mode.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 29 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-1.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 15 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-2.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 10 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-3.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-4.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-5.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Assets/NetworkSecurity-ecc-5.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 46 KiB  | 
@ -34,9 +34,26 @@
 | 
				
			|||||||
  - [Der Stromchiffre-Algorithmus RC4](#der-stromchiffre-algorithmus-rc4)
 | 
					  - [Der Stromchiffre-Algorithmus RC4](#der-stromchiffre-algorithmus-rc4)
 | 
				
			||||||
  - [KASUMI](#kasumi)
 | 
					  - [KASUMI](#kasumi)
 | 
				
			||||||
    - [KASUMI - Sicherheitsdiskussion](#kasumi---sicherheitsdiskussion)
 | 
					    - [KASUMI - Sicherheitsdiskussion](#kasumi---sicherheitsdiskussion)
 | 
				
			||||||
- [Grundlagen der Kryptographie](#grundlagen-der-kryptographie-1)
 | 
					 | 
				
			||||||
- [Symmetrische Kryptographie](#symmetrische-kryptographie-1)
 | 
					 | 
				
			||||||
- [Asymmetrische Kryptographie](#asymmetrische-kryptographie)
 | 
					- [Asymmetrische Kryptographie](#asymmetrische-kryptographie)
 | 
				
			||||||
 | 
					  - [Some Mathematical Background](#some-mathematical-background)
 | 
				
			||||||
 | 
					  - [The RSA Public Key Algorithm](#the-rsa-public-key-algorithm)
 | 
				
			||||||
 | 
					  - [Some More Mathematical Background](#some-more-mathematical-background)
 | 
				
			||||||
 | 
					  - [Diffie-Hellman Key Exchange](#diffie-hellman-key-exchange)
 | 
				
			||||||
 | 
					  - [The ElGamal Algorithm](#the-elgamal-algorithm)
 | 
				
			||||||
 | 
					  - [Elliptic Curve Cryptography](#elliptic-curve-cryptography)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Group Elements](#foundations-of-ecc---group-elements)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Point Addition](#foundations-of-ecc---point-addition)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Algebraic Addition](#foundations-of-ecc---algebraic-addition)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Multiplication](#foundations-of-ecc---multiplication)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Curves over $\mathbb{Z}_p$](#foundations-of-ecc---curves-over-mathbbz_p)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Calculate the y-values in $\mathbb{Z}_p$](#foundations-of-ecc---calculate-the-y-values-in-mathbbz_p)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Addition and Multiplication in $\mathbb{Z}_p$](#foundations-of-ecc---addition-and-multiplication-in-mathbbz_p)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Size of generated groups](#foundations-of-ecc---size-of-generated-groups)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - ECDH](#foundations-of-ecc---ecdh)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - EC version of ElGamal Algorithm](#foundations-of-ecc---ec-version-of-elgamal-algorithm)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Security](#foundations-of-ecc---security)
 | 
				
			||||||
 | 
					    - [Foundations of ECC - Further remarks](#foundations-of-ecc---further-remarks)
 | 
				
			||||||
 | 
					  - [Conclusion](#conclusion)
 | 
				
			||||||
- [Modifikationsprüfwerte](#modifikationsprüfwerte)
 | 
					- [Modifikationsprüfwerte](#modifikationsprüfwerte)
 | 
				
			||||||
- [Zufallszahlengenerierung](#zufallszahlengenerierung)
 | 
					- [Zufallszahlengenerierung](#zufallszahlengenerierung)
 | 
				
			||||||
- [Kryptographische Protokolle](#kryptographische-protokolle)
 | 
					- [Kryptographische Protokolle](#kryptographische-protokolle)
 | 
				
			||||||
@ -133,8 +150,6 @@ Diese Bedrohungen werden oft kombiniert, um einen Angriff durchzuführen!
 | 
				
			|||||||
| Verfügbarkeit               | x         |         | x                        | x                                                          |                                  |                             | x                                 |  |
 | 
					| Verfügbarkeit               | x         |         | x                        | x                                                          |                                  |                             | x                                 |  |
 | 
				
			||||||
| Kontrollierter Zugriff      | x         |         | x                        |                                                            |                                  | x                           |                                   |
 | 
					| Kontrollierter Zugriff      | x         |         | x                        |                                                            |                                  | x                           |                                   |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Analyse der Netzwerksicherheit
 | 
					## Analyse der Netzwerksicherheit
 | 
				
			||||||
- Um geeignete Gegenmaßnahmen gegen Bedrohungen ergreifen zu können, müssen diese für eine gegebene Netzkonfiguration angemessen bewertet werden.
 | 
					- Um geeignete Gegenmaßnahmen gegen Bedrohungen ergreifen zu können, müssen diese für eine gegebene Netzkonfiguration angemessen bewertet werden.
 | 
				
			||||||
- Daher ist eine detaillierte Netzsicherheitsanalyse erforderlich, die
 | 
					- Daher ist eine detaillierte Netzsicherheitsanalyse erforderlich, die
 | 
				
			||||||
@ -216,7 +231,6 @@ Diese Bedrohungen werden oft kombiniert, um einen Angriff durchzuführen!
 | 
				
			|||||||
- **Nicht-Abstreitbarkeit (Non Repudiation)**
 | 
					- **Nicht-Abstreitbarkeit (Non Repudiation)**
 | 
				
			||||||
    - Schützt davor, dass an einem Kommunikationsaustausch beteiligte Entitäten später fälschlicherweise abstreiten können, dass der Austausch stattgefunden hat
 | 
					    - Schützt davor, dass an einem Kommunikationsaustausch beteiligte Entitäten später fälschlicherweise abstreiten können, dass der Austausch stattgefunden hat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
## Sicherheitsunterstützende Mechanismen
 | 
					## Sicherheitsunterstützende Mechanismen
 | 
				
			||||||
- Allgemeine Mechanismen
 | 
					- Allgemeine Mechanismen
 | 
				
			||||||
    - Schlüsselverwaltung: Alle Aspekte des Lebenszyklus von kryptografischen Schlüsseln
 | 
					    - Schlüsselverwaltung: Alle Aspekte des Lebenszyklus von kryptografischen Schlüsseln
 | 
				
			||||||
@ -461,7 +475,6 @@ Output-Feedback-Modus (OFB)
 | 
				
			|||||||
      - Es ist für einen Angreifer möglich, bestimmte Bits des Klartextes zu manipulieren
 | 
					      - Es ist für einen Angreifer möglich, bestimmte Bits des Klartextes zu manipulieren
 | 
				
			||||||
- 
 | 
					- 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
Algorithmus-Übersicht
 | 
					Algorithmus-Übersicht
 | 
				
			||||||
- Datenverschlüsselungsstandard (DES)
 | 
					- Datenverschlüsselungsstandard (DES)
 | 
				
			||||||
  - Alter amerikanischer Standard aus den 70er Jahren
 | 
					  - Alter amerikanischer Standard aus den 70er Jahren
 | 
				
			||||||
@ -531,7 +544,6 @@ Geschichte
 | 
				
			|||||||
- Nach der letzten Runde führt DES einen 32-Bit-Tausch und die inverse Anfangspermutation durch
 | 
					- Nach der letzten Runde führt DES einen 32-Bit-Tausch und die inverse Anfangspermutation durch
 | 
				
			||||||
  - InverseInitialPermutation($L_0||R_0$) = InverseInitialPermutation(InitialPermutation(Klartext)) = Klartext
 | 
					  - InverseInitialPermutation($L_0||R_0$) = InverseInitialPermutation(InitialPermutation(Klartext)) = Klartext
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
### DES - Sicherheit
 | 
					### DES - Sicherheit
 | 
				
			||||||
- Schwächen der Schlüssel
 | 
					- Schwächen der Schlüssel
 | 
				
			||||||
    - Schwache Schlüssel: Vier Schlüssel sind schwach, da sie Unterschlüssel erzeugen, die entweder alle 0 oder alle 1 enthalten.
 | 
					    - Schwache Schlüssel: Vier Schlüssel sind schwach, da sie Unterschlüssel erzeugen, die entweder alle 0 oder alle 1 enthalten.
 | 
				
			||||||
@ -703,9 +715,511 @@ Standardisierte AES-Konfigurationen
 | 
				
			|||||||
  - Stromchiffre basierend auf LFSR, kann in 7.500 ASIC-Gattern implementiert werden
 | 
					  - Stromchiffre basierend auf LFSR, kann in 7.500 ASIC-Gattern implementiert werden
 | 
				
			||||||
  - Aber auch anfällig für verwandte Schlüsselangriffe [KY11].
 | 
					  - Aber auch anfällig für verwandte Schlüsselangriffe [KY11].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Grundlagen der Kryptographie
 | 
					 | 
				
			||||||
# Symmetrische Kryptographie
 | 
					 | 
				
			||||||
# Asymmetrische Kryptographie
 | 
					# Asymmetrische Kryptographie
 | 
				
			||||||
 | 
					,,However, prior exposure to discrete mathematics will help the reader to appreciate the concepts presented here.'' E. Amoroso in another context [Amo94]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- General idea:
 | 
				
			||||||
 | 
					  - Use two different keys $-K$ and $+K$ for encryption and decryption
 | 
				
			||||||
 | 
					  - Given a random ciphertext $c=E(+K, m)$ and $+K$ it should be infeasible to compute $m = D(-K, c) = D(-K, E(+K, m))$
 | 
				
			||||||
 | 
					    - This implies that it should be infeasible to compute $-K$ when given $+K$
 | 
				
			||||||
 | 
					  - The key $-K$ is only known to one entity A and is called A’s private key $-K_A$
 | 
				
			||||||
 | 
					  - The key $+K$ can be publicly announced and is called A’s public key $+K_A$
 | 
				
			||||||
 | 
					- Applications:
 | 
				
			||||||
 | 
					  - Encryption:
 | 
				
			||||||
 | 
					    - If B encrypts a message with A’s public key $+K_A$, he can be sure that only A can decrypt it using $-K_A$
 | 
				
			||||||
 | 
					  - Signing:
 | 
				
			||||||
 | 
					    - If A encrypts a message with his own private key $-K_A$, everyone can verify this signature by decrypting it with A’s public key $+K_A$
 | 
				
			||||||
 | 
					  - Attention: It is crucial, that everyone can verify that he really knows A’s public key and not the key of an adversary!
 | 
				
			||||||
 | 
					- Design of asymmetric cryptosystems:
 | 
				
			||||||
 | 
					  - Difficulty: Find an algorithm and a method to construct two keys $-K$, $+K$ such that it is not possible to decipher $E(+K, m)$ with the knowledge of $+K$
 | 
				
			||||||
 | 
					  - Constraints:
 | 
				
			||||||
 | 
					    - The key length should be ,,manageable''
 | 
				
			||||||
 | 
					    - Encrypted messages should not be arbitrarily longer than unencrypted messages (we would tolerate a small constant factor)
 | 
				
			||||||
 | 
					    - Encryption and decryption should not consume too much resources (time, memory)
 | 
				
			||||||
 | 
					  - Basic idea: Take a problem in the area of mathematics / computer science, that is hard to solve when knowing only $+K$, but easy to solve when knowing $-K$
 | 
				
			||||||
 | 
					    - Knapsack problems: basis of first working algorithms, which were unfortunately almost all proven to be insecure
 | 
				
			||||||
 | 
					    - Factorization problem: basis of the RSA algorithm
 | 
				
			||||||
 | 
					    - Discrete logarithm problem: basis of Diffie-Hellman and ElGamal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Some Mathematical Background
 | 
				
			||||||
 | 
					- Let $\mathbb{Z}$ be the number of integers, and $a,b,n\in\mathbb{Z}$
 | 
				
			||||||
 | 
					- We say $a$ divides $b(,,a|b'')$ if there exists an integer $k\in\mathbb{Z}$ such that $a\times k=b$
 | 
				
			||||||
 | 
					- We say $a$ is prime if it is positive and the only divisors of a are $1$ and $a$
 | 
				
			||||||
 | 
					- We say $r$ is the remainder of a divided by $n$ if $r=a-\lfloor a / n \rfloor\times n$ where $\lfloor x\rfloor$ denotes the largest integer less than or equal to $x$
 | 
				
			||||||
 | 
					    - Example: 4 is the remainder of 11 divided by 7 as $4=11-\lfloor 11/7\rfloor\times 7$
 | 
				
			||||||
 | 
					    - We can write this in another way: $a=q\times n + r$ with $q=\lfloor a/n\rfloor$
 | 
				
			||||||
 | 
					- For the remainder $r$ of the division of a by n we write $a\ MOD\ n$
 | 
				
			||||||
 | 
					- We say b is congruent $a\ mod\ n$ if it has the same remainder like a when divided by n. So, n divides $(a-b)$, and we write $b\equiv a\ mod\ n$
 | 
				
			||||||
 | 
					  - Examples: $4\equiv 11\ mod\ 7$, $25\equiv 11\ mod\ 7$, $11\equiv 25\ mod\ 7$, $11\equiv 4\ mod\ 7$, $-10\equiv 4\ mod\ 7$
 | 
				
			||||||
 | 
					- As the remainder r of division by n is always smaller than n , we sometimes represent the set $\{x\ MOD\ n | x\in\mathbb{Z}\}$ by elements of the set $\mathbb{Z}_n=\{0, 1, ..., n-1\}$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Property                                                                                                            | Expression                                                                             |
 | 
				
			||||||
 | 
					| ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
 | 
				
			||||||
 | 
					| Commutative Laws                                                                                                    | $(a + b)\ MOD\ n = (b + a)\ MOD\ n$                                                    |
 | 
				
			||||||
 | 
					| $(a \times b)\ MOD\ n = (b \times a)\ MOD\ n$                                                                       |
 | 
				
			||||||
 | 
					| Associative Laws                                                                                                    | $[(a + b) + c]\ MOD\ n = [a + (b + c)]\ MOD\ n$                                        |
 | 
				
			||||||
 | 
					| $[(a \times b) \times c]\ MOD\ n = [a \times (b \times c)]\ MOD\ n$                                                 |
 | 
				
			||||||
 | 
					| Distributive Law                                                                                                    | $[a \times (b + c)]\ MOD\ n = [(a \times b) + (a \times c)]\ MOD\ n$                   |
 | 
				
			||||||
 | 
					| Identities                                                                                                          | $(0 + a)\ MOD\ n = a\ MOD\ n$                                                          |
 | 
				
			||||||
 | 
					| $(1 \times a)\ MOD\ n = a\ MOD\ n$                                                                                  |
 | 
				
			||||||
 | 
					| Inverses                                                                                                            | $\forall  a \in \mathbb{Z}n: \exists (-a) \in \mathbb{Z}n : a + (-a) \equiv 0\ mod\ n$ |
 | 
				
			||||||
 | 
					| $p is prime \Rightarrow \forall  a \in \mathbb{Z}p: \exists (a-1) \in \mathbb{Z}p: a \times (a-1) \equiv 1\ mod\ p$ |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Greatest common divisor
 | 
				
			||||||
 | 
					- $c = gcd(a, b) :\Leftrightarrow  ( c | a) \wedge ( c | b) \wedge [\forall  d: ( d | a ) \wedge ( d | b) \Rightarrow ( d | c )]$ and $gcd(a, 0 ) : = | a |$
 | 
				
			||||||
 | 
					- The gcd recursion theorem :
 | 
				
			||||||
 | 
					  - $\forall a, b \in \mathbb{Z}^+: gcd(a, b) = gcd(b, a\ MOD\ b)$
 | 
				
			||||||
 | 
					  - Proof:
 | 
				
			||||||
 | 
					    - As $gcd(a, b)$ divides both a and b it also divides any linear combination of them, especially $(a- \lfloor a / b \rfloor \times b) = a\ MOD\ b$, so $gcd(a, b) | gcd(b, a\ MOD\ b)$
 | 
				
			||||||
 | 
					    - As $gcd(b, a\ MOD\ b)$ divides both b and $a\ MOD\ b$ it also divides any linear combination of them, especially $\lfloor a / b \rfloor \times b + (a\ MOD\ b) = a$, so $gcd(b, a\ MOD\ b) | gcd(a, b)$
 | 
				
			||||||
 | 
					- Euclidean Algorithm:
 | 
				
			||||||
 | 
					  - The algorithm Euclid given a, b computes $gcd(a, b)$
 | 
				
			||||||
 | 
					  ```cpp
 | 
				
			||||||
 | 
					  int Euclid(int a, b){
 | 
				
			||||||
 | 
					    if (b = 0) { return(a); }
 | 
				
			||||||
 | 
					    {return(Euclid(b, a\ MOD\ b);} 
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ```
 | 
				
			||||||
 | 
					- Extended Euclidean Algorithm:
 | 
				
			||||||
 | 
					  - The algorithm ExtendedEuclid given a, b computes d, m, n such that: $d = gcd(a, b) = m \times a + n \times b$
 | 
				
			||||||
 | 
					  ```cpp
 | 
				
			||||||
 | 
					  struct{int d, m, n} ExtendedEuclid(int a, b)
 | 
				
			||||||
 | 
					  { int d, d’, m, m’, n, n’;
 | 
				
			||||||
 | 
					    if (b = 0) {return(a, 1, 0); }
 | 
				
			||||||
 | 
					    (d’, m’, n’) = ExtendedEuclid(b, a MOD b);
 | 
				
			||||||
 | 
					    (d, m, n) = (d’, n’, m’ - \lfloor a / b \rfloor \times n’);
 | 
				
			||||||
 | 
					    return(d, m, n); }
 | 
				
			||||||
 | 
					  ```
 | 
				
			||||||
 | 
					  - Proof: (by induction)
 | 
				
			||||||
 | 
					    - Basic case $(a,0): gcd(a, 0) = a = 1 \times a + 0 \times 0$
 | 
				
			||||||
 | 
					    - Induction from $(b, a\ MOD\ b)$ to $(a, b)$:
 | 
				
			||||||
 | 
					      - ExtendedEuclid computes $d’, m’, n’$ correctly (induction hypothesis)
 | 
				
			||||||
 | 
					      - $d=d’=m’\times b+n’\times (a\ MOD\ b)=m’\times b+n’\times(a-\lfloor a/b\rfloor\times b)=n’\times a+(m’-\lfloor a/b\rfloor\times n’)\times b$
 | 
				
			||||||
 | 
					  - The run time of $Euclid(a, b)$ and $ExtendedEuclid(a, b)$ is of $O(log\ b)$
 | 
				
			||||||
 | 
					    - Proof: see [Cor90a], section 33.
 | 
				
			||||||
 | 
					  - Lemma 1: Let $a,b\in\mathbb{N}$ and $d=gcd(a,b)$. Then there exists $m,n\in\mathbb{N}$ such that: $d=m\times a+n \times b$
 | 
				
			||||||
 | 
					- Theorem 1 (Euclid): If a prime divides the product of two integers, then it divides at least one of the integers: $p|(a\times b)\Rightarrow (p|a) \vee (p|b)$
 | 
				
			||||||
 | 
					    - Proof: Let $p|(a\times b)$
 | 
				
			||||||
 | 
					      - If $p|a$ then we are done.
 | 
				
			||||||
 | 
					      - If not then $gcd(p,a) = 1 \Rightarrow\exists m, n\in\mathbb{N}:1=m\times p+n\times a \Leftrightarrow b=m\times p \times b + n \times a \times b$
 | 
				
			||||||
 | 
					      - As $p|(a\times b)$, p divides both summands of the equation and so it divides also the sum which is b 
 | 
				
			||||||
 | 
					- Theorem 2 (fundamental theorem of arithmetic): Factorization into primes is unique up to order.
 | 
				
			||||||
 | 
					    - Proof:
 | 
				
			||||||
 | 
					        - We will show that every integer with a non-unique factorization has a proper divisor with a non-unique factorization which leads to a clear contradiction when we finally have reduced to a prime number.
 | 
				
			||||||
 | 
					        - Let’s assume that n is an integer with a non-unique factorization: $n=p_1\times p_2\times ...\times p_r=q_1 \times q_2\times ... \times q_s$. The primes are not necessarily distinct, but the second factorization is not simply a reordering of the first one. As $p_1$ divides n it also divides the product $q_1\times q_2\times ... \times q_s$. By repeated application of Theorem 1 we show that there is at least one $q_i$ which is divisible by $p_1$. If necessary reorder the $q_i$’s so that it is $q_1$. As both $p_1$ and $q_1$ are prime they have to be equal. So we can divide by $p_1$ and we have that $n/p_1$ has a non-unique factorization.
 | 
				
			||||||
 | 
					  - We will use Theorem 2 to prove the following Corollary 1
 | 
				
			||||||
 | 
					    - If $gcd(c,m)=1$ and $(a\times c)\equiv(b\times c)mod\ m$, then $a\equiv b\ mod\ m$
 | 
				
			||||||
 | 
					    - Proof: As $(a\times c)\equiv(b\times c)mod\ m\Rightarrow\exists n\in\mathbb{N}:(a\times c)-(b\times c)=n\times m$
 | 
				
			||||||
 | 
					    - $\Leftrightarrow ( a - b ) \times c = n \times m$
 | 
				
			||||||
 | 
					    - $\Leftrightarrow p_1\times ...\times p_i\times q_1\times ...\times q_j=r_1\times ...\times r_k\times s_1\times ...\times s_l$
 | 
				
			||||||
 | 
					    - Please note that the $p$’s, $q$’s, $r$’s and $s$’s are prime and do not need to be distinct, but as $gcd(c,m)=1$, there are no indices g, h such that $q_g = s_h$.
 | 
				
			||||||
 | 
					    - So we can continuously divide the equation by all q’s without ever ,,eliminating'' one $s$ and will finally end up with something like $\Leftrightarrow p_1\times ...\times p_i=r_1\times ...\times r_o\times s_1\times ...\times s_l$ (note that there will be fewer r’s)
 | 
				
			||||||
 | 
					    - $\Leftrightarrow(a-b)=r_1\times ...\times r_o\times m\Rightarrow a \equiv b\ mod\ m$
 | 
				
			||||||
 | 
					  - Let $\phi(n)$ denote the number of positive integers less than n and relatively prime to n
 | 
				
			||||||
 | 
					    - Examples: $\phi(4) = 2$, \phi(6)=2$, $\phi(7)=6$, $\phi(15)=8$
 | 
				
			||||||
 | 
					    - If p is prime $\Rightarrow\phi(p)=p-1$
 | 
				
			||||||
 | 
					- Theorem 3 (Euler): Let n and b be positive and relatively prime integers, i.e. $gcd(n, b) = 1 \Rightarrow b \phi(n) \equiv 1\ mod\ n$
 | 
				
			||||||
 | 
					  - Proof:
 | 
				
			||||||
 | 
					    - Let $t=\phi(n)$ and $a_1,...a_t$ be the positive integers less than $n$ which are relatively prime to $n$. Define $r_1,...,r_t$ to be the residues of $b\times a_1\ mod\ n , ..., b\times a_t\ mod\ n$ that is to say: $b\times a_i \equiv r_i\ mod\ n$.
 | 
				
			||||||
 | 
					    - Note that $i\not= j \Rightarrow r_i\not= r_j$. If this would not hold, we would have $b\times a_i\equiv b\times a_j\ mod\ n$ and as $gcd(b,n)=1$, Corollary 1 would imply $a_i\equiv a_j\ mod\ n$ which can not be as $a_i$ and $a_j$ are by definition distinct integers between 0 and n
 | 
				
			||||||
 | 
					    - We also know that each $r_i$ is relatively prime to n because any common divisor k of $r_i$ and $n$ , i.e. $n=k\times m$ and $r_i=p_i\times k$, would also have to divide $a_i$,
 | 
				
			||||||
 | 
					    - as $b\times a_i\equiv (p_i\times k)\ mod\ (k\times m)\Rightarrow\exists s\in\mathbb{N}:(b\times a_i)-(p_i\times k)=s\times k\times m \Leftrightarrow (b\times a_i)=s\times k\times m+(p_i\times k)$
 | 
				
			||||||
 | 
					    - Because k divides each of the summands on the right-hand side and k does not divide b by assumption (n and b are relatively prime), it would also have to divide $a_i$ which is supposed to be relatively prime to n
 | 
				
			||||||
 | 
					    - Thus $r_1, ...,r_t$ is a set of $\phi(n)$ distinct integers which are relatively prime to $n$. This means that they are exactly the same as $a_1,...a_t$, except that they are in a different order. In particular, we know that $r_1\times...\times r_t=a_1\times...\times a_t$
 | 
				
			||||||
 | 
					    - We now use the congruence $r_1\times...\times r_t\equiv b\times a_1\times...\times b\times a_t\ mod\ n$
 | 
				
			||||||
 | 
					        $\Leftrightarrow r_1\times...\times r_t\equiv b_t\times a_1\times...\times a_t\ mod\ n$
 | 
				
			||||||
 | 
					        $\Leftrightarrow r_1\times...\times r_t\equiv b_t\times r_1\times...\times r_t\ mod\ n$
 | 
				
			||||||
 | 
					    - As all $r_i$ are relatively prime to $n$ we can use Corollary 1 and divide by their product giving: $1\equiv b_t\ mod\ n \Leftrightarrow  1\equiv b\phi(n)\ mod n$ 
 | 
				
			||||||
 | 
					- Theorem 4 (Chinese Remainder Theorem):
 | 
				
			||||||
 | 
					  - Let $m_1,...,m_r$ be positive integers that are pairwise relatively prime,
 | 
				
			||||||
 | 
					  - i.e. $\forall i\not= j:gcd(m_i, m_j) = 1$. Let $a_1,...,a_r$ be arbitrary integers.
 | 
				
			||||||
 | 
					  - Then there exists an integer a such that:
 | 
				
			||||||
 | 
					    - $a\equiv a_1\ mod\ m_1$
 | 
				
			||||||
 | 
					    - $a\equiv a_2\ mod\ m_2$
 | 
				
			||||||
 | 
					    - ...
 | 
				
			||||||
 | 
					    - $a\equiv a_r\ mod\ m_r$
 | 
				
			||||||
 | 
					  - Furthermore, a is unique modulo $M := m_1\times...\times m_r$
 | 
				
			||||||
 | 
					  - Proof:
 | 
				
			||||||
 | 
					    - For all $i\in\{1,...,r\}$ we define $M_i:=(M/m_i)\phi(m_i)$
 | 
				
			||||||
 | 
					    - As $M_i$ is by definition relatively prime to $m_i$ we can apply Theorem 3 and know that $M_i\equiv 1\ mod\ m_i$
 | 
				
			||||||
 | 
					    - Since $M_i$ is divisible by $m_j$ for every $j\not= i$, we have $\forall j\not= i:M_i\equiv 0\ mod\ m_j$
 | 
				
			||||||
 | 
					    - We can now construct the solution by defining: $a:= a_1\times M_1+a_2\times M_2+...+a_r\times M_r$
 | 
				
			||||||
 | 
					    - The two arguments given above concerning the congruences of the $M_i$ imply that a actually satisfies all of the congruences.
 | 
				
			||||||
 | 
					    - To see that a is unique modulo $M$, let b be any other integer satisfying the r congruences. As $a\equiv c\ mod\ n$ and $b\equiv c\ mod\ n \Rightarrow a \equiv b\ mod\ n$ we have $\forall i\in\{1,...,r\}:a\equiv b\ mod\ m_i\Rightarrow\forall i\in\{1,...,r\}:m_i|(a-b) \Rightarrow M|(a-b)$ as the $m_i$ are pairwise relatively prime $\Leftrightarrow a\equiv b\ mod\ M$
 | 
				
			||||||
 | 
					- Lemma 2:
 | 
				
			||||||
 | 
					  - If $gcd(m,n)=1$, then $\phi(m\times n)=\phi(m)\times\phi(n)$
 | 
				
			||||||
 | 
					  - Proof:
 | 
				
			||||||
 | 
					    - Let a be a positive integer less than and relatively prime to $m\times n$. In other words, a is one of the integers counted by $\phi(m\times n)$.
 | 
				
			||||||
 | 
					    - Consider the correspondence $a\rightarrow(a\ MOD\ m, a\ MOD\ n)$. The integer a is relatively prime to m and relatively prime to n (if not it would divide $m \times n$). So, $(a\ MOD\ m)$ is relatively prime to m and $(a\ MOD\ n)$ is relatively prime to n as: $a=\lfloor a/m\rfloor\times m + (a\ MOD\ m)$, so if there would be a common divisor of $m$ and $(a\ MOD\ m)$, this divisor would also divide a. Thus every number a counted by $\phi(m\times n )$ corresponds to a pair of two integers $(a\ MOD\ m,a\ MOD\ n)$, the first one counted by $\phi(m)$ and the second one counted by $\phi(n)$.
 | 
				
			||||||
 | 
					    - Because of the second part of Theorem 4, the uniqueness of the solution $a\ mod\ (m\times n)$ to the simultaneous congruences:
 | 
				
			||||||
 | 
					        $a \equiv(a\ MOD\ m)\ mod\ m$
 | 
				
			||||||
 | 
					        $a \equiv(a\ MOD\ n)\ mod\ n$
 | 
				
			||||||
 | 
					      we can deduce, that distinct integers counted by $\phi(m\times n)$ correspond to distinct pairs:
 | 
				
			||||||
 | 
					      - Too see this, suppose that $a\not=b$ counted by $\phi(m\times n)$ does correspond to the same pair $(a\ MOD\ m, a\ MOD\ n)$. This leads to a contradiction as b would also fulfill the congruences:
 | 
				
			||||||
 | 
					        $b\equiv (a\ MOD\ m)\ mod\ m$
 | 
				
			||||||
 | 
					        $b\equiv (a\ MOD\ n)\ mod\ n$
 | 
				
			||||||
 | 
					        but the solution to these congruences is unique modulo $(m \times n)$ 
 | 
				
			||||||
 | 
					      - Therefore, $\phi(m\times n)$ is at most the number of such pairs: $\phi(m\times n)\leq \phi(m)\times\phi(n)$
 | 
				
			||||||
 | 
					    - Consider now a pair of integers $(b,c)$, one counted by $\phi(m)$ and the other one counted by $\phi(n)$: Using the first part of Theorem 4 we can construct a unique positive integer a less than and relatively prime to $m\times n$: $a\equiv b\ mod\ m$ and $a\equiv c\ mod\ n$. So, the number of such pairs is at most $\phi(m\times n):\phi(m \times n)\leq\phi(m)\times\phi(n)$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## The RSA Public Key Algorithm
 | 
				
			||||||
 | 
					- The RSA algorithm was invented in 1977 by R. Rivest, A. Shamir and L. Adleman [RSA78] and is based on Theorem 3.
 | 
				
			||||||
 | 
					- Let $p, q$ be distinct large primes and $n=p\times q$. Assume, we have also two integers e and d such that: $d\times e \equiv 1\ mod\ \phi(n)$
 | 
				
			||||||
 | 
					- Let M be an integer that represents the message to be encrypted, with M positive, smaller than and relatively prime to n.
 | 
				
			||||||
 | 
					  - Example: Encode with <blank> = 99, A = 10, B = 11, ..., Z = 35. So ,,HELLO'' would be encoded as 1714212124. If necessary, break M into blocks of smaller messages: 17142 12124
 | 
				
			||||||
 | 
					- To encrypt, compute: $E = M^e\ MOD\ n$
 | 
				
			||||||
 | 
					    - This can be done efficiently using the square-and-multiply algorithm
 | 
				
			||||||
 | 
					- To decrypt, compute: $M’=E^d\ MOD\ n$
 | 
				
			||||||
 | 
					    - As $d\times e\equiv 1\ mod\ \phi(n)\Rightarrow\exists k\in\mathbb{Z}:(d\times e)-1=k\times\phi(n)\Leftrightarrow(d\times e)=k\times\phi(n)+1$
 | 
				
			||||||
 | 
					    - we have: $M’\equiv E^d\equiv M^{e\times d}\equiv M^{k\times\phi(n)+1}\equiv 1^k\times M\equiv M\ mod\ n$ 
 | 
				
			||||||
 | 
					- As $(d\times e)=(e\times d)$ the operation also works in the opposite direction, that means you can encrypt with d and decrypt with e
 | 
				
			||||||
 | 
					  - This property allows to use the same keys d and e for:
 | 
				
			||||||
 | 
					  - Receiving messages that have been encrypted with one’s public key
 | 
				
			||||||
 | 
					  - Sending messages that have been signed with one’s private key
 | 
				
			||||||
 | 
					- To set up a key pair for RSA:
 | 
				
			||||||
 | 
					  - Randomly choose two primes $p$ and $q$ (of 100 to 200 digits each)
 | 
				
			||||||
 | 
					  - Compute $n=p\times q,\phi(n)=(p-1)\times (q-1)$ (Lemma 2)
 | 
				
			||||||
 | 
					  - Randomly choose $e$, so that $gcd(e,\phi(n))=1$
 | 
				
			||||||
 | 
					  - With the extended euclidean algorithm compute d and c, such that: $e\times d+\phi(n)\times c = 1$, note that this implies, that $e\times d\equiv 1\ mod\ \phi(n)$
 | 
				
			||||||
 | 
					  - The public key is the pair $(e, n)$
 | 
				
			||||||
 | 
					  - The private key is the pair $(d, n)$
 | 
				
			||||||
 | 
					- The security of the scheme lies in the difficulty of factoring $n=p\times q$ as it is easy to compute $\phi(n)$ and then $d$, when $p$ and $q$ are known
 | 
				
			||||||
 | 
					- This class will not teach why it is difficult to factor large n’s, as this would require to dive deep into mathematics
 | 
				
			||||||
 | 
					  - If p and q fulfill certain properties, the best known algorithms are exponential in the number of digits of n
 | 
				
			||||||
 | 
					  - Please be aware that if you choose p and q in an ,,unfortunate'' way, there might be algorithms that can factor more efficiently and your RSA encryption is not at all secure:
 | 
				
			||||||
 | 
					    - Therefore, p and q should be about the same bitlength and sufficiently large
 | 
				
			||||||
 | 
					    - $(p-q)$ should not be too small
 | 
				
			||||||
 | 
					    - If you want to choose a small encryption exponent, e.g. 3, there might be additional constraints, e.g. $gcd(p-1, 3) = 1$ and $gcd(q-1,3)=1$
 | 
				
			||||||
 | 
					  - The security of RSA also depends on the primes generated being truly random (like every key creation method for any algorithm)
 | 
				
			||||||
 | 
					  - Moral: If you are to implement RSA by yourself, ask a mathematician or better a cryptographer to check your design
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Some More Mathematical Background
 | 
				
			||||||
 | 
					- Definition: finite groups
 | 
				
			||||||
 | 
					  - A group ( S , \oplus) is a set S together with a binary operation \oplus for which the
 | 
				
			||||||
 | 
					  following properties hold:
 | 
				
			||||||
 | 
					      - Closure: For all a, b \in S , we have a \oplus b \in S
 | 
				
			||||||
 | 
					      - Identity: There is an element e \in S , such that e \oplus a = a \oplus e = a for all
 | 
				
			||||||
 | 
					  a \in S
 | 
				
			||||||
 | 
					      - Associativity: For all a, b, c \in S , we have ( a \oplus b ) \oplus c = a \oplus ( b \oplus c )
 | 
				
			||||||
 | 
					      - Inverses: For each a \in S , there exists a unique element b \in S , such
 | 
				
			||||||
 | 
					  that a \oplus b = b \oplus a = e
 | 
				
			||||||
 | 
					  - If a group ( S , \oplus) satisfies the commutative law \forall  a, b \in S : a \oplus b = b \oplus a
 | 
				
			||||||
 | 
					  then it is called an Abelian group
 | 
				
			||||||
 | 
					  - If a group ( S , \oplus) has only a finite set of elements, i.e. |S| < \infty, then it is
 | 
				
			||||||
 | 
					  called a finite group
 | 
				
			||||||
 | 
					- Examples:
 | 
				
			||||||
 | 
					  - $(\mathbb{Z}_n , +_n)$
 | 
				
			||||||
 | 
					    - with $\mathbb{Z}_n:=\{[0]_n,[1]_n,...,[n-1]_n\}$
 | 
				
			||||||
 | 
					    - where $[a]_n:=\{b \in \mathbb{Z} | b \equiv a mod n\}$ and
 | 
				
			||||||
 | 
					    - $+_n$ is defined such that $[a]_n+_n[b]_n=[a+b]_n$
 | 
				
			||||||
 | 
					    - is a finite abelian group. For the proof see the table showing the properties of modular arithmetic
 | 
				
			||||||
 | 
					  - $(\mathbb{Z}^*_n , \times_n)$
 | 
				
			||||||
 | 
					    - with $\mathbb{Z}^*_n :=\{[a]_n\in \mathbb{Z}_n | gcd(a,n)=1\}$, and
 | 
				
			||||||
 | 
					    - $\times_n$ is defined such that $[a]_n\times_n [b]_n=[a\times b]_n$
 | 
				
			||||||
 | 
					    - is a finite Abelian group. Please note that $\mathbb{Z}^*_n$ just contains those elements of $\mathbb{Z}_n$ that have a multiplicative inverse modulo n. For the proof see the properties of modular arithmetic
 | 
				
			||||||
 | 
					    - Example: $\mathbb{Z}^*_{15}=\{[1]_{15},[2]_{15},[4]_{15},[7]_{15},[8]_{15},[11]_{15},[13]_{15},[14]_{15}\}$, as $1\times 1\equiv 1 mod 15$, $2 \times 8 \equiv 1 mod 15$, $4 \times 4 \equiv 1 mod 15$, $7 \times 13 \equiv 1 mod 15$, $11 \times 11 \equiv 1 mod 15$, $14 \times 14 \equiv 1 mod 15$
 | 
				
			||||||
 | 
					- If it is clear that we are talking about $(\mathbb{Z}_n, +_n)$ or $(\mathbb{Z}^*_n, \times_n)$ we often represent equivalence classes $[a]_n$ by their representative elements a and denote $+_n$ and $\times_n$ by $+$ and $\times$, respectively.
 | 
				
			||||||
 | 
					  - Definition: finite fields
 | 
				
			||||||
 | 
					    - A field $(S,\oplus, \otimes)$ is a set S together with two operations $\oplus$, $\otimes$ such that
 | 
				
			||||||
 | 
					      - $(S,\oplus)$ and $(S\backslash\{e_{\oplus}\},\otimes)$ are commutative groups, i.e. only the identity element concerning the operation $\oplus$ does not need to have an inverse regarding the operation $\otimes$
 | 
				
			||||||
 | 
					      - For all $a,b,c\in S$, we have a $\otimes(b\oplus c)=(a\otimes b)\oplus(a\otimes c)$
 | 
				
			||||||
 | 
					  - If $|S|<\infty$ then $(S,\oplus,\otimes)$ is called a finite field
 | 
				
			||||||
 | 
					- Example: $(\mathbb{Z}_p, +_p, \times_p)$ is a finite field for each prime p
 | 
				
			||||||
 | 
					- Definition: primitive root, generator
 | 
				
			||||||
 | 
					  - Let $(S,\circ)$ be a group, $g\in S$ and $g^a:=g\circ g\circ...\circ g$ (a times with $a\in\mathbb{Z}^+$)
 | 
				
			||||||
 | 
					  - Then g is called a primitive root or generator of $(S,\circ):\Leftrightarrow\{g^a|1\leq a\leq |S|\}=S$
 | 
				
			||||||
 | 
					  - Examples:
 | 
				
			||||||
 | 
					    - 1 is a primitive root of $(\mathbb{Z}_n, +_n)$
 | 
				
			||||||
 | 
					    - 3 is a primitive root of $(\mathbb{Z}^*_7, \times_7)$
 | 
				
			||||||
 | 
					  - Not all groups do have primitive roots and those who have are called cyclic groups
 | 
				
			||||||
 | 
					- Theorem 5:
 | 
				
			||||||
 | 
					  - $(\mathbb{Z}^*_n, \times_n)$ does have a primitive root $\Leftrightarrow n\in\{2,4,p,2\times p^e\}$ where p is an odd prime and $e\in\mathbb{Z}^+$
 | 
				
			||||||
 | 
					- Theorem 6:
 | 
				
			||||||
 | 
					  - If $(S,\circ)$ is a group and $b\in S$ then $(S’,\circ)$ with $S’=\{b^a|a\in\mathbb{Z}^+\}$ is also a group.
 | 
				
			||||||
 | 
					  - As $S’\subseteq S,(S’,\circ)$ is called a subgroup of $(S,\circ)$
 | 
				
			||||||
 | 
					  - If b is a primitive root of $(S,\circ)$ then $S’=S$
 | 
				
			||||||
 | 
					- Definition: order of a group and of an element
 | 
				
			||||||
 | 
					  - Let $(S,\circ)$ be a group, $e\in S$ its identity element and $b\in S$ any element of $S$:
 | 
				
			||||||
 | 
					    - Then $|S|$ is called the order of $(S,\circ)$
 | 
				
			||||||
 | 
					    - Let $c\in\mathbb{Z}^+$ be the smallest element so that $b^c=e$ (if such a c exists, if not set $c=\infty$). Then c is called the order of b.
 | 
				
			||||||
 | 
					- Theorem 7 (Lagrange):
 | 
				
			||||||
 | 
					  - If G is a finite group and H is a subgroup of G , then $|H|$ divides $|G|$.
 | 
				
			||||||
 | 
					  - Hence, if $b\in G$ then the order of b divides $|G|$.
 | 
				
			||||||
 | 
					- Theorem 8:
 | 
				
			||||||
 | 
					  - If G is a cyclic finite group of order n and d divides n then G has exactly $\phi(d)$ elements of order $d$. In particular, G has $\phi(n)$ elements of order n.
 | 
				
			||||||
 | 
					- Theorems 5, 7, and 8 are the basis of the following algorithm that finds a cyclic group $\mathbb{Z}^*_p$ and a primitive root g of it:
 | 
				
			||||||
 | 
					  - Choose a large prime q such that $p=2q+1$ is prime.
 | 
				
			||||||
 | 
					    - As $p$ is prime, Theorem 5 states that $\mathbb{Z}^*_p$ is cyclic.
 | 
				
			||||||
 | 
					    - The order of $\mathbb{Z}^*_p$ is $2\times q$ and $\phi(2\times q)=\phi(2)\times\phi(q)=q-1$ as $q$ is prime.
 | 
				
			||||||
 | 
					    - So, the odds of randomly choosing a primitive root are $(q-1)/2q \approx 1/2$
 | 
				
			||||||
 | 
					    - In order to efficiently test, if a randomly chosen g is a primitive root, we just have to test if $g^2\equiv 1 mod p$ or $g^q\equiv 1 mod p$. If not, then its order has to be $|\mathbb{Z}^*_p|$, as Theorem 7 states that the order of g has to divide $|\mathbb{Z}^*_p|$
 | 
				
			||||||
 | 
					- Definition: discrete logarithm
 | 
				
			||||||
 | 
					  - Let p be prime, g be a primitive root of $(\mathbb{Z}^*_p,\times_p)$ and c be any element of $\mathbb{Z}^*_p$. Then there exists z such that: $g^z\equiv c mod p$
 | 
				
			||||||
 | 
					  - z is called the discrete logarithm of c modulo p to the base g
 | 
				
			||||||
 | 
					  - Example 6 is the discrete logarithm of 1 modulo 7 to the base 3 as $3^6\equiv 1 mod 7$
 | 
				
			||||||
 | 
					  - The calculation of the discrete logarithm z when given g, c, and p is a computationally difficult problem and the asymptotical runtime of the best known algorithms for this problem is exponential in the bitlength of p
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Diffie-Hellman Key Exchange
 | 
				
			||||||
 | 
					- The Diffie-Hellman key exchange was first published in the landmark paper [DH76], which also introduced the fundamental idea of asymmetric cryptography
 | 
				
			||||||
 | 
					- The DH exchange in its basic form enables two parties A and B to agree upon a shared secret using a public channel:
 | 
				
			||||||
 | 
					  - Public channel means, that a potential attacker E (E stands for eavesdropper) can read all messages exchanged between A and B
 | 
				
			||||||
 | 
					  - It is important, that A and B can be sure, that the attacker is not able to alter messages, as in this case he might launch a man-in-the-middle attack
 | 
				
			||||||
 | 
					  - The mathematical basis for the DH exchange is the problem of finding discrete logarithms in finite fields
 | 
				
			||||||
 | 
					  - The DH exchange is not an asymmetric encryption algorithm, but is nevertheless introduced here as it goes well with the mathematical flavor of this lecture...
 | 
				
			||||||
 | 
					- If Alice (A) and Bob (B) want to agree on a shared secret s and their only means of communication is a public channel, they can proceed as follows:
 | 
				
			||||||
 | 
					  - A chooses a prime p, a primitive root g of $\mathbb{Z}^*_p$, and a random number q:
 | 
				
			||||||
 | 
					    - A and B can agree upon the values p and g prior to any communication, or A can choose p and g and send them with his first message
 | 
				
			||||||
 | 
					    - A computes $v=g^q\ MOD\ p$ and sends to $B:\{p,g,v\}$
 | 
				
			||||||
 | 
					  - B chooses a random number r:
 | 
				
			||||||
 | 
					    - B computes $w=g^r\ MOD\ p$ and sends to $A:\{p,g,w\}$ (or just $\{w\}$)
 | 
				
			||||||
 | 
					  - Both sides compute the common secret:
 | 
				
			||||||
 | 
					    - A computes $s=w^q\ MOD\ p$
 | 
				
			||||||
 | 
					    - B computes $s’=v^r\ MOD\ p$
 | 
				
			||||||
 | 
					    - As $g^{q\times r}\ MOD\ p = g^{r \times q}\ MOD\ p$ it holds: $s=s’$
 | 
				
			||||||
 | 
					  - An attacker Eve who is listening to the public channel can only compute the secret s, if she is able to compute either q or r which are the discrete logarithms of v, w modulo p to the base g
 | 
				
			||||||
 | 
					- If the attacker Eve is able to alter messages on the public channel, she can launch a man-in-the-middle attack:
 | 
				
			||||||
 | 
					  - Eve generates to random numbers $q’$ and $r’$: Eve computes $v’=g^{q’}\ MOD\ p$ and $w’=g^{r’}\ MOD\ p$
 | 
				
			||||||
 | 
					  - When A sends $\{p,g,v\}$ she intercepts the message and sends to $B:\{p,g,v’\}$
 | 
				
			||||||
 | 
					  - When B sends $\{p,g,w\}$ she intercepts the message and sends to $A:\{p,g,w’\}$
 | 
				
			||||||
 | 
					  - When the supposed ,,shared secret'' is computed we get:
 | 
				
			||||||
 | 
					    - A computes $s_1=w’^q\ MOD\ p = v^{r’}\ MOD\ p$ the latter computed by E
 | 
				
			||||||
 | 
					    - B computes $s_2=v’^r\ MOD\ p = w^{q’}\ MOD\ p$ the latter computed by E
 | 
				
			||||||
 | 
					    - So, in fact A and E have agreed upon a shared secret $s_1$ as well as E and B have agreed upon a shared secret $s_2$
 | 
				
			||||||
 | 
					  - If the ,,shared secret'' is now used by A and B to encrypt messages to be exchanged over the public channel, E can intercept all the messages and decrypt/re-encrypt them before forwarding them between A and B.
 | 
				
			||||||
 | 
					- Two countermeasures against the man-in-the-middle attack:
 | 
				
			||||||
 | 
					  - The shared secret is ,,authenticated'' after it has been agreed upon
 | 
				
			||||||
 | 
					    - We will treat this in the section on key management
 | 
				
			||||||
 | 
					  - A and B use a so-called interlock protocol after agreeing on a shared secret:
 | 
				
			||||||
 | 
					    - For this they have to exchange messages that E has to relay before she can decrypt / re-encrypt them
 | 
				
			||||||
 | 
					    - The content of these messages has to be checkable by A and B
 | 
				
			||||||
 | 
					    - This forces E to invent messages and she can be detected
 | 
				
			||||||
 | 
					    - One technique to prevent E from decrypting the messages is to split them into two parts and to send the second part before the first one.
 | 
				
			||||||
 | 
					      - If the encryption algorithm used inhibits certain characteristics E can not encrypt the second part before she receives the first one.
 | 
				
			||||||
 | 
					      - As A will only send the first part after he received an answer (the second part of it) from B, E is forced to invent two messages, before she can get the first parts.
 | 
				
			||||||
 | 
					- Remark: In practice the number g does not necessarily need to be a primitive root of p, it is sufficient if it generates a large subgroup of $\mathbb{Z}^*_p$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## The ElGamal Algorithm
 | 
				
			||||||
 | 
					- The ElGamal algorithm can be used for both, encryption and digital signatures (see also [ElG85a] )
 | 
				
			||||||
 | 
					- Like the DH exchange it is based on the difficulty of computing discrete logarithms in finite fields
 | 
				
			||||||
 | 
					- In order to set up a key pair:
 | 
				
			||||||
 | 
					  - Choose a large prime p, a generator g of the multiplicative group $\mathbb{Z}^*_p$ and a random number v such that $1\leq v\leq p - 2$. Calculate: $y=g^v mod p$
 | 
				
			||||||
 | 
					  - The public key is $( y, g, p )$
 | 
				
			||||||
 | 
					  - The private key is v
 | 
				
			||||||
 | 
					- To sign a message m :
 | 
				
			||||||
 | 
					  - Choose a random number k such that k is relatively prime to $p-1$.
 | 
				
			||||||
 | 
					  - Compute $r=g^k mod p$
 | 
				
			||||||
 | 
					  - With the Extended Euclidean Algorithm compute $k^{-1}$, the inverse of $k mod (p - 1)$
 | 
				
			||||||
 | 
					  - Compute $s=k^{-1} \times ( m - v \times r) mod ( p - 1)$
 | 
				
			||||||
 | 
					  - The signature over the message is $( r, s )$
 | 
				
			||||||
 | 
					- To verify a signature $( r , s )$ over a message m:
 | 
				
			||||||
 | 
					  - Confirm that $y^r \times r^s\ MOD\ p = g^m\ MOD\ p$
 | 
				
			||||||
 | 
					  - Proof: We need the following
 | 
				
			||||||
 | 
					    - Lemma 3: Let p be prime and g be a generator of $\mathbb{Z}^*_p$. Then $i \equiv j mod ( p -1) \Rightarrow g i \equiv g j mod p$
 | 
				
			||||||
 | 
					    - Proof: $i\equiv j mod (p-1) \Rightarrow$ there exists $k\in \mathbb{Z}^+$ such that $(i-j)=(p-1)\times k$
 | 
				
			||||||
 | 
					    - So, $g^{(i-j)}=g^{(p-1)\times k} \equiv 1^k\equiv 1 mod p$, because of Theorem 3 (Euler) $\Rightarrow g^i \equiv g^j mod p$
 | 
				
			||||||
 | 
					  - So as  $s\equiv k^{-1}\times(m-v\times r) mod (p-1)$
 | 
				
			||||||
 | 
					    - $\Leftrightarrow k \times s\equiv m-v\times r mod (p-1)$
 | 
				
			||||||
 | 
					    - $\Leftrightarrow m \equiv v\times r+k\times s mod (p-1)$
 | 
				
			||||||
 | 
					    - $\Rightarrow g^m \equiv g^{(v\times r+ k\times s)} mod p$ with Lemma 3
 | 
				
			||||||
 | 
					    - $\Leftrightarrow g^m \equiv g^{(v\times r)}\times g^{(k\times s)} mod p$
 | 
				
			||||||
 | 
					    - $\Leftrightarrow g^m \equiv y^r\times r^s mod p$
 | 
				
			||||||
 | 
					- Security of ElGamal signatures:
 | 
				
			||||||
 | 
					  - As the private key v is needed to be able to compute s, an attacker would have to compute the discrete logarithm of y modulo p to the basis g in order to forge signatures
 | 
				
			||||||
 | 
					  - It is crucial to the security, that a new random number k is chosen for every message, because an attacker can compute the secret v if he gets two messages together with their signatures based on the same k (see [Men97a], Note 11.66.ii)
 | 
				
			||||||
 | 
					  - In order to prevent an attacker to be able to create a message M with a matching signature, it is necessary not to sign directly the message M as explained before, but to sign a cryptographic hash value $m=h(M)$ of it (these will be treated soon, see also [Men97a], Note 11.66.iii)
 | 
				
			||||||
 | 
					- To encrypt a message m using the public key $(y,g,p)$:
 | 
				
			||||||
 | 
					  - Choose a random $k\in\mathbb{Z}^+$ with $k<p-1$
 | 
				
			||||||
 | 
					  - Compute $r=g^k\ MOD\ p$
 | 
				
			||||||
 | 
					  - Compute $s=m\times y^k\ MOD\ p$
 | 
				
			||||||
 | 
					  - The ciphertext is $(r,s)$, which is twice as long as m
 | 
				
			||||||
 | 
					- To decrypt the message $(r,s)$ using v:
 | 
				
			||||||
 | 
					  - Use the private key v to compute $r^{(p-1-v)}\ MOD\ p=r^{(-v)}\ MOD\ p$
 | 
				
			||||||
 | 
					  - Recover m by computing $m=r^{(-v)}\times s\ MOD\ p$
 | 
				
			||||||
 | 
					  - Proof: $r^{(-v)}\times s\equiv r^{(-v)} \times m \times y^k\equiv g^{(-vk)}\times m \times y^k\equiv g^{(-v \times k)} \times m\times g^{(v \times k)} \equiv m mod p$
 | 
				
			||||||
 | 
					- Security:
 | 
				
			||||||
 | 
					  - The only known means for an attacker to recover m is to compute the discrete logarithm v of y modulo p to the basis g
 | 
				
			||||||
 | 
					  - For every message a new random k is needed ([Men97a], Note 8.23.ii)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Elliptic Curve Cryptography
 | 
				
			||||||
 | 
					- The algorithms presented so far have been invented for the multiplicative group $(\mathbb{Z}^*_p,\times p)$ and the field $(\mathbb{Z}_p, +_p, \times_p)$, respectively
 | 
				
			||||||
 | 
					- It has been found during the 1980’s that they can be generalized and be used with other groups and fields as well
 | 
				
			||||||
 | 
					- The main motivation for this generalization is:
 | 
				
			||||||
 | 
					  - A lot of mathematical research in the area of primality testing, factorization and computation of discrete logarithms has led to techniques that allow to solve these problems in a more efficient way, if certain properties are met:
 | 
				
			||||||
 | 
					    - When the RSA-129 challenge was given in 1977 it was expected that it will take some 40 quadrillion years to factor the 129-digit number ($\approx 428$ bit)
 | 
				
			||||||
 | 
					    - In 1994 it took 8 months to factor it by a group of computers networked over the Internet, calculating for about 5000 MIPS-years
 | 
				
			||||||
 | 
					    - Advances in factoring algorithms allowed 2009 to factor a 232-digit number (768 bit) in about 1500 AMD64-years [KAFL10]
 | 
				
			||||||
 | 
					    - $\Rightarrow$ the key length has to be increased (currently about 2048 bit)
 | 
				
			||||||
 | 
					  - Some of the more efficient techniques do rely on specific properties of the algebraic structures $(\mathbb{Z}^*_p,\times p)$ and $(\mathbb{Z}_p, +_p, \times_p)$
 | 
				
			||||||
 | 
					  - Different algebraic structures may therefore provide the same security with shorter key lengths
 | 
				
			||||||
 | 
					- A very promising structure for cryptography can be obtained from the group of points on an elliptic curve over a finite field
 | 
				
			||||||
 | 
					  - The mathematical operations in these groups can be efficiently implemented both in hardware and software
 | 
				
			||||||
 | 
					  - The discrete logarithm problem is believed to be hard in the general class obtained from the group of points on an elliptic curve over a finite field
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Group Elements
 | 
				
			||||||
 | 
					- Algebraic group consisting of
 | 
				
			||||||
 | 
					  - Points on Weierstrass’ Equation: $y^2 = x^3 + ax + b$
 | 
				
			||||||
 | 
					  - Additional point O in ,,infinity''
 | 
				
			||||||
 | 
					- May be calculated over $\mathbb{R}$, but in cryptography $\mathbb{Z}_p$ and $GF(2^n)$ are used
 | 
				
			||||||
 | 
					  - Already in $\mathbb{R}$ arguments influence form significantly:
 | 
				
			||||||
 | 
					    - $y^2 = x^3-3x+5$ 
 | 
				
			||||||
 | 
					    - $y^2 = x^3-40x+5$ 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Point Addition
 | 
				
			||||||
 | 
					- Addition of elements = Addition of points on the curve
 | 
				
			||||||
 | 
					- Geometric interpretation:
 | 
				
			||||||
 | 
					  - Each point $P:(x,y)$ has an inverse $-P:(x,-y)$
 | 
				
			||||||
 | 
					  - A line through two points P and Q usually intersects with a third point R
 | 
				
			||||||
 | 
					  - Generally, sum of two points P and Q equals $-R$
 | 
				
			||||||
 | 
					  - 
 | 
				
			||||||
 | 
					- Addition (Special cases)
 | 
				
			||||||
 | 
					  - The additional point O is the neutral element, i.e., $P+O=P$
 | 
				
			||||||
 | 
					  - $P + (-P)$:
 | 
				
			||||||
 | 
					    - If the inverse point is added to P, the line and curve intersect in ,,infinity''
 | 
				
			||||||
 | 
					    - By definition: $P+(-P) = O$
 | 
				
			||||||
 | 
					  - $P+P$: The sum of two identical points P is the inverse of the intersecting point with the tangent through P:
 | 
				
			||||||
 | 
					    - 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Algebraic Addition
 | 
				
			||||||
 | 
					- If one of the summands is O, the sum is the other summand
 | 
				
			||||||
 | 
					- If the summands are inverse to each other the sum is O
 | 
				
			||||||
 | 
					- For the more general cases the slope of the line is: $\alpha=\begin{cases} \frac{y_Q-y_P}{x_Q-x_P} \quad\text{ for } P\not=-Q \wedge P\not=Q \\ \frac{3x^2_P +a}{2y_P} \quad\text{ for } P=Q \end{cases}$
 | 
				
			||||||
 | 
					- Result of point addition, where $(x_r,y_r)$ is already the reflected point $(-R)$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Multiplication
 | 
				
			||||||
 | 
					- Multiplication of natural number n and point P performed by multiple repeated additions
 | 
				
			||||||
 | 
					- Numbers are grouped into powers of 2 to achieve logarithmic runtime, e.g. $25P = P + 8P + 16P$
 | 
				
			||||||
 | 
					- This is possible if and only if the n is known!
 | 
				
			||||||
 | 
					- If n is unknown for $nP = Q$, a logarithm has to be solved, which is possible if the coordinate values are chosen from $\mathbb{R}$
 | 
				
			||||||
 | 
					- For $\mathbb{Z}_p$ and $GF(2^n)$ the discrete logarithm problem for elliptic curves has to be solved, which cannot be done efficiently!
 | 
				
			||||||
 | 
					- Note: it is not defined how two points are multiplied, but only a natural number n and point P
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Curves over $\mathbb{Z}_p$
 | 
				
			||||||
 | 
					- Over $\mathbb{Z}_p$ the curve degrades to a set of points
 | 
				
			||||||
 | 
					- For: $y^2=x^3-3x+5\ mod\ 19$
 | 
				
			||||||
 | 
					  - 
 | 
				
			||||||
 | 
					  - Note: For some x values, there is no y value!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Calculate the y-values in $\mathbb{Z}_p$
 | 
				
			||||||
 | 
					- In general a little bit more problematic: determine the y-values for a given x (as its square value is calculated) by $y^2\equiv f(x)\ mod\ p$
 | 
				
			||||||
 | 
					- Hence p is often chosen s.t. $p\equiv 3\ mod\ 4$
 | 
				
			||||||
 | 
					- Then y is calculated by $y_1\equiv f(x)^{\frac{p+1}{4}}$ and $y_2\equiv -f(x)^{\frac{p+1}{4}}$ if and only if a solution exists at all
 | 
				
			||||||
 | 
					- Short proof:
 | 
				
			||||||
 | 
					  - From the Euler Theorem 3 we know that $f(x)^{p-1}\equiv 1\ mod\ p$
 | 
				
			||||||
 | 
					  - Thus the square root must be 1 or -1 $f(x)^{\frac{p-1}{2}}\equiv\pm 1\ mod\ p$
 | 
				
			||||||
 | 
					- Case 1: $f(x)^{\frac{p-1}{2}}\equiv1\ mod\ p$
 | 
				
			||||||
 | 
					    - Multiply both sides by f(x): $f(x)^{\frac{p-1}{2}}\equiv f(x)\equiv y^2\ mod\ p$
 | 
				
			||||||
 | 
					    - As $p + 1$ is divisible by 4 we can take the square root so that $f(x)^{\frac{p-1}{2}}\equiv y\ mod\ p$
 | 
				
			||||||
 | 
					- Case 2: In this case no solution exists for the given x value (as shown by Euler)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Addition and Multiplication in $\mathbb{Z}_p$
 | 
				
			||||||
 | 
					- Due to the discrete structure point mathematical operations do not have a geometric interpretation any more, but
 | 
				
			||||||
 | 
					- Algebraic addition similar to addition over $\mathbb{R}$
 | 
				
			||||||
 | 
					- If the inverse point is added to P, the line and ,,curve'' still intersect in ,,infinity''
 | 
				
			||||||
 | 
					- All x- and y-values are calculated mod p
 | 
				
			||||||
 | 
					- Division is replaced by multiplication with the inverse element of the denominator
 | 
				
			||||||
 | 
					  - Use the Extended Euclidean Algorithm with w and p to derive the inverse $-w$
 | 
				
			||||||
 | 
					- Algebraic multiplication of a natural number n and a point P is also performed by repeated addition of summands of the power of 2
 | 
				
			||||||
 | 
					- The discrete logarithm problem is to determine a natural number n in $nP=Q$ for two known points P and Q
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Size of generated groups
 | 
				
			||||||
 | 
					- Please note that the order of a group generated by a point on a curve over $\mathbb{Z}_p$ is not $p-1$!
 | 
				
			||||||
 | 
					- Determining the exact order is not easy, but can be done in logarithmic time by Schoofs algorithm [Sch85] (requires much more mathematical background than desired here)
 | 
				
			||||||
 | 
					- But Hasse’s theorem on elliptic curves states that the group size n must lay between: $p+1 - 2\sqrt{p}\leq n\leq p+1+2\sqrt{p}$
 | 
				
			||||||
 | 
					- As mentioned before: Generating rather large groups is sufficient
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - ECDH
 | 
				
			||||||
 | 
					- The Diffie-Hellman-Algorithm can easily be adapted to elliptic curves
 | 
				
			||||||
 | 
					- If Alice (A) and Bob (B) want to agree on a shared secret s:
 | 
				
			||||||
 | 
					  - A and B agree on a cryptographically secure elliptic curve and a point P on that curve
 | 
				
			||||||
 | 
					  - A chooses a random number q:
 | 
				
			||||||
 | 
					    - A computes $Q=qP$ and transmits Q to Bob
 | 
				
			||||||
 | 
					  - B chooses a random number r:
 | 
				
			||||||
 | 
					    - B computes $R=rP$ and transmits P to Alice
 | 
				
			||||||
 | 
					  - Both sides compute the common secret:
 | 
				
			||||||
 | 
					    - A computes $S=qR$
 | 
				
			||||||
 | 
					    - B computes $S’=rQ$
 | 
				
			||||||
 | 
					    - As $qrP=rqP$ the secret point $S=S’$
 | 
				
			||||||
 | 
					- Attackers listening to the public channel can only compute S, if able to compute either q or r which are the discrete logarithms of Q and R for the point P
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - EC version of ElGamal Algorithm
 | 
				
			||||||
 | 
					- Adapting ElGamal for elliptic curves is rather straight forward for the encryption routine
 | 
				
			||||||
 | 
					- To set up a key pair:
 | 
				
			||||||
 | 
					  - Choose an elliptic curve over a finite field, a point G that generates a large group, and a random number v such that $1 < v < n$, where n denotes to the size of the induced group, Calculate: $Y = vG$
 | 
				
			||||||
 | 
					  - The public key is $(Y,G,curve)$
 | 
				
			||||||
 | 
					  - The private key is v
 | 
				
			||||||
 | 
					- To encrypt a message:
 | 
				
			||||||
 | 
					  - Choose a random $k\in\mathbb{Z}^+$ with $k<n-1$, compute $R=kG$
 | 
				
			||||||
 | 
					  - Compute $S=M+kY$, where M is a point derived by the message
 | 
				
			||||||
 | 
					    - Problem: Interpreting the message m as a x coordinate of M is not sufficient, as the y value does not have to exist
 | 
				
			||||||
 | 
					    - Solution from [Ko87]: Choose a constant c (e.g. 100) check if $cm$ is the x coordinate of a valid point, if not try $cm+1$, then $cm+2$ and so on
 | 
				
			||||||
 | 
					    - To decode m: take the x value of M and do an integer division by c (receiver has to know c too)
 | 
				
			||||||
 | 
					  - The ciphertext are the points $(R,S)$
 | 
				
			||||||
 | 
					  - Twice as long as m, if stored in so-called compressed form , i.e. only x coordinates are stored and a single bit, indicating whether the larger or smaller corresponding y-coordinate shall be used
 | 
				
			||||||
 | 
					- To decrypt a message:
 | 
				
			||||||
 | 
					  - Derive M by calculating $S-vR$
 | 
				
			||||||
 | 
					  - Proof: $S-vR=M+kY-vR =M+kvG-vkG= M+O= M$
 | 
				
			||||||
 | 
					- To sign a message:
 | 
				
			||||||
 | 
					  - Choose a random $k\in\mathbb{Z}^+$ with $k<n-1$, compute $R = kG$
 | 
				
			||||||
 | 
					  - Compute $s=k^{-1}(m+rv) mod\ n$, where $r$ is the x-value of R
 | 
				
			||||||
 | 
					  - The signature are $(r,s)$, again about as twice as long as n
 | 
				
			||||||
 | 
					- To verify a signed message:
 | 
				
			||||||
 | 
					  - Check if the point $P=ms^{-1}G+rs^{-1}Y$ has the x-coordinate r
 | 
				
			||||||
 | 
					  - Note: $s^{-1}$ is calculated by the Extended Euclidian Algorithm with the input s and n (the order of the group)
 | 
				
			||||||
 | 
					  - Proof: $ms^{-1}G+rs^{-1}Y = ms^{-1}G+rs^{-1}vG = (m+rv)(s^{-1})G = (ks)(s^{-1})G = kG = R$
 | 
				
			||||||
 | 
					- Security discussion:
 | 
				
			||||||
 | 
					  - As in the original version of ElGamal it is crucial to not use k twice
 | 
				
			||||||
 | 
					  - Messages should not be signed directly
 | 
				
			||||||
 | 
					  - Further checks may be required, i.e., G must not be O, a valid point on the curve etc. (see [NIST09] for further details)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Security
 | 
				
			||||||
 | 
					- The security heavily depends on the chosen curve and point:
 | 
				
			||||||
 | 
					- The discriminant of the curve must not be zero, i.e., $4a^3+27b^2\not\equiv 0\ mod\ p$ otherwise the curve is degraded (a so called ,,singular curve'' )
 | 
				
			||||||
 | 
					- Menezes et. al. have found a sub-exponential algorithm for so-called ,,supersingular elliptic curves'' but this does not work in the general case [Men93a]
 | 
				
			||||||
 | 
					- The constructed algebraic groups should have as many elements a possible
 | 
				
			||||||
 | 
					- This class will not go into more details of elliptic curve cryptography as this requires way more mathematics than desired for this course...
 | 
				
			||||||
 | 
					- For non-cryptographers it is best to depend on predefined curves, e.g., [LM10] or [NIST99] and standards such as ECDSA
 | 
				
			||||||
 | 
					- Many publications choose parameters a and b such that they are provably chosen by a random process (e.g. publish x for $h(x)=a$ and $y$ for $h(y) = b$); Shall ensure that the curves do not contain a cryptographic weakness that only the authors knows about
 | 
				
			||||||
 | 
					- The security depends on the length of p
 | 
				
			||||||
 | 
					  - Key lengths with comparable strengths according to [NIST12]:
 | 
				
			||||||
 | 
					    | Symmetric Algorithms | RSA   | ECC     |
 | 
				
			||||||
 | 
					    | -------------------- | ----- | ------- |
 | 
				
			||||||
 | 
					    | 112                  | 2048  | 224-255 |
 | 
				
			||||||
 | 
					    | 128                  | 3072  | 256-383 |
 | 
				
			||||||
 | 
					    | 192                  | 7680  | 384-511 |
 | 
				
			||||||
 | 
					    | 256                  | 15360 | > 512   |
 | 
				
			||||||
 | 
					- The security also heavily depends on the implementation!
 | 
				
			||||||
 | 
					  - The different cases (e.g. with O) in ECC calculation may be observable, i.e., power consumption and timing differences
 | 
				
			||||||
 | 
					  - Attackers might deduct side-channel attacks, as in OpenSSL 0.9.8o [BT11]
 | 
				
			||||||
 | 
					    - Attacker may deduce the bit length of a value k in $kP$ by measuring the time required for the square and multiply algorithm
 | 
				
			||||||
 | 
					    - Algorithm was aborted early in OpenSSL when no further bits where set to ,,1''
 | 
				
			||||||
 | 
					  - Attackers might try to generate invalid points to derive facts about the used key as in OpenSSL 0.9.8g, leading to a recovery of a full 256-bit ECC key after only 633 queries [BBP12]
 | 
				
			||||||
 | 
					- Lesson learned: Do not do it on your own, unless you have to and know what you are doing!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Foundations of ECC - Further remarks
 | 
				
			||||||
 | 
					- As mentioned earlier it is possible to construct cryptographic elliptic curves over $G(2^n)$, which may be faster in hardware implementations
 | 
				
			||||||
 | 
					  - We refrained from details as this would not have brought many different insights!
 | 
				
			||||||
 | 
					- Elliptic curves and similar algebraic groups are an active field of research and allow other advanced applications e.g.:
 | 
				
			||||||
 | 
					  - So-called Edwards Curves are currently discussed, as they seem more robust against side-channel attacks (e.g. [BLR08])
 | 
				
			||||||
 | 
					  - Bilinear pairings allow
 | 
				
			||||||
 | 
					    - Programs to verify that they belong to the same group, without revealing their identity (Secret handshakes, e.g. [SM09])
 | 
				
			||||||
 | 
					    - Public keys to be structured, e.g. use ,,Alice'' as public key for Alice (Identity based encryption, foundations in [BF03])
 | 
				
			||||||
 | 
					- Before deploying elliptic curve cryptography in a product, make sure to not violate patents, as there are still many valid ones in this field!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Conclusion
 | 
				
			||||||
 | 
					- Asymmetric cryptography allows to use two different keys for:
 | 
				
			||||||
 | 
					  - Encryption / Decryption
 | 
				
			||||||
 | 
					  - Signing / Verifying
 | 
				
			||||||
 | 
					- The most practical algorithms that are still considered to be secure are:
 | 
				
			||||||
 | 
					  - RSA, based on the difficulty of factoring and solving discrete logarithms
 | 
				
			||||||
 | 
					  - Diffie-Hellman (not an asymmetric algorithm, but a key agreement protocol)
 | 
				
			||||||
 | 
					  - ElGamal, like DH based on the difficulty of computing discrete logarithms
 | 
				
			||||||
 | 
					- As their security is entirely based on the difficulty of certain mathematical problems, algorithmic advances constitute their biggest threat
 | 
				
			||||||
 | 
					- Practical considerations:
 | 
				
			||||||
 | 
					  - Asymmetric cryptographic operations are about magnitudes slower than symmetric ones
 | 
				
			||||||
 | 
					  - Therefore, they are often not used for encrypting / signing bulk data
 | 
				
			||||||
 | 
					  - Symmetric techniques are used to encrypt / compute a cryptographic hash value and asymmetric cryptography is just used to encrypt a key / hash value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Modifikationsprüfwerte
 | 
					# Modifikationsprüfwerte
 | 
				
			||||||
# Zufallszahlengenerierung
 | 
					# Zufallszahlengenerierung
 | 
				
			||||||
# Kryptographische Protokolle
 | 
					# Kryptographische Protokolle
 | 
				
			||||||
@ -745,3 +1259,23 @@ Standardisierte AES-Konfigurationen
 | 
				
			|||||||
- [Sch96] B. Schneier - Applied Cryptography Second Edition: Protocols, Algorithms and Source Code in C
 | 
					- [Sch96] B. Schneier - Applied Cryptography Second Edition: Protocols, Algorithms and Source Code in C
 | 
				
			||||||
- [Sta13] W. Stallings - Cryptography and Network Security: Principles and Practice
 | 
					- [Sta13] W. Stallings - Cryptography and Network Security: Principles and Practice
 | 
				
			||||||
- [Sti05] D. R. Stinson - Cryptography: Theory and Practice (Discrete Mathematics and Its Applications)
 | 
					- [Sti05] D. R. Stinson - Cryptography: Theory and Practice (Discrete Mathematics and Its Applications)
 | 
				
			||||||
 | 
					- [Bre88a] D. M. Bressoud. - Factorization and Primality Testing
 | 
				
			||||||
 | 
					- [Cor90a] T. H. Cormen, C. E. Leiserson, R. L. Rivest. _Introduction to Algorithms.
 | 
				
			||||||
 | 
					- [DH76] W. Diffie, M. E. Hellman - New Directions in Cryptography
 | 
				
			||||||
 | 
					- [ElG85a] T. ElGamal - A Public Key Cryptosystem and a Signature Scheme based on Discrete Logarithms.
 | 
				
			||||||
 | 
					- [Kob87a] N. Koblitz - A Course in Number Theory and Cryptography
 | 
				
			||||||
 | 
					- [Men93a] A. J. Menezes - Elliptic Curve Public Key Cryptosystems.
 | 
				
			||||||
 | 
					- [Niv80a] I. Niven, H. Zuckerman - An Introduction to the Theory of Numbers
 | 
				
			||||||
 | 
					- [RSA78] R. Rivest, A. Shamir und L. Adleman - A Method for Obtaining Digital Signatures and Public Key Cryptosystems
 | 
				
			||||||
 | 
					- [KAFL10] T. Kleinjung, K. Aoki, J. Franke, A. Lenstra, E. Thomé, J. Bos, P. Gaudry, A. Kruppa, P. Montgomery, D. Osvik, H. Te Riele, A.Timofeev, P. Zimmermann - Factorization of a 768-bit RSA modulus
 | 
				
			||||||
 | 
					- [LM10] M. Lochter, J. Merkle - Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation_ 
 | 
				
			||||||
 | 
					- [NIST99] NIST - Recommended Elliptic Curves for Federal Government Use
 | 
				
			||||||
 | 
					- [NIST12] NIST - Recommendation for Key Management: Part 1: General (Revision 3)
 | 
				
			||||||
 | 
					- [Ko87] N. Koblitz - Elliptic Curve Cryptosystems
 | 
				
			||||||
 | 
					- [BBP12] B.B. Brumley, M. Barbosa, D. Page, F. Vercauteren - Practical realisation and elimination of an ECC-related software bug attack
 | 
				
			||||||
 | 
					- [BT11] B.B. Brumley, N. Tuveri - Remote timing attacks are still practical
 | 
				
			||||||
 | 
					- [BLR08] D. Bernstein, T. Lange, R. Rezaeian Farashahi - Binary Edwards Curves
 | 
				
			||||||
 | 
					- [NIST09] NIST - Digital Signature Standard (DSS)
 | 
				
			||||||
 | 
					- [SM09] A. Sorniotti, R. Molva - A provably secure secret handshake with dynamic controlled matching
 | 
				
			||||||
 | 
					- [BF03] D. Boneh, M. Franklin - Identity-Based Encryption from the Weil Pairing
 | 
				
			||||||
 | 
					- [Sch85] R. Schoof - Elliptic Curves over Finite Fields and the Computation of Square Roots mod p
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user