Помогите с расшифровкой
Получил задание, не могу осмыслить его вообще, помогите с решением или дайте подобное, чтоб было на что ссылаться при решение.
Перехвачено сообщение "WUXHURWZXQR XYUEXU! JHALGQGJ?",
которое зашифровано аффинным преобразованием векторов ( х / у ) в 841-буквенном алфавите.
Здесь числовыми эквивалентами биграмм являются числа х=29х1+х2, где х1 – эквивалент первой и х2 – эквивалент второй букв биграммы.
Таким образом, каждый блок из четырех букв дает столбец ( х / у ): две первые буквы дают целое число Х, а две другие дают у.
Известно также, что последние 12 букв приведенного выше шифртекста отвечают подписи "HEADQUARTERS".
а) Найте дешифрующее преобразование и прочитать сообщение
б) Найти шифрующее преобразование и построить шифрованое сообщение от имени штаба следующего содержания: слова "CANCEL LAST ORDER!" после двух пробелов сопровождаются подписью "HEADQUARTERS"
комментариев: 98 документов: 8 редакций: 10
Сопоставим открытый и шифртекст и запишем систему уравнений.
6 уравнений 6 неизвестных. Решаем. Получаем ключ – A и b.
Для корректного решения надо знать алфавит.
Например такой
А может быть другой порядок. Это должны были дать в условии лабораторной работы :)
Если же не дали, ну что ж – можно предположить что A.. Z оставлены в алфавитном порядке, тогда 4! = 24 варианта перестановки.
Не мог бы ты помочь с этим? Т. е. расшифровать и послать зашифрованное сообщение ?
комментариев: 98 документов: 8 редакций: 10
комментариев: 9796 документов: 488 редакций: 5664
Вот что я попытался сделать, Может это Вам поможет.
Всего в английском алфавите 26 букв + здесь ещё встречается пробел_, "?" и "!", вместе получается 29.
Итого как раз 29^2=841 биграмм,
Сначала надо пронумеровать буквы (от нуля до 25 или от 1 до 26?) плюс ещё три знака следуют в неизвестном порядке,
{a...z, ?, !, _} => {0...25,26,27,28}
Номера букв попарно сначала кодируются выражением P=29*x1+x2(mod841), чтобы преобразовать в 841-значный алфавит.
А вот само число уже шифруется при помощи афинного преобразования C=a*P+b(mod841)
Где P – открытый текст, C – шифртекст (всё в виде чисел-биграмм), a и b – коэффициенты, задающие ключ,
Хотя может я именно здесь чего-то не понял: что значит (x/y) и какие-то столбцы?
Возьмём пару открытых и шифртекстов. Там где есть слово HEADQUARTERS, но нет пробела, "?" и "!", поскольку порядок их кодирования неизвестен и его надо будет подбирать дальше,
Закодируем шифртекст LG=11*29+6=325 и закодируем соответствующий ему открытый текст AR=0*29+17
Аналогично шифртекст QG=16*29+6=470 соответствует открытому тексту TE=19*29+4=555
Имеем два соотношения:
470=a*555+b(mod841)
325=a*17+b(mod841)
Вычтем одно из другого, чтобы убрать коэффициент b:
145=538*a(mod841)
a=538(^-1)*145(mod841)
Чтобы посчитать мультипликативное обратное нужно использовать расширенный алгоритм Евклида, Считать табличкой-столбиками вручную довольно муторно, возьмём готовую web-форму здесь
Получаем:
a=136*145(mod841)
a=377
Подставим a в первое соотношение:
470=377*555+b(mod841)
470=667+b(mod841)
b=644(mod841)
Значит шифртекст должен бы получаться по формуле: C=377P+644(mod841)
Этого было бы достаточно, чтобы подделывать сообщения "от имени штаба",
Чтобы всё расшифровать надо вывести формулу для открытого текста:
P=377(^-1)(C-644)(mod841)
P=9C-5796(mod841)
P=9C+91(mod841)
Вот только увы и ах, ничего из этого не работает.
Если взять ещё одну биграмму для открытого и шифртекста:
C: HA=7*29+0 P: QU=16*29+20=484, то к ней уже полученная формула неприменима,
Если нумеровать буквы не с нуля, а с единицы, то тоже ничего не выходит,
Дальше честно говоря, нету времени этим заниматься, может кто-то другой найдёт, где я накосячил, поэтому
пока отсылаю вас читать Ed Schaefer "An introduction to cryptography". Принцип решения я попытался взять оттуда, может у вас лучше получиться,
комментариев: 11558 документов: 1036 редакций: 4118
DooDlez, Вы не на ГРУ или СВР работаете? :-)
Я могу отплатить web-money, правда у студента там не очень густо денег, но все же :)