Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hashing Functions - Misleading Explanation #48

Open
ruben-vl opened this issue Nov 14, 2024 · 2 comments
Open

Hashing Functions - Misleading Explanation #48

ruben-vl opened this issue Nov 14, 2024 · 2 comments

Comments

@ruben-vl
Copy link

In the hashing functions introduction, it is stated

Hashing functions are one way functions which theoretically provide a unique output for every input. MD5, SHA-1, and other hashes which were considered secure are now found to have collisions or two different pieces of data which produce the same supposed unique output.

This statement is not true. They don't theoretically provide a unique output for every input. Simple proof of this is that the space it maps the input to - the output space - is smaller than the input space itself (the hashed output is almost always shorter/smaller in size than the input), so there cannot be a mapping without collisions. This is however not a problem, as long as it is not computationally feasible to find those collisions (one of the desired properties of a good hashing algorithm).

Hashing algorithms that were "broken due to collisions", were just algorithms where someone figured out how to reliably find collisions, enabling certain attacks.

The first paragraph on wikipedia explains this in other words: https://en.wikipedia.org/wiki/Collision_resistance

@ruben-vl
Copy link
Author

Link to the specific page: https://ctf101.org/cryptography/what-are-hashing-functions/

@ColdHeat
Copy link
Contributor

I got an email for this so I looked into it for a few minutes. I think the sentence suffices for it's intended purpose but you can PR better language.

https://en.wikipedia.org/wiki/Perfect_hash_function

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants