Key schedule definition
A key schedule is an algorithm that calculates the subkeys for symmetric encryption algorithms. Subkeys are part of the encryption and decryption process in block ciphers. The key schedule generates them from the original encryption key.
The concept of key schedules has been around since the development of the earliest symmetric encryption algorithms. One of the first widely recognized uses of a key schedule was in the Data Encryption Standard (DES), an encryption standard used from the mid-1970s. DES uses a relatively simple key schedule, generating 16 48-bit round keys from the initial 56-bit key. The AES (Advanced Encryption Standard) key schedule generates round keys that are each the size of the block to be encrypted. For a 128-bit key, AES generates 11 round keys, one for each of its 10 rounds plus one for the initial state.
Advantages of using a key schedule
- Security. A complex key schedule produces different keys for each round. This makes it more difficult for attackers to deduce the original key.
- Efficiency. Key schedules usually generate subkeys in advance, which increases encryption speed.
Disadvantages of using a key schedule
- Complexity. A key schedule needs to balance cryptographic strength with computational efficiency, so designing a secure one requires advanced technical know-how.
- Vulnerability. If a key schedule is poorly designed, it could create recognizable patterns that attackers can exploit to crack the encryption.