Combinatorics And Cryptography