The cipher follows this hierachy: Interface Cipher.java <- Abstract class Substitution.java extends Cipher.java <- Vigenere.java and MonoAlphaSubstitution.java extends Cipher.java <- Caesar.java ...
If using updates earlier than 8u161 you need to download Java Cryptography Extension (https://www.oracle.com/technetwork/java/javase/downloads/jce-all-download ...