Path: blob/master/Identification/Ephemeral-Key-Auth/README.md
1402 views
Ephemeral Key Authentication
Prerequisites:
In this section, we will discuss:
The method of using Ephemeral Keys with Elliptic Curve Arithmetic for Identification
Computation on Prover's and Verifier's side
Analyse the security of this algorithm
Identity Forgery
In the process of identification, an individual can play one of the three roles:
Prover (Pr): wants to prove his/her identity
Verifier (Ve): wants to verify Prover's identity
Simulator (Si): wants to impersonate Prover's identity
Identification Algorithm
Identification using Ephemeral Keys, Source: Benjamin Smith- Introduction to Elliptic Curve Cryptography (ECC 2017)[Page 11]
Note: * symbol mentioned in this section is the symbol for scalar multiplication in Elliptic Curves and not algebraic multiplication. Also, + symbol mentioned in this section is the symbol for point addition in Elliptic Curves unless stated otherwise.
Identification Process:
Both Prover and Verifier agree upon a Point
P
on an Elliptic CurveE
, that can serve as a base point for identification algorithm.Prover generates
Q
= x * P, wherex
is prover's secret key andP
is the base pointVerifier receives point
Q
, sends an acknowledgement indicating so.Prover then generates a random number
r
using a cryptographically secure pseudo random number generator (CSPRNG) and computes R = r * P, whereP
is the base point.Prover then sends point
R
ands
= x + r to the Verifier. Here+
symbol denotes arithmetic additionAfter receiving
R
ands
, verifier computes s * P (Scalar Multiplication) and Q + R (Point Addition) and checks if both of the computations have the same result. If yes, then the verification is successful, if not, then the verification fails.s * P
=(x + r) * P
=x*P + r*P
=Q + R
s
does not reveal anything aboutx
sincer
is generated using a cryptographically secure pseudo random number generator.
This algorithm looks secure as there is no way an attacker can get the value of x
, but can we forge the identity without knowing the value of x
? In the next section, we will discuss how to attack the algorithm and successfully forge an identity!
Forging Identity
Identity forgery in Ephemeral Key Authentication, Source: Benjamin Smith- Introduction to Elliptic Curve Cryptography (ECC 2017)[Page 12]
Detecting Cheating
Detecting Cheating by checking if the prover knows both
s
and r
, Source: Benjamin Smith- Introduction to Elliptic Curve Cryptography (ECC 2017)[Page 13]