Would it be possible to create a signature scheme like this: $ \DeclareMathOperator{Gen}{Gen_{\Mac}} \DeclareMathOperator{Mac}{Mac} \DeclareMathOperator{Sign}{Sign} \DeclareMathOperator{F}{F} \DeclareMathOperator{H}{H} $

$$k_d = \Gen$$ $$m_d = \Mac(k_d, M)$$ $$S = \big(k_d, \Sign(K_{priv}, m_d)\big)$$

So instead of a hash, you'd use a random key.

I know that $$H = \big(k_d, \Mac(k_d, M)\big)$$ is not necessarily secure as you'd give the adversary the ability to choose any key. However, in this case the result is signed as well.

If it isn't secure, are there ways to make it secure? For instance, I could imagine RSA that contains the $k_d$ and recovers it using message recovery. Or ECDSA where an additional hash is calculated over $k_d$ and $m_d$.

Primary goal is to make a faster signature generation by replacing a slower hash with a possible faster MAC such as GMAC.

  • 2
    $\begingroup$ Intuitively no, because you can build MACs from OWFs but not CRHFs, so they require "more power" / "more assumptions". Also note that this probably requires some form of 2nd pre-image resistance from the MAC which might not always be a given, especially when processing data using a universal hash (?). I have no hard example of this though, so no A. $\endgroup$ – SEJPM Dec 3 '19 at 22:35

Would it be possible to create a signature scheme like this:

As I understand it, your proposal is that the signature consists of the MAC key, along with the signed MAC value of the message.

In general, this would not be secure, for two reasons:

  • For many MACs, it is not difficult, if you know the key, to find a second message with the same MAC as an existing one.

  • It is not part of the MAC assumptions that it is difficult to find a second key and message pair that MACs to a specific value.

MACs that would not be secure due to these properties include CMAC and GMAC.

If it isn't secure, are there ways to make it secure?

Well, if you limited yourself to, say, HMAC or KMAC, it would be secure (as long as you didn't truncate the MAC excessively); however that's largely because these two MACs are largely hashes (with some key bits sprinkled in), and signing a hash is safe. These two MACs are, in fact, collision resistant, even if you select the key (which is a rather stronger assumption than is assumed by the standard MAC security properties).

On the other hand, if the goal is to use a faster MAC rather than a slower hash, this suggestion would help you a great deal. The problem, in this case, with GMAC, is that if you know the key, GMAC doesn't actually give you any cryptographical properties; creating first preimages (for example) is actually quite easy...

| improve this answer | |
  • $\begingroup$ Thinking a bit more about it this must be correct, and SEJPM's comment has the same indication. That you cannot change the MAC key doesn't matter, if you know it the MAC is vulnerable unless it is itself collision resistant. Makes all sense. $\endgroup$ – Maarten Bodewes Dec 4 '19 at 2:39

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.