Skip to content
This repository was archived by the owner on Jun 7, 2023. It is now read-only.

Add test vectors to demonstrate kerlissions#8

Open
soatok wants to merge 2 commits into
iotaledger-archive:masterfrom
soatok:master
Open

Add test vectors to demonstrate kerlissions#8
soatok wants to merge 2 commits into
iotaledger-archive:masterfrom
soatok:master

Conversation

@soatok
Copy link
Copy Markdown

@soatok soatok commented Jul 15, 2020

Setting the last trit to 0--instead of some deterministic padding scheme (e.g. ISO/IEC 7816-4)--means there are three possible inputs that produce the same hash output.

This is technically a collision in Kerl (but not a collision in Keccak-384), but since it's unique to Iota and a direct consequence of a design decision (and therefore expected), and collisions are a (rather fun) type of vulnerability in cryptographic hash functions, I opted to coin the term "kerlission" instead.

This pull request adds test cases so that anyone auditing your code knows that kerlissions are totally expected.

Full write-up: Kerlissions in IOTA's Kerl hash function

soatok added 2 commits July 14, 2020 20:53
Since we only have one "expected" value (because of collisions in Kerl), we can simplify our definition.
@soatok
Copy link
Copy Markdown
Author

soatok commented Jun 13, 2022

It's been nearly tow years. Can you please review and merge this?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant