Архив задач олимпиады по математике и криптографии

Slide атака.

Знаками открытого и шифрованного текстов являются пары целых от 0 до 31. Для зашифрования используется секретный ключ k (целое число от 0 до 31), заданная таблично функция h, а также функция g(c,d), которая паре целых чисел (c,d) ставит в соответствие пару (d,c+h(d+k)) (причем если число d+k или d+h(d+k) превышает 31, то их заменяют остатком от деления на 32). Знак шифрованного текста (b1,b2 ) получается из знака открытого текста (a1,a2 ) путем 128-кратного применения функции g: (b1,b2 )=g128 (a1,a2 )=g(…g(g(a1,a2 ))). Известно, что знак открытого текста (21,0) преобразовался в знак зашифрованного текста (15,25), знак (7,3) преобразовался в (29,5), (0,17) – в (25,4) и, наконец, (5,21) – в (22,9). Найдите ключ k.