Crypto++ 8.7
Free C++ class library of cryptographic schemes
Static Public Member Functions | List of all members
ECIES_P1363< EC, HASH, COFACTOR_OPTION > Struct Template Reference

Elliptic Curve Integrated Encryption Scheme for P1363. More...

#include <eccrypto.h>

+ Inheritance diagram for ECIES_P1363< EC, HASH, COFACTOR_OPTION >:

Static Public Member Functions

static const char * StaticAlgorithmName ()
 

Additional Inherited Members

- Public Types inherited from DL_ES< DL_Keys_EC< EC >, DL_KeyAgreementAlgorithm_DH< EC::Point, NoCofactorMultiplication >, DL_KeyDerivationAlgorithm_P1363< EC::Point, false, P1363_KDF2< SHA1 > >, DL_EncryptionAlgorithm_Xor< HMAC< SHA1 >, false, true >, ECIES< EC > >
typedef PK_FinalTemplate< DL_DecryptorImpl< SchemeOptions > > Decryptor
 implements PK_Decryptor interface More...
 
typedef PK_FinalTemplate< DL_EncryptorImpl< SchemeOptions > > Encryptor
 implements PK_Encryptor interface More...
 
- Public Types inherited from DL_Keys_EC< EC >
typedef DL_PublicKey_EC< EC > PublicKey
 
typedef DL_PrivateKey_EC< EC > PrivateKey
 

Detailed Description

template<class EC, class HASH = SHA1, class COFACTOR_OPTION = NoCofactorMultiplication>
struct ECIES_P1363< EC, HASH, COFACTOR_OPTION >

Elliptic Curve Integrated Encryption Scheme for P1363.

Template Parameters
COFACTOR_OPTIONcofactor multiplication option
HASHHashTransformation derived class used for key derivation and MAC computation

ECIES_P1363 is an Elliptic Curve based Integrated Encryption Scheme (IES) for P1363. The scheme combines a Key Encapsulation Method (KEM) with a Data Encapsulation Method (DEM) and a MAC tag. The scheme is IND-CCA2, which is a strong notion of security. You should prefer an Integrated Encryption Scheme over homegrown schemes.

The library's original implementation is based on an early P1363 draft, which itself appears to be based on an early Certicom SEC-1 draft (or an early SEC-1 draft was based on a P1363 draft). Crypto++ 4.2 used the early draft in its Integrated Enryption Schemes with NoCofactorMultiplication, DHAES_MODE=false and LABEL_OCTETS=true.

If you desire an Integrated Encryption Scheme with Crypto++ 4.2 compatibility, then use the ECIES_P1363. If you desire an Integrated Encryption Scheme compatible with Bouncy Castle 1.54 and Botan 1.11 compatibility, then use the ECIES template class with NoCofactorMultiplication, DHAES_MODE=true and LABEL_OCTETS=false.

The default template parameters ensure compatibility with P1363. The combination of IncompatibleCofactorMultiplication and DHAES_MODE=true is recommended for best efficiency and security. SHA1 is used for compatibility reasons, but it can be changed if desired.

See also
DLIES, ECIES, Elliptic Curve Integrated Encryption Scheme (ECIES), Martínez, Encinas, and Ávila's A Survey of the Elliptic Curve Integrated Encryption Schemes
Since
Crypto++ 4.0

Definition at line 641 of file eccrypto.h.

Member Function Documentation

◆ StaticAlgorithmName()

template<class EC , class HASH = SHA1, class COFACTOR_OPTION = NoCofactorMultiplication>
static const char * ECIES_P1363< EC, HASH, COFACTOR_OPTION >::StaticAlgorithmName ( )
inlinestatic

Definition at line 650 of file eccrypto.h.


The documentation for this struct was generated from the following file: