Чтобы снять деньги с карточки, Алиса в банкомате вводит пин-код (ПК) x1, x2, x3, x4 — набор из целых чисел Банкомат зашифровывает введенный ПК по следующему правилу: он случайным образом выбирает целое число x5 такое, что а затем формирует зашифрованный пин-код (ЗПК) y1, y2, y3, y4, y5 по формулам:
где r16(x) — остаток от деления числа x на 16, а f — некоторое правило, по которому одно целое число от 0 до 15 заменяется на другое (возможно, то же самое) целое число от 0 до 15, причем разные числа заменяются разными. После этого ЗПК отправляется на сервер, где он расшифровывается (то есть по присланным числам y1, y2, y3, y4, y5 вычисляются x1, x2, x3, x4 и и, если не удовлетворяет неравенству то сервер выдает сообщение об ошибке. Известно, что для ПК Алисы был сформирован следующий ЗПК: 13, 13, 1, 11, 7. Известно также, что хакеры пытались отсылать на сервер (напрямую, минуя банкомат) в качестве y1, y2, y3, y4, y5 комбинации чисел вида 0, 0, 0, a, b. Результаты их попыток приведены в таблице (знак «+» — сервер не выдал сообщение об ошибке, знак «_» — выдал). Какой ПК у Алисы?
Для формирования величины x5, которая будет проверяться на предмет того, принадлежит ли она множеству будут задействованы только последние два числа: a, b. Тогда процедура проверки будет выглядеть следующим образом:
Нетрудно догадаться по виду данной в условии таблицы, что структура каждого столбца с номером b таблицы с точки зрения возникающих ошибок x5 будет следующей:
+ | + | − | − | − | − | + | + | − | − | − | + | + | − | − | − |
a1 | a2 | a3 | a4 | a5 | a6 | a7 | a8 | a9 | a10 | a11 | a12 | a13 | a14 | a15 | a16 |
Вариант рассуждений а). Выделяем случаи, когда (помечены в таблице темным, далее по тексту условно обозначим
— при a1 имеем
— при имеем
— при имеем
— при имеем
— при имеем
— при имеем
Нетрудно заметить, что то есть
Вариант рассуждений б).Ответим на вопрос, при каких значениях возможна ситуация, что при проверке при будет «+», при будет «+», а при
будет «−». Исходя из приведенной ниже таблицы, нетрудно заметить, что только при
−15 | −14 | −13 | −12 | −11 | −10 | −9 | −8 | −7 | −6 | −5 | −4 | −3 | −2 | −1 | 0 | |
− | − | − | − | − | − | − | − | − | − | + | + | + | + | + | + | |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |
a6 | a5 | a4 | a3 | a2 | a1 |
Общий вывод из рассуждений a) или б).
Если в таблице ошибок для x5 при заданном b есть структура вида
+ | + | − | − | − | − |
a1 | a2 | a3 | a4 | a5 | a6 |
то то есть Это является удобным критерием для определения обратных значений функции f.
Рассмотрим столбец из данной в условии таблицы с Из-за закономерностей в образовании «+» не трудно догадаться, что подходящей под критерий структурой будет
+ | + | − | − | − | − |
15 | 0 | 1 | 2 | 3 | 4 |
Поэтому и что позволяет найти x4:
Рассмотрим столбец из данной в условии таблицы с Не трудно заметить, что подходящей под критерий структурой будет
+ | + | − | − | − | − |
3 | 4 | 5 | 6 | 7 | 8 |
Поэтому и что позволяет найти x3:
Рассмотрим столбец из данной в условии таблицы с Из-за закономерностей в образовании «_» не трудно догадаться, что подходящей структурой будет
+ | + | − | − | − | − |
10 | 11 | 12 | 13 | 14 | 15 |
Поэтому и что позволяет найти x1, x2:
Ответ: ПК Алисы 7, 6, 1, 9.