Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Two private key asymmetric encryption - possible?

I am wondering if there exists some asymmetric encryption algorithm that would work with two different private keys, so that the encrypted message can be decrypted by either one of such private keys?

like image 597
Ωmega Avatar asked Sep 22 '12 15:09

Ωmega


People also ask

Does asymmetric encryption use two keys?

Asymmetric encryption uses a mathematically related pair of keys for encryption and decryption: a public key and a private key. If the public key is used for encryption, then the related private key is used for decryption.

What type of encryption has 2 keys?

Public key cryptography, also known as asymmetric cryptography, uses two separate keys instead of one shared one: a public key and a private key. Public key cryptography is an important technology for Internet security.

How many keys does asymmetric encryption use?

Asymmetric cryptography uses two keys: if you encrypt with one key, you may decrypt with the other. Hashing is a one-way cryptographic transformation using an algorithm (and no key).

What is private key in asymmetric encryption?

Asymmetric encryption is also called public key encryption, but it actually relies on a key pair. Two mathematically related keys, one called the public key and another called the private key, are generated to be used together. The private key is never shared; it is kept secret and is used only by its owner.


3 Answers

Asymmetric keys are never used for encrypting messages (too slow, has a size limit, etc.), only for encrypting small buffers, like symmetric keys for messages.

When you encrypt a message with an asymm. key, you are in fact encrypting a symmetric key which encrypts the message.

Simply encrypt the same symmetric key with two different asymm. keys and you'd get two different cipherblocks which both contain the same symmetric key for the message, so you can decrypt with either one.

like image 142
Boris B. Avatar answered Sep 19 '22 07:09

Boris B.


You could use a symmetric encryption and secret sharing scheme on top of that, "splitting the key in half".

More on secret sharing: http://en.wikipedia.org/wiki/Secret_sharing

Steps on how I see it:

  1. Encrypt the data using (pseudo) randomly generated key.
  2. Distribute the secret using Shamir's secret sharing which is the key to two shares, where as one share will suffice to get the key.

The end result is that one (or more) "keys" are required to get the data.

like image 38
Armon A. Avatar answered Sep 18 '22 07:09

Armon A.


There is no such algorithm as far as I know, but there is a common solution. The enciphered text is transferred together with a set of cryptograms of the symmetric key used to encipher the text itself. Each such cryptogram of the key is a result of enciphering the original key with the public key of one of recipients. Thus, all recipients knowing their private keys may decipher the key used to encipher the data and then decipher the message itself.

like image 39
Serge Avatar answered Sep 19 '22 07:09

Serge