В прошлой статье из цикла “Создание своего метода шифрования” мы узнали отличие шифров от кодов , выбрали 2 шифра и скрестили их. Чтобы зашифровать 1-2 предложения не нужно много времени и сил, но что делать если текст, над которым придётся работать состоит из пары 10-ов страниц? В таком случае процесс сокрытия информации надо сделать автоматизированным. Написание не сложной программы по определенному методу шифрования – это как раз то что нам и нужно!
Для написания любой , даже самой пустяковой программы, надо разбить нашу задачу на процедуры и составить алгоритм ( план действий ) по которому наша программа будет обрабатывать данные.
Процедуры
Для того чтобы программа могла начать работать с данными по нашему методу , она должна получить 2 ключа. Ключ №1 — длинной 5 символов , и Ключ №2 — длинной 6 символов. Значит первым действием при запуске нашего приложения должен быть ввод 2 ключей.
- Ввод ключевых слов в систему
Следующим этапом будет ввод текста , который мы будем зашифровывать или , наоборот дешифровывать.
Picocrypt: портативная и очень простая программа для шифрования
Наша программа должна понимать что конкретно ей предстоит сделать. Поэтому кто-бы не пользовался программой , он должен быстро и интуитивно выбирать между шифровкой и дешифровкой.
- Определения дальнейшего направления работы программы
- Получения результата работы программы (используя минимальное кол-во манипуляций)
Итак , мы определили последовательность действий для достижения нужного результата. Что теперь?
Блок-схема алгоритма программы
Если вдруг вы человек далекий от программирования, не пугайтесь, каждая картинка из представленных ниже получит очень подробное описание!
Так как писать программу мы будем в Visual Studio на языке C# , то сейчас разберём только основные 3 процедуры. Почему только 3 ? Потому что это алгоритм шифрования , дешифрования и редактирования (подготовка текста для шифрования). Именно эти 3 алгоритма являются главными , так как писать вашу программу вы можете и на таких структурных язык как Free Pascal , но принцип работы будет один и тот же на любом языке.
Редактирование текста
Процедура очень короткая , и ее реализация на разных языках будет отличаться, поэтому просто скажу что мы должны избавить наш текст от некоторых символов.
- Знаки препинания , Ъ , Ь , пробелы – эти символы удаляем из текста начисто.
- Ё = Е и Й = И. Заменяем эти буквы по всему тексту.
Блок-схема алгоритма шифрования
Как будет происходить замена оригинальных символов в тексте на ключевые ? Сначала мы создадим цикл который будет иметь число повторений = длине нашего текста Далее цикл по длине ключа №2 и внутри него цикл по ключу №1.
Потом используя условие “ если символ текста равен символу из таблицы алфавита” , прибавим к текстовой переменной символ ключа №1 и символ ключа №2 , которые стоят под тем же номером в слове , что и координата символа исходного текста.
Как сделать свой скрипт для шифрования (+ задачка)
Блок-схема алгоритма дешифрования
А теперь самая сложная часть – дешифровка. Казалось бы, чего сложного? Повторение шифрования в обратном порядке! Вот только есть одно но. При расшифровке нам надо 2 символа заменить 1 и сделать это в одном цикле.
Что невозможно т.к. длина ключевых слов у нас разная. Как и в шифровании первой цикл – это цикл от первого до последнего символа. Далее введем две переменные числового типа x и y. X приравняем к 0 (т.к. нумерация идет с 0) а Y зададим значение 1.
Следующим действием проверим наши введенные переменные, чтобы они были меньше чем длинна нашего текста.
Для чего нам эти переменные? В них мы будем хранить номер символа зашифрованного текста, который бы будем сравнивать с символами ключевого слова. X – номер символа для сравнения с ключом столбцов (ключ №1), а Y номер символа для сравнения с ключом строк (ключ №2).
Ключевым изменением в алгоритме дешифровки по сравнению с шифрованием , является подобие параллельности циклов сравнения символов текста с ключами. Сравнивая символы из текста с ключом , при их совпадении, мы будем записывать координату символа в ключе в локальную переменную и прерывать цикл.
Так же , при совпадении символов мы будем прибавлять к переменным 2-ку. Это нужно для того чтобы цикл с ключом строк проверял только 1-ю букву в паре , а цикл с ключом столбцов 2-ю.
При прибавлении 2 — ряд переменной y = 1, 3, 5, 7 ….. ; ряд переменной x = 0, 2, 4, 6 …..
После того как оба цикла были прерваны, по определившимся координатам найдем букву, которая была зашифрована и запишем ее в строку.
В следующей статье , используя составленные блок-схемы, будет написана программа автоматического шифрования и дешифрования. Первая статья этого цикла здесь.
Источник: bazanovv.ru
Создание компонента для шифрования-дешифрования текста
Аббат Тритемеус – автор первой печатной книги о тайнописи (1518 г.) – предложил несколько шифров и среди них шифр, который можно считать усовершенствованием шифра Цезаря. Этот шифр устроен так. Все буквы алфавита нумеруются по порядку (от 1 до 31 в русском варианте). Затем выбирают какое-нибудь слово, называемое «ключом», и подписывают под сообщением с повторением.
Введение — 3 —
1. Постановка задачи — 5 —
2. Алгоритм создания компонента — 5 —
3. Исходный текст компонента — 7 —
4. Инструкция пользователя — 13 —
5. Исходный текст программы — 14 —
6. Приложение 1 — 17 —
Список литературы — 21 —
Прикрепленные файлы: 1 файл
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Пермский национальный исследовательский политехнический университет»
по дисциплине «Технология программирования»
«Создание компонента для шифрования-дешифрования текста»
Выполнил: студент группы ИВТ-09д ______________ Яковлев Д.В.
Дата сдачи «____» _________ 20___ г.
Проверил: ассистент кафедры АТП _____________Иванова Е.В.
Дата проверки «____» _________ 20___ г.
Введение
Развитие шифров исторически шло одновременно с развитием письменности. В первую очередь они нужны были правителям, прибегавших к услугам лазутчиков, дипломатам, состоявшим у них на службе, служителям культа, стремившихся ограничить доступ непосвященных к эзотерическим религиозным секретам
При создании компонента шифрования текста я использовал три метода шифрования: алгоритм «Цезаря», алгоритм «Модифицированного Цезаря» и алгоритм «Скитала».
1.Алгоритм шифрования «Цезарь»
Шифр Цезаря — один из древнейших шифров. При шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число позиций – на значение ключа. Шифр Цезаря можно классифицировать как шифр подстановки, при более узкой классификации — шифр простой замены.
Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки. Естественным развитием шифра Цезаря стал шифр Виженера. С точки зрения современного криптоанализа, шифр Цезаря не имеет приемлемой стойкости.
2.Шифр «Модифицированного Цезаря»
Аббат Тритемеус – автор первой печатной книги о тайнописи (1518 г.) – предложил несколько шифров и среди них шифр, который можно считать усовершенствованием шифра Цезаря. Этот шифр устроен так. Все буквы алфавита нумеруются по порядку (от 1 до 31 в русском варианте). Затем выбирают какое-нибудь слово, называемое «ключом», и подписывают под сообщением с повторением.
Чтобы получить шифрованный текст, складывают номер очеред-ной буквы с номером соответствующей буквы ключа. Если полученная сумма больше 31, то из нее вычитают 31. В результате получают последовательность чисел от 1 до 31. Вновь заменяя числа этой последовательности соответствующими буквами, получают шифрованный текст. Разбиваем этот текст на группы одной длины, получают шифрованное сообщение.
В криптографии скитала (или сцитала от греческого σκυτάλη, жезл), известный также как шифр Древней Спарты, представляет собой прибор, используемый для осуществления перестановочного шифрования, состоит из цилиндра и узкой полоски пергамента, обматывавшейся вокруг него по спирали, на которой писалось сообщение. Античные греки и спартанцы в частности, использовали этот шифр для связи во время военных кампаний.
Шифруемый текст писался на пергаментной ленте по длине палочки, после того как длина палочки оказывалась исчерпанной, она поворачивалась и текст писался далее, пока либо не заканчивался текст, либо не исписывалась вся пергаментная лента. В последнем случае использовался очередной кусок пергаментной ленты. Дешифровка выполнялась с использованием палочки такого же диаметра.
Таким образом, длина блока n определялась длиной и диаметром палочки, а само шифрование заключалось в перестановке символов исходного текста в соответствии с длиной окружности палочки. Например, используя палочку, по длине окружности которой помещается 4 символа, а длина палочки позволяет записать 6 символов, исходный текст: «это шифр древней спарты» превратится в шифрограмму: «эфвптрнао ер дйтшр ыиес».
Источник: www.referat911.ru
Создание программы для шифрования и дешифрования текста на языке Pascal
Актуальность проектной работы: необходимость скрыть смысл
написанного текста от возможных злоумышленников.
Цель проектной работы: написать программу для шифрования и
дешифрования текста на языке Pascal.
Задачи проектной работы: собрать информацию о различных способах
шифрования текста, разработать свой шифр, написать программу для
шифрования и дешифрования текста на языке Pascal.
3.
Шифрование — это преобразование (кодирование) открытой
информации в зашифрованную, недоступную для понимания
посторонними
Ключ – это параметр алгоритма шифрования, позволяющий выбрать
одно конкретное преобразование из всех вариантов, предусмотренных
алгоритмом. Знание ключа позволяет свободно зашифровывать и
расшифровывать сообщения.
Криптостойкость шифра – это устойчивость шифра к расшифровке без
знания ключа.
4.
Шифр простой замены
моноалфавитный шифр — класс методов шифрования, которые
сводятся к созданию по определённому алгоритму таблицы шифрования,
в которой для каждой буквы открытого текста существует единственная
сопоставленная ей буква шифр-текста. Само шифрование заключается в
замене букв согласно таблице. Для расшифровки достаточно иметь ту же
таблицу, либо знать алгоритм, по которому она генерируется.
5.
Шифр Цезаря
В данном шифре каждая буква в слове или тексте заменяется другой,
которая находится на некоторое постоянное число позицией левее или
правее от неё в алфавите
6.
Мой шифр
Всего 256 символов
Алфавит символов, которые я буду шифровать:
АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШш
ЩщЪъЫыЬьЭэЮюЯяABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkl
mnopqrstuvwxyz1234567890
Алфавит символов, которые я зашифровал:
ĀĂÂÃÀÁÄÅĄÆÇČĆÐĒĘĞĢ√ĮÌÍÎÏĪĶŁÑÖŐÓÕØŒßŞŠŚŢŪŬÚÙÛŽŹŻ☺☻♥
♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─
┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ÿý
7.
8.
9.
Пример работы программы
10.
Заключение
В процессе выполнения работы мне довелось узнать очень многое о
шифровании и я написал свою программу для шифрования и
дешифрования текста, создал свой шифр.
В ходе проектной работы я выполнил все поставленные задачи:
собрал информацию о различных способах шифрования текста
разработал свой шифр
написал программу для шифрования и дешифрования текста на языке
Pascal
Решил поставленную проблему, а именно решил какой шифр лучше
использовать в программе – шифр подстановки.
Выполнил цель продукта — написал программу для шифрования и
дешифрования текста на языке Pascal.
Источник: ppt-online.org