Elliptic curve arithmetic 2 1 ECC school, Nijmegen, 9-11 - - PowerPoint PPT Presentation

β–Ά
elliptic curve arithmetic
SMART_READER_LITE
LIVE PREVIEW

Elliptic curve arithmetic 2 1 ECC school, Nijmegen, 9-11 - - PowerPoint PPT Presentation

Elliptic curve arithmetic 2 1 ECC school, Nijmegen, 9-11 November 2017 Wouter Castryck 1 + 2 Tangent-chord arithmetic on cubic curves Introduction Consequence of Bzout s theorem: on a cubic curve


slide-1
SLIDE 1

Elliptic curve arithmetic

Wouter Castryck

ECC school, Nijmegen, 9-11 November 2017

𝑄

1

𝑄

2

𝑄

1 + 𝑄 2

slide-2
SLIDE 2

Tangent-chord arithmetic

  • n cubic curves
slide-3
SLIDE 3

Introduction

Consequence of BΓ©zout’s theorem: on a cubic curve 𝐷 ∢ 𝑔 𝑦, 𝑧 = σ𝑗+π‘˜=3 π‘π‘—π‘˜π‘¦π‘—π‘§π‘˜ = 0, new points can be constructed from known points using tangents and chords. This principle was already known to 17th century natives like Fermat and Newton. 𝑔 𝑦, 𝑧 = 0

Pierre de Fermat Isaac Newton

slide-4
SLIDE 4

Introduction

This construction was known to respect the base field. This means: if 𝑔 𝑦, 𝑧 ∈ 𝑙[𝑦, 𝑧] with 𝑙 some field, and one starts from points having coordinates in 𝑙, then new points obtained through the tangent-chord method also have coordinates in 𝑙. Informal reason: Consider two points on the 𝑦-axis 𝑄

1 = 𝑏, 0 and 𝑄 2 = (𝑐, 0).

Then the β€œchord” is 𝑧 = 0. The intersection is computed by 𝑔 𝑦, 0 = 𝑦 βˆ’ 𝑏 β‹… 𝑦 βˆ’ 𝑐 β‹… linear factor

always has a root over 𝒍!

𝑄

1

𝑄

2

𝑔 𝑦, 𝑧 = 0

slide-5
SLIDE 5

Introduction

Thus: tangents and chords give some sort of composition law on the set of 𝑙-rational points of a cubic curve. Later it was realized that by adding in a second step, this gives the curve an abelian group structure!

  • nly after an incredible historical detour which took more than 200 years…

First formalized by PoincarΓ© in 1901.

Henri PoincarΓ©

choose a base point 𝑃 𝑄

1

𝑄

2

𝑄

1 + 𝑄 2

𝑄 2𝑄 commutativity: 𝑄

1 + 𝑄 2 = 𝑄 2 + 𝑄 1

associativity: 𝑄

1 + 𝑄 2 + 𝑄 3 = 𝑄 1 + (𝑄 2 + 𝑄 3)

neutral element: 𝑄 + 𝑃 = 𝑄 inverse element: βˆƒ βˆ’π‘„ ∢ 𝑄 + βˆ’π‘„ = 𝑃

slide-6
SLIDE 6

Introduction

Conditions for this to work: 1) One should work projectively (as opposed to affinely): Homogenize 𝑔 𝑦, 𝑧 = σ𝑗+π‘˜=3 π‘π‘—π‘˜π‘¦π‘—π‘§π‘˜ to 𝐺 𝑦, 𝑧, 𝑨 = σ𝑗+π‘˜=3 π‘π‘—π‘˜π‘¦π‘—π‘§π‘˜π‘¨3βˆ’π‘—βˆ’π‘˜ and consider points 𝑦: 𝑧: 𝑨 β‰  (0: 0: 0), up to scaling. Two types of points: affine points points at infinity 𝑨 = 0 𝑨 β‰  0: the point is of the form (𝑦: 𝑧: 1) But then 𝑦, 𝑧 is an affine point! 𝑨 = 0: points of the form (𝑦: 𝑧: 0) up to scaling. (Up to three such points.)

slide-7
SLIDE 7

Introduction

Conditions for this to work: 2) The curve should be smooth, meaning that 𝑔 = πœ–π‘”

πœ–π‘¦ = πœ–π‘” πœ–π‘§ = πœ–π‘” πœ–π‘¨ = 0

has no solutions.

  

This ensures that every point 𝑄 has a well-defined tangent line π‘ˆ ∢ πœ–π‘”

