Алгоритм генерации раундовых ключей из ключа шифрования
Key schedule
Генерация раундовых ключей в криптографии: алгоритмы, расписание ключей, шифры типа "продукт". Подробно о вычислении ключей для каждого раунда шифрования.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Алгоритм, вычисляющий все раундовые ключи из ключа.
Algorithm that calculates all the round keys from the key
В криптографии так называемые шифры на основе итераций – это определенный тип шифра, где шифрование (и расшифровка) данных обычно выполняется как последовательность раундов. Настройка для каждого раунда обычно одинакова, за исключением специфичных для раунда фиксированных значений, называемых раундовой константой, и специфичных для раунда данных, производных от ключа шифрования, называемых раундовым ключом. Алгоритм формирования ключей – это алгоритм, вычисляющий все раундовые ключи из исходного ключа.
In cryptography, the so called product ciphers are a certain kind of cipher, where the (de )ciphering of data is typically done as an iteration of rounds. The setup for each round is generally the same, except for round specific fixed values called a round constant, and round specific data derived from the cipher key called a round key. A key schedule is an algorithm that calculates all the round keys from the key.
Некоторые типы ключевых графиков
Некоторые шифры имеют простые схемы формирования ключей. Например, блочный шифр TEA разделяет 128-битный ключ на четыре 32-битные части и многократно использует их в последовательных раундах. DES имеет схему формирования ключа, в которой 56-битный ключ разделяется на две 28-битные половины; каждая половина затем обрабатывается независимо. В последовательных раундах обе половины циклически сдвигаются влево на один или два бита (определяемых для каждого раунда), после чего 48 битов ключевого раунда выбираются с помощью Permuted Choice 2 (PC 2) – 24 бита из левой половины и 24 из правой. Циклические сдвиги обеспечивают использование различного набора битов в каждом ключевом раунде; каждый бит используется примерно в 14 из 16 ключевых раундов. Чтобы избежать простых взаимосвязей между ключом шифра и ключевыми раундами, и противостоять таким методам криптоанализа, как связанные атаки по ключу и скользящие атаки, многие современные шифры используют более сложные схемы формирования ключей для генерации "расширенного ключа", из которого затем извлекаются ключевые раунды. Некоторые шифры, такие как Rijndael (AES) и Blowfish, используют те же операции, что и в тракте данных алгоритма шифрования, для расширения ключа, иногда инициализируемые некоторыми "числами, скрытыми в рукаве". Другие шифры, такие как RC5, расширяют ключи с помощью функций, которые в некоторой степени или полностью отличаются от функций шифрования.
Some ciphers have simple key schedules. For example, the block cipher TEA splits the 128 bit key into four 32 bit pieces and uses them repeatedly in successive rounds. DES has a key schedule in which the 56 bit key is divided into two 28 bit halves; each half is thereafter treated separately. In successive rounds, both halves are rotated left by one or two bits (specified for each round), and then 48 round key bits are selected by Permuted Choice 2 (PC 2) – 24 bits from the left half and 24 from the right. The rotations have the effect that a different set of bits is used in each round key; each bit is used in approximately 14 out of the 16 round keys. To avoid simple relationships between the cipher key and the round keys, in order to resist such forms of cryptanalysis as related key attacks and slide attacks, many modern ciphers use more elaborate key schedules to generate an "expanded key" from which round keys are drawn. Some ciphers, such as Rijndael (AES) and Blowfish, use the same operations as those used in the data path of the cipher algorithm for their key expansion, sometimes initialized with some "nothing up my sleeve numbers". Other ciphers, such as RC5, expand keys with functions that are somewhat or completely different from the encryption functions.