The Blowfish Cipher utilizes a P-array and S-boxes for encryption. The P-array, or permutation array, consists of 18 32-bit subkeys derived from the original key. It’s used in the initial data division and subsequent rounds of processing.
S-boxes (Substitution boxes) are four arrays each containing 256 32-bit entries. They play a crucial role in the Feistel network of Blowfish, where they’re used to substitute parts of the data block based on their content. This substitution process adds complexity and security to the cipher by ensuring that even small changes in plaintext or key produce significant differences in the ciphertext.