10

Recently an article was published stating the possibility of the NSA or some other malicious organization creating backdoor undetectable Diffie-Hellman keys (source) to allow snooping.

Is Monero at risk to an attack of this nature? If so, under what circumstances could this happen? If not, why?

10

While interesting, it's not really applicable to cryptography utilized by Monero as the trapdoored one is specific to 1024-bit prime numbers.

Monero utilizes elliptic curve cryptography, more specifically the curve Ed25519, which has been time tested as it has been pointed out here. The DH scheme is indeed used, but it's not the same kind, but the one adapted for elliptic curve cryptography - Diffie-Hellman (ECDH). See also here for a nice explanation.

Also, when EC is used, the key sizes are smaller when compared directly with other schemes. Our curve has 128 bits of security, which would be equivalent to 3072-bit key if compared against integer factorization based scheme.

From the CryptoNote whitepaper:

We propose a solution allowing a user to publish a single address and receive unconditional unlinkable payments. The destination of each CryptoNote output (by default) is a public key, derived from recipient’s address and sender’s random data

...

First, the sender performs a Diffie-Hellman exchange to get a shared secret from his data and half of the recipient’s address. Then he computes a one-time destination key, using the shared secret and the second half of the address. Two different ec-keys are required from the recipient for these two steps, so a standard CryptoNote address is nearly twice as large as a Bitcoin wallet address. The receiver also performs a Diffie-Hellman exchange to recover the corresponding secret key.

From here we can see that in order to break this, someone would first have to find a weakness in Ed25519 curve, and then find a way to make the users generate some of those weak keys (public view key, in Monero context). Considering this, I think we're pretty safe considering that the keys generated are entirely random (or derived from random).

10

The underlying Elliptic Curve that is used for Monero's cryptography is the Twisted Edwards curve Ed25519, and this is the same curve used in applications like OpenSSH, Tor, Tox, I2P, Facebook Messenger, Google, Whatsapp, and others. That doesn't, by itself, guarantee that it is flawless, but it is a very good endorsement IMO, and it is a bigger test of time than Monero itself.

  • this is a great answer, I chose the other answer because of the greater level of detail provided. However I think both answers combined provide the most complete answer to the question. – well_then Oct 25 '16 at 16:58
2

Monero has a sound cryptographic protocol which has been time tested for about the past 3 years. To answer your question, Monero doesn't have any back door, and brute-forcing Monero isn't possible either, even if all of sun's energy is used in a computer performing such attack. Monero is safe from such issues.

1

Someone can correct me if I'm wrong, but I don't believe Monero uses Diffie-Hellman keys anywhere. The link you posted also says only that 1024-bit DH keys could be compromised, but for the last several years or more it is common practice to use 2048-bit or higher DH keys. When I set up a VPN, I typically use a 4096-bit DH key.

If Monero does use DH keys, being a privacy-centric currency, it is very likely that it uses keys that have a higher strength than 1024-bit.

  • 1
    It uses DH scheme for EC cryptography, so the key size can be smaller than the one used when it's based on prime number factorization. If I understand well, it's used to deliver some secret random values from sender to recipient, and the keys used are one-time (stealth address). – JollyMort Oct 12 '16 at 1:00
  • 1
    correction, the key used is the public view key of the recipient (part of the Monero addrees) – JollyMort Oct 12 '16 at 1:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.