HIGHT is an acronym for HIGh security and light weigHT encryption algorithm. It's designed for low-resource devices and offers strong security with its 64-bit block size and 128-bit keys.
The algorithm's core components include round functions, key schedule, encryption, and decryption processes.
HIGHT utilizes two round functions: F0 and F1. Both involve circular shifts and XOR operations on 8-bit values.
HIGHT generates 128 subkeys and a whitening key, all derived from the 128-bit master key using a dedicated key scheduling algorithm.
Whitening enhances the cipher's diffusion and confusion properties, increasing its resistance to attacks. The plaintext undergoes 32 rounds, utilizing four subkeys and round functions in each.
Decryption reverses the encryption process to recover the original plaintext. All key generation and round functions remain the same.
HIGHT supports two modes of operation:
The plaintext is divided into 64-bit blocks, each encrypted independently with the same key. The resulting ciphertext blocks are then concatenated.
OneAndZeroes Padding is used to ensure block size consistency.
Similar to ECB, plaintext is divided into 64-bit blocks. However, each block is XORed with the previous ciphertext block before encryption, creating a chain of dependencies.
An Initialization Vector (IV) is used to start the chain. This website uses 00 00 00 00 00 00 00 00 as the default IV.
OneAndZeroes Padding is also used with CBC.