Командные задачи.

Задача № 1.

Мы перехватили две одинаковые по размеру последовательности чисел:

49 7968 3813 9965

41 529 211 552

 

Между ними передавался странный сигнал «- - - -», его смысл так и не удалось установить, только имея обе последовательности можно расшифровать слово. Ваша задача сделать это.

Подсказка:

 

 

 

Идея: цепные дроби, каждая даёт по три буквы.

Решение:

 

2.png

 

Берём числители из первой строки и знаменатели из второй, затем представляем все в виде цепных дробей.

Аналогично:

3.png

Новая последовательность: 15 8 15 16 33 18 14 15 18 19 29. Подставляем значения из алфавита, получаем ответ – «БЕЗОПАСНОСТЬ»

 

Задача № 2.

Секретный агент «004», мастер в своем деле, умеет быстро преобразовывать читаемый текст в нечитаемый. Нам точно известно, что он меняет буквы местами, таким образом, чтобы последовательность легко читалась по некоторому правилу. Расшифруйте его сообщение, в котором указанно кодовое слово к его банковской ячейке.

ювлвиатычлсунаисоеипэулеатешвионккоозоарлареведш

Подсказка:

Псевдоним агента - «Иосиф Флавий»

Идея: по цепочке выписывать каждую четвёртую букву и получить предложение.

Решение:

Зашифрованное сообщение является перестановкой исходного. Исходное легко получается выписыванием (и последующим вычеркиванием при подсчете) каждой четвёртой буквы зашифрованного сообщения. Получим текст «вы успешно решили это задание ключевое слово клавиатура» (без пробелов).

 

Задача № 3.

Вы получили этот набор слов, хранящий в себе пароль. Человек, который до Вас пытался найти его, считает, что здесь необходим этот словарь. Срочно найдите пароль. Приложение – любой словарь.

Заря Эпидемия Пароль Ангар Спор Собака Изобретение Золото Холод Эйфория Лечение Лето Огонь Удочка

Подсказка:
Какой-то странный тип рекомендовал Вам этот словарь, стоит ли ему доверять?

Идея: первые буквы дают английское предложение.

Решение:

Словарь лишний. Просто внимательно смотрим на первые буквы слов и читаем «the pass is hello»

Задача № 4.

Араб придумал легкий способ скрывать свою переписку. Ещё ни один не смог расшифровать его сообщения, Вам предстоит великая честь сделать это. Вот одно из его посланий:

631 221 221 901 49 28 47 27 55 43 52

Подсказка:

Арабы читают справа налево.

Идея: написать всё зеркально, потом вычитать предыдущее число, разности дают ответ.

Решение:

Выписываем последовательность зеркально: 25 34 55 72 74 82 94 109 122 122 136. Первое число оставляем как есть, а из каждого последующего вычитаем предыдущее. Получаем новую последовательность: 25 9 21 17 2 8 12 15 13 0 14. Подставляем значения из алфавита, получаем ответ – «ШИФРВЗЛОМАН»

Задача № 5.

Вы вошли в дом, и ваше внимание сразу привлекла эта шахматная партия. Хозяин дома - известный шахматист, очень любит алгебру и умеет при помощи шахматной доски шифровать слова. Найдите зашифрованное слово.

 

 

 

Подсказка:

Нам стало известно, что на доске находится некая алгебраическая задача, решение которой и позволит расшифровать слово.

Идея: решить систему уравнений. Коэффициенты – фигуры, их значения: [-6:6] (шкала под доской, например: чёрный король = -6, белый конь = 2, пустая клетка = 0); свободные члены 8-1, написаны справа/слева; неизвестные = a,bh, написаны снизу/сверху. Таким образом, каждая строка – есть уравнение с восьми неизвестными, и всего их 8 (Но большое количество пустых клеток упрощает вычисления ).

Решение:

Необходимо лишь заметить и решить систему уравнений. a-h – неизвестные, шахматные фигуры – коэффициенты, [-6..6] (шкала под доской).

23.png

Берём корни по модулю 33, получаем последовательность 9 14 19 5 17 14 5 19, подставляем значения из алфавита, получаем ответ - «ИНТЕРНЕТ».

Задачи индивидуальные.

Задача № 1.

Очень простой и известный шифр.

AABABBAAAAAAABABABAAABABAAABAAABAAABAAAAAA

Подсказка:

AAAAAA – “A

Идея: Шифр Бэкона. Разделить по 6 и найти значения.

Решение:

Шифр Бэкона. Делим последовательность на шестёрки и находим значения. Удобно сделать замену

«А»-«0», «В»-«1» и перевести полученное двоичное число в десятичную систему.

AABABB=>0010112=11

AAAAAA=>0000002=0

ABABAB=>0101012=21

AAABAB=>0001012=5

AAABAA=>0001002=4

ABAAAB=>0100012=17

