e Lucifer coding procedure. In the first step, the plaintext is converted into a string of binary digits (not necessarily ASCII). Then the string is split into 64-bit blocks (step 2) which are 25.2 Encryption and decryption with binary numbers Plaintext Step 1 1100101011100010111101000101011110110001 Step 2 11001010 11100010 11110100 01010111 10110001 Step 3 01000100 10100111 10100010 11111101 01011000 Step 4 00100001 Left Right° Left¹ Right1 Left 16 Right 16 Step 5 Round 1 Round 16 Step 6 Left ¹6 Right1 Cipher Figure 25.1 Principle of the Lucifer encryption algorithm, as described in the text. individually encrypted (step 3). The resulting blocks are shuffled (step 4), then split into two 32-bit elements called left and right (step 5). The next step is called a round, and this round will be repeated sixteen times. Call these two elements L0 and R0, respectively. The round first passes R0 through a mangler, which performs a complex bit substitution according to a mangling function. The result is XORed with L0 to give R1. The original RO becomes L1. The next round does the same with the pair (L1, R1), and SO on until one gets (L16, R16). The cipher is then formed with the concatenated string of (L16, R16) elements. We see that this new approach for encryption is quite complex and definitely harder to break than any previous scheme. Even with public knowledge of the encryption algorithm, the code breaker must know which mangling function (the key) has been used for the 16 rounds, which shuffling algorithm is used in step 4, and which encryp- tion algorithm is used in step 3. The combination of these three unknowns presents a formidable obstacle to code-breaking attempts. But when these different elements are known, decryption is "straightforward" for any computer. The cipher is decomposed into 32-bit block pairs representing as many L16, R16 groups. The element L16 becomes R15. The element R16 is then XORed with L15, then the result is passed through the inverse mangling function (the key), which yields R15. And SO