It should probably be added that cryptographers rarely think of these as a set of five algorithms. Rather we would call it two sets of à 3 algorithms. Encryption={KeyGen, Enc, Dec} and Signature={KeyGen, Sign, Verify}.
Why? To make it perfectly clear to not reuse keys. Sometimes it's fine to do so in practice but our theoretical models assume separation of domains. Sometimes it's not fine to do so in practice - most famously spectacular fails with textook-RSA.
This is also why protocols like HTTPS have weird subroutines like key-generation-key or the handshake-key: always be very careful when reusing keys
It should probably be added that cryptographers rarely think of these as a set of five algorithms. Rather we would call it two sets of à 3 algorithms.
Encryption={KeyGen, Enc, Dec}andSignature={KeyGen, Sign, Verify}.Why? To make it perfectly clear to not reuse keys. Sometimes it's fine to do so in practice but our theoretical models assume separation of domains. Sometimes it's not fine to do so in practice - most famously spectacular fails with textook-RSA.
This is also why protocols like HTTPS have weird subroutines like key-generation-key or the handshake-key: always be very careful when reusing keys