πœ–π‘¦ 𝑄 β‹… 𝑦 + πœ–π‘” πœ–π‘§ 𝑄 β‹… 𝑧 + πœ–π‘” πœ–π‘¨ 𝑄 β‹… 𝑨 = 0.

slide-8
SLIDE 8

Introduction

Conditions for this to work: 3) 𝑃 should have coordinates in 𝑙, in order for the arithmetic to work over 𝑙. 𝑃 Definition: an elliptic curve over 𝑙 is a smooth projective cubic curve 𝐹/𝑙 equipped with a 𝑙-rational base point 𝑃. (Caution: there exist more general and less general definitions.) Under these assumptions we have as wanted: Tangent-chord arithmetic turns 𝐹 into an abelian group with neutral element 𝑃. The set of 𝑙-rational points 𝐹(𝑙) form a subgroup.

slide-9
SLIDE 9

Exercises

1) Describe geometrically what it means to invert a point 𝑄, i.e. to find a point βˆ’π‘„ such that 𝑄 + βˆ’π‘„ = 𝑃. 𝑃 2) Why does this construction simplify considerably if 𝑃 is a flex (= point at which its tangent line meets the curve triply)? 3) If 𝑃 is a flex then 3𝑄 ≔ 𝑄 + 𝑄 + 𝑄 = 𝑃 if and only if 𝑄 is a flex. Explain why.

slide-10
SLIDE 10

On the terminology β€œelliptic curves”

slide-11
SLIDE 11

On the terminology

In the 18th century, unrelated to all this, Fagnano and Euler revisited the unsolved problem of determining the circumference of an ellipse.

Giulio Fagnano Leonhard Euler

?

They got stuck on difficult integrals, now called elliptic integrals.

slide-12
SLIDE 12

On the terminology

In the 19th century Abel and Jacobi studied the inverse functions of elliptic integrals. 𝑒 = 𝑔(𝑑) ? When viewed as complex functions, they observed doubly periodic behaviour: there exist πœ•1, πœ•2 ∈ 𝐃 such that 𝑔 𝑨 + πœ‡1πœ•1 + πœ‡2πœ•2 = 𝑔 𝑨 for all πœ‡1, πœ‡2 ∈ 𝐚.

Niels H. Abel Carl G. Jacobi

Compare to: sin 𝑦 + πœ‡ β‹… 2π‘™πœŒ = sin 𝑦 for all πœ‡ ∈ 𝐚, etc. Such generalized trigonometric functions became known as elliptic functions.

slide-13
SLIDE 13

On the terminology

In other words: elliptic functions on 𝐃 are well-defined modulo πšπœ•1 + πšπœ•2. πœ•1 πœ•2

Karl Weierstrass

Mid 19th century Weierstrass classified all elliptic functions for any given πœ•1, πœ•2, and used this to define a biholomorphism 𝐃/(πšπœ•1 + πšπœ•2) β†’ 𝐹: 𝑨 ↦ (β„˜ 𝑨 , β„˜β€² 𝑨 ) to a certain algebraic curve 𝐹… Note that 𝐃/(πšπœ•1 + πšπœ•2) is an abelian group, almost by definition. The biholomorphism endows 𝐹 with the same group structure… … where it turns out to correspond to tangent-chord arithmetic! … which he called an elliptic curve!

slide-14
SLIDE 14

Weierstrass curves and their arithmetic

slide-15
SLIDE 15

The concrete type of elliptic curves found by Weierstrass now carry his name. They are the most famous shapes of elliptic curves. Assume char 𝑙 β‰  2,3. 𝑧2 = 𝑦3 + 𝐡𝑦 + 𝐢 𝑧2𝑨 = 𝑦3 + 𝐡𝑦𝑨2 + 𝐢𝑨3 (typical plot for 𝑙 = 𝐒)

Weierstrass curves

𝑨 = 0 𝑃 = (0: 1: 0) Definition: a Weierstrass elliptic curve is defined by where 𝐡, 𝐢 ∈ 𝑙 satisfy 4𝐡3 + 27𝐢2 β‰  0. The base point 𝑃 is the unique point at infinity. Can be shown: up to β€œisomorphism” every elliptic curve is Weierstrass.

slide-16
SLIDE 16

Note: 1) the lines through 𝑃 = (0: 1: 0) are the vertical lines (except for the line at infinity 𝑨 = 0). 2) The equation 𝑧2 = 𝑦3 + 𝐡𝑦 + 𝐢 is symmetric in 𝑧.

