2020-11-26
[public] 121K views, 5.22K likes, 52.0 dislikes audio only
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 ;)
Watch part 1 - Introduction: /youtube/video/6sHSDoJ5a1s
software_update challenge writeup: /youtube/video/EOlddNofKxo
HireMe.c: https://www.nerd.nintendo.com/files/HireMe
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
-=[ š Social ]=-
ā Twitter: https://twitter.com/LiveOverflow/
ā Website: https://liveoverflow.com/
ā Subreddit: https://www.reddit.com/r/LiveOverflow/
ā Facebook: https://www.facebook.com/LiveOverflow/