A key feature of RC5 is the use of data-dependent rotations; one of the goals of RC5 was to study and evaluate operations of block ciphers as a cryptographic primitive. RC5 also consists of a number of modular additions and eXclusive OR (Xor)s. The general structure of the algorithm is a Feistel-like network. The encryption and decryption routines can be specified in a few lines of code. The key schedule, however, is more complex, expanding the key using an essentially one-way function with the binary expansions of both e and the golden ratio as sources of "nothing up my sleeve numbers". The simplicity of the algorithm together with the novelty of the data-dependent rotations has made RC5 an attractive subject to study by cryptanalysts.