Rating: 3.0

This is only ElGamal cryptosystem on Rubik Cube.

The order of Rubik Cube Group is 43_252_003_274_489_856_000n and this is small enough to use Pohlig-Hellman.

So the algorithm is simple:

1. get g, h, c1, c2.
2. calculate y = log_g(c1) using Pohlig-Hellman.
3. get message cube m = c2.multiply(invert(pow(h,y))).
4. from all cubes, recover flag.

But these are on Rubik Cube and cubejs is available on JavaScript, so the implementation is harder than usual...

Original writeup (https://gist.github.com/n-ari/7b7162abad7f9d2b05ab17598d6f506c).