libtom / libtomcrypt

LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
https://www.libtom.net
Other
1.51k stars 449 forks source link

Add support for Tiger2 hash algorithm... #635

Closed NickBrighten closed 8 months ago

NickBrighten commented 8 months ago

Add support for Tiger2 hash algorithm...

MarekKnapek commented 4 months ago

I would like to inform @sjaeckel that hash named "Tiger2" indeed does exist. It is described on author's web site at http://www.cs.technion.ac.il/~biham/Reports/Tiger/ you might want to use the web.archive.org service to obtain older copy of that web site. The only difference between Tiger and Tiger2 hashes is padding scheme, in Tiger2 it is changed in such a way to be the same as in MD and SHA family of hashes. There is plenty of on-line hash calculators which could be used to verify correctness of your implementation. I created one of such calculators at https://marekknapek.github.io/hash/

sjaeckel commented 4 months ago

@MarekKnapek Thanks for pointing this out.

It shows an even better reason why the name "tiger2" as chosen by @NickBrighten would have been a very bad idea.

NickBrighten commented 4 months ago

@MarekKnapek Thanks for pointing this out.

It shows an even better reason why the name "tiger2" as chosen by @NickBrighten would have been a very bad idea.

don't know what's wrong with the name - it comes from the developer himself - you can read it at : http://www.cs.technion.ac.il/~biham/Reports/Tiger/ and https://en.wikipedia.org/wiki/Tiger_(hash_function)... In both, there is a tiger2

It is irrelevant if the only change is the padding scheme or what else - if the developer of the source rename it, you will be adopt it or ignore it, but no discussion about the name...

sjaeckel commented 4 months ago

don't know what's wrong with the name - it comes from the developer himself [...] no discussion about the name...

I think there's a misunderstanding here. Indeed, there should be no discussion about the name.

You implemented the variation of tiger with more rounds and called it tiger2, even though it's still the tiger algorithm.

As you also stated there's a variation of the tiger algorithm, which the author called tiger2, which has a different padding scheme. This one differs from "what you called tiger2". How should we call the "real tiger2 (with different padding scheme)" then if we'd ever integrate it? tiger3? tiger2-but-the-real-one?

Clear now what the problem is with you calling it tiger2 instead of tiger?