Can we have multiple public keys associated with a single private key for RSA public-key encryption?
-
1See also http://stackoverflow.com/questions/3100192/pki-multiple-public-keys – Rasmus Faber Feb 21 '12 at 12:27
-
Thanks, I missed that question earlier. – Priyank Bolia Feb 22 '12 at 04:29
-
It seems the answer is no. I guess you *can* do this with Elgamal though? http://crypto.stackexchange.com/a/22323/21238 – Ajedi32 May 28 '15 at 15:46
-
Here is a detailed answer on the crypto.stackexchange: https://crypto.stackexchange.com/a/10731/70218 – skywinder Sep 09 '19 at 02:14
1 Answers
In practice and with respect to security, no, mathematically, yes. If you have a private key (N, D), there is algebraically an infinite number of solutions to the equation 1 = E*D (mod Phi(N)). However, if you make two such solutions (E, N) and (E', N) that both satisfy the equation public, you will have compromised the secrecy of the private key.
However given one of the usual asymmetric schemes you can easily create such a scheme: To create a private key with n
public keys, just generate n
public-private keypairs in the normal scheme and define the "private key" to be the collection of the private keys. When signing just sign with all the private keys, when verifying try to verify one of the signatures. Encryption is the usual operation and decrypting should try to decrypt with all the keys (one of them should work).
Such algorithm is well known as "hierarchical deterministic wallets" and well explained here BIP-32

- 21,291
- 15
- 93
- 123

- 2,556
- 16
- 18
-
But in the link given by Rasmus Faber above it appears that you can't have multiple public keys. Also what if I have 100 different public keys, but one private key, but the keys are 2048 length, what is its strength for normal usage. I mean it would still require massive computing power to break the encryption, even with 100-200 public keys? – Priyank Bolia Feb 22 '12 at 04:28
-
11Please do the math in my answer. For instance, if (N,D) is the private key that corresponds to (N,E) where E = 65537, then (N,E') where E' = 65537*k*phi(N) will also be a public key that corresponds to (N,D). If you have both (N,E) and (N,E') you can brute force k just by looking at the size of E' compared to N, calculating M = (E'-E)/k, D' = 1/E mod M and performing a few RSA operations to check. The security is zero of RSA in such case. You can do this computation in a fraction of a second on a modern computer. – Henrick Hellström Feb 22 '12 at 08:18
-
There are more methods and a few more complicated cases, but that rather belongs to crypto.stackexchange.com – Henrick Hellström Oct 21 '15 at 11:00
-
Any links to this, as to be honest nobody is providing evidence, just lip-service relying on the ignorance of most readers – MrMesees Nov 23 '15 at 18:04
-
@MrMesees Please feel free to re-post a similar question to crypto.stackexchange.com and include a link to the answers in a comment here. – Henrick Hellström Nov 23 '15 at 18:26
-
-
1@MrMesees You are asking the wrong question. If you want evidence, you should be asking for proof and not links. While the proof is not complicated, it would be benefit from the LaTex capabilities of crypto.stackexchange.com, so please repost there. – Henrick Hellström Nov 24 '15 at 16:46
-
I see, sorry, I was not aware other areas of stackexchange operated with different output formatting capacities, apologies, I'll try to look for someone else question first – MrMesees Nov 24 '15 at 16:50
-
is this similar to bitcoin addresses which can have multiple addresses spawned by one private key? – smatthewenglish Sep 03 '16 at 15:33
-
2Here is a detailed answer on the crypto.stackexchange: https://crypto.stackexchange.com/a/10731/70218 – skywinder Sep 09 '19 at 02:14
-
Such algorithm is well known as "hierarchical deterministic wallets" and well explained in BIP-32 https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki – skywinder Sep 09 '19 at 02:23