Rating: 5.0

Since each compute_arr step is the same as a matrix multiplication, and it is invertible, we can reverse steps easily by multiplying public keys with the inverse matrix.

Also, since each value in the public key corresponds to the number of times a combination of values in its corresponding secret key summed up to its index, we can merge two values.

So we can find the value with `reverse(merge_values(alice_pkey, bob_bkey), removed_values)`

Original writeup (https://www.nevi.dev/2022/03/14/writeup-utctf-2022/#sunset-cryptography).