In GnuPG, there is the option of making keys which are "normal" (encrypt and sign) and sign-only keys . But what sense does that make in regards of DSA? Correct me if I am wrong, but I think DSA keys can only sign anyway. So what is the difference between sign-only and normal keys?

  • 3
    $\begingroup$ If I remember correctly a sign only key simply doesn't contain an encryption subkey. That may come as a bit of a anti-climax, but there it is. $\endgroup$ – Maarten Bodewes Sep 26 '17 at 0:33

Actually there are even more possible options if you use the --expert flag in GnuPG:

$ gpg --expert --gen-key
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
   (7) DSA (set your own capabilities)
   (8) RSA (set your own capabilities)

As you can see, you can decide to have DSA sign only, but also RSA sign only keys. What's more, DSA keys can also be used as "authentication" subkeys, so you can set your own capabilities for those as well as for the RSA keys (which can also serve for encryption, whereas DSA subkeys cannot)

Now, the difference between a "sign" subkey and an "authentication" one is simply in their respective goals, to allow strong segmentation between signing and authentication processes. The primitive used in both case are the same...
You'll typically use an authentication subkeys for SSH auth (this mainly allows to have your SSH key on a smartcard) and you'll use the signing subkey to sign data. (In the auth case you'll be signing only challenges.)

| improve this answer | |

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.