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

Add test vectors to demonstrate kerlissions #8

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

soatok
Copy link

@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

Since we only have one "expected" value (because of collisions in Kerl), we can simplify our definition.
@soatok
Copy link
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