2024 [11] Таблица символов
В предполагаемом месте встречи агента был найден ноутбук. В ходе анализа его содержимого была обнаружена таблица символов (таблица 1) и скриншот формулы (рисунок 1).
Экспертами установлено, что в таблице символов скрыт пароль от рабочего стола ноутбука, каждая буква которого находится на определенной позиции, вычисляемой с помощью указанной формулы.
Определите пароль, если известно, что координаты первого символа: (x0, y0) = (5, 6), длина пароля – 13 символов, и пароль является осмысленным словом. В ответе укажите сам пароль и значения параметров формулы.
Таблица 1 – Таблица символов
Рисунок 1 – Формулы вычисления координат символов,
mod – операция остатка от деления,
| – побитовое ИЛИ (OR).
Для решения необходимо подобрать такие a и b, для которых будет вычислен осмысленный пароль. Вручную это делать очень долго. Для этого можем написать программу, которая рассчитает слова длинной 13 символов для всех, a и b по формулам вычисления координат.
def solve_password_with_table(x0, y0, letter_table, target_length=13):
for a in range(32):
for b in range(32):
password = ""
x, y = x0, y0
coords = [] # Список для хранения координат для каждого символа
# Выводим первую координату (x0, y0)
try:
char = letter_table[y][x]
password += char
coords.append((x, y)) # Добавляем первую координату
except IndexError:
password = ""
coords = []
print(f"a={a} b={b}, Пароль: Ошибка: выход за границы таблицы для начальной координаты")
print("-" * 20)
continue # Переходим к следующей комбинации a и b
# Рассчитываем остальные координаты
for _ in range(target_length - 1):
x = ((x + (a ** 2)) ** ((a | x)) + a) % 32
y = ((y + (b ** 2)) ** ((b | y)) + b) % 32
try:
char = letter_table[y][x]
password += char
coords.append((x, y)) # Добавляем координаты
except IndexError:
password = ""
coords = []
break
print(f"a={a} b={b}, Пароль: {password}")
letter_table = [
['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О'],
['П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'О', 'Ю', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'О', 'Ю'],
['Я', 'А', 'Б', 'В', 'Г', 'Н', 'Е', 'Ё', 'Ж', 'Ф', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'Я', 'Ц', 'Б', 'В', 'Г', 'Н', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н'],
['О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Ч', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Ч', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э'],
['Ю', 'Я', 'А', 'Я', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Ю', 'Я', 'А', 'Я', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М'],
['Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ц', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ц', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь'],
['Э', 'Ю', 'Я', 'А', 'Б', 'К', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'С', 'К', 'Л', 'Э', 'Ю', 'Я', 'А', 'Б', 'К', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Я', 'К', 'Л'],
['М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Н', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Н', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы'],
['Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'Е', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'Е'],
['Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ'],
['Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'И', 'И', 'Й', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'И', 'И', 'Й'],
['К', 'Л', 'М', 'Н', 'С', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'К', 'Л', 'М', 'Н', 'С', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ'],
['Ъ', 'Ы', 'Ь', 'И', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Л', 'Ё', 'Ж', 'З', 'И', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'А', 'Ё', 'Ж', 'З', 'И'],
['Й', 'К', 'Е', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Й', 'К', 'Е', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш'],
['Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'Т', 'Т', 'Д', 'Е', 'Ё', 'Ж', 'З', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'Т', 'Т', 'Д', 'Е', 'Ё', 'Ж', 'З'],
['Л', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Л', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч'],
['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'И', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'С', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'И'],
['П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'О', 'Ю', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'О', 'Ю'],
['Я', 'А', 'Б', 'В', 'Г', 'Н', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'Я', 'А', 'Б', 'В', 'Г', 'Н', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н'],
['О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Ч', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Ч', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э'],
['Ю', 'Я', 'А', 'Я', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Ю', 'Я', 'А', 'Я', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М'],
['Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ц', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ц', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь'],
['Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л'],
['М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Н', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Н', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы'],
['Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'Е', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'Е'],
['Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ'],
['Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'И', 'И', 'Й', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'И', 'И', 'Й'],
['К', 'Л', 'М', 'Н', 'С', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'К', 'Л', 'М', 'Н', 'С', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ'],
['Ъ', 'Ы', 'Ь', 'И', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'Л', 'Ё', 'Ж', 'З', 'И', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'В', 'Г', 'Д', 'А', 'Ё', 'Ж', 'З', 'И'],
['Й', 'К', 'Е', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Й', 'К', 'Е', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш'],
['Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'Т', 'Т', 'Д', 'Е', 'Ё', 'Ж', 'З', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'А', 'Б', 'Т', 'Т', 'Д', 'Е', 'Ё', 'Ж', 'З'],
['Л', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Л', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч']
]
# Запускаем решение с заданными параметрами и таблицей
solve_password_with_table(5, 6, letter_table)
Видим, что нам подходят а = 18 и b = 13, так как это единственная строчка с осмысленным текстом «КЛАССИФИКАЦИЯ».