The first two schemes, FSB [1] and S-FSB are two cryptographic hash functions. The other two, SYND [2] and 2SC, are two stream ciphers.
In our report, we are going to introduce the cryptographic schemes briefly, building the basis for the understanding of their implementations. Section 3 presents the C and Java implementations. Based on our C implementations, we have done several performance measurements in order to compare the two hash function schemes, FSB and S-FSB, as well as the two stream ciphers, SYND and 2SC. Section 4 deals with the performance analysis and covers some Dieharder tests for the FSB and S-FSB hash functions.
These are the performance results we obtained [3] for S-FSB and FSB:
Hash Length | FSB cycles/byte | S-FSB cycles/byte | FSB file hash 100 MB | S-FSB file hash 100 MB |
---|---|---|---|---|
160 Bit | 212 | 160 | 8.82s | 6.64s |
224 Bit | 248 | 201 | 10.14s | 7.66s |
384 Bit | 381 | 359 | 15.82s | 14.71s |
As we can see, S-FSB achieves a better performance. [4]
and those are our results for SYND and 2SC:
Security Level | SYND cycles/byte |
---|---|
80 | 36 |
170 | 85 |
366 | 132 |
The 80 bit security level are the parameters recommended by the SYND authors.
Security Level | 2SC cycles/byte |
---|---|
100 | 37 |
200 | 47 |
350 | 72 |
This shows that at comparable security levels, 2SC is faster.
An other hash-function have been proposed by Daniel J. Bernstein, Tanja Lange, Christiane Peters and Peter Schwabe called RFSB. An implementation of the hash-function can be found here.