6.4. Криптографические задачи

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. Задача на формирование последовательностей символов


Услуги