Merge pull request #262 from dreid/cipher-algorithm-interfaces

Implement and document an interface for cipher algorithms