Задача № 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.
Мы уже расшифровали сообщение от агента Васи Пупкина, осталось получить текст. Как же это сделать?
Подсказка:
Все что тут нужно это алфавит, калькулятор да модуль…
Идея: разложить по основанию 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, берём значения из алфавита – «ТЕЛЕСКОП»