Apologies if this is a stupid question, but I'd be grateful if someone could provide an answer. I'm assuming that you need to use different keys to provide these functions, is that correct?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
The usual meaning of signature (in cryptography) is this:
The usual meaning of a MAC (message authentication code) is this:
How could they use the same key to produce a MAC and a signature? We could use one of the signature keys for the MAC:
Both are not good ideas, normally.
There might be a way to do something similar, though. For example, if both Alice and Bob have a key pair, they might be able to calculate a shared secret from both (e.g. using the Diffie-Hellman key exchange if these are discrete-log-type key pairs), and use this shared result for a MAC. At the same time, Bob might use his private key to sign the message.
As Paŭlo Ebermann said, digital signatures involve a keypair ( a private key and a public key ), and there's no way to directly use either key for a MAC. There are several ways to indirectly use public key cryptography to generate something that could be used as a MAC key -- but I don't see any reason to ever do that.
Both the MAC (message authentication code) and a public-key digital signature have the same function: they allow the receiver to confirm that the message really did come from the person he thought it came from.
Once you've confirmed that the digital signature attached to a file is valid, you already know that the message is authentic and it came from the person who knows the private key used to create that public key. I don't see any point of also having an additional MAC.