: Cryptographic algorithms – even when designed for easy implementability on general purpose architectures – still show a huge performance gap between implementations in software and those using dedicated hardware. Such hardware is usually only able to deal with one single algorithm or a very narrowly defined set of algorithms. The tradeoff between speed/throughput and flexibility can be eased by programmable crypto architectures. These can be existing general purpose architectures enhanced by specialized functional units which fulfill the requirements of typical cryptographic algorithms. Alternatively, a fully custom architecture can be designed. In this paper we describe the methods used to design a programmable crypto architecture from scratch. We will introduce a set of typical cryptographic algorithms, investigate their requirements, and finally show the weighted result leading to our Cryptonite architecture.