Personal site and blog. Please feel free to contact me via the social networks below.
See the new version of this article here:https://www.georgeplotnikov.com/elliptic-curves-smalltalk-vol-2/
Consider Diffie–Hellman key exchange.
DH uses final field. For example
user select in as a key
user select in as a key
int this case key exchange will looks: user send to user send to
their public key is = . How do they calculate it? user A takes and vice versa. there we see that for finding a key, cursed user should solve discrete logarithm task.
where here we can find an elliptic curve? we should replace exponentiation with multiplication. each participant selects some number and to summarize a point (on an elliptic curve) with itself times. the point is already known, also known that it produces big enough sub-group in elliptic curve points group. Each user sends his to the participant and keeps in secret. Consequently, a public key will be calculated as summarizing the point from the other participant with itself his times.
Suppose we have the pre-defined curve and a point. Curve, as known, is over some final field. User wants to send a message to user . Assume message is also a point on a curve.
Encrypted text from to will consists of the two parts:
It means anyone can encrypt and send a message, but the only receiver who has both keys can decrypt it. Real life example is the post office. You came to send a post to your aunt. You are able to put your envelope into the box, but you cannot open it.
Elliptic curve digital sign algorithm
User wants to send message to user calculates hash and for the random
Sign:
, , , ,
User checks the sign:
pros:
cons:
Common problems usually lay in the implementation:
Let’s consider another cases of using EC.
Assume we have number which we want to factorize. This algorithm works fine if we suppose has not so big prime divider. In this algorithm, we consider not the EC over final field, but the set of points which are satisfied the same equitation as an EC (coordinates are ). We take some threshold number and declare that we will find any divider lesser or equals . Calculate point which is point -times summarized with itself. It means at the end of the loop we want to calculate . Why do we need this ? If we will try to calculate the following we can find the case with illegal summarize operation. It means we found some number immutable . Probably it’s multiplicator. If true, we should take a new random EC (point) and repeat algorithm. But if it is the lesser common divider - we found ’s divider (). might not be prime. The problem causes if is a multiplication of two big primes (~ ).
Average working time:
Useful links: