. Just saying that two systems support the same encryption algorithm does not mean they can exchange information even if they posses the encryp- tion key. The basic modes, except for ECB, which is essentially the fundamental mode of encrypting block per block until the plaintext has been exhausted, require the use of initialization vectors (IVs). These are also sometimes referred to as seed values. Downloaded from Digital Engineering Library @ McGraw-Hill (www.digitalengineeringlibrary.com) Copyright © 2004 The McGraw-Hill Companies. All rights reserved. Any use is subject to the Terms of Use as given at the website. SECURITY COPROCESSORS SECURITY COPROCESSORS 371 For example, let us examine the case of the CBC mode as applied for example to DES (but it will be the same situation no matter what algorithm is used). As shown in Figure 17.4, the cipher output Cn-1 from processing every block is used to XOR the following incoming plaintext block Pn prior to encryption. So how is the first pass started since no previous ciphertext is available? The answer is by using a random bit sequence (equal in length to the block size) and by proceeding accordingly. The IV can be any bit sequence of that same length. In fact, cryptographic systems openly communicate the cho- sen IV to their communications partner. IVs are generated by the same RNG module that we discussed earlier. In some systems, it can come from different sources, such as a timestamp, an internal clock, or a combination of some internal states as read from registers. It makes absolutely no difference for the algorithm's security whether the IV is known. In fact, an eavesdropper who is monitoring a link will always be seeing the C1, C2, Cn ciphertext chunks (which are used as XOR inputs in the following block processing). These are all publicly available SO they are irrelevant for the easy breaking of the cipher. Schneier's book elaborates on this subject. So why was a mode like CBC needed in the first place? In the traditional ECB mode (block-per- block encrypt