154k views
0 votes
Consider the elliptic curve group based on the equation

y2≡x3+ax+bmodp
where a=3267, b=695, and p=3623
.
We will use these values as the parameters for a session of Elliptic Curve Diffie-Hellman Key Exchange. We will use P=(0,858)
as a subgroup generator.
You may want to use mathematical software to help with the computations, such as the Sage Cell Server (SCS).
On the SCS you can construct this group as:
G=EllipticCurve(GF(3623),[3267,695])
Here is a working example.
(Note that the output on SCS is in the form of homogeneous coordinates. If you do not care about the details simply ignore the 3rd coordinate of output.)
Alice selects the private key 38
and Bob selects the private key 11
.
What is A
, the public key of Alice?
What is B
, the public key of Bob?
After exchanging public keys, Alice and Bob both derive the same secret elliptic curve point TAB
. The shared secret will be the x-coordinate of TAB
. What is it?

User Frederique
by
8.5k points

1 Answer

2 votes
To calculate the public keys of Alice and Bob, as well as the shared secret point, we can use the elliptic curve group defined by the equation y^2 ≡ x^3 + ax + b (mod p), where a = 3267, b = 695, and p = 3623. The subgroup generator is P = (0, 858).

First, let's calculate the public key of Alice (A) by multiplying her private key (38) with the generator point P:
A = 38P

Similarly, we calculate the public key of Bob (B) by multiplying his private key (11) with the generator point P:
B = 11P

Next, we need to derive the shared secret elliptic curve point TAB by multiplying Alice's public key (A) with Bob's private key (11):
TAB = 11A

Finally, the shared secret will be the x-coordinate of TAB.

To perform these calculations, we can use mathematical software such as the Sage Cell Server (SCS) as mentioned in the instructions. Here's an example of how you can use SCS to compute the values:

```
# Define the elliptic curve group
G = EllipticCurve(GF(3623), [3267, 695])

# Set the generator point P
P = G(0, 858)

# Calculate the public key of Alice (A)
A = 38 * P

# Calculate the public key of Bob (B)
B = 11 * P

# Derive the shared secret elliptic curve point TAB
TAB = 11 * A

# Compute the x-coordinate of TAB as the shared secret
shared_secret = TAB[0]

shared_secret
```

Running this code will give you the x-coordinate of the shared secret point, which is the value you are looking for in the Elliptic Curve Diffie-Hellman Key Exchange.
User Yurii Melnychuk
by
8.8k points