Q — блочный шифр с прямой структурой SP-сети, использующий S-блоки. Алгоритм был разработан Лесли МакБрайдом (), который был представлен на конкурсе проекта NESSIE в качестве кандидата на стандарт шифрования. Шифр Q берет происхождение от шифров Rijndael и Serpent. Q оперирует с 128-битными блоками данных, представленными в виде байтового массива , над которым и проводятся операции.

Алгоритм не имеет ограничения на размер используемых ключей шифрования, но в рамках конкурса NESSIE рассматривались только три варианта: 128, 192 и 256 битов.

Криптостойкость шифра оказалась недостаточной — он уязвим как к дифференциальному, так и линейному криптоанализу.

Общие сведения Q использует три различных s-блока. Первый s-блок, называющийся S, и два блока , A и B (A взят из алгоритма Serpent, B — «Serpent-подобный»). Каждая стадия подстановки использует многократные копии s-блоков параллельно для обработки 128-битного входа (16 копий S и 32 копии A и B).

В шифре используются три линейные трансформации. Перестановка работает на 128-битном блоке, представленном в виде четырёх 32-битных слов следующим образом: не изменяется; поворачиваются на один байт, два байта и три байта соответственно. Другие две линейные трансформации назовём и , так как они применяются до и после блоков A и B. отправляет биты в первые биты 32-битных идентичных копий s-блока , биты  — во вторые биты s-блоков и т. д. . А — инверсия .

Алгоритм Q-шифр может иметь различные размеры ключей. К примеру рассмотрим шифр с 128-битным ключом и с 8 полными раундами: алгоритм «key-scheduling algorithm» или «KSA» генерирует 12 128-битных подключей: Каждый раунд () состоит из:

 — первое наложение ключа . Выполняется побитовое исключающее «или» (XOR), применяющееся к каждому биту обрабатываемого блока и соответствующему биту расширенного ключа. Подстановка S () — взята из алгоритма Rijndael.  — второе наложение ключа .  — операция унаследована от алгоритма Serpent.  — третье наложение ключа Подключ уникален для каждого раунда. Перестановка . .

Полный алгоритм состоит из .

Расшифровывание происходит аналогично шифрованию с изменениями: Меняются местами операции 5 и 6 в каждом раунде. Для 2, 4 и 6 — используются инверсные операции. Ключи используются в обратной последовательности.

Криптоанализ В работе показано, что шифр неустойчив к линейному криптоанализу, с вероятностью 98,4 % 128-битный ключ будет восстановлен из известных пар шифротекста.

Примечания

Ссылки Differential Cryptanalysis of Q

Категория:Блочные шифры