|
40. Допустим, что вы шифровальщик-любитель и хотите прочесть какой-либо текст на английском языке, чтобы определить частоту, с которой встречается каждый символ. Напишите программу, которая считывает текст и выдает на дечать вычисленные частоты появления каждой из 26 букв английского алфавита и пробела. В английском языке наиболее распространены буквы ЕТОАМЩБН, указанные здесь в порядке убывания частот их появления. Сравните полученные вами результаты с приведенной здесь последовательностью букв.
41. ЭВМ представляет собой идеальное устройство для кодирования и декодирования секретных сообщений. Напишите программу, выполняющую эти действия с использованием следующих алгоритмов:
а) цезаревской подстановки, при которой буква А заменяется буквой С, буква В заменяется буквой О, буква С заменяется буквой Е и т. д.;
б) транспозиции по типу "частокола", состоящей в том, что выбираются 1, 4, 7-й и т. д. символы и располагаются единой группой; за ними помещаются символы 2, 5, 8-й и т. д.; затем идут символы 3, б, 9-й и т. д.;
в) метода Гронсфельда, основанного на использовании некоторого цифрового ключа и модификации обычной цезаревской системы. Так, например, применяя в качестве ключа число 31206, можно получить шифрограмму слова ПРОГРАММИРОВАНИЕ следующим образом:
Ключ 31206 31206 31206 3
Шифрируемый текст ПРОГР АММИР ОВАНИ Е
Шифр ТСРГЦ ГНОИЦ СГВНО 3
Для того чтобы зашифровать букву П с использованием цифры 3, отсчитывается третья по порядку после П буква алфавита Т и подставляется вместо буквы П; шифрирование буквы Р с помощью цифры 1 выполняется посредством отсчета одной буквы после Р и подстановки ее вместо Р. Для того чтобы дешифрировать полученный набор символов, достаточно вести отсчет букв в обратном направлении. Очевидны преимущества этого метода по сравнению с цезаревской подстановкой: во-первых, для каждой буквы возможны 10 разных замен (0—9), а не одна и, во-вторых, труднее подобрать ключ для дешифрирования;
г) транслитерации, при которой для перемешивания символов сообщения используются прямоугольные матрицы. Например, можно вписать алфавит в прямоугольник, расположив буквы следующим образом:
1 А Д 3 Л П У Ч Ы Я 2БЕИМРФШЬ
3 ВЁЙНСХЩЭ
4 ГЖКОТЦЪЮ
Шифрирование осуществляется путем последовательной выборки элементов из строк матрицы в определенном порядке. Например, если выбираются элементы строк 2, 4, 3, 1, получается следующее зашифрованное сообщение:
БЕИМР ФШЬГЖ КОТЦЪ ЮВЁЙН СХЩЭА ДЗЛПУ ЧЫЯ
;
Ключом в данном случае являются размеры прямоугольника и порядок перестановки строк. Напишите программу для кодирования и декодирования сообщений этим методом.
⇐6.3. Графические задачи || Оглавление || 6.5. Задача на формирование последовательностей символов⇒
|