SpongeWrap without padding and frame bit Assuming all inputs are same length as rate except last can be shorter. Is it necessary to pad every input (not just last) to sponge for authenticated encryption to be secure?

Is this just, because it is wrapped around Absorb and Squeeze?

What is purpose of frame bit in SpongeWrap?
Is it necessary to pad every input (not just last) to sponge for authenticated encryption to be secure?


Yes. The purpose of the padding is to make every possible input unique. So a full block must result in a different bitstring than any padded non-full block. There is no way to pad only the incomplete block and still have it differ from all the full blocks.

If you didn't use such padding, two different messages could lead to an equal state.


  What is purpose of frame bit in SpongeWrap?


The purpose of the frame bit is domain separation. To quote the pdf (4.1.5):


  The duplex (or equivalently, sponge) inputs to generate key stream blocks and those to generate tag blocks are in separate domains. Every duplex response that is used to encipher the next block has as input a string ending with a frame bit 1, whereas every duplex response that is used to form a tag has as input a string ending with a frame bit 0.


If this wasn't the case, the authentication tag and the "next block" keystream could be equal. This would allow an attack where you truncate the message and forge an authentication tag from the ciphertext, if you know the plaintext of the last block of the message. Because of the frame bit they are independent, so the ciphertext cannot help you with forgeries.