The RNG produces random bytes by computing $\langle u, v \rangle = \sum_{i=1}^3 e_i D_i$ and converting the coefficients of $u$ and $v$ to bytes. Using known plaintext we can recover $u$, and using $u$ we can recover $v$ to decrypt the rest of the message.
[full writeup](https://jsur.in/posts/2020-12-21-hxp-ctf-2020-hyper-writeup)