5 ms·
256 bytes is in the "let's try every combination" range, I think. So, write a program that tries all of them and determines if any do something interesting enou
by spiritplumber 7y ago
256 bytes is in the "let's try every combination" range, I think. So, write a program that tries all of them and determines if any do something interesting enough to forward to a human for review.
- LocalH 7y agoWouldn’t that be 256^256? That’s certainly a hell of a haystack
- deleted 7y ago[deleted]
- sho 7y agoIt would be 8^256. Less than you guessed but still a 232-digit number...
- LocalH 7y agoI don’t understand how it’s that low. 256 bytes, each with 256 possible values. 256^256.
- scaredginger 7y agoYou're right, the other person is wrong :)
- scaredginger 7y agoI'm sorry, are you saying here that a byte can only express 8 different values?
- sho 6y agoNope - it was late and I totally botched it. Rightfully downvoted.
- exikyut 7y agoUnreasonably impossible as of yet, yes. For handy reference: 8^8: 16,777,216 8^16: 281,474,976,710,656 8^32: 79,228,162,514,264,337,593,543,950,336 8^64: 6,277,101,735,386,680,763,835,789,423,207,666,416,102,355,444,464,034,512,896 8^128: ... 8^256: ? 8^512: hello from the other side of the quantum dimension 8^8 sounds interesting. 16 million reboots of a real {PC,C64,ST,Amiga,Mac,Z80,...} sounds like a collectively highly entertaining kind of hilarious. The issues only begin when you start wondering if any of the programs wedges the hardware into "interesting" states that are preserved across reboots - or at least the what if of that dimension of entropy... then the problem space becomes 8^8^8... [I decided to compute 8^8^8. The result is apparently 15 million digits long. (`echo 8^8^8 | bc -ql | wc` -> `222814 222814 15596963`)
- userbinator 7y agoUnless some crazy physics breakthrough happens, bruteforcing even 128 bits is physically impossible: https://pthree.org/2016/06/19/the-physics-of-brute-force/ https://pthree.org/2016/06/19/the-physics-of-brute-force/
- zokier 7y agoThats weird "reference". Why 8 as the base number? Nobody works with 3bit bytes. 8^8 == 2^24 == 2^(8 * 3) == 256^3, i.e. the combination space of three bytes. The smallest category in pouet for reference is 32b (or 256 bits), so 2^256 combinations to brute force. For comparison usually 128bit encryption is considered "safe" and infeasible to brute force. You might be able to constrain the search space to only valid IA32 instructions, but realistically I don't see it helping that much
- vidarh 7y agoYou could further constrain it to exclude a lot of instructions and instruction pairs that makes no sense given the context. E.g. any instruction pair where the second one makes the first one redundant, such as the second instruction clobbering the same register the first one modified. Or a "ret" in the first few instructions... It'd probably not constrain the search space nearly enough though. But even if it did and you'd somehow manage to even generate every combination, you'd still face the second problem of how to evaluate if they do something "interesting enough" to be worthwhile reviewing.
- thr0w__4w4y 7y agoYes that's correct. I think of it just slightly differently -- 256 bytes, 2048 bits -- so 2^2048 (same result as your 256^256). To give people (who don't spend time with these numbers all the time, I do b/c of cryptography): 2 ^ 256 is on the order of the /number of atoms in the entire universe/ -- every star, moon, comet, black hole, galaxy, etc. across the entire known universe) Now consider this: 2^512 -- take every single atom in the universe, and imagine that that atom //contains a universe of atoms//. Congratulations, you're only at 2 ^ 512. Imagine how large 2 ^ 2048 is!
- tripzilch 7y agoAES is 256 bits and it's quite comfortably outside the "let's try every combination" range.
- HellMood 7y ago(author here) it is not, as others explained. But if you're interested in bruteforcing, you can try to find a short code for the 7 bytes ( yes, seven bytes) version of my program "m8trix" (https://www.pouet.net/prod.php?which=63126 https://www.pouet.net/prod.php?which=63126, in the comments), that should be a tad more easy ;)
- spiritplumber 6y agoI cannot math today. Derp. Thanks