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

Двухблочный шифратор

Для зашифрования сообщения на русском языке, знаки препинания в котором опущены, а слова отделены друг от друга знаком пробела (-), используется двухблочный шифратор. Первый блок шифратора заменяет буквы сообщения и пробелы (-) на числа в соответствии с таблицей, построенной на основе ключевого слова. Сначала записывается ключевое слово, потом знак пробела (-), потом остальной алфавит в естественном порядке за исключением букв, входящих в ключевое слово (при этом считается, что Е=Ё). Например, если ключевое слово привет, то первый блок будет осуществлять замену в соответствии со следующей таблицей: 
cr17_11.4_usl1.png
 Второй блок получает на входе числа из первого блока и осуществляет усложнение шифрованного сообщения по следующему правилу. Первое число он оставляет без изменений, а к каждому следующему прибавляет число, равное произведению числа 33 и остатка от деления на три предыдущего числа. Слово тайное на предложенном ключе будет зашифровано в сообщение 5 73 46 50 84 4 (см. таблицу). Прочитайте сообщение, зашифрованное этим шифратором на другом ключе, если известно, что в сообщении встречается слово здесь: 30 5 84 6 16 51 10 42 5 72 19 51 14 66 11 66 5 95 70 65 72 4 38 86 66 17 83 94 49 39 17 84 6 17 84 24 29 97 39 11 74 75 4 62 72 1 37 42 6 14 84 25 47 78 6 4 42 20 94
cr17_11.4_usl2.png