Tags: crypto aes 

Rating:

We need to implement the inverse of the `permute` function to get the required values which we need to send to the server to get the flag.

`permute` performs 10 rounds of AES encryption using the hardcoded table which performs SubBytes, ShiftRows and MixColumns in one step.

The `solve_xor_parallel` function takes the 4 values output by one round of AES and inverts this to find the 4 original values, and it does this 9 times to get the original input passed to `permute`

[https://gist.github.com/sampritipanda/94aa62a7890e0f4dab2e8d3e07c58ac1#file-vn_x9-31_solve-py](https://gist.github.com/sampritipanda/94aa62a7890e0f4dab2e8d3e07c58ac1#file-vn_x9-31_solve-py)

Original writeup (https://gist.github.com/sampritipanda/94aa62a7890e0f4dab2e8d3e07c58ac1#file-vn_x9-31_solve-py).