Introduction to Combinatorics and Cryptography (ITX8110)