Reduced Point Additive Operation Improved

This section describes the improved version of the reduced point additive operation by applying the same modular arithmetic reduction on the parameter m as the reduced elliptic curve equation.

In previous tutorials, we learned how to apply the same modular arithmetic reduction as the reduced elliptic equation on coordinates (xR, yR) of the resulting point R of the point addition operation:

Reduced addition operation based rule of chord operation:

For any two given points on the curve:
   P = (xP, yP)
   Q = (xQ, yQ)

R = P + Q is a third point on the curve:
   R = (xR, yR)

Where:
   xR = m2 - xP - xQ (mod p)     (11)
   yR = m(xP - xR) - yP (mod p)  (12)

If P != Q, m is determined by:
       yP - yQ
   m = ---------                (10)
       xP - xQ

If P = Q, m is determined by:
       3(xP)2 + a
   m = ---------                 (6)
         2(yP)

Because of the associativity of modular arithmetic, we can actually apply the same modular arithmetic reduction on the parameter m, to bring it to integer.

Improved reduced addition operation based rule of chord operation:

For any two given points on the curve:
   P = (xP, yP)
   Q = (xQ, yQ)

R = P + Q is a third point on the curve:
   R = (xR, yR)

Where:
   xR = m2 - xP - xQ (mod p)     (11)
   yR = m(xP - xR) - yP (mod p)  (12)

If P != Q, m is determined by:
       yP - yQ
   m = --------- (mod p)        (16)
       xP - xQ

If P = Q, m is determined by:
       3(xP)2 + a
   m = --------- (mod p)        (17)
         2(yP)

If you are not comfortable with modular arithmetic division, we can rewrite those equations as in modular arithmetic multiplication:

Improved reduced addition operation based rule of chord operation:

For any two given points on the curve:
   P = (xP, yP)
   Q = (xQ, yQ)

R = P + Q is a third point on the curve:
   R = (xR, yR)

Where:
   xR = m2 - xP - xQ (mod p)     (11)
   yR = m(xP - xR) - yP (mod p)  (12)

If P != Q, m is determined by:
   m(xP - xQ) = yP - yQ (mod p)  (18)

If P = Q, m is determined by:
   2m(yP) = 3(xP)2 + a (mod p)   (19)

You can prove that equations (11), (12), (18) and (19) will provide the same (xR, yR) as questions (11), (12), (10) and (6). But equations (11), (12), (10) and (6) are better, because only 1 possible modular multiplicative inverse operation is needed on m. And equations (11), (12), (18) and (19) requires 2 possible modular multiplicative inverse operations on xR and yR.

Table of Contents

 About This Book

 Geometric Introduction to Elliptic Curves

 Algebraic Introduction to Elliptic Curves

 Abelian Group and Elliptic Curves

 Discrete Logarithm Problem (DLP)

 Finite Fields

 Generators and Cyclic Subgroups

Reduced Elliptic Curve Groups

 Converting Elliptic Curve Groups

 Elliptic Curves in Integer Space

 Python Program for Integer Elliptic Curves

 Elliptic Curves Reduced by Modular Arithmetic

 Python Program for Reduced Elliptic Curves

 Point Pattern of Reduced Elliptic Curves

 Integer Points of First Region as Element Set

 Reduced Point Additive Operation

 Modular Arithmetic Reduction on Rational Numbers

Reduced Point Additive Operation Improved

 What Is Reduced Elliptic Curve Group

 Reduced Elliptic Curve Group - E23(1,4)

 Reduced Elliptic Curve Group - E97(-1,1)

 Reduced Elliptic Curve Group - E127(-1,3)

 Reduced Elliptic Curve Group - E1931(443,1045)

 What Is Hasse's Theorem

 Finite Elliptic Curve Group, Eq(a,b), q = p^n

 Elliptic Curve Subgroups

 tinyec - Python Library for ECC

 EC (Elliptic Curve) Key Pair

 ECDH (Elliptic Curve Diffie-Hellman) Key Exchange

 ECDSA (Elliptic Curve Digital Signature Algorithm)

 ECES (Elliptic Curve Encryption Scheme)

 EC Cryptography in Java

 Standard Elliptic Curves

 Terminology

 References

 Full Version in PDF/EPUB