Level 5 - State Introduction (Puzzle 5)
Below is a puzzle involving 24 input buffers and their transformed outputs. Each buffer is exactly 64 bytes, shown in hex. Your task: Figure out the logic of the transformation used to go from the INPUT to the OUTPUT. Then, provide a Python function that, given any new 64-byte buffer, will produce the correct transformed output. Here are the 24 input (SRC) buffers in hex (one line per buffer): INPUT #01: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #02: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #03: 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #04: 02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #05: 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #06: aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #07: 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #08: f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #09: 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #10: 55ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #11: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f INPUT #12: fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0 INPUT #13: aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55 INPUT #14: 55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa INPUT #15: f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 INPUT #16: 0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f INPUT #17: 01010101010101010202020202020202040404040404040408080808080808081010101010101010202020202020202040404040404040408080808080808080 INPUT #18: 01010101020202020202020203030303040404040505050508080808090909090101010102020202020202020303030304040404050505050808080809090909 INPUT #19: 0102040810204080010204081020408001020408102040800102040810204080fefdfbf7efdfbf7ffefdfbf7efdfbf7ffefdfbf7efdfbf7ffefdfbf7efdfbf7f INPUT #20: 48656c6c6f2c20576f726c64212048656c6c6f2c20576f726c64212048656c6c6f2c20576f726c64212048656c6c6f2c20576f726c64212048656c6c6f2c2057 INPUT #21: 4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742c2073656420646f20 INPUT #22: 0101020305080d1522375990e97962db3d18556dc22ff12011314273b528dd05e2e7c9b07929a2cb6d38a5dd825fe140216182e36548adf5a29739d009d9e2bb INPUT #23: 789b34caf54f2e220acd941e71b88d5836866d0d858b63549e94be2cacc67f5b7ef28f2d9903959f63d3d893dce752779c84162917ec8ff1af4a6422d367e18d INPUT #24: c5d71484f8cf9bf4b76f47904730804b9e3225a9f133b5dea168f4e2851f072fcc00fcaa7ca62061717a48e52e29a3fa379a953faa6893e32ec5a27b945e605f And here are the corresponding transformed outputs (DST) in hex: OUTPUT #01: 000103000401070008010b000c010f00100113001401170018011b001c011f00200123002401270028012b002c012f00300133003401370038013b003c013f00 OUTPUT #02: fffffefcfffbfef8fff7fef4fff3fef0ffeffeecffebfee8ffe7fee4ffe3fee0ffdffedcffdbfed8ffd7fed4ffd3fed0ffcffeccffcbfec8ffc7fec4ffc3fec0 OUTPUT #03: 010002010500060109000a010d000e01110012011500160119001a011d001e01210022012500260129002a012d002e01310032013500360139003a013d003e01 OUTPUT #04: 02030102060305020a0309020e030d0212031102160315021a0319021e031d0222032102260325022a0329022e032d0232033102360335023a0339023e033d02 OUTPUT #05: 808183808481878088818b808c818f80908193809481978098819b809c819f80a081a380a481a780a881ab80ac81af80b081b380b481b780b881bb80bc81bf80 OUTPUT #06: aaaba9aaaeabadaaa2aba1aaa6aba5aabaabb9aabeabbdaab2abb1aab6abb5aa8aab89aa8eab8daa82ab81aa86ab85aa9aab99aa9eab9daa92ab91aa96ab95aa OUTPUT #07: 00000103000401070008010b000c010f00100113001401170018011b001c011f00200123002401270028012b002c012f00300133003401370038013b003c013f OUTPUT #08: f0f0f1f3f0f4f1f7f0f8f1fbf0fcf1fff0e0f1e3f0e4f1e7f0e8f1ebf0ecf1eff0d0f1d3f0d4f1d7f0d8f1dbf0dcf1dff0c0f1c3f0c4f1c7f0c8f1cbf0ccf1cf OUTPUT #09: 0f0f0e0c0f0b0e080f070e040f030e000f1f0e1c0f1b0e180f170e140f130e100f2f0e2c0f2b0e280f270e240f230e200f3f0e3c0f3b0e380f370e340f330e30 OUTPUT #10: 5555545655515452555d545e5559545a5545544655415442554d544e5549544a5575547655715472557d547e5579547a5565546655615462556d546e5569546a OUTPUT #11: 0002060008020e001002160018021e002002260028022e003002360038023e004002460048024e005002560058025e006002660068026e007002760078027e00 OUTPUT #12: ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00 OUTPUT #13: aafc5008a6fc4c10a2fc48289efc44209afc402896fc3c5092fc38488efc34408afc304886fc2c5082fc28a87efc24a07afc20a876fc1c9072fc18886efc1480 OUTPUT #14: 55fea9045df2a91845f6a91c7dcaa91075cea9147dc2a96805c6a96c1ddaa96015dea9641dd2a97805d6a97cfd2aa970f52ea974fd22a948c526a94cdd3aa940 OUTPUT #15: f001f300f401f700f801fb00fc01ff00000103000401070008010b000c010f00100113001401170018011b001c011f00200123002401270028012b002c012f00 OUTPUT #16: 0f1f0e1c0f1b0e180f170e140f130e100f2f0e2c0f2b0e280f270e240f230e200f3f0e3c0f3b0e380f370e340f330e300f4f0e4c0f4b0e480f470e440f430e40 OUTPUT #17: 010300040107000802090508060919081c091f081009130828092b082c092f0838093b083c093f08400943084409470878097b087c097f08b009b308b409b708 OUTPUT #18: 0103000402050d040e0509040b1b0a180c190f18011b001c3c1d3f1c391f38103113301432153d143e1539143b0b3a083c093f08310b300c4c0d4f0c490f4800 OUTPUT #19: 0102040f1b3e78fff6fdf3e0fcd19f100112041f3b0e58cfd6cdd3f0dce1bf203e203d273430d573557356746f638e200e200d270410e553655366547f639e20 OUTPUT #20: 482e402f5c6d4b1562196f002d0056225e23a29da9c540c94d300b3054d65cd75815572dbe29bb30793042d24ad34e1545cd6cc969f0a7f070ee48ef442d73e5 OUTPUT #21: 4c3c482051741b6c17691e354539433dbf8e0b77ffcabd3944c98fb4cb47cb59dc58ce46de44dc9b129f0c9702a233ab35adff67c759f390c864fb643899346b OUTPUT #22: 010307010805160a206003986deb9b713c1572f22460675079336fe130758eaaa8a04b98054b8371e4854a42ec606f0051c37761f885664a904033387d6b4bb1 OUTPUT #23: 78e4d21fe6b286afbd6bf5dca164ff98de4936168f2f563d8b26feb971920f75ebf84919a48c37f17a86843a3226a600cc79316d2607c2ea0d8e104d42e6f935 OUTPUT #24: c51d0b8c70a405fe413968f3a09d1349e7a4932f2a62a95ce5646a97360a2f618dacb27fdf1452da43e09282d88e5f7611da1d6fb12ce5ff9967bb0ddd46d846 Instructions: - Return just your best possible approximation as a small python function that takes a 64 byte array as input, and returns the 64 byte array as output. - Remember, the transformation is the same for all 24 buffers. - The function will be scored by the number of buffers that are correctly transformed (as shown in the 24 outputs). - And it also will be tested on another set of 24 hidden input buffers not shown in the prompt. - Do not include anything else in your response, no introduction text or explanations. Example Output: def transform(data: bytes) -> bytes: # Transform logic return bytes
Copy Puzzle Prompt
Submit your solution:
def transform(data: bytes) -> bytes: # Your solution here return data
Submit
Leaderboard