Weierstrass curves

(𝑦, 𝑧) This gives a first feature: inverting a point on a Weierstrass curve is super easy! Indeed: if 𝑄 = (𝑦, 𝑧) is an affine point then βˆ’π‘„ = 𝑦, βˆ’π‘§ . 𝑃 𝑄 (𝑦, βˆ’π‘§)

slide-17
SLIDE 17

What about point addition?

Weierstrass curves

Write 𝑄

1 + 𝑄 2 = 𝑦3, 𝑧3 .

Line through 𝑄

1 = (𝑦1, 𝑧1) and 𝑄 2 = (𝑦2, 𝑧2) is

𝑧 βˆ’ 𝑧1 = πœ‡ 𝑦 βˆ’ 𝑦1 where πœ‡ = 𝑧2βˆ’π‘§1

𝑦2βˆ’π‘¦1.

𝑄

1

𝑄

2

𝑄

1 + 𝑄 2

Substituting 𝑧 ← 𝑧1 + πœ‡ 𝑦 βˆ’ 𝑦1 in the curve equation 𝑦3 + 𝐡𝑦 + 𝐢 βˆ’ 𝑧2 = 0: 𝑦3 + 𝐡𝑦 + 𝐢 βˆ’ (πœ‡2𝑦2 + β‹― ) = 0. 𝑦3 + 𝐡𝑦 + 𝐢 βˆ’ 𝑧1 + πœ‡ 𝑦 βˆ’ 𝑦1

2 = 0.

𝑦3 βˆ’ πœ‡2𝑦2 + β‹― = 0. So, sum of the roots is πœ‡2. But 𝑦1, 𝑦2 are roots! We find: α‰Šπ‘¦3 = πœ‡2 βˆ’ 𝑦1 βˆ’ 𝑦2 𝑧3 = βˆ’π‘§1 βˆ’ πœ‡(𝑦3 βˆ’ 𝑦1)

slide-18
SLIDE 18

Weierstrass curves

𝑄 2𝑄 where πœ‡ = 𝑧2βˆ’π‘§1

𝑦2βˆ’π‘¦1.

We find: α‰Šπ‘¦3 = πœ‡2 βˆ’ 𝑦1 βˆ’ 𝑦2 𝑧3 = βˆ’π‘§1 βˆ’ πœ‡(𝑦3 βˆ’ 𝑦1) But what if 𝑦1 = 𝑦2? Two cases: Either 𝑧1 = 𝑧2 β‰  0, i.e. 𝑄

1 = 𝑄 2 = 𝑄.

In this case we need to replace πœ‡ by πœ‡ = 3𝑦1

2+2𝐡𝑦1

2𝑧1

. Or 𝑧1 = βˆ’π‘§2, in which case 𝑄

1 + 𝑄 2 = 𝑃.

𝑃 𝑄

1

𝑄

2

Conclusion: formulas for computing on a Weierstrass curve are not too bad, but case distinctive.

slide-19
SLIDE 19

More efficient elliptic curve arithmetic?

The Weierstrass addition formulas are reasonably good for several purposes… … but can they be boosted? Huge amount of activity starting in the 1980’s. One reason: Koblitz and Miller’s suggestion to use elliptic curves in crypto! Initial reason: Lenstra’s elliptic curve method (ECM) for integer factorization.

agree on 𝐹/π†π‘Ÿ and 𝑄 ∈ 𝐹(π†π‘Ÿ) chooses secret 𝒃 ∈ 𝐚 chooses secret 𝒄 ∈ 𝐚 computes 𝒃𝑄 computes 𝒄𝑄 receives receives computes 𝒃 𝒄𝑄 = 𝒃𝒄𝑄 computes 𝒄 𝒃𝑄 = 𝒃𝒄𝑄 (Example: Diffie-Hellman key exchange.)

Victor Miller Neal Koblitz

slide-20
SLIDE 20

Generic methods for efficient scalar multiplication

slide-21
SLIDE 21

Efficient scalar multiplication

The most important operation in both (discrete-log based) elliptic curve cryptography, the elliptic curve method for integer factorization, is scalar multiplication: given a point 𝑄 and a positive integer 𝑏, compute 𝑏𝑄 ≔ 𝑄 + 𝑄 + β‹― + 𝑄 𝑏 times. Note: adding 𝑄 consecutively to itself 𝑏 βˆ’ 1 times is not an option! in practice 𝑏 consists of hundreds of bits!

