Photo by Steve Johnson on Unsplash

Ode To Java And The Point At Infinity

--

And so Java is on the naughty step again. Basically, in Java 15, 16, 17 and 18, it allowed a zero value within the r and s values of an ECDSA signature. As it did not check for a zero value, it allowed gave a validate signature identification for a zero value for r and s. Luckily, languages such as Rust, make it plain that the ECDSA method that r and s are non-zero scalar values:

So, why is a zero scalar such a problem in elliptic curve cryptography (ECC)? Well, first we will do some of the basics.

So How Does ECC Work?

Well, let’s start by explaining the basics of ECC. For this, we start with an elliptic curve equation, such as:

y² = x³ + 7 (mod 17)

If we only have integer values for our points, we will get points at [here]:
(1, 12) (1, 5) (2, 7) (2, 10) (3, 0) (5, 8) (5, 9) (6, 6) (6, 11) (8, 14) (8, 3) (10, 2) (10, 15) (12, 1) (12, 16) (15, 4) and (15, 13).

We see that some of the x axis values are not possible. As an example if we take x=2, we get:

--

--

Prof Bill Buchanan OBE FRSE
ASecuritySite: When Bob Met Alice

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. Based in Edinburgh. Old World Breaker. New World Creator. Building trust.