2

I'm trying to use the example in the crypto++ wiki for ecies encryption, which complies to IEEE P1363's version of the scheme. The first two steps of the scheme as described in ETSΙ ΤS 102 941 v1.3.1 standard are:

  1. Sender generates an ephemeral private key r in [1, q-1], ...

  2. Sender derives a shared secret S from receiver encryption public key Kr. S = Px, where ...

However, in the crypto++ example the first lines are:

    ECIES<ECP>::Decryptor d0(prng, ASN1::secp256r1());
    PrintPrivateKey(d0.GetKey());

    ECIES<ECP>::Encryptor e0(d0);
    PrintPublicKey(e0.GetKey());

which use a private for the decryptor and base the encryptor on it. I don't see how it matches the steps of the algorithm.

Moreover, the wiki states that the encryption function returns a tuple {K,C,T}, where K is the encrypted common secret, C is the ciphertext, and T is the authentication tag. But, in the example they are not retrieved and I don't see how they could.

Any insights and help would be greatly appreciated. Thank you!

0 Answers0