Introduction
I know how to do Cramer-Shoup with cyclic groups. But how do I do it in elliptic curve cryptography (ECC)?
Cramer-Shoup with cyclic groups
Following was taken from Wikipedia: https://en.wikipedia.org/wiki/Cramer%E2%80%93Shoup_cryptosystem
Key Generation
- Alice generates an efficient description of a cyclic group $G$ of order $q$ with two distinct, random generators $g_1, g_2$.
- Alice chooses five random values $({x}_{1}, {x}_{2}, {y}_{1}, {y}_{2}, z)$ from $\{0, \ldots, q-1\}$.
- Alice computes $c = {g}_{1}^{x_1} g_{2}^{x_2}, d = {g}_{1}^{y_1} g_{2}^{y_2}, h = {g}_{1}^{z}$.
- Alice publishes $(c, d, h)$, along with the description of $G, q, g_1, g_2$, as her public key. Alice retains $(x_1, x_2, y_1, y_2, z)$ as her secret key. The group can be shared between users of the system.
Encryption
To encrypt a message $m$ to Alice under her public key $(G,q,g_1,g_2,c,d,h)$,
- Bob converts $m$ into an element of $G$.
- Bob chooses a random $k$ from $\{0, \ldots, q-1\}$, then calculates:
- $u_1 = {g}_{1}^{k}, u_2 = {g}_{2}^{k}$
- $e = h^k m$
- $\alpha = H(u_1, u_2, e)$, where ''H''() is a universal one-way hash function (or a collision-resistant cryptographic hash function, which is a stronger requirement).
- $v = c^k d^{k\alpha}$
- Bob sends the ciphertext $(u_1, u_2, e, v)$ to Alice.
Decryption
To decrypt a ciphertext $(u_1, u_2, e, v)$ with Alice's secret key $(x_1, x_2, y_1, y_2, z)$,
- Alice computes $\alpha = H(u_1, u_2, e) \,$ and verifies that ${u}_{1}^{x_1} u_{2}^{x_2} ({u}_{1}^{y_1} u_{2}^{y_2})^{\alpha} = v \,$. If this test fails, further decryption is aborted and the output is rejected.
- Otherwise, Alice computes the plaintext as $m = e / ({u}_{1}^{z}) \,$.
The decryption stage correctly decrypts any properly-formed ciphertext, since
$ {u}_{1}^{z} = {g}_{1}^{k z} = h^k \,$, and $m = e / h^k. \,$
If the space of possible messages is larger than the size of $G$, then Cramer–Shoup may be used in a hybrid cryptosystem to improve efficiency on long messages.
Questions
- How to convert Cramer-Shoup into ECC?
- How do I prove the security of ECC Cramer-Shoup?
Literature
Cramer, Ronald, and Victor Shoup (1998). “A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack.” Advances in Cryptology—CRYPTO'98, Lecture Notes in Computer Science, vol. 1462, ed. Hugo Krawczyk. Springer-Verlag, Berlin, 13–25.