Samantha

Parameters known by Samantha:

Chooses the key \( K \).

Computes the MAC \( MAC_{S} \) for the message \( m \):

Step y/x

Enter the message (or integer) that Samantha wants to sign:

Select the cryptosystem to use:

Press Enter to generate the parameters. Use the Left and Right arrow keys to navigate between steps.

In CBC-MAC, Samantha first encrypts the message \( m \) and then uses the last ciphertext block as the MAC.

Before she can encrypt \( m \), she needs to convert each letter into its corresponding ASCII value, and then convert each ASCII value into its binary representation.

Victor follows the same procedure as Samantha to compute his own MAC \( MAC_{V} \) for the received message \( m \).

Before Victor can encrypt the message \( m \), he needs to convert each letter into its corresponding ASCII value, and then convert each ASCII value into its binary representation.

Victor verifies the MAC of the message \( m \). If the two MACs are equal, he knows that the message was written and signed by Samantha, i.e., nobody has tampered with the message.

Victor

Parameters known by Victor:

Receives the key \( K \).

Receives the message \( m \) and the MAC \( MAC_{S} \).

Computes the MAC \( MAC_{V} \) for the message \( m \):

Verifies the MAC for the message: