add vigenere cipher and tests