Is there an input length range for SHAKE128 hash function? For SHAKE128 hash function in SHA3VS document, I find this paragraph:


  Therefore, for testing SHAKE128, (168*2)+1) = 337 unpredictable messages will be
  generated with lengths from 0 to 337 336 bytes (omitting 0 if zero length is not
  supported) and SHAKE256, (136*2)+1) = 273 unpredictable messages will be
  generated with lengths from 0 to 273 272 bytes (omitting 0 if zero length is not
  supported).


I know the hash digest length is flexible:
Hash(input, length N) = N-byte digest

Question:

Is there any requirement for input length (minimum or maximum no. of bytes) to achieve 128 security level?
The quoted paragraph talks about the testing of SHAKE128. As usual, for the 128-bit security achievement, you need to think about the generic attacks on hash functions.

For preimage resistance, you need 128-bit digest size. However, due to the birthday attack, you need 256-bit digest size to achieve 128-bit collision resistance. That is $\sqrt{2^{256}} = 2^{256/2} = 2^{128}$.

For the input length; if the input space is small, it can easily brute-forced or a special rainbow table can be implemented to find the preimage of the hash values. For 128-bit preimage resistance, you need your input space to be around 128-bit.