>>4
Technically there are infinitely many strings of data that will generate a zero hash. 2256 is just the number of possible hashes and 2-256 is the chance of a collision. You could potentially generate well over 2256 strings of data before finding a match.
Name:
Anonymous2012-10-16 4:43
>>7
but expected time to find this ( with my GPU ) is 1.38*10^61 years
To other anons: I know that I should not help him, but the fucktard is bumping his shit thread. I hope he will go away.
>>1 >>4
0 has no special meaning in SHA-2 (or most other hash algorithms, for that matter), so bruteforcing 0 is no different from bruteforcing any other hash value, which cannot be done on your shit PC before the heat death of Universe happens.
>>7 There are two meet-in-the-middle preimage attacks against SHA-2 with a reduced number of rounds. The first one attacks 41-round SHA-256 out of 64 rounds with time complexity of 2253.5 and space complexity of 216, and 46-round SHA-512 out of 80 rounds with time 2511.5 and space 23.[1] The second one attacks 42-round SHA-256 with time complexity of 2251.7 and space complexity of 212, and 42-round SHA-512 with time 2502 and space 222.[18]
Name:
Anonymous2012-10-16 5:06
I feel like what I'm saying is crazy and I'll probably later realize that it is false, but can't any deterministic algorithm that operates on an input to produce an output be run in reverse to transform an output to a (possible) input?
In other words, say your hashing function is f. We want to find an x such that f(x) = 0. We don't care which x in this situation. So if you have a fast way to get a single arbitrary element of f^-1(0), then you can quickly find such an x. f just needs to be onto.
and if f is formed as the composition of many functions that are onto with easy preimage calculations, like sum mod 2^32 and xor, then you can calculate an element of f^-1(0) by repeatedly finding an element of the preimages of the composed operations.
Need a y and z such that y ^ z = x? Bind y to zero and z to x.
Need y + z = x? y = 0 and z = x works here too.
Need y * z mod 2^32 = x? y = 1, z = x works.
Need y * 2^c mod 2^32 = x? Well, then you're kind of fucked if x isn't a multiple of 2^c. I guess this is where the strength comes in. The (2^c*) function isn't onto, so it creates back tracking.