Uniform message authentication codes and PRF-based MACs #
A uniform symmetric message authentication code (MACScheme) consists of a polynomial-time
message-length schedule msgLen : ℕ → ℕ (defaulting to id), a strict probabilistic
polynomial-time key generator keyGen, a strict probabilistic polynomial-time tag generator sign,
and a deterministic polynomial-time tag verifier verify that accepts every tag produced by sign
on a msgLen n-bit message under a secret key sampled at security parameter n. Unlike digital
signatures (SignatureScheme), verification uses the same secret key as tag generation, and the
adversary receives no public key.
We formalize both strong (fresh-pair) existential unforgeability under adaptive chosen-message
attack (sufCmaGame, SUFCMA) as in
Boneh and Shoup, Attack Game 6.1 / Definition 6.2,
and ordinary fresh-message existential unforgeability under adaptive chosen-message attack
(eufCmaGame, EUFCMA) and under one-time adaptive chosen-message attack (eufOneTimeGame,
OneTimeEUFCMA) against uniform strict oracle-PPT forgers (IsOraclePPT). Both adaptive games
share the pair-logging execution core signingPairOracle: sufCmaGame records returned
(msg, tag) pairs and accepts any valid msgLen n-bit forgery pair (msg, tag) that was never
returned (!queriedPairs.contains (msg, tag)), even on a previously queried message, whereas
eufCmaGame rejects any candidate forgery whose message was previously queried
(!queried.contains msg). We also provide schedule reindexing (MACScheme.reindex,
MACScheme.reindexForger, SUFCMA.reindex, EUFCMA.reindex, OneTimeEUFCMA.reindex), which
adapts any MACScheme along a strictly monotone polynomial-time parameter schedule ℓ : ℕ → ℕ so
that at security parameter n it authenticates M.msgLen (ℓ n)-bit messages.
We prove the quantitative bound
$$\Pr[\text{EUF-CMA}] \le \Pr[\text{SUF-CMA}]$$
(succProbability_eufCmaGame_le_sufCmaGame) and the security implication SUFCMA → EUFCMA
(SUFCMA.eufCma). For randomized MACScheme.sign algorithms the two notions differ; for MACs with
a unique valid tag per (sk, msg) (eval_sufCmaGame_eq_eufCmaGame_of_unique_tag,
sufCma_iff_eufCma_of_unique_tag), including prfMAC, fresh-message and fresh-pair
unforgeability coincide.
We then prove that any uniform PseudorandomFunction yields a SUFCMA- and EUFCMA-secure
deterministic MAC (prfMAC, PseudorandomFunction.sufCma_prfMAC,
PseudorandomFunction.eufCma_prfMAC), with the quantitative security reduction of
Boneh and Shoup, Section 6.3, Theorem 6.2:
$$\Pr[\text{Forge}] \le \mathrm{Adv}_{\mathrm{PRF}}(B(\mathcal{A}), n) + 2^{-n}.$$
Main definitions #
Cslib.Crypto.MACScheme: uniform symmetric message authentication code onmsgLen n-bit messages (defaulting ton-bit messages).Cslib.Crypto.MACScheme.signingPairOracle,sufCmaGame,SUFCMA: pair-logging tagging oracle and strong (fresh-pair) adaptive SUF-CMA experiment and security predicate (Boneh and Shoup, Attack Game 6.1 / Definition 6.2).Cslib.Crypto.MACScheme.signingOracle,eufCmaGame,EUFCMA: fresh-message adaptive EUF-CMA experiment and security predicate.Cslib.Crypto.MACScheme.oneTimeSigningOracle,eufOneTimeGame,OneTimeEUFCMA: one-time fresh-message adaptive EUF-CMA experiment and security predicate.Cslib.Crypto.MACScheme.reindex,Cslib.Crypto.MACScheme.reindexForger: schedule reindexing of aMACSchemeand its adaptive forger reduction (viaGeneratorReindex.parameter).Cslib.Crypto.prfMAC: canonical deterministic MAC constructed from a keyed function family (Boneh and Shoup, Section 6.3).Cslib.Crypto.macLogHandler,Cslib.Crypto.macToPrfDistinguisher: oracle logging handler and reduction turning a MAC forger into a PRF distinguisher.Cslib.Crypto.NonceMACForger,Cslib.Crypto.NonceMACScheme: uniform nonce-based message authentication code (sign : Key → Msg → Nonce → ProbComp Tag) and adaptive forger (Boneh and Shoup, Section 7.5, Attack Game 7.4).Cslib.Crypto.NonceMACScheme.signingPairOracle,sufCmaGame,eufCmaGame,SUFCMA,EUFCMA: nonce-respecting adaptive chosen-message security experiments and predicates requiring distinct queried nonces ((tr.map (fun e => e.1.2)).Nodup).
Main results #
Cslib.Crypto.MACScheme.isPPTOn_sufCmaGame,isPPT_sufCmaGame,isPPTOn_eufCmaGame,isPPT_eufCmaGame: strict PPT certificates for the MAC SUF-CMA and EUF-CMA experiments.Cslib.Crypto.MACScheme.eval_run_signingOracle_eq_map_fst_signingPairOracle,eval_eufCmaGame_eq_signingPairOracle,succProbability_eufCmaGame_le_sufCmaGame,SUFCMA.eufCma,SUFCMA.oneTimeEUFCMA: shared pair-history representation and quantitative / asymptotic implication from strong to ordinary unforgeability.Cslib.Crypto.MACScheme.eval_sufCmaGame_eq_eufCmaGame_of_unique_tag,sufCma_iff_eufCma_of_unique_tag: equivalence of SUF-CMA and EUF-CMA for MACs with a unique valid tag per message.Cslib.Crypto.MACScheme.isPPTOn_eufOneTimeGame,isPPT_eufOneTimeGame: strict PPT certificates for the one-time MAC EUF-CMA experiment.Cslib.Crypto.MACScheme.EUFCMA.oneTimeEUFCMA: full EUF-CMA security implies one-time EUF-CMA security.Cslib.Crypto.MACScheme.isOraclePPT_reindexForger,Cslib.Crypto.MACScheme.sufCmaGame_reindex,Cslib.Crypto.MACScheme.eufCmaGame_reindex,Cslib.Crypto.MACScheme.eufOneTimeGame_reindex,Cslib.Crypto.MACScheme.SUFCMA.reindex,Cslib.Crypto.MACScheme.EUFCMA.reindex,Cslib.Crypto.MACScheme.OneTimeEUFCMA.reindex: schedule reindexing preservesSUFCMA,EUFCMA, andOneTimeEUFCMAalong any strictly monotone polynomial-time schedule.Cslib.Crypto.eval_sufCmaGame_prfMAC,Cslib.Crypto.sufCma_prfMAC_iff_eufCma,Cslib.Crypto.isOraclePPT_macToPrfDistinguisher,Cslib.Crypto.eval_prfRealGame_macToPrfDistinguisher,Cslib.Crypto.eval_prfRealGame_macToPrfDistinguisher_eq_sufCmaGame,Cslib.Crypto.succProbability_prfIdealGame_macToPrfDistinguisher_le,Cslib.Crypto.succProbability_eufCmaGame_prfMAC_le,Cslib.Crypto.succProbability_sufCmaGame_prfMAC_le: quantitative PRF-to-MAC forgery reduction (Boneh and Shoup, Theorem 6.2).Cslib.Crypto.PseudorandomFunction.sufCma_prfMAC,Cslib.Crypto.PseudorandomFunction.eufCma_prfMAC,Cslib.Crypto.PseudorandomFunction.oneTimeEUFCMA_prfMAC: any secure uniformPseudorandomFunctionyields aSUFCMA-,EUFCMA-, andOneTimeEUFCMA-secureMACScheme.Cslib.Crypto.NonceMACScheme.isPPTOn_run_signingPairOracle,Cslib.Crypto.NonceMACScheme.isPPTOn_sufCmaGame,isPPT_sufCmaGame,isPPTOn_eufCmaGame,isPPT_eufCmaGame,succProbability_eufCmaGame_le_sufCmaGame,SUFCMA.eufCma,eval_sufCmaGame_eq_freshPair_of_unique_tag: strict PPT certificates, quantitative / asymptotic implication fromSUFCMAtoEUFCMA, and unique-tag pair-freshness characterization for nonce-based MACs.
References #
- D. Boneh, V. Shoup, A Graduate Course in Applied Cryptography, Chapter 6, Sections 6.1–6.3 (Definitions 6.1–6.2 and Theorem 6.2) and Chapter 7, Section 7.5 (Attack Game 7.4).
- O. Goldreich, S. Goldwasser, S. Micali, How to Construct Random Functions.
A uniform symmetric message authentication code (MAC) on msgLen n-bit messages at security
parameter n (defaulting to msgLen = id, i.e., n-bit messages), with plain polynomial-time
message-length schedule, strict polynomial-time key generation and tag generation, deterministic
polynomial-time verification, and perfect completeness on supported keys, msgLen n-bit messages,
and tags Boneh and Shoup, Definition 6.1.
Message length authenticated at unary security parameter
n(defaults ton).- msgLen_polyTime : Turing.MultiTapeTM.ComputableInPolyTime self.msgLen Turing.MultiTapeTM.encUnary Turing.MultiTapeTM.encUnary
The message-length schedule is computable in plain polynomial time in unary.
Sample a secret MAC key
skat unary security parametern.Compute a MAC tag on message
msgusing the secret keysk.Deterministically verify a candidate
tagonmsgunder secret keysk.- keyGen_ppt : Probability.IsPPTOn Turing.MultiTapeTM.encUnary Turing.MultiTapeTM.encBits self.keyGen
Key generation is uniformly strict PPT in the unary security parameter.
- sign_ppt : Probability.IsPPTOn (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encBits Turing.MultiTapeTM.encBits) Turing.MultiTapeTM.encBits fun (p : List Bool × List Bool) => self.sign p.1 p.2
Tag generation is uniformly strict PPT in the encoded secret key and message.
- verify_polyTime : Turing.MultiTapeTM.ComputableInPolyTime (fun (p : List Bool × List Bool × List Bool) => self.verify p.1 p.2.1 p.2.2) (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encBits (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encBits Turing.MultiTapeTM.encBits)) Turing.MultiTapeTM.encBool
Verification is computable in plain polynomial time on
(sk, msg, tag).
Instances For
Composing M.msgLen with a plain polynomial-time unary parameter function is plain
polynomial-time.
Composing M.keyGen with a plain polynomial-time unary parameter function is strict PPT.
Composing M.sign with plain polynomial-time key and message selectors is strict PPT.
Composing M.verify with plain polynomial-time key, message, and tag selectors is plain
polynomial-time.
The fresh-message MAC EUF-CMA experiment: sample sk ← M.keyGen n, run the adaptive forger on
(n, []) with oracle access to M.signingOracle sk, and accept when the forger outputs a valid
(msg, tag) pair on a M.msgLen n-bit message msg that was never queried to the tagging oracle.
Unlike Boneh and Shoup, Attack Game 6.1 / Definition 6.2, which logs (msg, tag)
pairs and rejects only previously returned pairs, this experiment logs queried messages and rejects
any previously queried message (!out.2.contains out.1.1). The two notions differ for randomized
sign algorithms, and coincide for deterministic canonical MACs such as prfMAC.
Instances For
Run the complete MAC EUF-CMA experiment on its unary security parameter for any oracle-PPT forger.
The MAC EUF-CMA experiment is uniformly strict PPT, independently of unused auxiliary input.
Fresh-message existential unforgeability under adaptive chosen-message attack (EUFCMA) for a
symmetric MAC against uniform strict oracle-PPT adversaries.
Note that eufCmaGame enforces fresh-message unforgeability (msg ∉ queried), whereas
Boneh and Shoup, Attack Game 6.1 / Definition 6.2 defines the stronger fresh-pair
variant ((msg, tag) ∉ queriedPairs) for general (possibly randomized) signing algorithms.
Instances For
Full EUF-CMA security gives negligible forgery probability for every oracle-PPT forger.
Establish EUF-CMA security by bounding every oracle-PPT forger's success probability.
One-time adaptive chosen-message security (OneTimeEUFCMA) #
The one-time MAC EUF-CMA experiment: sample sk ← M.keyGen n, run the adaptive forger on
(n, []) with oracle access to M.oneTimeSigningOracle sk, and accept when the forger outputs a
valid tag on a M.msgLen n-bit message distinct from the queried message (if any).
Instances For
Running an oracle-PPT forger against oneTimeSigningOracle is uniformly strict PPT in the
unary security parameter and secret key.
Run the complete one-time MAC EUF-CMA experiment on its unary security parameter for any oracle-PPT forger.
The one-time MAC EUF-CMA experiment is uniformly strict PPT, independently of unused auxiliary input.
Existential unforgeability under one-time adaptive chosen-message attack for a symmetric MAC.
Instances For
One-time EUF-CMA security gives negligible forgery probability for every oracle-PPT forger.
Establish one-time EUF-CMA security by bounding every oracle-PPT forger's success probability.
Full EUF-CMA security implies one-time EUF-CMA security for any MACScheme.
Stateful MAC tagging oracle that tags the requested message under sk and prepends the
returned (msg, tag) pair to the transcript of queried message/tag pairs
(Boneh and Shoup, Attack Game 6.1).
Instances For
The strong (fresh-pair) MAC SUF-CMA experiment
(Boneh and Shoup, Attack Game 6.1 / Definition 6.2): sample sk ← M.keyGen n,
run the adaptive forger on (n, []) with oracle access to M.signingPairOracle sk, and accept when
the forger outputs a valid (msg, tag) pair on a M.msgLen n-bit message msg such that
(msg, tag) was never returned by the tagging oracle (!out.2.contains out.1).
Instances For
Running an oracle-PPT forger against signingPairOracle is uniformly strict PPT in the unary
security parameter and secret key.
Run the complete MAC SUF-CMA experiment on its unary security parameter for any oracle-PPT forger.
The MAC SUF-CMA experiment is uniformly strict PPT, independently of unused auxiliary input.
Strong (fresh-pair) existential unforgeability under adaptive chosen-message attack (SUFCMA)
for a symmetric MAC against uniform strict oracle-PPT adversaries
(Boneh and Shoup, Attack Game 6.1 / Definition 6.2).
Instances For
Strong unforgeability gives negligible SUF-CMA forgery probability for every oracle-PPT forger.
Establish SUF-CMA security by bounding every oracle-PPT forger's success probability.
Running an adaptive program against signingOracle produces the exact same distribution as
running it against signingPairOracle and projecting the pair transcript to its queried
messages.
eufCmaGame evaluates the same pair-logging execution signingPairOracle as sufCmaGame,
checking message freshness !(out.2.map Prod.fst).contains out.1.1 on the projected message log.
Quantitative EUF-CMA vs. SUF-CMA bound: for every MACScheme, adaptive forger, and
security parameter n, the fresh-message EUF-CMA forgery probability is at most the strong
fresh-pair SUF-CMA forgery probability.
Strong unforgeability (SUFCMA) implies one-time unforgeability (OneTimeEUFCMA) for every
MACScheme.
For any MACScheme whose valid tags on M.msgLen n-bit messages under supported secret keys
agree with every tag in the support of M.sign, the sufCmaGame and eufCmaGame distributions
are identical.
For a MACScheme with unique valid tags per (sk, msg), the SUF-CMA and EUF-CMA forgery
probabilities are equal for every forger and security parameter n.
For a MACScheme with unique valid tags per (sk, msg), strong unforgeability (SUFCMA) is
equivalent to ordinary fresh-message unforgeability (EUFCMA).
Schedule reindexing of a MACScheme (reindex, reindexForger) #
Reindex a MACScheme along a polynomial-time parameter schedule ℓ : ℕ → ℕ: at security
parameter n, M.reindex ℓ hℓ samples keys via M.keyGen (ℓ n) and authenticates messages of
length M.msgLen (ℓ n).
Instances For
Wrap a forger adversary against M.reindex ℓ hℓ into a forger against M: given unary
parameter m and auxiliary input aux, recover n := GeneratorReindex.parameter ℓ m; if
ℓ n == m, run adversary n aux, and otherwise return ([], []) without querying the oracle.
Instances For
At any parameter m = ℓ n of a strictly monotone schedule ℓ, reindexForger ℓ adversary
executes adversary n.
reindexForger ℓ adversary preserves strict oracle-PPT admissibility (IsOraclePPT).
For a strictly monotone schedule ℓ, (M.reindex ℓ hℓ).sufCmaGame adversary n is identical to
M.sufCmaGame (reindexForger ℓ adversary) (ℓ n).
For a strictly monotone schedule ℓ, (M.reindex ℓ hℓ).eufCmaGame adversary n is identical to
M.eufCmaGame (reindexForger ℓ adversary) (ℓ n).
For a strictly monotone schedule ℓ, (M.reindex ℓ hℓ).eufOneTimeGame adversary n is
identical to M.eufOneTimeGame (reindexForger ℓ adversary) (ℓ n).
Strong unforgeability (SUFCMA) is preserved under reindexing along any strictly monotone
plain polynomial-time schedule ℓ.
Ordinary fresh-message unforgeability (EUFCMA) is preserved under reindexing along any
strictly monotone plain polynomial-time schedule ℓ.
One-time unforgeability (OneTimeEUFCMA) is preserved under reindexing along any strictly
monotone plain polynomial-time schedule ℓ.
Canonical deterministic MAC constructed from a keyed function family family
(Boneh and Shoup, Section 6.3):
keyGen nsamples a uniformn-bit key viaBitString.sampleList n.sign sk msgreturnsprfOracle family sk.length sk msg(which evaluatesfamily sk msgonsk.length-bit messages and rejects malformed queries with[]).verify sk msg tagchecksmsg.length == sk.lengthandfamily sk msg == tag.
Instances For
Oracle reduction turning an adaptive MAC forger adversary into an OracleDistinguisher for
the PRF security game Boneh and Shoup, Section 6.3, Theorem 6.2:
- Run
adversary n [], answering each tagging query viamacLogHandler nand logging all queried messages. - When
adversaryoutputs((msg, tag), queried), ifmsg.length == nand!queried.contains msg, query the external oracle once onmsg(reading at mostnbits) and check whether the reply equalstag; otherwise returnfalse.
Instances For
macToPrfDistinguisher preserves strict oracle-PPT admissibility (IsOraclePPT).
Running macToPrfDistinguisher adversary in prfRealGame family produces the exact same
Boolean distribution as the EUF-CMA experiment for prfMAC family.
In the ideal random-function game, macToPrfDistinguisher adversary succeeds with probability
at most 1 / 2 ^ n: any unqueried n-bit forgery message misses the lazy random-oracle cache and
draws a fresh uniform n-bit tag, matching the forger's candidate tag with probability at most
1 / 2 ^ n.
Because prfMAC is deterministic with a unique valid tag per (sk, msg), its strong
fresh-pair sufCmaGame distribution is identical to its fresh-message eufCmaGame
distribution.
For prfMAC, strong unforgeability (SUFCMA) and fresh-message unforgeability (EUFCMA)
coincide.
Running macToPrfDistinguisher adversary in prfRealGame family produces the exact same
Boolean distribution as the strong SUF-CMA experiment for prfMAC family.
Quantitative PRF-to-MAC forgery bound Boneh and Shoup, Theorem 6.2:
for every adaptive MAC forger adversary and every security parameter n, the EUF-CMA forgery
probability against prfMAC family is at most the PRF distinguishing advantage of
macToPrfDistinguisher adversary plus 1 / 2 ^ n.
Quantitative PRF-to-SUF-CMA forgery bound Boneh and Shoup, Theorem 6.2:
for every adaptive MAC forger adversary and every security parameter n, the strong SUF-CMA
forgery probability against prfMAC family is at most the PRF distinguishing advantage of
macToPrfDistinguisher adversary plus 1 / 2 ^ n.
PRF-to-MAC security theorem Boneh and Shoup, Theorem 6.2:
every uniform PseudorandomFunction yields an EUFCMA-secure MACScheme.
PRF-to-SUF-CMA security theorem Boneh and Shoup, Theorem 6.2:
every uniform PseudorandomFunction yields a strongly unforgeable (SUFCMA) MACScheme.
Every uniform PseudorandomFunction also yields a OneTimeEUFCMA-secure MACScheme.
Nonce-based message authentication codes (NonceMACScheme, Boneh–Shoup Section 7.5) #
An adaptive nonce-based MAC forger receives a unary security parameter and an auxiliary word,
queries a nonce-respecting tagging oracle on encoded (message, nonce) pairs
(encPair encBits encBits (msg, nonce)), and outputs a candidate ((message, nonce), tag) triple
(Boneh and Shoup, Section 7.5, Attack Game 7.4).
Instances For
A uniform symmetric nonce-based message authentication code (NonceMACScheme) on msgLen n-bit
messages and nonceLen n-bit nonces at security parameter n (both defaulting to n), with plain
polynomial-time length schedules, strict polynomial-time key generation and tag generation,
deterministic polynomial-time verification, and perfect completeness on supported keys,
msgLen n-bit messages, nonceLen n-bit nonces, and tags
(Boneh and Shoup, Section 7.5, Attack Game 7.4).
Message length authenticated at unary security parameter
n(defaults ton).- msgLen_polyTime : Turing.MultiTapeTM.ComputableInPolyTime self.msgLen Turing.MultiTapeTM.encUnary Turing.MultiTapeTM.encUnary
The message-length schedule is computable in plain polynomial time in unary.
Nonce length required at unary security parameter
n(defaults ton).- nonceLen_polyTime : Turing.MultiTapeTM.ComputableInPolyTime self.nonceLen Turing.MultiTapeTM.encUnary Turing.MultiTapeTM.encUnary
The nonce-length schedule is computable in plain polynomial time in unary.
Sample a secret MAC key
skat unary security parametern.Compute a MAC tag on message
msgand noncenonceusing the secret keysk.Deterministically verify a candidate
tagon(msg, nonce)under secret keysk.- keyGen_ppt : Probability.IsPPTOn Turing.MultiTapeTM.encUnary Turing.MultiTapeTM.encBits self.keyGen
Key generation is uniformly strict PPT in the unary security parameter.
- sign_ppt : Probability.IsPPTOn (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encBits (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encBits Turing.MultiTapeTM.encBits)) Turing.MultiTapeTM.encBits fun (p : List Bool × List Bool × List Bool) => self.sign p.1 p.2.1 p.2.2
Tag generation is uniformly strict PPT in the encoded
(sk, msg, nonce). - verify_polyTime : Turing.MultiTapeTM.ComputableInPolyTime (fun (p : List Bool × List Bool × List Bool × List Bool) => self.verify p.1 p.2.1 p.2.2.1 p.2.2.2) (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encBits (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encBits (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encBits Turing.MultiTapeTM.encBits))) Turing.MultiTapeTM.encBool
Verification is computable in plain polynomial time on
(sk, msg, nonce, tag).
Instances For
The unframed prefix and remaining suffix of any bit list satisfy
2 * (unframe v).length + (dropFrame v).length ≤ v.length.
Composing M.msgLen with a plain polynomial-time unary parameter function is plain
polynomial-time.
Composing M.nonceLen with a plain polynomial-time unary parameter function is plain
polynomial-time.
Composing M.keyGen with a plain polynomial-time unary parameter function is strict PPT.
Composing M.sign with plain polynomial-time key, message, and nonce selectors is strict
PPT.
Composing M.verify with plain polynomial-time key, message, nonce, and tag selectors is plain
polynomial-time.
Stateful nonce-based MAC tagging oracle that decodes (msg, nonce) from the framed query word
request.2, tags (msg, nonce) under sk, and prepends the returned ((msg, nonce), tag) triple
to the transcript (Boneh and Shoup, Section 7.5, Attack Game 7.4).
Instances For
The strong nonce-based MAC SUF-CMA experiment
(Boneh and Shoup, Section 7.5, Attack Game 7.4): sample sk ← M.keyGen n, run
the adaptive forger on (n, []) with oracle access to M.signingPairOracle sk, and accept when:
- the candidate message has length
M.msgLen nand the candidate nonce has lengthM.nonceLen n, - all nonces queried during the signing phase are pairwise distinct
(
decide (out.2.map (fun e => e.1.2)).Nodup), - the candidate
((msg, nonce), tag)triple was never returned by the tagging oracle (!out.2.contains out.1), and M.verify sk msg nonce tag = true.
Instances For
The fresh-message nonce-based MAC EUF-CMA experiment: identical to sufCmaGame except that the
candidate message out.1.1.1 must never have been queried during the signing phase
(!(out.2.map (fun e => e.1.1)).contains out.1.1.1).
Instances For
Running an oracle-PPT nonce-MAC forger against signingPairOracle is uniformly strict PPT in
the unary security parameter and secret key.
Run the complete nonce-based MAC SUF-CMA experiment on its unary security parameter for any oracle-PPT forger.
The nonce-based MAC SUF-CMA experiment is uniformly strict PPT, independently of unused auxiliary input.
Run the complete nonce-based MAC EUF-CMA experiment on its unary security parameter for any oracle-PPT forger.
The nonce-based MAC EUF-CMA experiment is uniformly strict PPT, independently of unused auxiliary input.
Strong existential unforgeability under nonce-respecting adaptive chosen-message attack
(SUFCMA) for a NonceMACScheme against uniform strict oracle-PPT adversaries
(Boneh and Shoup, Section 7.5, Attack Game 7.4).
Instances For
Strong nonce-based unforgeability gives negligible SUF-CMA forgery probability for every oracle-PPT forger.
Establish nonce-based SUF-CMA security by bounding every oracle-PPT forger's success probability.
Fresh-message existential unforgeability under nonce-respecting adaptive chosen-message attack
(EUFCMA) for a NonceMACScheme against uniform strict oracle-PPT adversaries.
Instances For
Nonce-based EUF-CMA security gives negligible forgery probability for every oracle-PPT forger.
Establish nonce-based EUF-CMA security by bounding every oracle-PPT forger's success probability.
Quantitative EUF-CMA vs. SUF-CMA bound for NonceMACScheme: for every NonceMACScheme,
adaptive forger, and security parameter n, the fresh-message eufCmaGame forgery probability is
at most the strong fresh-triple sufCmaGame forgery probability.
Strong unforgeability (SUFCMA) implies fresh-message unforgeability (EUFCMA) for every
NonceMACScheme.
For any NonceMACScheme whose valid tags on M.msgLen n-bit messages and M.nonceLen n-bit
nonces under supported secret keys agree with every tag in the support of M.sign, strong
triple-freshness (!out.2.contains out.1) in sufCmaGame is identical to (msg, nonce)-pair
freshness (!(out.2.map Prod.fst).contains out.1.1).