slide-22
SLIDE 22

Efficient scalar multiplication: double-and-add

Much better idea: double-and-add, walking through the binary expansion of 𝑏. Toy example: replace the 15 additions in 16𝑄 = 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 + 𝑄 by the 4 doublings in 16𝑄 = 2 2 2 2𝑄 . General method: 𝑏 = 101100010 … 0101 𝑸

double

πŸ‘π‘Έ

double and add

πŸ‘ πŸ‘π‘Έ + 𝑸

double and add

πŸ‘ πŸ‘ πŸ‘π‘Έ + 𝑸 + 𝑸

double

πŸ‘(πŸ‘ πŸ‘ πŸ‘π‘Έ + 𝑸 + 𝑸)

double

πŸ‘(πŸ‘ πŸ‘ πŸ‘ πŸ‘π‘Έ + 𝑸 + 𝑸 )

double

πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘π‘Έ + 𝑸 + 𝑸

double and add

πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘π‘Έ + 𝑸 + 𝑸 + 𝑸

double

πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘π‘Έ + 𝑸 + 𝑸 + 𝑸 Exercise: verify that this computes 𝑏𝑄 using 𝑃(log 𝑏) additions or doublings, as opposed to 𝑃(𝑏). (Horner’s rule, basically.)

slide-23
SLIDE 23

Warning: finding the most optimal chain of additions and doublings to compute 𝑏𝑄 is a very difficult combinatorial problem. We don’t want to spend more time on it than on computing 𝑏𝑄 itself!

Efficient scalar multiplication: double-and-add

Asymptotically this is as good as we can expect… … but in practice, considerable speed-ups over naive double-and-add are possible! Example: double-and-add computes 15𝑄 as 𝑄, 2𝑄, 3𝑄, 6𝑄, 7𝑄, 14𝑄, 15𝑄. However it would have been more efficient to compute it as 𝑄, 2𝑄, 3𝑄, 6𝑄, 12𝑄, 15𝑄

slide-24
SLIDE 24

πŸ‘π‘Έ

Efficient scalar multiplication: windowing

In double-and-add, processing a 0 (doubling) is less costly than processing a 1 (doubling and adding 𝑄). Is there a structural way of reducing the number of additions? Example with π‘₯ = 2: 𝑏 = 101100010 … 0101 πŸ“ πŸ‘π‘Έ + πŸ’π‘Έ

quadruple and add πŸ’π‘Έ

πŸ“(πŸ“ πŸ‘π‘Έ + πŸ’π‘Έ)

quadruple

πŸ“ πŸ“ πŸ“ πŸ‘π‘Έ + πŸ’π‘Έ + 𝑸

quadruple and add 𝑸

Requires precomputation of 𝑄, … , 2π‘₯βˆ’1𝑄 which grows exponentially with π‘₯. Method can be spiced up by allowing the window to slide to the next window starting with a 1. One idea to achieve this: windowing, which is the same as double-and-add, but we now process blocks (= windows ) of π‘₯ bits in one time.

slide-25
SLIDE 25

Efficient scalar multiplication: signed digits

Recall that on a Weierstrass elliptic curve, inverting a point is quasi cost-free: βˆ’ 𝑦, 𝑧 = (𝑦, βˆ’π‘§). Idea: use negative digits in the expansion, at the benefit of having more 0’s. The non-adjacent form (NAF) of an integer 𝑏 is a base 2 expansion

  • > with digits taken from {βˆ’1,0,1}
  • > in which no two consecutive digits are non-zero.

Such an expansion always exists, is unique, and easy to find. 𝑸

double

πŸ‘π‘Έ

double

πŸ‘ πŸ‘π‘Έ

double and subtract

πŸ‘ πŸ‘ πŸ‘π‘Έ βˆ’ 𝑸

double

πŸ‘(πŸ‘ πŸ‘ πŸ‘π‘Έ βˆ’ 𝑸)

double and subtract

πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘π‘Έ βˆ’ 𝑸 βˆ’ 𝑸

double

πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘π‘Έ βˆ’ 𝑸 βˆ’ 𝑸

double and add

πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘π‘Έ βˆ’ 𝑸 βˆ’ 𝑸 + 𝑸

double

πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘ πŸ‘π‘Έ βˆ’ 𝑸 βˆ’ 𝑸 + 𝑸 𝑏 = 1 0 0 -1 0 -1 0 1 0 … 0 1 0 0 1 This method also comes in a windowing version (π‘₯-NAF).

