 table called the S-box. A ShiftRows step - where each row of the 4 x 4 array is shifted a certain number of positions, with the size of the shift differing for each row of the array. Step (3) A MixColumns step - which mixes the four bytes in each column of the array using a linear transformation to produce a new column of four dependent output bytes. This step is omitted in the final round of the cipher. Step (4) An AddRoundKey step - in which a second 4 X 4 array, called a sub key, is derived from the cipher key using a key schedule and the two 4 X 4 arrays are XOR'd together to generate the starting array for the next round. Chapter Eight The number of rounds used to encrypt each block of data depends on the key size, with 10 rounds used for 128-bit, 12 rounds for 192-bit and 14 rounds for 256-bit keys. While AES is already a very strong cipher, AES-CCMP incorporates two additional cryptographic techniques, counter mode and a cipher block chaining message authentication code (CBC-MAC) that provide additional security between the wireless client station and the access point. Counter Mode Operation of Block Ciphers In the counter mode of operation of a block cipher, the encryption algorithm is not applied directly to a block of data but to an arbitrary counter. Each block of data is then encrypted in an XOR operation with the encrypted counter, as shown in Figure 8-8. For each message, the counter is started from an arbitrary nonce and incremented according to a pattern that is known to both sender and receiver. Counter mode contrasts with the electronic code book (ECB) (Figure 8-9) mode of operation that was commonly used with the data encryption standard (DES - the NIST predecessor of AES) in which each block of a message is encrypted with the same encryption key. With ECB, the output ciphertext has a one-to-one correspondence with the input plaintext Message Data block Data block Data block Data block Data block Data block Data block Counter Encryption Encrypted Encrypted Encrypted Encrypted Encrypted Encrypt