At the moment there is only one Algorithm doing the signing and verification. It should be possible to use multiple algorithms. Therefore, keys and signatures need a marker to distinguish between them.
That mean we also need an object to manage the algorithms.