Cryptology and error correction : An Algebraic Introduction and Real-World Applications (2019)