BCS 3106- Cryptology and coding Theory