In block ciphers, the S-boxes and P-boxes are used to make the relation between the plaintext and the ciphertext difficult to understand (see Shannon's property of confusion). P-boxes are typically classified as compression, expansion, and straight, depending on whether the number of output bits is less than, greater than, or equal to the number of input bits, respectively. Only straight P-boxes are invertible.