Implement and document an interface for cipher algorithms