slide-26
SLIDE 26

Efficient scalar multiplication

Tons of variations to the foregoing ideas have been investigated and proposed. Some examples (far from exhaustive!): Work with respect to base 3 and use an expansion with digits ∈ {βˆ’1,0,1}. (Requires a tripling formula.) If 𝑄 has a known finite order π‘œ, check if 𝑏 Β± πœ‡π‘œ has better properties for some small πœ‡ ∈ 𝐚. Multi-exponentiation: efficient methods for computing a 𝐚-linear combination σ𝑗 𝑏𝑗𝑄

𝑗.

Exercise: find a smarter way to compute 𝑏𝑄 + 𝑐𝑅 than first computing 𝑏𝑄, 𝑐𝑅 separately.

slide-27
SLIDE 27

Caution with double-and-add and its variants

When working through the digits of the scalar 𝑏 = 110100110101100010 … 1110, an attacker might notice differences between processing a 0 and processing a 1. Parameters he can monitor are time, power consumption, noise, … If one is uncareful then this will give away 𝒃 for free! Huge threat, unless 𝑏 is public anyway (as in signature verification). Countermeasures: Adding unnecessary computations, using uniform addition formulas, … but the problem is somewhat inherent to double-and-add. Use a Montgomery ladder for scalar multiplication.

slide-28
SLIDE 28

Elliptic-curve-specific speed-ups

slide-29
SLIDE 29

Using projective coordinates

Remember the addition resp. doubling formula for Weierstrass curve arithmetic: α‰Šπ‘¦3 = πœ‡2 βˆ’ 𝑦1 βˆ’ 𝑦2 𝑧3 = βˆ’π‘§1 βˆ’ πœ‡(𝑦3 βˆ’ 𝑦1) where πœ‡ = 𝑧2βˆ’π‘§1

𝑦2βˆ’π‘¦1 resp. πœ‡ = 3𝑦1

2+2𝐡𝑦1

2𝑧1

. Each step in the addition/subtraction chain requires a computation of πœ‡, which involves a costly field inversion. Way around: use projective coordinates, computing 𝑄

3 = (𝑦3: 𝑧3: 𝑨3) from 𝑄 1 = 𝑦1: 𝑧1: 𝑨1 and 𝑄 2 = 𝑦2: 𝑧2: 𝑨2 .

Resulting formulas are inversion-free and even less case distinctive! At the end of the double-and-add iteration, we can do a single inversion of the 𝑨-coordinate to find a point of the form 𝑦, 𝑧 = (𝑦: 𝑧: 1), as wanted.

slide-30
SLIDE 30

Using projective coordinates

Formulas for this are easy to establish: replace 𝑦1 ← 𝑦1

𝑨1 , 𝑧1 ← 𝑧1 𝑨1 , 𝑦2 ← 𝑦2 𝑨2 , 𝑧2 ← 𝑧2 𝑨2 and put on

common denominators. For example in the case of addition this gives: 𝑄

3 = ( 𝑦2𝑨1 βˆ’ 𝑦1𝑨2

𝑧2𝑨1 βˆ’ 𝑧1𝑨2 2𝑨1𝑨2 βˆ’ 𝑦2𝑨1 + 𝑦1𝑨2 𝑦2𝑨1 βˆ’ 𝑦1𝑨2 3: … : 𝑦2𝑨1 βˆ’ 𝑦1𝑨2 3𝑨1𝑨2). Looks ugly, but is more efficient! Remember the addition resp. doubling formula for Weierstrass curve arithmetic: α‰Šπ‘¦3 = πœ‡2 βˆ’ 𝑦1 βˆ’ 𝑦2 𝑧3 = βˆ’π‘§1 βˆ’ πœ‡(𝑦3 βˆ’ 𝑦1) where πœ‡ = 𝑧2βˆ’π‘§1

𝑦2βˆ’π‘¦1 resp. πœ‡ = 3𝑦1

2+2𝐡𝑦1

2𝑧1

. Each step in the addition/subtraction chain requires a computation of πœ‡, which involves a costly field inversion. Literature contains various clever ways of evaluating these formulas efficiently. Useful other types of homogeneous coordinates (e.g. weighted).

slide-31
SLIDE 31

Other formulas

The formulas for addition and doubling on a Weierstrass curve are not unique. Using the identities 𝑧1

2 = 𝑦1 3 + 𝐡𝑦1 + 𝐢

