I'm reading the Signal specification and they suggest to use EC keys, in particular with X25519 or X448 curves, both for the initial X3DH agreement and the DH ratchet.
I've noticed that languages and libraries seems to have a better support for RSA (for example the two curves recommended by Signal are not available using plain OpenJDK), so I was wondering if it could be possible to achieve the same level of security using RSA keys instead of EC keys (of course, supposing to use keys with proper sizes).
In the specification document they don't explain why EC should be used. I assume it improves performances, but I would like to know if it is a requirement in the context of the Double Ratchet Algorithm or if any good asymmetric cryptography system could be used.
"secp521r1"
. $\endgroup$