# Tag Info

5

As fgrieu notes in the comments, the protocol might not even work reliably in the absence of adversaries: if the tag fails to receive the reader's reply of "True", the keys will get out of sync. (If that happens, the tag will just retry the next exchange with the old key, so this could be fixed by having the reader remember one more "subkey". But the ...

-2

This is NOT secure. I have found the weakness with mathematics. So this is our two messages: Sending the first message: $character_1 ⊕ key_1 ⊕ IV_1 = cipher_1$ $character_2 ⊕ key_2 ⊕ IV_1 = cipher_2$ Sending the second message: $character_3 ⊕ key_1 ⊕ IV_2 = cipher_3$ $character_4 ⊕ key_2 ⊕ IV_2 = cipher_4$ Now see what happens if we XOR all of ...

5

This is not a mathematical proof. A notable place it fails to be a proof is here: Pay attention to which cipher text I use, look up to match the message with the cipher-number below. $$cipher1⊕cipher3=character1⊕character3⊕IV1⊕IV2$$ (Note that the cipher BOTH use the SAME KEY, but they remain secure because of the two different IV) This line is ...

2

There is of course but because of carry bits there will be data-dependent "nonlinear" terms. If I do it for 2 bits you can get the idea. It gets unwieldy but you can easily write code to do it for longer bitlengths. The list below is an XOR table expressed as integers:  \begin{array}{c|ccc} \oplus & 0 & 1 & 2 & 3 \\ \hline 0 & 0 & ...

1

The keystream is as long as the message, so you don't want to send that to the receiver. The keystream is generated by a much shorter key (e.g., 128-bit private key). That is what the receiver needs in order to decrypt the message. So, how do you get that to the receiver? Well, clearly you can't just send it in the clear or anyone watching the channel would ...

0

The keystream is not transmitted - if it were, anyone could decrypt it. The stream cipher produces a pseudo-random number sequence based on a given key. If you give it the same key twice, it'll produce the same sequence. As such, if the receiver has the same key as the sender, then he can generate the same keystream and decrypt the message.

1

Anyone who has the keystream and the ciphertext can trivially calculate the plaintext — it's a xor operation bit by bit. Sending the keystream alongside the ciphertext would completely defeat the purpose of encryption. The principle of stream ciphers is that the sender and the receiver agree on an algorithm, a secret key and some parameters, and both ...

Top 50 recent answers are included