Rumba20 is a compression function that maps a 192-byte (1536-bit) string to a 64-byte (512-bit) string. It's designed to provide collision resistance by using Salsa20 (or ChaCha20) with the feedforward.
However, from the Rumba20 webpage:
Rumba20 is not designed to provide unpredictability, truncated collision resistance, etc. These features must be provided by an appropriate output filter. Rumba20's goal is to efficiently compress a long input so that only a small amount of data has to be handled by the output filter.
And from the Rumba20 paper (p. 9):
in applications needing more than collision resistance (and perhaps in
all applications), the compression-function output should be fed
through an output filter before it is given to the application.
Unfortunately, no example/recommended output filters seem to have been mentioned on this webpage or in papers mentioning Rumba20. I've also not come across the term 'output filter' in books. Therefore, my questions are:
- What's an appropriate output filter for Rumba20?
- Can something based on Salsa20/ChaCha20 be used as an output filter? Bringing in another primitive seems to defeat the point of Rumba20 since you may as well just use a collision-resistant hash function.