Symmetric encryption is the oldest branch in the field of cryptology, and is still one of the most important ones today. This thesis covers several aspects of the analysis and design of modern symmetric encryption algorithms. The thesis starts with an overview of the different types of encryption algorithms, pointing out their security requirements and their fundamental differences in approach. We then focus on block ciphers and explain the basic strategies and techniques used in modern cryptanalysis. In order to illustrate this, we present some concrete attacks, which are based on a number of new ideas, but still serve as nice examples of the basic approach. One of the most generic and powerful analysis techniques is linear cryptanalysis, which is why we devote a separate chapter to it. We derive a new theoretical framework which allows to rigorously and accurately analyze the performance of this attack, and at the same time extend the attack to simultaneously exploit multiple linear approximations. In the second part of this thesis, we concentrate on design aspects of symmetric encryption algorithms. We first present tools to analyze and classify substitutions boxes, components which play an important role in the design of block ciphers which resist the attacks discussed in the first part. We then present a new design strategy for stream ciphers based on techniques similar to those used to strengthen block ciphers against linear cryptanalysis. This eventually leads to the specification of a compact and elegant new stream cipher called TRIVIUM.