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.

30 questions
5
votes
2 answers

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
  • 526
  • 5
  • 25
4
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,769
  • 2
  • 15
  • 25
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
  • 774
  • 1
  • 10
  • 32
3
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
  • 71
  • 6
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
  • 691
  • 5
  • 14
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
  • 42,671
  • 44
  • 178
  • 308
2
votes
1 answer

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
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…
2
votes
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…
1
vote
0 answers

Caused by: java.security.NoSuchAlgorithmException: Cannot find any provider supporting ECIESwithAES

Facing the following error after upgrading from BouncyCastleCrypto-1.54 to BouncyCastleCrypto-1.67. Caused by: java.lang.RuntimeException: Could not generate a cipher with algorithm Caused by: java.security.NoSuchAlgorithmException:…
Gopikrishna K S
  • 129
  • 2
  • 7
1
vote
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.
1
vote
1 answer

Javascript. How To Efficiently Store Secp256k1 Private Key for ECIES Scheme

I've been having a really hard time figuring out how to store a Secp256k1 privateKey from multiple libraries (currently on this one for ECIES encryption: https://npm.io/package/@toruslabs/eccrypto). I have tried encoding and decoding with base64,…
user14930609
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
  • 303
  • 3
  • 16
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
  • 827
  • 1
  • 7
  • 21
1
2