Elliptic-Curve Cryptography (ECC) : Abhijit Das
Elliptic-Curve Cryptography (ECC) : Abhijit Das
Elliptic-Curve Cryptography (ECC) : Abhijit Das
Abhijit Das
Let K be a field.
E : y2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 , ai ∈ K.
Special forms
char K 6= 2, 3: y2 = x3 + ax + b, a, b ∈ K.
char K = 3: y2 = x3 + b2 x2 + b4 x + b6 , bi ∈ K.
char K = 2:
Non-supersingular or ordinary curve: y2 + xy = x3 + ax2 + b, a, b ∈ K.
Supersingular curve: y2 + ay = x3 + bx + c, a, b, c ∈ K.
Real Elliptic Curves: Example
y y
x x
(a) y2 = x3 − x + 1 (b) y2 = x3 − x
The Elliptic-Curve Group
Point at infinity:
There is a single point at infinity on E, denoted by O.
This point cannot be visualized in the two-dimensional (x, y) plane.
The point exists in the projective plane.
E(K) is the set of all finite K-rational points on E and the point at infinity.
Q P
−P −Q
(a) (b)
Addition of Two Points
R Q
Q
R
P P+Q
P
P+Q
(a) (b)
Doubling of a Point
2P P R
P 2P
R
(a) (b)
Addition and Doubling Formulas
E : y2 = x3 + ax + b
−P = (h1 , −k1 )
h3 = λ 2 − h1 − h2
k3 = λ (h1 − h3 ) − k1 , where
k2 − k1 , if P 6= Q,
h2 − h1
λ =
2
3h1 + a , if P = Q.
2k1
Addition and Doubling in Non-Supersingular or
Ordinary Curves
−P = (h1 , k1 + h1 ),
k1 + k2 2 + k1 + k2 + h + h + a, if P 6= Q,
1 2
h1 + h2
h1 + h2
h3 =
b
h21 + 2 ,
if P = Q,
h1
k1 + k2 (h + h ) + h + k , if P 6= Q,
1 3 3 1
h1 + h2
k3 =
h2 + h1 + k1 + 1 h3 ,
if P = Q.
1 h1
Addition and Doubling in Supersingular Curves
−P = (h1 , k1 + a),
k1 + k2 2 + h + h , if P 6= Q,
h1 + h2
1 2
h3 =
h41 + b2 ,
2 if P = Q,
a
k1 + k2 (h + h ) + k + a, if P 6= Q,
1 3 1
h1 + h2
k3 = 2
h1 + b
(h1 + h3 ) + k1 + a, if P = Q.
a
Size of the Elliptic-Curve Group
Hasse’s Theorem:
√ √
|E(Fq )| = q + 1 − t, where −2 q 6 t 6 2 q.
t is called the trace of Frobenius at q.
If t = 1, then E is called anomalous.
If p|t, then E is called supersingular.
If p6 | t, then E is called non-supersingular or ordinary.
Let α , β ∈ C satisfy 1 − tx + qx2 = (1 − α x)(1 − β x). Then,
|E(Fqm )| = qm + 1 − (α m + β m ).
Point doubling
2
−5
The tangent T to E at P has slope 3×3
2×8 ≡ 12 (mod 17).
The equation for T is y = 12x + 6.
Substitute T in E to get x3 + 9x2 + 4x + 16 ≡ 0 (mod 17), that is,
(x − 3)2 (x − 2) ≡ 0 (mod 17).
The third point of intersection is (2, 13), so 2P = −(2, 13) = (2, 4).
PART 2
CLASSICAL ELLIPTIC-CURVE CRYPTOGRAPHY
The Classical Intractable Problems
Let G be a finite cyclic additive group with a generator P. Let r = |G|.
Signature verification
Compute w ≡ t−1 (mod r), u ≡ mw (mod r), and v ≡ sw (mod r).
Compute V = uP + vY ∈ G (here, Y is Bob’s public key).
Accept the signature if and only if x(V) ≡ s (mod r).
Correctness
d′ ≡ (m + ds)t−1 ≡ (mw + dsw) ≡ u1 + u2 d (mod r).
S = d′ P = uP + vdP = uP + vY.
PART 3
EFFICIENT IMPLEMENTATION
What to Implement?
Return S.
s doubling operations.
At most s addition operations. s/2 additions on an average.
s ≈ log2 n.
Left-to-Right Scalar Multiplication: Example
Consider the curve E : y2 = x3 + 4x + 3 modulo p = 607.
Take P = (234, 121), and n = 410 = (110011010)2 .
[Init] S = P = (234, 121).
[i = 7] Dbl: S := 2S = (65, 216), Add: S := S + P = (2, 176).
[i = 6] Dbl: S := 2S = (223, 283), Add: skipped.
[i = 5] Dbl: S := 2S = (485, 464), Add: skipped.
[i = 4] Dbl: S := 2S = (484, 76), Add: S := S + P = (573, 25).
[i = 3] Dbl: S := 2S = (31, 196), Add: S := S + P = (403, 378).
[i = 2] Dbl: S := 2S = (461, 250), Add: skipped.
[i = 1] Dbl: S := 2S = (389, 228), Add: S := S + P = (170, 25).
[i = 0] Dbl: S := 2S = (541, 197), Add: skipped.
Precompute aP for a = 0, 1, 2, . . . , 2w − 1.
Let n = (Nt Nt−1 Nt−2 . . . N1 N0 )2w be the 2w -ary representation of n.
Initialize S = Nt P (use the precomputed table).
For i = t − 1, t − 2, . . . , 1, 0, repeat:
For j = 0, 1, 2, . . . , w − 1, set S = 2S.
Set S = S + Ni P (use the precomputed table).
Return S.
s doubling operations.
About s/w additions at the cost of 2w additions during precomputation.
Practical choice of window size: w = 4.
Windowed Scalar Multiplication: Example
Consider the curve E : y2 = x3 + 4x + 3 modulo p = 607.
Take P = (234, 121), w = 3, and n = 410 = (110 011 010)2 = (632)8 .
[Precomputation] 2P = (65, 216), 3P = (2, 176), 4P = (368, 523),
5P = (14, 539), 6P = (223, 283), and 7P = (96, 385).
[Init] S := 6P = (223, 283).
[i = 1] Dbl: S := 2S = (485, 464)
Dbl: S := 2S = (484, 76)
Dbl: S := 2S = (431, 45)
Add: S := S + 3P = (403, 378)
[i = 0] Dbl: S := 2S = (461, 250)
Dbl: S := 2S = (389, 228)
Dbl: S := 2S = (402, 361)
Add: S := S + 2P = (541, 197)
The counts of doubling and addition operations do not change in the loop.
Precomputation effort is almost halved.
Windowed Method: Example
Consider the curve E : y2 = x3 + 4x + 3 modulo p = 607.
Take P = (234, 121), w = 3, and n = 410 = (110 011 010)2 = (632)8 .
[Precomputation] 2P = (65, 216), 3P = (2, 176), 5P = (14, 539), and
7P = (96, 385).
[Init] S = O.
[i = 2] Dbl: S := 2S = O
Dbl: S := 2S = O
Add: S := S + 3P = (2, 176)
Dbl: S := 2S = (223, 283)
[i = 1] Dbl: S := 2S = (485, 464)
Dbl: S := 2S = (484, 76)
Dbl: S := 2S = (431, 45)
Add: S := S + 3P = (403, 378)
[i = 0] Dbl: S := 2S = (461, 250)
Dbl: S := 2S = (389, 228)
Add: S := S + P = (170, 25)
Dbl: S := 2S = (541, 197)
Sliding (Non-Adjacent) Window Method
Precompute only the odd multiples of P.
Skip 0’s after a window (do doubling operations only).
The next window starts at the first 1 located after the last window.
The next window is handled as in the windowed method with reduced
precomputation.
Initialize c = 0.
For i = 0, 1, 2, . . . , s + 1, repeat: /* You may use table lookup */
Set cnext = ⌊(ni + ni+1 + c)/2⌋.
Set mi = ni + c − 2cnext .
Set c = cnext .
Return (ms+1 . . . m1 m0 ).
Set i = 0.
While (n > 0), repeat:
If n is even, set mi = 0,
else set r = n rem 2w , if r > 2w−1 , set r = r − 2w , set mi = r and n = n − r.
Set n = n/2 and increment i.
Return S.
Multiple Scalar Multiplication (Contd)
Comparison with two scalar multiplications
The number of doubling operations is halved.
On an average, the number of addition reduces from s to 34 s.
Windowed adaptation
Precompute aP + bQ for all a, b ∈ {0, 1, 2, . . . , 2w − 1}.
w = 2 is a practical choice.
w > 3 calls for too much precomputation.
No doubling needed.
Huge permanent storage.
If P is fixed, but Q changes frequently, the amortized cost of the
precomputations of 2i Q and 2i (P + Q) may be high.
Affine Curves
K is a field.
K is the algebraic closure of K.
It is often necessary to assume that K is algebraically closed.
Affine plane: K 2 = {(h, k) | h, k ∈ K}.
For (h, k) ∈ K 2 , the field elements h, k are called affine coordinates.
Affine curve: Defined by a polynomial equation:
C : f (X, Y) = 0.
Straight lines: aX + bY + c = 0.
Circles: (X − a)2 + (Y − b)2 − r2 = 0.
Conic sections: aX 2 + bXY + cY 2 + dX + eY + f = 0.
Elliptic curves: Defined by the Weierstrass equation:
Y 2 + (a1 X + a3 )Y = X 3 + a2 X 2 + a4 X + a6 .
If char K 6= 2, 3, this can be simplified as Y 2 = X 3 + aX + b.
Hyperelliptic curves of genus g: Y 2 + u(X)Y = v(X) with deg u 6 g,
deg v = 2g + 1, and v monic.
If char K 6= 2, this can be simplified as Y 2 = w(X) with deg w = 2g + 1 and
w monic.
Parabolas are hyperelliptic curves of genus 0.
Elliptic curves are hyperelliptic curves of genus 1.
Projective Plane
aX+bY=0
Straight line: aX + bY + cZ = 0.
Finite points: Solutions of aX + bY + c = 0.
Points at infinity: Solve for aX + bY = 0.
If b 6= 0, we have Y = −(a/b)X. So [1, −(a/b), 0] is the only point at infinity.
If b = 0, we have aX = 0, that is, X = 0. So [0, 1, 0] is the only point at infinity.
Circle: (X − aZ)2 + (Y − bZ)2 = r2 Z 2 .
Finite points: Solutions of (X − a)2 + (Y − b)2 = r2 .
Points at infinity: Solve for X 2 + Y 2 = 0.
For K = R, the only solution is X = Y = 0, so there is no point at infinity.
For K = C, the solutions are Y = ±iX, so there are two points at infinity: [1, i, 0]
and [1, −i, 0].
Examples of Projective Curves (contd.)
Y=−X Y=X
Y= 0
X 2−Y 2=1
2
Y =X
Parabola Hyperbola
Parabola: Y 2 = XZ.
Finite points: Solutions of Y 2 = X.
Points at infinity: Solve for Y 2 = 0.
Y = 0, so [1, 0, 0] is the only point at infinity.
Hyperbola: X 2 − Y 2 = Z 2 .
Finite points: Solutions of X 2 − Y 2 = 1.
Points at infinity: Solve for X 2 − Y 2 = 0.
Y = ±X, so there are two points at infinity: [1, 1, 0] and [1, −1, 0].
Examples of Projective Curves (contd.)
y y
x x
Therefore,
h h1 h2 l1 l2 (k2 l1 − k1 l2 )2 − (h2 l1 − h1 l2 )2 (h1 l2 + h2 l1 )
= λ2 − − = ,
l l1 l2 l1 l2 (h2 l1 − h1 l2 )2
and
k h1 h k1
=λ − − .
l l1 l l1
Substituting the values of λ and h/l gives an explicit expression for k/l.
These expressions are too clumsy.
Elliptic-Curve Addition in Projective Coordinates
T1 = k2 l1 − k1 l2 ,
T2 = h2 l1 − h1 l2 ,
T3 = T22 ,
T4 = T2 T3 ,
T5 = l1 l2 T12 − T4 − 2h1 l2 T3 ,
h = T2 T5 ,
k = T1 (h1 l2 T3 − T5 ) − k1 l2 T4 ,
l = l1 l 2 T 4 .
T1 = 3h21 + al12 ,
T2 = k1 l1 ,
T3 = h1 k1 T2 ,
T4 = T12 − 8T3 ,
T5 = T22 ,
h′ = 2T2 T4 ,
k′ = T1 (4T3 − T4 ) − 8k12 T5 ,
l′ = 8T2 T5 .
Projective Coordinates and Scalar Multiplication
Initialize S = O and T = P.
For i = s, s − 1, s − 2, . . . , 1, 0, repeat:
If (ni = 0) /* Update (S, T) to (2S, 2S + P) = (2S, S + T) */
Assign T = S + T and S = 2S.
else /* Update (S, T) to (2S + P, 2S + 2P) = (S + T, 2T) */
Assign S = S + T and T = 2T.
Return S.
Multiply these two formulas and substitute k12 = h31 + ah1 + b and
k22 = h32 + ah2 + b to get
By2 = x3 + Ax2 + x.
Alternation: em (P, P) = 1.
Skew symmetry: em (Q, P) = em (P, Q)−1 .
Non-degeneracy: If P 6= O, then em (P, Q) 6= 1 for some Q ∈ E[m].
If m is a prime and P 6= O, then em (P, Q) = 1 if and only if Q lies in the
subgroup generated by P (that is, Q = aP for some integer a).
Line Functions
To compute the equation of the line LP,Q or the vertical line LR,−R .
If P = Q = O, return 1. Q R
If P = O, return x − x(Q). P
If Q = O, return x − x(P). −R
If P = −Q, return x − x(P).
Now, let P = (h1 , k1 ) and Q = (h2 , k2 ).
3h21 + a k2 − k1
If P = Q, take λ = , else take λ = .
2k1 h2 − h1
Set µ = λ h1 − k1 .
Return y − λ x + µ .
The Functions fn,P (n ∈ Z, P ∈ E(K̄))
These are rational functions unique up to multiplication by elements of K̄ ∗ .
fn,P satisfy the recurrence relation:
f0,P = f1,P = 1,
LP,nP
fn+1,P = fn,P for n > 1,
L(n+1)P,−(n+1)P
1
f−n,P = for n > 1.
fn,P
The rational functions fn,P also satisfy
LnP,n′ P
fn+n′ ,P = fn,P fn′ ,P × .
L(n+n′ )P,−(n+n′ )P
In particular, for n = n′ , we have
2 LnP,nP
f2n,P = fn,P × .
L2nP,−2nP
The function fn,P is usually kept in the factored form.
The value of fn,P at some point Q is usually needed.
Miller’s Algorithm for Computing fn,P
Input: A point P ∈ E and a positive integer n.
Output: The rational function fn,P .
Steps
Let n = (ns ns−1 . . . n1 n0 )2 be the binary representation of n with ns = 1.
Initialize f = 1 and U = P.
For i = s − 1, s − 2, . . . , 1, 0, do the following:
/* Doubling */
L U
Update f = f 2 × L2U,U,−2U and U = 2U.
/* Conditional adding */
LU, P
If (ni = 1), update f = f × L and U = U + P.
U+P, −(U+P)
Return f .
Note: One may supply a point Q ∈ E and wish to compute the value fn,P (Q)
(instead of the function fn,P ). In that case, the functions LU,U /L2U,−2U and
LU,P /LU+P,−(U+P) should be evaluated at Q before multiplication with f .
Weil Pairing and the Functions fn,P
Doubling
y + 20x + 21
Λ1 = LU,U /L2U,−2U =
x + 32
x + (36 + 21θ )
Λ2 = L2V,−2V /LV,V =
y + (12 + 35θ )x + (26 + 14θ )
Λ1 (Q) 34 + 37θ
f = f2× =
Λ2 (P) 28 + θ
U = 2P = (11, 26) and V = 2Q = (7 + 22θ , 28 + 7θ )
Addition
m2 = 0, so addition is skipped.
Miller Iteration for i = 1
Doubling
y + 31x + 20
Λ1 = LU,U /L2U,−2U =
x+7
x + (2 + 26θ )
Λ2 = L2V,−2V /LV,V =
y + (18 + 22θ )x + (29 + 2θ )
Λ1 (Q) 12 + 15θ
f = f2× =
Λ2 (P) 25 + 18θ
U = 4P = (36, 18) and V = 4Q = (41 + 17θ , 6 + 6θ )
Addition
y + 2x + 39
Λ1 = LU,P /LU+P,−(U+P) =
x + 33
x + (41 + 8θ )
Λ2 = LV+Q,−(V+Q) /LV,Q =
y + (28 + 9θ )x + (31 + 9θ )
Λ 1 (Q) 25 + 15θ
f = f2× =
Λ2 (P) 28 + 20θ
U = 5P = (10, 16) and V = 5Q = (2 + 35θ , 30 + 18θ )
Miller Iteration for i = 0
Doubling
y + 8x + 33
Λ1 = LU,U /L2U,−2U =
x + 42
x + (28 + 21θ )
Λ2 = L2V,−2V /LV,V =
y + (19 + 16θ )x + (19 + 16θ )
Λ1 (Q) 10 + 22θ
f = f2× =
Λ2 (P) 12 + 28θ
U = 10P = (1, 41) and V = 10Q = (15 + 22θ , 38 + 29θ )
Addition
x + 42
Λ1 = LU,P /LU+P,−(U+P) =
1
1
Λ2 = LV+Q,−(V+Q) /LV,Q =
x + (28 + 21θ )
Λ1 (Q) 12θ
f = f2× =
Λ2 (P) 18 + 32θ
U = 11P = O and V = 11Q = O
Weil Pairing: Example
12θ
We have em (P, Q) = (−1) 11
= 26 + 20θ . This is indeed an
18 + 32θ
11-th root of unity.
êm (P, Q) is called the reduced Tate pairing. The reduced pairing
continues to exhibit bilinearity and non-degeneracy.
Computing the Tate Pairing
Keys of PKG
Master Secret Key (MSK): s ∈R Z∗r
Public Key: PPKG = sP.
Hash functions
H1 : {0, 1}∗ → G
H2 : G′ → {0, 1}n for some suitable n
Correctness
g′ = e(DBob , U) = e(DBob , aP) = e(sPBob , aP) = e(PBob , P)sa =
e(PBob , sP)a = e(PBob , PPKG )a = ga
Security
An eavesdropper knows P, U = aP, PBob = bP and PPKG = sP.
The mask is e(P, P)abs .
Intractability of the BDHP guarantees security against eavesdroppers.
Alice knows a and can compute the mask.
Bob knows bsP and can compute the mask.
SOK Two-Party Key Agreement
Proposed by Sakai, Ohgishi and Kasahara (2000).
Setup phase: As in Boneh-Franklin IBE (r, G, G′ , P, s, PPKG , e, n, H1 )
Key-generation phase:
Alice: Public key PAlice = H1 (alice@p.b.cr), private key DAlice = sPAlice .
Bob: Public key PBob = H1 (bob@p.b.cr), private key DBob = sPBob .
Key-agreement phase:
Alice computes SAlice = e(DAlice , PBob ).
Bob computes SBob = e(PAlice , DBob ).
d ′ ∈R Zr ,
S = d′ P,
T = d′−1 (H2 (M)P − H3 (S)DBob ).
Signature generation
k ∈R [1, n − 1] (the session key)
R = kP
r = x(R) (mod n)
s = k−1 (m + dr) (mod n), where m = H(M)
(M, r, s) is the signed message
Signature verification
w = s−1 (mod n)
u = mw (mod n)
v = rw (mod n)
R = uP + vQ ∈ E(Fq )
Accept if and only if x(R) = r (mod n)
ECDSA Signatures: Examples
Verify multiple signatures together at a time less than the total individual
verification time
Applicable when most of the available signatures are valid
Useful in resource-constrained and/or real-time systems
Security issue: One or more invalid signatures in a batch may go unnoticed
The attacker may inject carefully crafted forged signatures in a batch
Safeguards needed against such attacks
This boils down to only two scalar multiplication for a batch of any size t.
But how do we compute the left hand side ∑ti=1 Ri ?
ECDSA signatures present only the x-coordinates xi = ri = x(Ri ).
ECDSA∗ : A non-standard variant of ECDSA in which the entire points Ri
are included (instead of only ri ) in the signatures.
For ECDSA∗ , the above algorithm works without any problem.
A Naive Approach to Solve the Problem
y2i = xi3 + axi + b (mod q).
yi is a modular square root of the right hand side.
Square-root computations are costly.
In general, there are two square roots of xi3 + axi + b.
Try all of the 2t combinations of the signs of the square roots. If any of the
combinations satisfies the verification equation, accept.
Checking 2t−1 combinations actually suffices. There are 2t−1 possibilities
of the x-coordinates of ±R1 ± R2 ± · · · ± Rt .
ECDSA# : A non-standard variant of ECDSA in which an extra bit is
appended to an ECDSA signature for identifying the correct square root.
For ECDSA# , only one of the 2t combinations need to be checked.
The naive approach is usually the fastest batch-verification algorithm for
ECDSA# .
The Naive Algorithm: Example
Consider the three signatures (476, 549), (183, 528), (149, 569).
The square roots of 4763 + 476 + 23 are 374, 617. Take R1 = (476, 374).
The square roots of 1833 + 183 + 23 are 212, 779. Take R2 = (183, 212).
The square roots of 1493 + 149 + 23 are 56, 935. Take R3 = (149, 56).
The right hand side of the verification equation is (539, 347).
We have the following elliptic-curve sums:
R1 + R2 + R3 = (117, 895).
R1 + R2 − R3 = (342, 505).
R1 − R2 + R3 = (990, 608).
R1 − R2 − R3 = (539, 644) = −(539, 347).
Update φ to
(307y2 )2 y21 −(225y3 +757)2 = 215y22 +907y23 +254y3 +740 = 254y3 +641.
f2 (x1 , x2 ) = x1 − x2 ,
f3 (x1 , x2 , x3 ) = (x1 − x2 )2 x3 2 − 2((x1 + x2 )(x1 x2 + a) + 2b)x3 +
((x1 x2 − a)2 − 4b(x1 + x2 )),
ft (x1 , x2 , . . . , xt ) = ResT (ft−k (x1 , . . . , xt−k−1 , T), fk+2 (xt−k , . . . , xt , T))
for t > 4 and for any k in the range 1 6 k 6 t − 3.
f6 (x1 , x2 , x3 , x4 , x5 , α )
→ f4 (x1 , x2 , x3 , T)
→ f3 (x1 , x2 , T1 )
→ f3 (x3 , T, T1 )
→ f4 (x4 , x5 , α , T)
→ f3 (x4 , x5 , T2 )
→ f3 (α , T, T2 )
Compute
ξ1 r1 s−1
1 + ξ2 r2 s2 + · · · + ξk rk sk = 0 (mod n).
−1 −1
Rescue: Given only x(R) and a multiplier ξ , the x-coordinate x(ξ R) can be
uniquely determined and efficiently computed.
Replace the points Ri by ξi Ri , and run the batch-verification algorithms.
Now, the symbols yi are y(ξi Ri ).
We need good algorithms to compute x(ξ R) from x(R) and ξ .
Montgomery Ladders Revisited
Loop invariance: T = S + R.
Montgomery Ladders: Example
Represent the multiple (h, ky) of R by the pair (h, k) of field elements.
Seminumeric Randomization: Algorithm
Montgomery ladders use one doubling and one addition in each iteration.
The seminumeric method does addition only for one bits.
No effective windowed variant is known for Montgomery ladders.
The seminumeric method readily adapts to any windowed variant.
Montgomery ladders are robust against simple side-channel attacks.
Neither the Montgomery-ladder method nor the seminumeric method is
known to have an effective multiple-scalar-multiplication algorithm.
The seminumeric method is practically faster than Montgomery ladders
except for very small randomizers.
Overheads of Randomization
Let SM be the time of one unwindowed full-length scalar multiplication.
Randomization requires roughly t half-length scalar multiplications.
2
4-NAF seminumeric half-length scalar multiplication takes 5 SM time.
7
Double scalar multiplication takes 6 SM time on an average.
2
Preparing each fixed-base precomputation table takes 3 SM time.
1
Double fixed-base scalar multiplication takes 2 SM time on an average.
Let BV denote the batch-verification time.
Verification type Time for verifying t signatures
7t
Individual (no fixed-base) 6 SM
4 t
Individual (fixed-base) 3 + 2 SM
7
Batch without randomization 6 SM + BV
2t 7
Batch with randomization 5 + 6 SM + BV
Final Remarks
Sabyasachi Karati, Abhijit Das, Dipanwita Roychowdhury, Bhargav Bellur, Debojyoti Bhattacharya
and Aravind Iyer, Batch Verification of ECDSA Signatures, 5th International Conference on Cryptology
in Africa (AfricaCrypt 2012), Lecture Notes in Computer Science #7374, pp 1–18, Jul 10–12, 2012,
Ifrane, Morocco.
Sabyasachi Karati, Abhijit Das, Dipanwita Roychowdhury, Bhargav Bellur, Debojyoti Bhattacharya
and Aravind Iyer, New Algorithms for Batch Verification of Standard ECDSA Signatures, Journal of
Cryptographic Engineering, DOI: 10.1007/s13389-014-0082-x, Volume 4, Issue 4, pp 237–258,
Springer-Verlag, November 2014 (online publication dated 26 July 2014).
Sabyasachi Karati and Abhijit Das, Faster Batch Verification of Standard ECDSA Signatures Using
Summation Polynomials, 12th International Conference on Applied Cryptography and Network
Security (ACNS 2014), Lecture Notes in Computer Science #8479, pp 438–456, Jun 10–13, 2014,
Lausanne, Switzerland.
Sabyasachi Karati, Abhijit Das and Dipanwita Roychowdhury, Randomized Batch Verification of
Standard ECDSA Signatures, 4th International Conference on Security, Privacy, and Applied
Cryptography Engineering (SPACE 2014), Lecture Notes in Computer Science #8804, pp 237–255,
Oct 18–22, 2014, Pune, India.
Sabyasachi Karati and Abhijit Das, Batch Verification of EdDSA Signatures, 4th International
Conference on Security, Privacy, and Applied Cryptography Engineering (SPACE 2014), Lecture Notes
in Computer Science #8804, pp 256–271, Oct 18–22, 2014, Pune, India.
Thanks for Your Attention!