Сравнительный анализ шифров замены с элементами
Сравнительный анализ выбранных шифров по трудоемкости и криптостойкости. Анализ алгоритма шифра Порта. Разработка общего интерфейса комплекса программ. Построение гистограмм открытого и зашифрованных текстов, диаграмм символов, биграмм и триграмм.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 23.12.2018 |
Размер файла | 4,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Национальный исследовательский университет “МИЭТ”
Факультет “Микроприборы и техническая кибернетика”
Кафедра “Информационная безопасность” (ИБ)
КУРСОВАЯ РАБОТА
по дисциплине “Криптографические методы защиты информации”
Тема: “Сравнительный анализ шифров замены с элементами
криптоанализа”
2018 г.
РЕФЕРАТ
Курсовая работа: 50 c., 2 табл., 17 рис., 7 прил., 8 источников.
Ключевые слова: шифр, блочные, биграмма, замена, Порта, Плейфер, криптоанализ, гистограмма, код.
Объект исследования - блочные биграммные шифры Порта и Плейфера.
Цель работы - на основе результатов шифрования литературного текста выбранными шифрами и исследования способов их криптоанализа провести сравнительный анализ выбранных шифров по трудоемкости и криптостойкости и дать рекомендации по их применению для защиты информации.
Метод исследования - разработка программ шифрования для выбранных шифров и сравнение результатов шифрования, а также поиск информации в открытых источниках.
Результаты - разработаны и протестированы программы выбранных шифров, с помощью их зашифрован и расшифрован отрывок литературного текста, проведен криптоанализ гистограммы встречаемости отдельных символов, биграмм и триграмм исходного и шифрованных текстов.
- СОДЕРЖАНИЕ
- РЕФЕРАТ
- ВВЕДЕНИЕ
- Глава 1. Разработка программного комплекса для проведения сравнительного анализа шифров
- 1.1 Выбор блочных шифров для проведения анализа
- 1.1.1 Определение места в классификационной схеме
- 1.1.2 Определение криптографических задач, решаемых с помощью выбранных шифров
- 1.2 Анализ алгоритма шифра Порта, построение блок-схемы алгоритма шифра и программы шифрования
- 1.3 Анализ алгоритма шифра Плейфера, построение блок-схемы алгоритма шифра и программы шифрования
- 1.4 Разработка общего интерфейса комплекса программ шифрования шифров. Описание формата ввода данных
1.5 Тестирование разработанного программного комплекса блочных шифров по текстам ручного шифрования
1.6 Выводы по главе
Глава 2. Сравнительный анализ блочных шифров по результатам шифрования и криптоанализа зашифрованных текстов
- 2.1 Шифрование с помощью разработанного программного комплекса шифров замены литературного текста
- 2.2. Построение гистограмм открытого и зашифрованных текстов, диаграмм символов, биграмм и триграмм
- 2.2.1 Криптоанализ шифртекста, полученного с помощью шифра Порта. Разработка алгоритма. Оценка криптоанализа по сложности и трудоемкости
- 2.2.2 Криптоанализ шифртекста, полученного с помощью шифра Плейфера. Разработка алгоритма криптоанализа. Оценка криптоанализа по сложности и трудоемкости
- 2.3 Сравнительный анализ криптостойкости шифров Порта и Плейфера по полученным оценкам и трудоемкости процедуры криптоанализа
2.4 Рекомендации по применению выбранных шифров для защиты информации
2.5 Выводы по Главе 2
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- ПРИЛОЖЕНИЯ
- Приложение А. Классификационная схема шифров
- Приложение Б. Блок схема шифра Порта
- Приложение В. Блок схема шифра Плейфера
- Приложение Г. Код программы шифрования шифра Порта
- Приложение Д. Код программы шифрования шифра Плейфера
Приложение Е. Дерево развития криптографии
Приложение Ж. Таблица замен шифра Порта
шифр криптостойкость интерфейс текст
ВВЕДЕНИЕ
В современном мире информация играет большую роль в жизни общества. Владелец информации при верном, рациональном подходе к ее использованию может получить существенную выгоду, увеличить свое влияние в какой-либо сфере. Из этого можно сделать вывод: проблема защиты информации сейчас актуальна как никогда ранее. Важное место в этом занимает криптография.
Криптография - область научных, прикладных, инженерно-технических исследований и практической деятельности, направленных на разработку средств криптографической защиты информации от несанкционированных пользователей [1]. Возникла эта наука еще в глубокой древности для защиты коммерческой и государственной тайны. Можно выделить основные задачи криптографии: обеспечение конфиденциальности, целостности информации, обеспечение аутентификации, невозможности отказа от авторства или приписывания авторства и неотслеживаемости.
Основные понятия криптографии - шифрование и расшифрование. Между этими понятиями очевидна разница: при шифровании открытый текст по определенным правилам преобразуют в шифрованный текст (шифртекст), при расшифровании получают открытый текст из шифрованного. Сам шифр - это семейство обратимых отображений множества последовательностей блоков открытых текстов (сообщений) в множество последовательностей блоков шифрованных текстов (сообщении) и обратно, задаваемых функцией шифрования [2].
В курсовой работе рассмотрены шифры блочной (биграммной) замены, разработан программный комплекс для проведения сравнительного анализа шифров, проведено сравнение выбранных шифров на основе шифрования и криптоанализа зашифрованных шифров.
Выбранные шифры:
а) шифр Порта: шифр блочной (биграммной) многозначной замены, используется таблица 32x32, заполненная числами от 1 до 1024;
б) шифр Плейфера: шифр блочной (биграммной) многозначной замены, используется таблица 5х6, заполненная по строкам лозунговым словом (ключом) без повторяющихся букв и буквами русского алфавита, не содержащихся в выбранном слове.
Общими целями данной работы являются развитие способности применять математический аппарат, программные средства для решения профессиональных задач и ознакомление с основами науки криптографии.
Для достижения поставленных целей в данной работе решаются следующие задачи:
а) обучение студентов самостоятельному применению полученных знаний для решения конкретных практических задач защиты информации криптографическими методами;
б) развитие навыков подбора, изучения и обобщения научно-технической литературы, нормативных и методических материалов по криптографическим способам и средствам защиты информации на объектах информатизации;
в) овладение методами криптоанализа используемых шифров;
г) привитие навыков проведения аналитического обоснования при выборе метода криптографической защиты;
д) овладение методами анализа частотных характеристик открытого текста и результатов шифрования;
е) привитие навыков использования типовых криптографических алгоритмов, применения отечественных и зарубежных стандартов в области криптографических методов компьютерной безопасности для проектирования, разработки и оценки защищенности компьютерных систем;
ж) выработка и закрепление навыков грамотного технического изложения результатов работы и их защиты перед комиссией.
В данной работе проведен анализ двух шифров блочной замены. Для этого определено место шифров в классификационной системе, созданы работающие программы шифрования, с помощью которых зашифровано открытое сообщение длиной не менее 1000 символов и сравнены результаты шифрования с помощью гистограммного анализа.
- Глава 1. Разработка программного комплекса для проведения сравнительного анализа шифров
- 1.1 Выбор блочных шифров для проведения анализа
1.1.1 Определение места в классификационной схеме
Сама классификационная схема приведена в Приложении А. Все шифры замены можно разделить на симметричные и асимметричные. Остановимся на симметричных шифрсистемах. Их отличительная особенность - это возможность легко найти второй ключ шифрования, зная первый (чаще всего эти ключи совпадают). Симметричные шифры подразделяются на поточные и блочные: поточные зашифровывают открытые сообщения по символам, блочные же зашифровывают текст сразу по несколько символов фиксированной длины.
Также существует разделение шифров замены однозначной и многозначной замены. Они отличаются количеством шифрозамен для отдельных символов исходного алфавита (соответственно их число равно одному в первом случае и больше одного во втором).
В данной работе для дальнейшего анализа были взяты шифры Порта и Плейфера. Оба они относятся как к симметричным блочным шифрам многозначной замены. Здесь они рассмотрены как шифры биграммной замены.
Такие шифры возникли еще в Средние века, так как требовались более сложные алгоритмы шифрования сообщений. Они должны были обладать более высокой криптостойкостью по сравнению с известными поточными шифрами. Первое описание биграммного шифра привел итальянец Д. Порта в 1563 году в книге “О тайной переписке”. Такой шифр является симметричным блочным шифром многозначной замены. Однако, несмотря на более высокую надежность по сравнению с уже использовавшимися, блочные шифры начали применяться только в XIX веке. Один из таких шифров - шифр Плейфера, вариации которого применялись англичанами даже во время Первой мировой войны. С местом данных шифров в истории развития криптографии можно ознакомиться в Приложении Е. В классификационной схеме его место совпадает с шифром Порта.
1.1.2 Определение криптографических задач, решаемых с помощью выбранных шифров
Всего существует несколько криптографических задач [1]:
а) обеспечение конфиденциальности - это решение проблемы защиты информации от ознакомления с ее содержанием со стороны лиц, не имеющих права доступа к ней;
б) обеспечение целостности - это гарантирование невозможности несанкционированного изменения информации;
в) обеспечение аутентификации - это разработка методов подтверждения подлинности сторон и самой информации в процессе информационного взаимодействия (при этом информация, передаваемая по каналу связи, может быть аутентифицирована по источнику, времени создания, содержанию данных, времени пересылки и т.д.);
г) обеспечение невозможности отказа от авторства или приписывания авторства - это предотвращение возможности отказа субъектов от некоторых изсовершенных ими действий;
д) обеспечение неотслеживаемости - это предотвращение возможности получения противником или нарушителем сведений о действиях участников информационного обмена.
Выбранные шифры решают задачу обеспечения конфиденциальности, ведь с их помощью можно защитить информацию от ознакомления с ее содержимым посторонних лиц. Однако шифры не позволяют провести аутентификацию, поэтому с их помощью решить данную проблему невозможно. Также они не вносят избыточности, поэтому не обеспечивают целостность информации. Не относятся к средствам обеспечения невозможности отказа от авторства (это не функции хэширования) и неотслеживаемости.
- 1.2 Анализ алгоритма шифра Порта, построение блок-схемы алгоритма шифра и программы шифрования
При зашифрования открытого сообщения шифром Порта использовалась таблица замены размером 32х32. При этом в крайней верхней строке и крайнем левом столбце записывается алфавит, в котором отсутствует буква Ё. В ячейках таблицы могут быть записаны любые числа, буквы или символы. В работе в ячейки были помещены числа от 0001 до 1024, которые заполняют таблицу по строкам.
Само шифрование выполняется парами букв исходного сообщения. Первая буква пары указывает на строку шифрозамены, вторая - на столбец. В случае нечетного количества букв в исходном сообщении, к нему добавляется вспомогательный символ - буква Ф.
Блок-схема алгоритма шифрования открытого сообщения шифром Порта находится в Приложении Б.
1.3 Анализ алгоритма шифра Плейфера, построение блок-схемы алгоритма шифра и программы шифрования
Алгоритм заключается в том, что открытый текст разделяется на пары букв - биграммы, после чего каждая пара по определенному правилу заменяется на пару букв, взятых из таблицы. При этом пара букв, состоящая из одной и той же буквы, должна быть разделена буквой Ф. Этой же буквой необходимо дополнить открытый текст в том случае, если количество букв будет нечетным.
В шифре для английского алфавита применяется таблица, основанная на лозунговом способе заполнения, размером 5x5 с паролем Playfair. Для русского алфавита используется таблица размера 5х6. Заполнена она по строкам алфавитом, где отсутствуют буквы Ё, Й, Ъ. В качестве пароля можно использовать любое слово, в котором нет повторяющихся букв. Таблицы заполняется по строкам, после ключевого слова в них помещаются буквы алфавита, отсутствующие в ключе.
Теперь рассмотрим правила зашифрования с помощью данной таблицы [1]:
а) если буквы входной биграммы оказались в разных столбцах и строках таблицы, то рисуется воображаемый прямоугольник, а шифрованная биграмма - это его противоположные вершины.
б) если буквы входной биграммы оказались в одном столбце таблицы, то в шифртекст записываются буквы, находящиеся под ними, то есть в соответствующих ячейках следующей строки;
в) если при этом одна из пары букв открытого текста окажется в нижней строке столбца, то в шифртексте эта буква должна быть заменена на букву, находящуюся в верхней строке этого столбца (это правило аналогично, если одна из пары букв открытого текста окажется в крайнем правом столбце строки);
г) если обе буквы какой-либо группы открытого текста находятся в одной строке таблицы, то в криптограмму записываются буквы, находящиеся справа от них, то есть в соответствующих ячейках следующего столбца (шифрование осуществляется слева направо, а дешифрование - наоборот).
Для дешифрования такого сообщения получатель сначала должен с помощью известного ему правила или пароля составить таблицу, а затем, используя указанные выше правила, заменить пары или группы букв криптограммы на соответствующие им пары или группы букв открытого текста.
Блок-схема алгоритма шифрования открытого сообщения шифром Плейфера содержится в Приложении В.
1.4 Разработка общего интерфейса комплекса программ шифрования шифров. Описание формата ввода данных
Для написания программ шифрования был выбран язык С++, который является достаточно удобным и простым в изучении. Реализованы шифры Порта и Плейфера в среде Microsoft Visual Studio 2017.
На основе алгоритмов шифров Порта и Плейфера, описанных выше, был написан скрипт программ шифрования.
Описание работы программы для шифра Порта:
а) В текстовый документ “текст.txt” пользователь вводит исходный открытый текст без знаков препинания.
Рисунок 1 - Ввод текста в файл “текст.txt”.
б) Пользователь запускает скрипт шифрования (содержится в Приложении Г). Программа, если количество букв нечетное, добавляет в конец сообщения букву Ф для разделения открытого текста на биграммы.
в) В файл “зашифрованныйтекст.txt” записывается уже зашифрованное сообщение.
Рисунок 2 - Запись шифртекста в файл “зашифрованныйтекст.txt”.
Описание работы программы для шифра Плейфера:
а) В скрипт программы пользователь вводит исходный открытый текст без знаков препинания, ключ (лозунговое слово) и новый алфавит, содержащий лозунговое слово, которым и будет заполнена матрица замены.
Рисунок 3 - Ввод данных в скрипт шифра Плейфера
б) Пользователь запускает скрипт шифрования (содержится в Приложении Д). Алгоритм программы, если количество букв нечетное, добавляет в конец сообщения букву Ф для разделения открытого текста на биграммы, также он заменяет букву Й на И, Ь на Ъ, Ё на Е, между повторяющимися буквами в биграммах добавляет букву Ф.
в) В файл “зашифрованныйтекст.txt” записывается уже зашифрованное сообщение.
Рисунок 4 - Запись шифртекста в файл “зашифрованныйтекст.txt”.
1.5 Тестирование разработанного программного комплекса блочных шифров по текстам ручного шифрования
Протестируем выбранные шифры с помощью текста: “криптография”.
Сначала покажем, как происходит само зашифрование. Поделим это слово на биграммы: “кр - ип - то - гр - аф - ия”. Зашифруем это слово шифром Порта: 0337 0272 0591 0113 0021 0288.
При зашифровании использовали таблицу 1 (также помещена в Приложение).
Таблица 1 - Таблица замен, используемая в шифре Порта.
Затем зашифруем наше сообщение программно:
а) введем в файл “текст.txt” текст “криптография”.
Рисунок 5 - Ввод открытого сообщения в файл “текст.txt”.
б) запускаем скрипт шифрования;
в) получаем результат (рисунок 6).
Рисунок 6 - Сообщение, зашифрованное программно шифром Порта.
Зашифруем выбранное слово шифром Плейфера.
Используем лозунговое слово “ДЕМОКРАТИЯ”. В итоге получим таблицу замены (таблица 2).
Таблица 2 - Таблица для шифрования по алгоритму шифра Плейфера с лозунговым слово “ДЕМОКРАТИЯ”.
1 |
2 |
3 |
4 |
5 |
6 |
||
1 |
д |
е |
м |
о |
к |
р |
|
2 |
а |
т |
и |
я |
б |
в |
|
3 |
г |
ж |
з |
л |
н |
п |
|
4 |
с |
у |
ф |
х |
ц |
ч |
|
5 |
ш |
щ |
ь |
ы |
э |
ю |
Зашифровав открытый текст в соответствии с алгоритмом шифрования, который описан выше, получим сообщение: “рдвзя епдис яб”.
Затем зашифруем слово в разработанной программе шифрования:
а) введем в скрипт открытый текст “КРИПТОГРАФИЯ”, ключ “ДЕМОКРАТИЯ” и новый алфавит, которым заполняется таблица замены.
Рисунок 7 - Ввод открытого сообщения и ключа.
б) запускаем скрипт шифрования;
в) получаем результат (рисунок 8).
Рисунок 8 - Сообщение, зашифрованное программно шифром Порта.
Сравнив результаты, полученные вручную и программно, мы можем убедиться, что они совпадают. Следовательно, алгоритмы шифров Порта и Плейфера на программном уровне реализованы правильно.
1.6 Выводы по главе
- Были выбраны два шифра блочной биграммной замены - шифр Порта и шифр Плейфера. Определен исторический период их возникновения и место в классификационной схеме шифров. Сделан вывод о том, что данные шифры решают задачу обеспечения конфиденциальности.
- Описаны оба алгоритма шифрования, построены блок-схемы алгоритмов и на языке С++ написаны программы шифрования. Описан общий интерфейс комплекса программ шифрования, затем реализованные программно алгоритмы шифров были протестированы на слове “криптография”. Результаты шифрования вручную и программно совпали, следовательно, программы шифрования работают корректно.
Глава 2. Сравнительный анализ блочных шифров по результатам шифрования и криптоанализа зашифрованных текстов
2.1 Шифрование литературного текста с помощью разработанного программного комплекса шифров замены
Для анализа характеристик рассматриваемых шифров был взят отрывок из научно-популярной книги Р. Докинза “Эгоистичный ген”[3]:
Широко распространено неверное представление о том, что если такая машина, как управляемая ракета, была спроектирована и построена человеком, то все ее действия должны непосредственно контролироваться человеком. Другой вариант этой ошибки - утверждение, что "компьютеры на самом деле не играют в шахматы, потому что они могут делать только то, что им приказывает оператор". Нам важно понять, почему такие утверждения ошибочны, так как они оказывают влияние на наши представления о том, в "каком смысле можно говорить о контроле" над поведением со стороны генов. Игра компьютера в шахматы служит хорошим примером, так что я вкратце остановлюсь на нем. Компьютеры пока еще не играют в шахматы так хорошо, как гроссмейстеры, но они уже достигли уровня хороших любителей. Строго говоря, этого уровня достигли программы, потому что шахматной программе все равно, на каком конкретном компьютере она будет демонстрировать свои способности. В чем же заключается роль составителя программы? Прежде всего он ни в коем случае не манипулирует компьютером шаг за шагом, как кукольник, дергающий за веревочки. Это было бы просто жульничеством. Он пишет программу, закладывая ее в компьютер, после чего компьютер действует самостоятельно: человек больше не вмешивается, если не считать того, что противник вводит в машину свои ходы. Но, быть может, составитель программы предвидит все комбинации, которые возникают на шахматной доске, и снабжает компьютер длинным списком нужных ходов для каждого возможного случая? Безусловно, нет, потому что число возможных комбинаций в шахматной игре невероятно велико и такой список пришлось бы составлять до конца света.
Всего в данном тексте 1366 символов без пробелов и знаков препинания.
Стоит заметить, что перед тем, как зашифровать данный текст, из него были убраны пробелы и знаки препинания, заглавные буквы заменены строчными.
Шифрование текста шифром Порта осуществлялось в соответствии с вышеописанным алгоритмом (подпункт 1.2).
Зашифрованный текст:
0777 0527 0335 0513 0560 0527 0563 0513 0422 0431 0422 0070 0526 0454 0497 0165 0563 0003 0358 0425 0175 0591 0408 0591 0178 0361 0577 0321 0025 0270 0011 0011 0624 0513 0076 0998 0385 0011 0179 0002 0876 0018 0497 0454 0339 0273 0451 0014 0009 0495 0563 0527 0174 0024 0172 0451 0171 0461 0591 0082 0166 0165 0170 0563 0073 0997 0460 0206 0878 0176 0466 0518 0146 0579 0174 0431 0335 0435 0527 0361 0527 0065 0605 0576 0742 0367 0070 0335 0389 0532 0111 0291 0017 0257 0435 0947 0458 0473 0258 0329 0627 0070 0519 0134 0425 0184 0591 0335 0400 0927 0582 0540 0417 0545 0399 0389 0172 0174 0169 0113 0031 0579 0769 0685 0019 0880 0467 0461 0632 0591 0462 0269 0452 0627 0134 0353 0605 0591 0381 0335 0591 0755 0457 0400 0521 0321 0252 0065 0179 0464 0177 0019 0465 0417 0387 0007 0431 0495 0448 0605 0495 0742 0404 0577 0329 0180 0579 0177 0197 0174 0288 0473 0258 0472 0444 0577 0331 0011 0462 0271 0321 0252 0065 0979 0076 0288 0425 0174 0014 0025 0272 0518 0146 0577 0076 0174 0288 0467 0461 0075 0011 0461 0557 0882 0358 0399 0206 0452 0451 0465 0275 0911 0335 0435 0527 0358 0417 0144 0451 0165 0174 0262 0402 0466 0591 0527 0444 0102 0431 0073 0113 0011 0461 0509 0979 0177 0003 0769 0685 0019 0882 0372 0201 0598 0465 0473 0269 0497 0269 0177 0461 0577 0344 0591 0995 0337 0019 0710 0466 0577 0431 0076 0978 0910 0014 0173 0335 0400 0927 0582 0540 0495 0321 0186 0174 0169 0113 0031 0579 0769 0685 0019 0883 0011 0687 0527 0783 0321 0324 0527 0562 0390 0306 0582 0540 0431 0462 0276 0198 0143 0563 0260 0361 0625 0451 0448 0687 0527 0777 0684 0962 0275 0172 0170 0563 0527 0111 0111 0079 0544 0947 0452 0468 0527 0078 0997 0466 0585 0108 0272 0527 0113 0013 0412 0495 0591 0404 0755 0473 0022 0385 0590 0458 0497 0452 0513 0397 0163 0550 0513 0078 0462 0011 0011 0461 0335 0400 0927 0582 0518 0462 0002 0613 0179 0134 0399 0434 0593 0273 0451 0019 0914 0079 0274 0495 0559 0046 0466 0585 0088 0173 0198 0225 0332 0984 0006 0594 0460 0914 0466 0577 0073 0582 0384 0497 0452 0513 0397 0880 0518 0197 0163 0550 0111 0462 0425 0075 0454 0402 0372 0737 0174 0173 0014 0272 0620 0273 0614 0587 0461 0509 0979 0177 0461 0769 0104 0025 0004 0461 0321 0331 0619 0460 0910 0267 0134 0516 0031 0809 0296 0003 0177 0163 0472 0329 0947 0450 0876 0450 0880 0527 0563 0455 0620 0910 0280 0178 0579 0461 0462 0489 0774 0592 0527 0113 0013 0404 0225 0332 0005 0867 0032 0166 0075 0461 0509 0979 0177 0495 0556 0184 0164 0459 0461 0509 0979 0177 0134 0306 0579 0614 0594 0013 0466 0591 0172 0910 0472 0172 0451 0171 0047 0381 0774 0422 0077 0185 0259 0006 0594 0998 0556 0270 0178 0745 0577 0605 0591 0111 0755 0464 0527 0585 0078 0267 0067 0453 0275 0077 0025 0270 0626 0079 0278 0453 0878 0450 0883 0909 0455 0179 0559 0563 0003 0275 0172 0912 0527 0113 0013 0412 0497 0165 0073 0137 0579 0550 0335 0386 0270 0023 0265 0335 0591 0540 0163 0456 0425 0321 0979 0417 0769 0685 0019 0431 0293 0466 0326 0274 0417 0039 0006 0587 0461 0509 0979 0177 0140 0270 0444 0402 0489 0555 0461 0436 0206 0886 0687 0143 0069 0384 0321 0197 0452 0451 0456 0399 0206 0452 0466 0372 0737 0994 0168 0626 0367 0078 0462 0179 0495 0591 0404 0755 0472 0274 0367 0079 0237 0455 0444 0683 0461 0041 0417 0713 0291 0769 0685 0019 0431 0297 0113 0174 0163 0177 0480 0590 0451 0172 0267 0457 0577 0335 0306 0489 0559 0336 0521 0780 0466 0898 0882 0466 0577 0076 0901 0459 0462 0705 0547 0179 0043
Для шифрования шифром Плейфера использовался алгоритм, также описанный выше (подпункт 1.3). Было выбрано лозунговое слово: ДЕМОКРАТИЯ.
Зашифрованный текст:
ЪАДКР КДВЧГ ДКУАД ВЖКЛК ЖКТРК ПКМЧВ МЕУАТ АЖОЗБ МКЯЕР ФЯЕДУ ЗЯИТД БИОГД БЗБДБ ДЧЖДВ ЯПТОД ИВОБД ТЖТВО ХГШЧВ КМЕБВ МРЯБГ ТЯЛРУ АДККЖ ВСОЖР ЯМРКО ЯЕАЧМ УМУМЕ МТУАА ЯАОЯХ ЗПЭЛР ЖДХДМ АШИАК ЖЦЗКР КЛВЕЯ ХВМРЯ ТИШФВ ХОЖРЯ МРКОЕ ДСЖМЯ АТМВБ ГБЩЯЕ ЯМЪАН БТФИА МДГЕК ЖТМУВ КРКОЗ ЮЩВМД ЭЛГШИ ДКОЕМ ЖОЖКА ЗДВЩВ АЮЯСД ИЯЩЛР ЯЕЕФУ ВМХКЛ ЗИДЛЩ ЖЕМГЯ ИЩЯЕЗ ЫРКЯЕ УВМЯР ЗМВДБ ЛЪАТТ ЖРЛМД ТИКДГ БРИТГ ЛКЛРЛ БИЩЛР УРЕФИ ТМБТЩ ИАМДГ ЕКЖЯБ ДЫЯВР ХЛЭИТ МЦДБР КЗБКР ИГЮЯВ ШИАЗЯ БЛТМГ БГБЪА ЧВМЕУ АТАЖО ЗБЛЯЯ ЕРИДБ РКДФО ЪХГМО ЕЛЛКЛ ДЯРМВ ИЩКРК ЛВЕЯХ КЖГАЛ РТРЕМ ЗБМОХ ДУАКД КЛШЛК ЖРЯАЗ ДВРКР ЗЫШЖТ ДВАЮЯ СДИЯЩ ХГЩУЯ ИЫЯДК ЪАРЗМ ВОМДК ЕИБДУ ВЯЛБР ДВБУМ КУАБГ РЯПЫФ ШГБЖК ОРКОЗ ЮЩВМД ЮЛКРТ ДЕТЖК АЗДВЩ ВАЮЯС ДИЯЩИ ТОЦКД ДЫКРБ ДПДДХ ХУОМА ФЖТОЮ ЛКХМЗ БЩУМЕ ДХИЯЖ НТФДК БПЛЫК ДДЫЯФ ПЫВЯЖ ТЖОАФ ВЕДЛД ЛРЯКД БЫЯЕЛ ДЧЕРЯ ЛБЕКУ ААЗЗЯ ЧВДЛД ВИЪОЪ ЛРЯЕЕ ФУВДЫ ЯСДИБ ЖМЯЧВ ДЛДВИ ЪОМАЧ МДТАЛ КГБДБ РКОРК ОЗЮЩВ МДМКГ БТЦЕМ АЕМОК ЛУАМВ ДКАТИ ЩЧАМЯ ЧГДХК ЯЛКУА ЯАУРЕ ЗМЖБД ПЫСВТ ЖХАДК ЗЫХДУ АТАЯИ ОЖВЛД КПДИД ЪИЮЛД МГЕРТ УДЛДХ МЗЦЗБ БРКМД ФЖХСВ КЖМОБ ГВЗХЖ ВМЩТБ ЕКОЗЮ ЩВМДК ОДГЖЛ ГДГСК ОДБМЦ ЕЦРКЗ ЫЗБРЕ МДСГШ ЪЗЪЗФ ТАМДР ТРХМБ ЩБКЯО ХКЯЮЛ ДКУАЕ ЛХЖЭЗ ВФДУИ АКОКЛ ЗВЩДВ ЖДКПД ИДЪИФ ЖБДГЯ ОШАТТ ОУМБР КОЗЮЩ ВМДЛР ХГРУД ЖКРКО ЗЮЩВМ ДЕМАФ ИАЩТА УИДДХ ЯЕБИО ЖЭЗРХ ОЖРЯМ РЯКЗЫ ЩДЖКИ РДЩЯА ТДАУТ ОХГБЗ ДУФВИ ТИЩЯЕ ЛДУВР ЛДКИЯ БПБМИ ЧЯРМА ИАДИЪ АЖЦЧА МЯЫЯО ШЛКЯЭ ИЩОКУ ТАУДХ ИТАЯЖ ТЗЫЧВ ДЛДВИ ЪОЪЧВ МЕАЯМ АИАУД РККИБ ЗБСЗЪ БМЕЯК ДЩОЯР ЛПБМВ ШБЖГД ЯСДИБ ЖМЯЕК ЦДМТЦ ГТВГТ ТЖРКР ЗЫШЖТ ДЕЗЯЗ ЦЛЭДФ ЗВЦДК ОЖЦЗП ОЫХЦК ЕРЯОГ БОТГЕ КЛДЯР ФИЕЛЛ КЛДХГ ФСТБТ КЖФХГ РЯЛКЖ КВЖЕЯ КОФСЯ ЕФВХГ РЯМЛО КЗПОЫ РККИБ ЗБСЗЪ ЯАДГФ ОТИЛК ЗЪАЗД МЖКТР ДКБИЛ КТРЗЯ РКЯИБ ДМЯЧГ АФКРЧ ВАЪХЯ ФШЯЭХ ДУАТА ХЛИЩЕ КРКЦЭ ГШТРИ Т УЗ
2.2 Построение гистограмм открытого и зашифрованных текстов, диаграмм символов, биграмм и триграмм
На основе полученных результатов были построены диаграммы отдельных символов, биграмм и триграмм открытого текста (рисунки 9, 10, 11), шифра Порта (рисунки 12, 13, 14) и шифра Плейфера (рисунки 15, 16, 17).
Рисунок 9 - Диаграмма символов открытого текста
Рисунок 10 - Диаграмма символов шифра Порта
Рисунок 11 - Диаграмма символов шифра Плейфера
Рисунок 12 - Диаграмма биграмм открытого текста
Рисунок 13 - Диаграмма биграмм шифра Порта
Рисунок 14 - Диаграмма биграмм шифра Плейфера
Рисунок 15 - Диаграммы триграмм открытого текста
Рисунок 16 - Диаграммы триграмм шифра Порта
Рисунок 17 - Диаграммы триграмм шифра Плейфера
Отметим, что при сравнении шифров блочной замены необходимо учитывать специфику алгоритмов шифрования (шифр Порта дает числовые значения, а результат шифра Плейфера - биграммы, состоящие из букв русского алфавита).
Сравнив построенные диаграммы, можно сделать следующие выводы:
а) так как результат применения шифра Порта - численные значения, диаграммы встречаемости символов, биграмм и триграмм данного шифра сильно отличаются от соответствующих диаграмм открытого текста;
б) при шифровании текста шифром Порта хорошо заметны пики встречаемости символов, которые остаются также на построенных диаграммах биграмм и триграмм;
в) при шифровании открытого текста шифром Плейфера диаграммы встречаемости отдельных символов, биграмм и триграмм более равномерны, чем при использовании шифра Порта;
г) при использовании шифра Плейфера распределение шифртекста на диаграмме триграмм более близко к равномерному, чем на диаграммах отдельных символов и биграмм данного шифра.
2.2.1 Криптоанализ шифртекста, полученного с помощью шифра Порта. Оценка криптоанализа по сложности и трудоемкости
На всем протяжении истории при возникновении новых способов сокрытия информации появлялись и способы ее взлома.
Данный шифр может быть легко взломан с помощью частотного анализа, если имеется достаточно большой объем зашифрованного текста.
Уязвим он и в случае нахождения открытого и соответствующего ему шифртекста. Еще одним способом взлома является сопоставление частоты появления биграмм в шифртексте и открытых текстах языка, на котором написано зашифрованное сообщение.
2.2.2 Криптоанализ шифртекста, полученного с помощью шифра Плейфера. Оценка криптоанализа по сложности и трудоемкости
Так как оба выбранных шифра относятся к блочным биграммным шифрам многозначной замены, способы взлома данного шифра аналогичны методам, содержащимся в предыдущем пункте. Однако вследствие более высокой криптостойкости для шифра Плейфера существуют и более совершенные метода дешифрования.
Если известны открытый и шифрованный тексты, можно без особого труда найти ключ (таблицу замены). Если открытый текст неизвестен, данные шифр может быть легко взломан с помощью частотного анализа отдельных символов, если имеется достаточно большой объем зашифрованного текста. Применяется метод сравнения частоты появления биграмм и триграмм в известном зашифрованном тексте и в текстах языка, на котором написано сообщение.
Также еще один способ взлома данного шифра - нахождение инверсных биграмм зашифрованного текста и нахождение им соответствий в списке известных слов исходного текста. Данный способ основан на следующей уязвимости: биграмма шифра Плейфера и ее инверсия расшифровываются как другая биграмма и ее инверсия (например, если AB шифруется как XY, то BA шифруется как YX).
Для взлома шифра можно также использовать алгоритм имитации отжига. Он аналогичен алгоритму восхождения к вершине, основанному на матрице случайных чисел, которая с помощью различных простых преобразований максимально приближается к истинной матрице. Разница между подходами заключается в том, что при восхождении к вершине мы никогда не будем брать маловероятные варианты в качестве возможных решений. При использовании метода имитации отжига алгоритм поиска периодически откатывается назад к менее вероятным решениям. Это увеличивает шансы на успешное окончание дешифрования.
Кратко рассмотрим суть алгоритма [4]:
а) Выбирается случайная последовательность букв - основной ключ. Шифртекст дешифруется с помощью основного ключа. Для полученного дешифрованного текста вычисляется коэффициент, характеризующий вероятность принадлежности к языку, на котором написан нужный нам исходный текст. Для расчета коэффициентов, определяющих принадлежность текста к естественному языку лучше всего использовать частоты появления триграмм.
б) Основной ключ преобразуется каким-либо способом (например, перестановкой двух произвольно выбранных букв, перестановка столбцов или строк). Еще раз производится дешифрование и вычисление коэффициента полученного текста.
в) Если коэффициент выше значения, полученного ранее, основной ключ заменяется измененным вариантом.
г) в противном случае замена основного ключа на измененный происходит с вероятностью, зависящей от разницы коэффициентов основного и измененного ключей.
д) пункты б) - г) повторяются около 50 000 раз.
Алгоритм периодически замещает основной ключ ключом с худшими, менее вероятными, характеристиками. При этом вероятность замены зависит от разницы характеристик, что не позволяет алгоритму принимать плохие варианты слишком часто. Определить, что при шифровании текста использовался шифр Плейфера возможно по отсутствию повторяющихся букв в биграммах (алгоритм шифрования исключает получение таких комбинаций).
Данный шифр применялся во времена Первой мировой войны, тогда же он был и взломан. После этого применялся уже более сложный для криптоанализа шифр - шифр двух квадратов.
2.3 Сравнительный анализ криптостойкости шифров Порта и Плейфера по полученным оценкам и трудоемкости процедуры криптоанализа
Взятые шифры в классификационной системе занимают одно место - это блочные (биграммные) шифры многозначной замены. Поэтому для их криптоанализа используются примерно одни и те же методы (частотный анализ отдельных символов, биграмм и триграмм, анализ инверсных биграмм). Однако шифр Плейфера является более криптостойким из-за использования ключа (лозунгового слова) и алгоритма шифрования. Поэтому для его взлома часто используют еще и более сложные методы (алгоритм имитации отжига)
2.4 Рекомендации по применению выбранных шифров для защиты информации
Данные шифры более криптостойкие по сравнению с шифрами простой замены.
При криптоанализе шифров Порта и Плейфера используется частотный анализ символов, биграмм и триграмм. Также обращают внимание на особенности замены шифрвеличин на шифробозначения обоих шифров. Дешифрованию может помочь и знание применяемых алфавитов (в случае шифра Плейфера используется систематически смещенный алфавит).
Оба шифра использовались в прошлом и на сегодняшний день просты для дешифрования современными системами вычислительной техники. Поэтому их не рекомендуется применять для шифрования важной информации.
2.5 Выводы по Главе 2
В данной главе выбранный литературный текст был зашифрован блочными шифрами Порта и Плейфера. Для этого были написаны программы шифрования на языке C++. Построены диаграммы отдельных символов, биграмм и триграмм исходного текста и шифров, которые показали зависимость между встречаемостью символов, биграмм, триграмм в каком-либо тексте и их количеством. Результаты позволили сделать некоторые выводы по поводу криптостойкости выбранных шифров:
а) так как результат применения шифра Порта - численные значения, диаграммы встречаемости символов, биграмм и триграмм данного шифра сильно отличаются от соответствующих диаграмм открытого текста;
б) при шифровании текста шифром Порта хорошо заметны пики встречаемости символов, которые остаются также на построенных диаграммах биграмм и триграмм
в) при шифровании открытого текста шифром Плейфера диаграммы встречаемости отдельных символов, биграмм и триграмм более равномерны, чем при использовании шифра Порта;
г) при использовании шифра Плейфера распределение шифртекста на диаграмме триграмм более близко к равномерному, чем на диаграммах отдельных символов и биграмм данного шифра;
Также рассмотрены основные методы криптоанализа данных шифров (частотный анализ, нахождение открытого и соответствующего ему шифртекста, нахождение инверсных биграмм, алгоритм имитации отжига), проведено сравнение криптостойкости шифров (шифр Плейфера более криптостойкий по сравнению с шифрами простой замены и шифром Порта).
В итоге можно дать следующие рекомендации: вследствие недостаточной криптостойкости в наши дни выбранные шифры не рекомендуется использовать для шифрования секретной информации, их использование возможно разве что в учебных целях. Это касается и более криптостойкого шифра Плейфера.
ЗАКЛЮЧЕНИЕ
Таким образом, в данной курсовой работе был проведён анализ двух выбранных шифров блочной замены.
Выбраны шифры биграммной замены Порта и Плейфера, дано их место в классификационной схеме, определены основные задачи, решаемые с помощью этих шифров. Затем построены блок-схемы алгоритмов шифров и написаны программы шифрования открытого текста. Для наглядности был описан общий интерфейс программ. Затем они были протестированы (с их помощью был получен шифртекст слова “криптография”, которое перед этим зашифровали вручную).
Далее был выбран литературный текст, который впоследствии был зашифрован. Для изучения особенностей шифров проведен их гистограммный анализ. Также рассмотрены основы криптоанализа шифров.
На основе изученных источников и полученных результатов шифрования и гистограммного анализа были сформулированы рекомендации по применению шифров.
Все поставленные задачи курсовой работы можно считать выполненными.
Шифр Порта для периода своего создания являлся достаточно сложным для криптоанализа.
Создатель шифра Плейфера, Чарльз Уитсон, на опыте доказал: его алгоритм настолько простой, что большинство детей средней школы могут усвоить его за пятнадцать минут. Несмотря на это для того времени шифр Плейфера обладал достаточно высокой криптостойкостью и во времена Первой мировой войны применялся достаточно развитым государством, Великобританией. Данные шифры имеют достаточно простые алгоритмы шифрования.
Однако алгоритмы шифрования и криптоанализа с того времени значительно усложнились в связи с появлением ЭВМ. В связи с этим в наши дни для шифрования важной информации рекомендуется использовать более стойкие шифры. Изученные же шифры можно применять в учебных целях: для изучения истории криптографии и овладения навыками шифрования.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Н. Г. Бутакова, Н. В. Федоров. Криптографические методы и средства защиты информации. Учебное пособие для студентов по направлению “Информационная безопасность”. - ООО “ИЦ Интермедия” Санкт-Петербург, 2016 г. - 384 с.
2. Б. А. Погорелова, В. Н. Сачков. Словарь криптографических терминов. Издательство МЦНМО Москва, 2006 г. - 91 с.
3. Р. Докинз. Эгоистичный ген. Издательство Оксфордского университета, 1976 г. - 590 с.
4. Основы криптоанализа [Электронный ресурс] - Режим доступа: https://m.habr.com/post/271257/
5. Шифр Плейфера [Электронный ресурс] - Режим доступа: http://www.wisdom.weizmann.ac.il/~albi/cryptanalysis/lect3.htm
6. Шифр Плейфера [Электронный ресурс] - Режим доступа: https://dic.academic.ru/dic.nsf/ruwiki/702590#.D0.9A.D1.80.D0.B8.D0.BF.D1.82.D0.BE.D0.B0.D0.BD.D0.B0.D0.BB.D0.B8.D0.B7_.D1.88.D0.B8.D1.84.D1.80.D0.B0_.D0.9F.D0.BB.D0.B5.D0.B9.D1.84.D0.B5.D1.80.D0.B0
7. Бабаш А.В., Шанкин Г.П. История криптографии. Часть I. -- М.: Гелиос АРВ, 2002. -- 240 с.
8. Д. Г. Гаев. Основы прикладной криптографии [Электронный ресурс] - Режим доступа: http://s_194.edu54.ru/DswMedia/2014-03_r_kvm-s3.pdf
ПРИЛОЖЕНИЯ
Приложение А
Классификационная схема шифров
Рисунок А.1 - Классификационная схема шифров
Приложение Б
Блок схема шифра Порта
Рисунок Б.1 - Блок схема шифра Порта
Приложение В
Блок схема шифра Плейфера
Рисунок В.1 - Блок схема шифра Плейфера
Приложение Г
Код программы шифрования шифра Порта
#include "pch.h"
#include <iostream>
#include <stdlib.h>
#include <list>
#include <iterator>
#include <string>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include<fstream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
const int N = 32; //число строк таблицы
const int M = 32; // столбцов строк таблицы
const int Q = 1366; //длина шифруемого текста
int i = 0, j = 0, count = 1; //массив
int n = 30;
int K[N][M];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
K[i][j] = count;
count++;
}
}
char sym;
ifstream in_file("C:/Users/Василий/Desktop/Курсач крипта/portamy/текст.txt", ios::in);
if (!in_file)
{
cerr << "Error input file" << endl;
exit(1);
}
int TEXT[Q];
i = 0;
while (in_file)
{
in_file.get(sym);
int q = int(32 - (-1)*int(sym));
TEXT[i] = q;
i++;
}
in_file.close();
ofstream out;
out.open("C:/Users/Василий/Desktop/Курсач крипта/portamy/зашифрованныйтекст.txt");
for (i = 0; i < Q-3; i = i + 2)
{
int W;
W = K[TEXT[i]][TEXT[i + 1]];
//зашифрованное значение состоит из 4 цифр
if (W < 10) {
out << "000"<< K[TEXT[i]][TEXT[i + 1]] << " ";
cout << "000"<< K[TEXT[i]][TEXT[i + 1]] << " ";
}
else {
if ((W > 9) && (W < 100)) {
out << "00" << K[TEXT[i]][TEXT[i + 1]] << " ";
cout << "00" << K[TEXT[i]][TEXT[i + 1]] << " ";
}
else {
if ((W > 99) && (W < 1000)) {
out << "0" << K[TEXT[i]][TEXT[i + 1]] << " ";
cout << "0" << K[TEXT[i]][TEXT[i + 1]] << " ";
}
}
}
}
out.close();
return 0;
}
Приложение Д
Код программы шифрования шифра Плейфера
#include "pch.h"
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fout("G:/pleifer/pleifer/sekretno.txt");
setlocale(LC_ALL, "Russian");
int y=0;
//char key[] = "демократия";//ключ
//char txt[] = "широкораспространеноневерноепредставлениеотомчтоеслитакаямашинакакуправляемаяракетабыласпроектированаипостроеначеловекомтовсееедействиядолжнынепосредственноконтролироватьсячеловекомдругойвариантэтойошибкиутверждениечтокомпьютерынасамомделенеиграютвшахматыпотомучтоонимогутделатьтолькоточтоимприказываетоператорнамважнопонятьпочемутакиеутвержденияошибочнытаккакониоказываютвлияниенанашипредставленияотомвкакомсмыслеможноговоритьоконтроленадповедениемсостороныгеновигракомпьютеравшахматыслужитхорошимпримеромтакчтоявкратцеостановлюсьнанемкомпьютерыпокаещенеиграютвшахматытакхорошокакгроссмейстерыноониужедостиглиуровняхорошихлюбителейстрогоговоряэтогоуровнядостиглипрограммыпотомучтошахматнойпрограммевсеравнонакакомконкретномкомпьютереонабудетдемонстрироватьсвоиспособностивчемжезаключаетсярольсоставителяпрограммыпреждевсегооннивкоемслучаенеманипулируеткомпьютеромшагзашагомкаккукольникдергающийзаверевочкиэтобылобыпростожульничествомонпишетпрограммузакладываяеевкомпьютерпослечегокомпьютердействуетсамостоятельночеловекбольшеневмешиваетсяеслинесчитатьтогочтопротивниквводитвмашинусвоиходынобытьможетсоставительпрограммыпредвидитвсекомбинациикоторыевозникаютнашахматнойдоскеиснабжаеткомпьютердлиннымспискомнужныхходовдлякаждоговозможногослучаябезусловнонетпотомучточисловозможныхкомбинацийвшахматнойигреневероятновеликоитакойсписокпришлосьбысоставлятьдоконцасвета";//открытый текст
//char abc[] = "абвгдежзиклмнопрстуфхцчшщъыэюя";//алфавит
char key[] = "демократия";//ключ
char txt[] = "открытый текст";//открытый текст
char abc[] = "абвгдежзиклмнопрстуфхцчшщъыэюя";//алфавит
char abc2[] = "демократиябвгжзнпсуфхцчшщъыэю";
//char abc2="txt"+"abc";//алфавит
const int ln_key = strlen(key);//длина ключа
int ln_txt = strlen(txt);//длина открытого текста
cout << txt<<"\n";
int ln_abc = 30;//длина алфавита
char w[22];
int proverka = 0;
//проверка на повторяющиеся символы в ключе:
for (int i = 0; i < ln_key; i++) {
for (int j = 0; j < ln_key; j++) {
if (key[i] == key[j]) {
proverka++;
}
}
}
//сообщение об ошибке и выход из программы при неправильном ключе
if (proverka != ln_key) {
perror("Error!!!!!!!!!!!!!!!!!");
exit(0);
}
//замена ё,й,ъ
for (int i = 0; i < ln_txt; i++) {
if (txt[i] == 'ё')
txt[i] = 'е';
else if (txt[i] == 'ь')
txt[i] = 'ъ';
else if (txt[i] == 'й')
txt[i] = 'и';
}
for (int i = 0; i < ln_key; i++) {
for (int j = 0; j < ln_abc; j++) {
if (abc[j] == key[i])
//delete abc[1];
abc[j] = 0;
}
}
//strcpy_s(abc2, key);
for (int i = 0; i < ln_abc; i++) {
if (abc[i] != 0) {
w[y] = abc[i];
//abc2[ln_key + y] = abc[i];
//key[ln_key+y] = 9;
y++;
}
}
char mas[5][6];//это для создания таблицы с новым алфавитом
int n = 0;
//заполнение таблицы:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 6; j++) {
mas[i][j] = abc2[n];
n++;
}
}
int mas2[2][400];//в этот массив записываютмя номера строки и столбца для каждой буквы
int p = 0;
//заполнение массива номерами строк и столбцов
for (int k = 0; k < ln_txt; k++) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 6; j++) {
if (txt[k] == mas[i][j]) {
mas2[0][p] = i;
mas2[1][p] = j;
p++;
}
}
}
}
//проверка местонахождения букв в таблице и сдвиг по алгоритму
for (int i= 0; i < 400; i=i+2) {
if (mas2[0][i] == mas2[0][i + 1]) {
mas2[1][i] = (mas2[1][i] + 1) % 6;
mas2[1][i+1] = (mas2[1][i+1] + 1) % 6;
}
else if (mas2[1][i] == mas2[1][i + 1]) {
mas2[0][i] = (mas2[0][i] + 1) % 5;
mas2[0][i + 1] = (mas2[0][i + 1] + 1) % 5;
}
else {
int a,b;
a=mas2[1][i];
b = mas2[1][i + 1];
mas2[1][i] = b;
mas2[1][i + 1] = a;
}
}
//вывод массива с номерами строк и столбцов
for (int i = 0; i < 400; i++) {
for (int j = 0; j < 2; j++) {
cout << mas2[j][i] << " ";
}
cout << "\n";
}
cout << "\n";
//вывод зашифрованного текста на экран
for (int i = 0; i < 400; i++) {
fout << mas[mas2[0][i]] [mas2[1][i]];
//fout << "\n";
}
fout.close();
}
Приложение Е
Приложение Ж
Таблица Ж.1 - Таблица замен шифра Порта
Размещено на Allbest.ru
...Подобные документы
Выбор шифров перестановки для проведения анализа. Анализ алгоритма двух различных шифров, построение блок-схемы алгоритма и программы, разработка общего интерфейса. Сравнение шифров перестановки по результатам шифрования и криптоанализа текстов.
курсовая работа [2,8 M], добавлен 14.01.2014Основные требования к разрабатываемым программам и исходным текстовым файлам. Характеристика шифров замены. Укрупненные структурные схемы и коды программ шифрования и дешифрования, скриншоты их выполнения. Пример зашифрованного текста и его дешифрования.
курсовая работа [556,8 K], добавлен 14.01.2013Реализация криптографического алгоритма шифрования и дешифрования с использованием шифра Виженера. Понятие и суть полиалфавитного шифра. Метод полиалфавитного шифрования буквенного текста с использованием ключевого слова. Взлом полиалфавитных шифров.
курсовая работа [863,0 K], добавлен 21.04.2012Назначение алгоритма "Blowfish", особенности длины ключа и степени криптостойкости. Обоснование программной реализации расширения ключа и сцепления блоков шифра "Blowfish". Проверка использования инициализирующего вектора и распространения ошибок шифра.
курсовая работа [1,3 M], добавлен 30.01.2014Обоснование необходимости разработки программного комплекса. Обзор методов восстановления трёхмерных сцен. Общая структура алгоритма восстановления 3D сцен и сравнительный анализ его методов. Сравнительный анализ приближений и оценка его результатов.
дипломная работа [2,6 M], добавлен 10.01.2013Понятие шифров сложной замены. Шифры сложной замены называют многоалфавитными. Данная подстановка последовательно и циклически меняет используемые алфавиты. Понятие схемы шифрования Вижинера. Стойкость шифрования методом гаммирования и свойство гаммы.
реферат [52,2 K], добавлен 22.06.2010Реализация комплекса программ поиска подстроки в тексте алгоритмом прямого поиска и алгоритмом Кнута-Морриса-Пратта. Сравнительный анализ теоретических и экспериментальных оценок эффективности алгоритмов. Разработка структуры программы, ее листинг.
курсовая работа [2,8 M], добавлен 22.01.2015Оценка вычислительной сложности программы. Реализация алгоритма кодирования информации Хаффмана. Кодировка теста двоичным кодом и в дереве Хаффмана. Бинарный код символов. Символ и частота его появления в тексте. Вычисление трудоемкости алгоритма.
контрольная работа [21,0 K], добавлен 16.12.2012Общие сведения, понятие и разновидности компьютерных вирусов. Создание компьютерных вирусов как вид преступления. Пути проникновения вирусов и признаки появления их в компьютере. Антивирусные средства. Сравнительный анализ антивирусных программ.
курсовая работа [40,0 K], добавлен 03.06.2009Теоретические основы программ для работы с электронными таблицами. Сравнительный анализ программ MS Office Excel и Open Office.org Calc: интерфейс, возможности, горячие клавиши и скорость работы. Оценка эффективности работы программ с числовыми данными.
курсовая работа [761,6 K], добавлен 27.07.2010Разработка криптографического алгоритма программы ручного шифра по таблице Виженера. Разработка программы, выполняющей шифрование и расшифрование. Особенности использования в качестве ключа самого открытого текста. Алгоритмы решения "обратных" задач.
курсовая работа [45,0 K], добавлен 13.11.2009Изучение классических криптографических алгоритмов моноалфавитной подстановки и перестановки для защиты текстовой информации. Анализ частоты встречаемости символов в тексте для криптоанализа классических шифров. Сущность одноалфавитного метода шифрования.
лабораторная работа [2,8 M], добавлен 25.03.2015Понятие и виды визитной карточки, история создания. Декоративные элементы при оформлении визиток, типы бумаги и методы печати. Сравнительный анализ программ создания визитных карточек, оценка экономической целесообразности использования офисных программ.
дипломная работа [2,2 M], добавлен 15.07.2010Принцип работы и программная реализация однозвучного, одноалфавитного и полиграммного шифра. Шифрование по методу подстановки, замены и кодового слова. Безопасность шифровки простой замены. Частотные характеристики текстовых сообщений и дешифрация.
контрольная работа [1,1 M], добавлен 02.02.2012Сравнительный анализ основных программ по созданию шрифтов Adobe Photoshop и CorelDraw, их интерфейса. Оценка экономической целесообразности использования этих программ. Нормы и требования охраны труда на рабочем месте оператора компьютерного набора.
дипломная работа [947,8 K], добавлен 23.07.2010Описание основных использованных функций. Выравнивание по ширине. Разбор алгоритмов расчета. Алгоритм пересчета оценок из текстовой формы в числовую форму. Построение диаграмм и гистограмм Excel. Внедрение и связывание диаграмм в документ Word.
курсовая работа [152,2 K], добавлен 24.11.2011Программы офисного назначения. История возникновения и назначения электронных таблиц. Связные листы и построение диаграмм. Редакторы текстов, табличные процессоры, программы подготовки презентаций. Программы распознавания символов и программы-переводчики.
контрольная работа [372,2 K], добавлен 08.01.2011Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.
дипломная работа [1,7 M], добавлен 14.03.2013Краткое описание, сведения производителя, функции, технические характеристики среды выполнения программных средств защиты информации. Сравнительный анализ программ по параметрам: доступность дистрибутивов и установка, документация и возможности.
курсовая работа [1,5 M], добавлен 13.04.2014Методы предобработки изображений текстовых символов. Статистические распределения точек. Интегральные преобразования и структурный анализ. Реализация алгоритма распознавания букв. Анализ алгоритмов оптического распознавания символов. Сравнение с эталоном.
курсовая работа [2,1 M], добавлен 20.09.2014