Encryption cracking challenge
Can someone help find the key?
Code:
/* |
some lines don't make sense !
uint64_t m = -((a >> 63) & 1); how do you assign a negative value to an unsigned int64 ? |
-x is the same as ~x + 1
In this case the code is extracting the most-significant bit (MSB) from a and then creating a 64-bit mask from it. If MSB(a) == 0, the result is 0x0000000000000000 Otherwise, if MSB(a) == 1, the result is 0xFFFFFFFFFFFFFFFF |
Some compilers might warn or even generate an error over that. But as said it's just a 2s compliment and the sign but is merely interpreted differently as a cast occurred to signed and back to unsigned. This challenge is interesting need to look for a crypto weakness in the inner function perhaps. Brute force won't work with 2^64...
|
All times are GMT +8. The time now is 06:10. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX