Hi Mouse,

>From ecccrpyto.h, around line 250:

//! Elliptic Curve Integrated Encryption Scheme, AKA <a 
href="http://www.weidai.com/scan-mirror/ca.html#ECIES";>ECIES</a>
/*! Default to (NoCofactorMultiplication and DHAES_MODE = false) for 
compatibilty with SEC1 and Crypto++ 4.2.
    The combination of (IncompatibleCofactorMultiplication and DHAES_MODE = 
true) is recommended for best
    efficiency and security. */
template <class EC, class COFACTOR_OPTION = NoCofactorMultiplication, bool 
DHAES_MODE = false>
struct ECIES
    : public DL_ES<
        DL_Keys_EC<EC>,
        DL_KeyAgreementAlgorithm_DH<typename EC::Point, COFACTOR_OPTION>,
        DL_KeyDerivationAlgorithm_P1363<typename EC::Point, DHAES_MODE, 
P1363_KDF2<SHA1> >,
        DL_EncryptionAlgorithm_Xor<HMAC<SHA1>, DHAES_MODE>,
        ECIES<EC> >
{
    static std::string CRYPTOPP_API StaticAlgorithmName() {return 
"ECIES";}    // TODO: fix this after name is standardized
};

In this case, SECG may not be the proper reference (its hard to tell 
sometimes). Alos, there's an interop bug between Crypto++ and Bouncy 
Castle, if I recall correctly. It has to do with the width of an integer (4 
vs 8).

The cofactor can be 1, 2 or 4. I seem to recall a cofactor of 1 and DHAES = 
true has the best security properties.

Jeff

On Sunday, November 17, 2013 11:05:47 AM UTC-5, Mouse wrote:
>
> I’ve started writing interoperability tests (obviously data-wise only :) 
> between Crypto++ and BouncyCastle (Java).
>
> Looking at ECIES, I’ve stumbled upon a strange thing. Both 
> http://en.wikipedia.org/wiki/Integrated_Encryption_Scheme and 
> BouncyCastle define ECIES as a *hybrid* encryption scheme, and require 
> use of both hash for MAC (i.e., SHA1) and symmetric cipher for the actual 
> encryption (i.e., AES).
>
> Crypto++ however does not seem to use either hash or symmetric cipher at 
> all.
>
> What gives? An old version incompatible with the current ECIES standard 
> http://www.secg.org/download/aid-780/sec1-v2.pdf? Or am I missing 
> anything?
>
> I’d appreciate any help and/or guidance.
>
> Thanks!
>

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to