Dienstag, 27. Januar 2015

Diffie–Hellman key exchange

(see also on http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)

Please watch the following video under http://www.youtube.com/watch?v=YEBfamv-_do and give answers to the following questions:


What's the purpose of this algorithm, when is it used?
This algorythm allows two parties that have no prior knowledge of each other to jointly establish a shared secret key over an insecure communications channel. The key can be used to encrypt subsequent communications using a symmetric key cipher.

What is a one way function?
The one way function is easy to perform but hard to reverse.


Quelle: http://www.cs.cornell.edu/courses/cs513/2007fa/TL01.one-way.png

How does the algorithm work?
Quelle: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkUGnMgfk2C3Vt_pHSETdCRFhdlZ9r5bMvGIALosi8XWii94F8sDQDLP_wk40XwO5yqsItDNQ7N0zastpfblYI17k-gDxCRR6opNOHazh1ql3IGe-y0pDZQFyKhbRkl2U2s2o7mzOcTOY/s1600/Unbenannt.PNG


What is clock arithmetic, which characteristics does it have?

In mathematics, modular arithmetic is a system of arithmetic for integers, where numbers "wrap around" upon reaching a certain value - the modulus. The modern approach to modular arithmetic was developed by Carl Friedrich Gauss in his book Disquisitiones Arithmeticae, published in 1801.

A familiar use of modular arithmetic is in the 12-hour clock, in which the day is divided into two 12-hour periods. If the time is 7:00 now, then 8 hours later it will be 3:00. Usual addition would suggest that the later time should be 7 + 8 = 15, but this is not the answer because clock time "wraps around" every 12 hours; in 12-hour time, there is no "15 o'clock". Likewise, if the clock starts at 12:00 (noon) and 21 hours elapse, then the time will be 9:00 the next day, rather than 33:00. Since the hour number starts over after it reaches 12, this is arithmetic modulo 12. According to the definition below, 12 is congruent not only to 12 itself, but also to 0, so the time called "12:00" could also be called "0:00", since 12 is congruent to 0 modulo 12.



What is the discrete logarithm problem?

Discrete logarithms are logarithms defined with regard to multiplicative cyclic groups. If G is a multiplicative cyclic group and g is a generator of G, then from the definition of cyclic groups, we know every element h in G can be written as gx for some x. The discrete logarithm to the base g of h in the group G is defined to be x . For example, if the group is Z5*, and the generator is 2, then the discrete logarithm of 1 is 4 because 24 ≡ 1 mod 5.

 The discrete logarithm problem is defined as: given a group G, a generator g of the group and an element h of G, to find the discrete logarithm to the base g of h in the group G. Discrete logarithm problem is not always hard. The hardness of finding discrete logarithms depends on the groups. For example, a popular choice of groups for discrete logarithm based crypto-systems is Zp* where p is a prime number. However, if p−1 is a product of small primes, then the Pohlig–Hellman algorithm can solve the discrete logarithm problem in this group very efficiently. That's why we always want p to be a safe prime when using Zp* as the basis of discrete logarithm based crypto-systems. A safe prime is a prime number which equals 2q+1 where q is a large prime number. This guarantees that p-1 = 2q has a large prime factor so that the Pohlig–Hellman algorithm cannot solve the discrete logarithm problem easily. Even p is a safe prime, there is a sub-exponential algorithm which is called the index calculus. That means p must be very large (usually at least 1024-bit) to make the crypto-systems safe.
Quelle: http://www.doc.ic.ac.uk/~mrh/330tutor/ch06s02.html


Calculate the private shared key, when Alice selects 56 and Bob selects 23 as a random number.
What is authentication? Does the Diffie-Hellman key exchange provide authentication?

Firstly you have to agree on a prime modulus and a generic. For example we can choose 5 as the prime modulus and 17 as generic.

Both parties can generate the private shared key with their random number.

556 mod 17 = 16

523 mod 17 = 10

So the private shard keys are 16 and 11.


Keine Kommentare:

Kommentar veröffentlichen