Add custom interfaces IEncryptionAlgorithm and IPublicKeyAlgorithm and refactor CryptoProvider
Close #9