qwename
Given that the article is about collision attacks and not preimage resistance, that was my main thought when thinking of the issue. I'll leave it to the experts to figure out what's the best for cryptographic hash functions.
[1] https://crypto.stackexchange.com/questions/9435/is-truncatin...
[2] https://crypto.stackexchange.com/questions/270/guarding-agai...
[3] https://en.wikipedia.org/wiki/Cryptographic_hash_function#Co...
Also, there's no obscurity since h_1 and h_2 are the actual targeted hash functions, h_3 and h_4 are just to show that concatenation doesn't change the actual problem or make it harder.
Let h_0(x) be a 256-bit hash function. Let h_1(x) and h_2(x) be 128-bit hash functions.
Let h_3(x) = h_1(x) + h_2(x), h_4(x) = h_2(x) + h_1(x), where '+' is the concatenation operator. Thus h_3(x) and h_4(x) are also 256-bit hash functions.
Given an object x_1, find x_2 that satisfies one of the following conditions:
(1) h_0(x_1) = h_0(x_2)
(2) h_3(x_1) = h_3(x_2) AND h_4(x_1) = h_4(x_2)
Finding a collision for a single 256-bit hash function would be trying to solve (1), but finding collisions for two 128-bit hash functions would be trying to solve (2).
Also note that (2) is not equivalent to finding collisions for two 256-bit hash functions.
I think the misconception comes from the fact that the multiple hashes form an unordered set, not an ordered concatenation.
If there's any mistake in my logic please feel free to point them out.
Edit: (2) can be simplified into h_1(x_1) = h_1(x_2) AND h_2(x_1) = h_2(x_2), as concatenation of the hashes does not turn h_3 and h_4 into "real" 256-bit hash functions.
I wonder about the difficulty of producing collisions for a single 256-bit hash function versus two 128-bit hash functions, four 64-bit hash functions and so on.
There seems to be a negative connotation with getting paid to support something, that you're just in it for the money and don't actually mean it.
Of course there are many nuances to the whole issue of labels which I don't have the knowledge or time to go into.
Edit: I don't know about the intricacies of political correctness, but somehow "trump supporter" feels ok, maybe because it has two words and "supporter" balances "trump". Personally I think "50 cent army" isn't as bad as "WuMao" even though they mean the same thing, go figure.
The above is just my opinion, but I think we're detracting from the main issue in the parent comment, that the term "WuMao" can be considered a derogatory term. Tell me if I'm wrong, but many terms started off neutral, but turned derogatory over time. The example that comes to mind is the N-word that rhymes with aggro, I'm not even sure if it's okay to use that so I'm self-censoring.
Fixing Unix/Linux/Posix Filenames
System loads web pages 34 percent faster by fetching files more effectively
It might be useful to tie changes in community standards to something concrete and trackable. Taking the detox week as an example, there would be a way to flag something and specify "detox week" as a reason.
That being said, can you give an example of changes in community standards on this site which effects cannot be tracked in software?
EDIT: Clarified scope of "changes in community standards" to this site.
Metallic glass gears make for graceful robots
Assuming you compile with the same options and in the same environment, the machine instructions should be the same.
EDIT: The compiler in question though is whatever Visual Basic 6.0 uses, so I wouldn't call it modern today.
Portions of the brain fall asleep and wake back up all the time
[1] https://en.wikipedia.org/wiki/Overlay_network
A giant web that relies on trust. Is there a system where trust is not necessary, but can still get things done? Although I can't think of a use-case for this.