Be a crypto hero in the market by logging in
Don't you have an account? Sign in
Market trends report
Token price
Elliptic Curve Cryptography (ECC) was introduced in 1985 and has been one of the biggest advances in the field since then. It took 25 years of trial and testing before it was used in production by OpenSSL. Delays like this aren’t uncommon since the bridge between theoretical and practical cryptography can only be proven through the test of time.
ECC’s biggest downside lies in the inherent fact that it’s complex. Its upside lies in the fact that its 256-bit key is stronger and more efficient than RSA’s 4096-bit key. Rather than relying on large numbers alone, elliptic curves obtain their security by combining points on mathematical curves.
We define elliptic curves as a group of x and y coordinates represented on a graph via an equation such as y^2=x^3–7x+10 represented below. Wherever there exists a valid x-value which corresponds to a y-value, we call that a pair on the curve that satisfies the equation. Example points for our example equation are represented below.
Real-world elliptic curves aren’t too different from this, although this is just used as an example.
You can try calculating a point yourself by plugging in the numbers:
The point (2, 2) exists on the graph above and is considered a valid pair. An example of an invalid pair would be where the x-value is less than ~ -3.1, since no y-value can be determined when substituted into the equation.
Our elliptic curve depicted above can be represented as a group of integers represented by each y-value modulo a prime number.
Below is the group of integers represented by the equation y^2=x^3–7x+10 mod 19.
We can derive these points ourselves as well. Let’s take the point where x = 5.
Instead of using modulo 19, what if we used 97? Suddenly we get 82 points instead of 24.
To make this even more obvious, if we used modulo 127 then we’d get 133 points.
Adding points on an elliptic curve are relatively easy to understand. All we do is draw a line between the two points on our graph, find the third point of intersection on the curve and reflect it on the. I’ve illustrated how it works visually below.
To recap our geometrical method of doing point addition:
As easy and straight forward as this method is, it won’t always work and isn’t how computers do point addition. Instead:
Each point P on an elliptic curve has an inverse defined as “the point at infinity”. Finding the point at infinity is as simple as finding the point of intersection along the y-axis with the mirror image. The point itself is virtual and doesn’t intersect the curve. It’s best described as a virtual point that describes what 0 is to integers.
You may be a bit overwhelmed with the number of concepts presented but if there’s anything you need to pay attention to, it’s this part. If we want to add a point P to itself, we call the operation doubling. It works a little something like this:
Just like regular multiplication, point multiplication relies on multiple point addition operations. If you need to multiply P, k times then you just execute a series of addition operations. For example:
Point addition in this manner would take a long time especially if we’re dealing with much larger numbers. So how can we speed this process up? Well, there’s a little trick we can utilize called the “Fast Exponentiation Algorithm”. Here’s how we could use it to find out what 32P is:
As you can see this took us just 6 steps rather than 32 steps. Thinking about the costs of computation and optimizing it takes us to the branch of complexity theory which we’ll touch later on.
This is by far one of the more complicated articles in this series. Our goal was to introduce you to the basics of elliptic curves, how they’re formed and the types of operations we can do on them. Upcoming parts will talk about how we utilize the properties of elliptic curves for the public key and private key cryptography in today’s world.
Loopring is a decentralized exchange protocol utilizing zkSNARKs to bring highly scalable, non-custodial trading to the masses. You can sign up for their bi-weekly update, and learn more at:
⭑ Twitter: twitter.com/loopringorg
⭑ Reddit: reddit.com/r/loopringorg
⭑ Telegram: t.me/loopring_en & t.me/loopringfans (Chinese)
⭑ Discord: discord.gg/KkYccYp
⭑ GitHub: https://github.com/Loopring
⭑ Kakao: open.kakao.com/o/gJbSZdF (Korean)
Learning Cryptography, Part 3: Elliptic Curves was originally published in Loopring Protocol on Medium, where people are continuing the conversation by highlighting and responding to this story.
Newest comments
hyeop 2020-01-20
서비스 이용에 불편을 드려 죄송합니다. 현재 전화상담은 진행하고 있지 않아서 가입하신 메일 주소로 답변을 보내드렸으니 메일을 확인해 주시기 바랍니다.
Community | 3단계 휴대폰 인증버튼 안 눌림
토토즐 2020-01-20
제가 알기론 신청 후 4일간 락업되고 그 이후엔 본인이 원하실때 해지하시면 될 겁니다. 그럼 신청 시 렉스 비율과 해지시 렉스 비율에 따라 이오스 수익금이 계산되어 들어올 겁니다.
Community | [중요] 이오스 렉스 참여방법 (EOS 입금부터 수익금 확인방법까지)
잘한다다 2020-01-19
12/12일 신청한것 대여기간이 언제 까지 인지 궁금합니다
Community | [중요] 이오스 렉스 참여방법 (EOS 입금부터 수익금 확인방법까지)
DNSWXGD 2020-01-19
사기인가 생각되는정도
Community | 고객센터 연락처 문의
leo 2020-01-17
하려는 친구들이 많아야 미래가 밝다고 할 수 있겠죠.
Community | 인하대에서 인천 중·고생에게 블록체인 교육 실시한다네요
fastest rising posts
Write a post
delete
Are you sure you want to delete this post?
News
Are you sure you want to delete this comment?
Purchase has been completed.
닉네임을 설정
닉네임을 설정 후 작성해주세요.