I proposed an idea of Perfect Deniability of a MAC
I tried to come up with a protocol that satisfies those security requirements as well as the normal security requirements of a MAC
One-Time MAC
Alice and Bob pre-share a $n^2$ OTP bits, $k$ (bits that were generated the same way you would for a OTP with all the requirements met here)
Alice breaks $k$ into $n$ strings of length $n$, lets call them $k_1, k_2, ..., k_n$
- For each $k_i$ Alice computes $b_i = \bigoplus_{j=0}^{n}(m \oplus k_i)$
- Each $b_i$ is a bit computed from xoring all the bits in $m \oplus k_i$
- Alice sends $m||b$ where $b = b_1||b_2||...||b_n$
- Alice and Bob destroy k
Proof
One-Time MAC is a MAC since anyone not knowing the key can only modify the stream with negligible probability. If someone tried to flip bits in the message then they would need to flip some unknown bits in the MAC and visa versa. They would only guess correctly with probability $2^{-n}$.
Now for the perfect deniability part.
If Eve came to Alice with $m$ and MAC($m$) = One-Time MAC($m$) then Alice can just generate $n$ random $n$ bit strings check their $b_i$ values and reorder them so that they create a "valid" key. (Note she may need to generate more than $n$ keys if the number of $b_i = 0$ doesn't match the number of $0$'s in MAC($m$), but odds are she will not need to generate more than $2n$ random strings)
Problems and Thoughts
I feel obligated to post issues with this protocol.
- Very large key ($n^2$)
- Similar issues as OTP (key management, etc..)
- Could be used as a MAC for a OTP and give messages perfect secrecy and perfect deniability without the ability to be tampered with
Questions
- Does this satisfy the properties of a MAC?
- Does this satisfy this definition?
- Could this be done with a smaller key?
- For long messages can you break it into smaller messages and MAC each individually to use less key?
- I would assume you would lose security since $n$ would be smaller