Questions tagged [ecies]

Elliptic Curve Integrated Encryption Scheme, or ECIES, is a hybrid encryption system proposed by Victor Shoup in 2001

Elliptic Curve Integrated Encryption Scheme, or ECIES, is a hybrid encryption system proposed by Victor Shoup in 2001. ECIES has been standardized in ANSI X9.63, IEEE 1363a, ISO/IEC 18033-2, and SECG SEC-1. Shoup's submission can be found at http://www.shoup.net/papers/iso-2_1.pdf.

ECIES combines a Key Encapsulation Mechanism (KEM) with a Data Encapsulation Mechanism (DEM). The system independently derives a bulk encryption key and a MAC key from a common secret. Data is first encrypted under a symmetric cipher, and then the cipher text is MAC'd under an authentication scheme. Finally, the common secret is encrypted under the public part of a public/private key pair.

The output of the encryption function is the tuple {K,C,T}, where K is the encrypted common secret, C is the ciphertext, and T is the authentication tag. There is some hand waiving around the "common secret" since its actually the result of applying a Key Agreement function, and it uses the recipient's static public key and an ephemeral key pair.

A closely related system is Discrete Logarithm Integrated Encryption Scheme (DLIES), proposed by Abdalla, Bellare and Rogaway, which operates over integers rather than elliptic curves.

24 questions
4
votes
1 answer

ECIES Public Key serialization

I'm write Client/Server encrypted program and want to send ECIES public key. For this I must serialize public key to file, read file to byte array, send this byte array. In other side: receive byte array, write it to file, deserialize public key…
V. Panchenko
  • 696
  • 7
  • 29
3
votes
1 answer

How to perform encryption and decryption in java using secp256r1 Elliptical Curve key pair?

We need to perform encryption/decryption of some string message in java using EC key pair. key pair has been generated using secp256r1 Elliptical Curve. We just want to use java core utilities. Encrypting code - in java server side Decryption code -…
prashant sindhu
  • 1,231
  • 1
  • 13
  • 21
3
votes
0 answers

Cross platform compatibility of iOS encryption

I'm using iOS Security framework for encryption. Specifically I'm using the ECIES encryption which seems to be very specific in the selection of key exchange, derivation, hashing and authenticated encryption. Is the output cross-platform compatible…
Zohar Etzioni
  • 611
  • 5
  • 13
3
votes
1 answer

ECIES with AES and CBC in Crypto++

I need to implement in Crypto++ the equivalent to BouncyCastle's "ECIESwithAES-CBC/NONE/PKCS7Padding". The main reason is that I need to encrypt data on iOS and decrypt it on the backend with BouncyCastle in Java and we want to use those specific…
3
votes
0 answers

Java can't find ECIES, even through it's in the Bouncy Castle jar

I'm trying to test-out ECIES, by adapting code from: https://gist.github.com/amrishodiq/9821413 and https://github.com/VictorThompson/t-encryption/blob/master/src/ECIESexample.java I get the error: Exception in thread "main"…
fadedbee
  • 37,386
  • 39
  • 142
  • 236
2
votes
0 answers

How to use Crypto++ for ECIES and retrieve common secret, authentication tag and ciphertext

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: Sender generates an ephemeral…
2
votes
2 answers

Is ECIES a public encryption algorithm?

I've implemented RSA encryption algorithm to encrypt the symmetric key used in data encryption, but the key size and the ciphertext size of RSA created a memory issue, so I searched other methods of public key cryptography for the solution. I found…
srla
  • 51
  • 5
1
vote
1 answer

Apple eciesEncryptionCofactorVariableIVX963SHA256AESGCM vs BouncyCastle ECCDHwithSHA256KDF

I'm trying to encrypt communication between Java (BouncyCastle) and iOS using the Apple algorithm eciesEncryptionCofactorVariableIVX963SHA256AESGCM. The algorithm by Apple is not well documented, but I found this article which helps quite a bit. I…
mahler
  • 414
  • 4
  • 21
1
vote
2 answers

ECIES: encrypt in Javascript and decrypt in Java/Kotlin

I am using eccrypto library in javascript for encryption using the ECIES algorithm (curve- secp256k1). The cipher generated by encryption in JS code could not be decrypted in Kotlin. Here is the Javascript code. var eccrypto =…
paradox
  • 81
  • 7
1
vote
0 answers

Performing ECIES operation using Bouncy castle with KeyPair in JKS

I have requirement to perform ECIES encryt/decrypt using secp256r1 with BC as provider. I have need reference of (1) how to store ECIES private-public key pair in JKS Keystore (2) retrieve public key from JKS. I have provision key-pair using keytool…
harshit2811
  • 757
  • 1
  • 5
  • 20
1
vote
1 answer

problem with crypto++ ECIES BERDecodePrivateKey

I'm trying to Store ECIES num0 PrivateKey with DEREncodePrivateKey to a std::string and reload it in num1 PrivateKey Object for testing. Problem is when key is loaded with BERDecodePrivateKey in second PrivateKey object it can't be validated (also…
1
vote
1 answer

What is the Secure Enclave ECIES Encrypted data format?

I created a assymetric EC key pair in secure enclave (). The public key of the key pair will be sent to my backend service which then uses it to encrypt the data (kSecKeyAlgorithmECIESEncryptionCofactorX963SHA512AESGCM). The encrypted data will be…
0
votes
0 answers

How to generate the ECIES public key for a given secp256r1 private key

How can I generate the ECIES public key for a given secp256r1 private key, like what is used for "Profile B" defined in 3GPP TS 33.501 version 15.5.0 Release 15, C.3.4.2? If provided with the private key…
Rusty Lemur
  • 1,268
  • 1
  • 11
  • 37
0
votes
0 answers

Encrypt data using Elliptic Curve Cryptography

I need to encrypt data using ECIES using openssl. Is there any API present in openssl? result cipherText = input)ecies(public key , plain text) Is there is no API , how can i calcute.
0
votes
0 answers

How to decrypt ECIES message, that was encrypted in BC java library, through C# BC library

I'm searching the method(example) to decrypt message, that was encrypted in Bouncy castle Java library, through C# BC library. I created ECC keypair(secp256k1 curve) in JAVA through BC library. And encrypted data with ECIES. After that, I'm able to…
1
2