10.12.2012 Views

Prime Numbers

Prime Numbers

Prime Numbers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8.1 Cryptography 395<br />

where in the latter case we take the governing cubic for E ′ to be −y 2 =<br />

x 3 + ax + b.<br />

This theorem is readily proved via the same twist algebra that we encountered<br />

in Theorem 7.5.2 and Exercise 7.16, and leads to the following algorithm for<br />

direct-embedding encryption:<br />

Algorithm 8.1.10 (Direct-embedding ECC encryption). This algorithm<br />

allows encryption/decryption using exclusively elliptic algebra, i.e., with no intermediary<br />

cipher, via the direct embedding of plaintext onto curves. We assume<br />

that Alice and Bob have agreed upon a public curve Ea,b(Fp) with its twist curve<br />

E ′ , on which lie respectively public points P, P ′ . In addition, it is assumed that<br />

Bob has generated respective public keys PB =[KB]P, P ′ B =[KB]P ′ ,asinAlgorithm<br />

8.1.6. We denote by X a parcel of plaintext (an integer in [0,...,p− 1])<br />

that Alice wishes to encrypt for Bob.<br />

1. [Alice embeds plaintext X]<br />

Alice determines the curve E or E ′ on which X is a valid x-coordinate (and,<br />

if y-coordinates are relevant, computes such number Y ) via Theorem<br />

8.1.9, taking the curve to be E if X is on both curves;<br />

// See Exercise 8.5.<br />

Depending respectively on which curve E,E ′ is in force, Alice sets<br />

respectively:<br />

d =0or 1; // Curve-selecting bit.<br />

Q = P or P ′ ;<br />

QB = PB or P ′ B .<br />

Alice chooses random r ∈ [2,p− 2];<br />

U =[r]QB +(X, Y ); // Elliptic add, to obfuscate plaintext.<br />

C =[r]Q; // The “clue” for undoing the obfuscation.<br />

Alice transmits a parcel (encrypted message, clue, bit) as (U, C, d);<br />

2. [Bob decrypts to get plaintext X]<br />

Bob inspects d to determine on which curve elliptic algebra will proceed;<br />

(X, Y )=U − [KB]C; // Private key applied with elliptic subtract.<br />

Bob now recovers the plaintext as the x-coordinate X;<br />

This method will be recognized as an El Gamal embedding scheme, where<br />

we have made some improvements over previous renditions [Koblitz 1987],<br />

[Kaliski 1988]. Note that the last part of Theorem 8.1.9 allows Algorithm<br />

8.1.10 to proceed efficiently when the field characteristic has p ≡ 3 (mod 4).<br />

In practical implementations of Algorithm 8.1.10, there are two further<br />

substantial improvements one may invoke. First, the y-coordinates are not<br />

needed if one uses Montgomery coordinates (Algorithm 7.2.7) throughout<br />

and carefully applies Algorithm 7.2.8 at the right junctures. Second, the<br />

“clue” point C of the algorithm effectively doubles the transmitted data size.<br />

This, too, can be avoided by carefully setting up a random number exchange<br />

protocol, so that the random number r itself is deterministically kept in<br />

synchrony by the two parties. (The authors are indebted to B. Garst for

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!