lfit / itpol

Useful IT policies

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can you clarify the choice of RSA for `cert` and ECC for `sign,encr,auth` ?

akharrou opened this issue · comments

I want to make a PGP key, just not sure which algorithms I should use for which keys (primary & subkeys). I'm following your suggestion:

  • Certification Key: 4096-bit RSA
  • Signing Key: 256-bit ECC (ed25519)
  • Encryption Key: 256-bit ECC (cv25519)
  • Authentication Key: 256-bit ECC (ed25519)

But I don't understand:

  • why use ECC over RSA ?
  • why use RSA for certification, but ECC for the rest ?

Algorithm and key strength

GnuPG supports many algorithms, but we will only consider the below two:

  • RSA for the certification key
  • ECC (Elliptic Curve) for all other subkeys

We use RSA for the certification key mainly for compatibility reasons -- there is probably still some tooling that does not properly handle ECC keys, so sticking with RSA for the certification key makes sense. We will use it only very occasionally, so the slowness/size considerations are unimportant.

All of the day-to-day work will be done using subkeys, so picking ECC makes perfect sense there -- it will be faster and the resulting signatures will be dramatically smaller.


I reread a bit and found what I was looking for. (Really helpful and well explained resource btw, thank you for this).