and 𝑧2

2 = 𝑦2 3 + 𝐡𝑦2 + 𝐢,

it is possible to rewrite them. One possibility: obtain a single formula that works for both addition and doubling! Interesting against side-channel attacks. Example: 𝑦3 = 𝑦1𝑦2 βˆ’ 2𝐡 𝑦1𝑦2 βˆ’ 4𝐢 𝑦1 + 𝑦2 + 𝐡2 𝑦1𝑦2 + 𝐡 𝑦1 + 𝑦2 + 2𝑧1𝑧2 + 2𝐢 𝑧3 = 𝑦1𝑦2 𝑦1 + 𝑦2 βˆ’ 𝑦3 𝑦1 + 𝑦2 2 βˆ’ 𝑦1𝑦2 + 𝐡 βˆ’ 𝑧1𝑧2 βˆ’ 𝐢 𝑧1 + 𝑧2 Remark: new exceptional point pairs will appear, but they are less likely to be hit by an addition/subtraction chain.

slide-32
SLIDE 32

Other curve shapes

Weierstrass curves are not the only shapes of elliptic curves that have been studied! Among them

  • ther cubics: Hessian curves, Montgomery curves, …

But it’s worth even leaving the realm of cubics! Annoying feature for this talk: arithmetic is no longer using tangents and chords. Most prominent example: if char 𝑙 β‰  2 then we can consider the (twisted) Edwards curves 𝑏𝑦2 + 𝑧2 = 1 + 𝑒𝑦2𝑧2 where 𝑏, 𝑒 ∈ 𝑙 satisfy 𝑏𝑒 𝑏 βˆ’ 𝑒 β‰  0 and 𝑃 = (0,1). It admits the amazing addition formula 𝑦1, 𝑧1 + 𝑦2, 𝑧2 = 𝑦1𝑧2 + 𝑧1𝑦2 1 + 𝑒𝑦1𝑦2𝑧1𝑧2 , 𝑧1𝑧2 βˆ’ 𝑏𝑦1𝑦2 1 βˆ’ 𝑒𝑦1𝑦2𝑧1𝑧2 , which are very efficient and can be used for doubling as well (uniformity).

slide-33
SLIDE 33

Other curve shapes

A priori annoying aspect of Edwards curves: there are two singular points at infinity, each of which secretly corresponds to two points on the complete non-singular model. But in fact this is a feature! If 𝑏 is a non-zero square and 𝑒 is a non-square, then these four points are not defined over 𝑙. Therefore they are never encountered during arithmetic over 𝑙, or in other words we have an entirely affine group structure.

𝑏𝑦2 + 𝑧2 = 1 + 𝑒𝑦2𝑧2

Moreover, the addition formula is complete in this case, i.e. it has no exceptional points.

slide-34
SLIDE 34

π’š-coordinate only arithmetic and the Montgomery ladder

As we have observed earlier: 𝑄 and 𝑅 have the same 𝑦-coordinate ⇔ 𝑄 = ±𝑅 Therefore the 𝑦-coordinate of 𝑏𝑄 only depends on the 𝑦-coordinate of 𝑄, so it should be possible to compute it without any involvement of 𝑧-coordinates. Problem: every double-and-add routine involves addition steps, and there the idea breaks down: 𝑦(𝑄) and 𝑦(𝑅) do not suffice to find 𝑦(𝑄 + 𝑅).

slide-35
SLIDE 35

π’š-coordinate only arithmetic and the Montgomery ladder

But it is true that 𝑦(𝑄 + 𝑅) is determined by 𝑦 𝑄 , 𝑦(𝑅) and 𝑦(𝑄 βˆ’ 𝑅). Peter L. Montgomery Montgomery found a way to exploit this: recursively compute 𝑦 𝑏𝑄 , 𝑦( 𝑏 + 1 𝑄) from 𝑦

𝑏 2 𝑄 , 𝑦( 𝑏 2 + 1 𝑄)

using one doubling and one appropriate addition. Note that 𝑦(𝑄) is known. Very fast. Very uniform: good against side-channel attacks. Possible to recover the 𝑧-coordinate from the end result (Lopez-Dahab). Comes in projective version: coordinates 𝑦: 𝑨 ∈ 𝑄1(𝑙). Montgomery chose a more efficient curve form: 𝐢𝑧2 = 𝑦3 + 𝐡𝑦2 + 𝑦

slide-36
SLIDE 36

Questions?