AAAAAA=>0000002=0

Получили 11 0 21 5 4 17 0, или «КАФЕДРА».

Задача № 2.

Мы уже расшифровали сообщение от агента Васи Пупкина, осталось получить текст. Как же это сделать?

672135633

Подсказка:

Все что тут нужно это алфавит, калькулятор да модуль…

Идея: разложить по основанию 33, подставить коэффициенты.

Решение:

Необходимо разложить число по основанию 33.

672135633=17*335+5*334+25*333+5*332+14*33+15. Подставляем числа 17 5 25 5 14 15 из алфавита – «РЕШЕНО»

 

Задача № 3.

Вы перехватили вражеский алгоритм шифрования, вам даже известен ключ. Шифртекст - 'АЛТРЖВЕОНЧМ' , ключ - 'КЛЮЧИК'. что же зашифровано??

function shifr(a,b):

text=a

key=b

alf=['А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я'] # 0..32

alf+=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] # 33..58

alf+=['.',',','!',' ','?'] # 59..63

i=0

while length(key)<length(text):

key+=key[i]

i+=1

newtext=''

for i in 0..length(text)-1:

if alf.index(text[i])==-1 or alf.index(key[i])==-1:

return 'ERROR, bad symbol'

newtext+=alf[alf.index(text[i])^alf.index(key[i])]

return newtext

Подсказка:

Чудесное свойство XOR: a^b= с => b^c=a

Идея: xor-шифрование, шифрующая и дешифрующая функции совпадают.

Решение:

По свойству XOR, для решения задачи, необходимо «зашифровать» текст - 'АЛТРЖВЕОНЧМ' , ключом - 'КЛЮЧИК' и мы получим исходный текст.

В процессе «удлинения» ключа получим «КЛЮЧИККЛЮЧИ», потом проводим операцию XOR для числовых значений букв текста и ключа.

А^К=0^11=11=К

Л^Л=12^12=0=А

Т^Ю=19^31=12=Л

Р^Ч=17^24=9=И

Ж^И=7^9=14=Н

В^К=2^11=3=И

Е^К=5^11=14=Н

О^Л=15^12=3=Г

Н^Ю=14^31=17=Р

Ч^Ч=24^24=0=А

М^И=13^9=4=Д

Исходный текст – «КАЛИНИНГРАД»

Задача № 4.

Странное послание. Известно, что буквы исходного сообщения представляются двумя буквами в зашифрованном сообщении. Как это получается вам и предстоит установить. Расшифруйте слово.

ФШЙЦЭЁОЪЯА

Подсказка:

В этом шифровании, одинаковые буквы могут быть представлены разными парами букв.

Идея: выписать значения из алфавита, сложить по парам и взять модуль.

Решение:

Выписываем числовые значения букв и делим их по парам: 21 25, 10 23, 30 6, 15 27, 33 0. Складываем числа в каждой паре и результат берём по модулю 33. Получим 13 0 3 9 32. Подставляем значения из алфавита – «МАГИЯ»

Задача № 5.

Разведчик узнал, какой предмет используют наши конкуренты. Этот прибор ускорил бы наши исследования. Чтобы не привлекать внимания, разведчик зашифровал его название на шахматной доске...

Подсказка:

Цвет и вес фигур не имеют значения

Идея: подсчитать суммы по горизонтали, числа [1-8], фигура означает наличие цифры, получить ответ.

Решение:

Меняем буквы a-h на числа 1-8 и ищем суммы чисел в каждой строке (фигура означает наличие цифры). Получаем числа (снизу вверх): 19 5 12 5 18 11 15 16, берём значения из алфавита – «ТЕЛЕСКОП»

 

Глоссарий.

Цепная дробь (или непрерывная дробь) — это математическое выражение вида

 

где a0 есть целое число и все остальные an натуральные числа (то есть неотрицательные целые). Любое вещественное число можно представить в виде цепной дроби (конечной или бесконечной).

Перестановка — это упорядоченный набор чисел обычно трактуемый как биекция на множестве , которая числу i ставит соответствие i-й элемент из набора. Число n при этом называется порядком перестановки.

Система m линейных уравнений с n неизвестными (или, линейная система) в линейной алгебре — это система уравнений вида:

 

 

 

Здесь x1, x2, …, xn — неизвестные, которые надо определить. a11, a12, …, amn — коэффициенты системы — и b1, b2, … bm — свободные члены — предполагаются известными.

Шифр Бэкона — метод стеганографии (метод сокрытия секретного сообщения, в отличие от истинного шифра) придуманный Френсисом Бэконом. Сообщение содержится в представлении текста, а не его содержании.

XOR, «сложение по модулю 2» — булева функция и логическая операция. Результат выполнения операции является истинным только при условии, если является истинным в точности один из аргументов.

Пример:

а = 011001012

b = 001010012

a^b = 010011002