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

What is Y? #1

Closed
ajcj151 opened this issue Nov 13, 2017 · 2 comments
Closed

What is Y? #1

ajcj151 opened this issue Nov 13, 2017 · 2 comments

Comments

@ajcj151
Copy link

ajcj151 commented Nov 13, 2017

pairgen/pairgen.c

Line 1320 in 6113d71

// The main stage, find a "Y".

Hello, I'm trying to figure out what exactly this program does, can you give a brief explanation? Thank you and interesting code.

@basil00
Copy link
Owner

basil00 commented Nov 14, 2017

This program works by calculating long chains of related addresses, such that: addri = f(addri-1) for some function f.

Eventually, it should find two different chains that start from different input addr0 but end in the same output address. This means that a collision occurred somewhere along the chains, and the chains got merged. This is represented by "Y", since "Y" kind of looks like two chains merging into 1.

Once a "Y" has been found, the program attempts to find the exact collision point by calculating shorter and shorter chains with the same colliding inputs.

@basil00 basil00 closed this as completed Nov 14, 2017
@ajcj151
Copy link
Author

ajcj151 commented Nov 15, 2017

Man you're fucking awesome! Thanks for your explanation, i understand a little bit, it will be cool make a documentation of project, or any pseudocode representing the core of the program. Again thanks!

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