We are going to solve the Nintendo HireMe.cpp challenge with some "basic" math. I call it basic, because linear algebra is taught pretty early in school. But I know it is not so easy to figure out that it can be used here. Also the trick with GF2 is math that you would only learn at university. But if you would watch my videos, you would have know it from the software_update video writeup ;)
My Solution Notebook: https://gist.github.com/LiveOverflow/683181b72b4123fdb325956d6f038e72
SageMath and Jupyter Notebook: https://www.sagemath.org/ z3: https://github.com/Z3Prover/z3
00:00 - Introduction 00:26 - What Made It Click?! 01:13 - Alternative Mathematical Representation 02:04 - Recognizing Linear Algebra 03:00 - Matrices Math 04:15 - Using SageMath 04:40 - Gallois Field GF(2) 06:06 - Creating and Solving the System of Equations 08:23 - Tackling the XOR Bruteforce Part 09:40 - Start of Walkthrough: Inverting s-box 10:17 - inp_to_out() and Recursive solve_round() 11:10 - Generate Internal Input[] Candidates with z3 12:45 - Kicking off the Solving Algorithm 13:41 - Cliffhanger: SageMath + Jupyter Notebook 14:02 - Finding a Solution!!!!! 14:22 - Conclusion 15:22 - Outro
-=[ ❤️ Support ]=-
→ per Video: https://www.patreon.com/join/liveoverflow → per Month: https://www.youtube.com/channel/UClcE-kVhqyiHCcjYwcpfj9w/join