64680

Разработка программы шифрования

Курсовая

Информатика, кибернетика и программирование

Цель курсовой работы – создание программного продукта, который бы позволял обычным пользователям компьютера зашифровывать и дешифровать необходимый им текст. Для достижения этой цели были поставлены следующие задачи: изучить теоретические сведения, необходимые для решения данной задачи...

Русский

2014-07-09

333.18 KB

82 чел.

ПРИДНЕСТРОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМ. Т.Г. ШЕВЧЕНКО

Рыбницкий филиал

Кафедра физики, математики и информатики

Курсовая работа

по дисциплине

«ПРОГРАММИРОВАНИЕ»

на тему:

«Разработка программы шифрования»

                                 Студента I курса

                                                               направления «Педагогическое      

                                                               образование» профиля «Информатика»

                                                               дополнительного профиля

                                                               «Иностранный язык»

                                                                Гонцы Анжелы Сергеевны

                                                      

                                                                Научный руководитель:

                                                                преподаватель

                                                                Чернега Наталья Владимировна

Рыбница, 2014

        

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ 3

1.ИССЛЕДОВАНИЕ И АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 5

1.1 История появления и развития методов шифрования 5

1.2 Методы шифрования 7

Шифр Полибия 10

Методы вскрытия одноалфавитных систем 10

Многоалфавитные системы 11

Шифр Вернама 11

1.3 Обзор существующих программ 13

2. РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА, ОПИСАНИЕ РЕЗУЛЬТАТОВ 14

2.1 Требования к программному продукту 14

2.2 Меню 15

2.3 Описание пользовательских подпрограмм 15

2.3 Руководство для пользователя 16

2.4 Анализ полученных результатов 18

ЗАКЛЮЧЕНИЕ 19

СПИСОК ЛИТЕРАТУРЫ 20

ПРИЛОЖЕНИЕ 1. 21

ПРИЛОЖЕНИЕ 2 29

                                                                                                        

 


ВВЕДЕНИЕ

Шифрование – это преобразование информации, делающее ее нечитаемой для посторонних. При этом  доверенные лица могут провести дешифрование и прочитать исходную информацию. Существует множество способов шифрования/дешифрования, но секретность данных основана не на тайном алгоритме, а на том, что ключ шифрования (пароль) известен только доверенным лицам.  

Шифрование появилось около четырех тысяч лет тому назад. Первым известным примером шифра считается египетский текст, созданный примерно в 1900 г. до н. э., в котором вместо обычных для египтян иероглифов использовались не совпадающие с ними символы.

На компьютере можно зашифровать абсолютно любой объект. Так как изучение криптографии началось еще в древности, то изучение шифров зашло уже очень далеко. Но проблема в том, что как только шифр создается,  очень быстро находят способ дешифровки.

          Актуальность курсовой работы   благодаря  курсовой работе я освоила новые, для меня, методы, функции и конструкции  в Turbo Pascal, а так же расширила свой кругозор в области шифрования текста.

Объект курсовой работы – это создание программного продукта.

Предмет курсовой работы  – это программный продукт, реализующий такие методы шифрования как шифр Цезаря, шифр с заменой букв цифрами и шифр Полибиуса.

Цель курсовой работы – создание программного продукта, который бы позволял обычным пользователям компьютера зашифровывать и дешифровать необходимый им текст.

Для достижения этой цели были поставлены следующие задачи:

  1.  изучить теоретические сведения, необходимые для решения данной задачи;
  2.   систематизировать и обобщить полученные знания;
  3.  создать пользовательский интерфейс;
  4.  создать программный продукт реализующий, реализующий три шифра.
  5.  Провести тестирование и отладку программы.

Цель и задачи курсовой работы определили её структуру. Она состоит из введения, двух разделов, заключения, списка литературы и приложений.

В первом разделе рассмотрена история появления и развития методов шифрования.

Второй раздел посвящён разработке программного продукта, в нём описывается структура программы и проведены тестирования программы и анализ полученных результатов.

Заключение содержит в себе результаты проделанной работы при реализации методов шифрования.

В приложении  представлены блог-схема, описывающая структуру программы, и листинг разработанного программного продукта.


1.ИССЛЕДОВАНИЕ И АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 История появления и развития методов шифрования

Люди издавна использовали шифрование – как способ защиты информации. Идея скрыть в тексте тайные значения и сообщения почти так же стара, как и само искусство письма.

На заре бронзового века писцов Ближнего Востока обучали искусству расшифровки запутанных и закодированных текстов. Глиняная табличка из Угарита (Сирия), относящаяся приблизительно к 1200 г. до н. э., представляет простое студенческое упражнение, в котором требовалось найти ответ на анаграмму из четырех букв.

Древние писцы разгадывали гораздо более сложные загадки. Наиболее популярной из них было использование акростиха, когда скрытое сообщение прочитывали, сложив вместе первые буквы каждой строки текста. Прекрасным примером этого служит глиняная табличка из Ирака середины 2 тысячелетия до н. э., известная в настоящее время как “Вавилонская теодицея”. Этот текст хорошо читается как поэма из 27 строф (по 11 строк в каждой), где дается мудрый совет по религиозным вопросам. Но в нем содержится также искусно составленный текст, в котором начальные слоги каждой строфы, образующей акростих, составляют имя и данные автора: «Я, Шагил-Кинам-аббиб, заклинатель, служитель Бога и Царя». За века своего существования человечество придумало множество способов хранения тайны.

Степень изученности методов шифрования достаточно высокая. Каждый год создается множество программ, литературы, посвящённым криптографическим системам. Криптографическая система — семейство преобразований шифра и совокупность ключей. Существуют Симметричные  и Асимметричные криптосистемы.

Симметричные криптосистемы (с секретным ключом — secret key systems)-данные криптосистемы построены на основе сохранения в тайне ключа шифрования. Процессы зашифрования и расшифрования используют один и тот же ключ. Секретность ключа является постулатом.

Асимметричные криптосистемы (системы открытого шифрования - с открытым ключом public key systems) — смысл данных криптосистем состоит в том, что для зашифрования и расшифрования используются разные преобразования. Одно из них — зашифрование — является абсолютно открытым для всех. Другое же — расшифрование — остается секретным.

На данный момент чаще используются достаточно стойкие системы, системы с достаточно сложным алгоритмом шифрования. Из-за необходимости различных объектов зашифровывать секретные данные и криптографические системы не стоят на месте  и постоянно совершенствуются.

Рис 1.1 Модель процесса шифрования и дешифрования

1.2 Методы шифрования

Самым простым шифром является ШИФР С ЗАМЕНОЙ БУКВ ЦИФРАМИ. Каждой букве соответствует число по алфавитному порядку. А-1, B-2, C-3 и т.д. 

Книжный шифр

В таком шифре ключом является некая книга, имеющаяся и у отправителя и у получателя. В шифре обозначается страница книги и строка, первое слово которой и является разгадкой. Дешифровка невозможна, если книги у отправителя и корреспондента разных годов издания и выпуска. Книги обязательно должны быть идентичными.  

Шифр с кодовым словом

Еще один простой способ как в шифровании, так и в расшифровке. Используется кодовое слово (любое слово без повторяющихся букв). Данное слово вставляется впереди алфавита и остальные буквы по порядку дописываются, исключая те, которые уже есть в кодовом слове. Пример: кодовое слово – NOTEPAD.

Исходный: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Замена: N O T E P A D B C F G H I J K L M Q R S U V W X Y Z

Цифровой таблицы

Её параметры могут быть какими угодно, главное чтобы получатель и отправитель были в курсе. Пример цифровой таблицы.

                                                                                              Таблица 1.1

Цифровая таблица

1

2

3

4

5

1

A

B

C

D

E

2

F

G

H

I

J

3

K

L

M

N

O

4

P

Q

R

S

T

5

U

V

W

X

Y

6

Z

1

2

3

4

7

5

6

7

8

9

8

0

.

,

?

!

                                                                                        

Сложность дешифрования заключается в определении шифра. Как только он определен, сообщение легко раскладывается по алфавиту.

Масонский шифр

Рис 1.2 Масонский шифр

Шифр  цезаря

Он  является историческим примером шифра  замены (1 век до н.э.), описанным историком Древнего Рима  Светонием. Гай Юлий Цезарь использовал в своей переписке шифр собственного изобретения. Применительно к современному русскому языку он состоял в следующем. Выписывался алфавит, затем под ним выписывался тот же алфавит, но с циклическим сдвигом на 3 буквы влево:

АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЪЬЭЮЯ

ГДЕЁЖЗИЙКЛМНОП РСТУФХЦ ЧШ ЩЫЪЬ ЭЮЯАБВ

Математическая модель

Если сопоставить каждому символу алфавита его порядковый номер (нумеруя с 0), то шифрование и дешифрование можно выразить формулами:

где x — символ открытого текста, 
y — символ шифрованного текста, 
n — мощность алфавита (кол-во символов),
k — ключ. 

Теоретический анализ литературы позволяет выделить перспективное направление разработки методов шифрования.  В работе предлагается создание программы с использованием трёх методов шифрования: шифр Цезаря, шифр с заменой букв цифрами и шифр Полибиуса.  Все эти шифры достаточно просты для понимания и дешифрования,  но в этом то и заключается цель  создание пользовательской программы для развития детей.

Пользователь будет вводить слово или предложение, которое ему хотелось бы зашифровать. Затем, используя метод шифрования будет вручную расшифровывать, а после того как получит результат – проверит его c помощью программы.

Шифр Полибия

Система Цезаря не является старейшей. Возможно , что наиболее древней из известных является система греческого историка Полибия, умершего за 30 лет до рождения Цезаря. Его суть состоит в следующем: рассмотрим прямоугольник, часто называемый доской Полибия.

Методы вскрытия одноалфавитных систем

При своей простоте в реализации одноалфавитные системы легко уязвимы. Определим количество различных систем в аффинной системе. Каждый ключ полностью определен парой целых чисел a и b, задающих отображение ax+b. Для а существует j(n) возможных значений, где j(n) - функция Эйлера, возвращающая количество взаимно простых чисел с n, и nзначений для b, которые могут быть использованы независимо от a, за исключением тождественного отображения (a=1 b=0), которое мы рассматривать не будем. Таким образом получается j(n)*n-1 возможных значений, что не так уж и много: при n=33 в качестве a могут быть 20 значений( 1, 2, 4, 5, 7, 8, 10, 13, 14, 16, 17, 19, 20, 23, 25, 26, 28, 29, 31, 32), тогда общее число ключей равно 20*33-1=659. Перебор такого количества ключей не составит труда при использовании компьютера. Но существуют методы упрощающие этот поиск и которые могут быть использованы при анализе более сложных шифров.

Многоалфавитные системы

Полиалфавитные подстановочные шифры были изобретены Лином Баттистой (Lean Battista) в 1568 году. Основная идея многоалфавитных систем состоит в том, что на протяжении всего текста одна и та же буква может быть зашифрована по-разному. Т.е. замены для буквы выбираются из многих алфавитов в зависимости от положения в тексте. Это является хорошей защитой от простого подсчета частот, так как не существует единой маскировки для каждой буквы в криптотексте. В данных шифрах используются множественные однобуквенные ключи, каждый из которых используется для шифрования одного символа открытого текста. Первым ключом шифруется первый символ открытого текста, вторым - второй, и т.д. После использования всех ключей они повторяются циклически.

Шифр Вернама

Шифр Вернама, или одноразовый блокнот, был изобретен в 1917 году Мейджором Джозефом Моборном (Major Joseph Mauborn) и Гильбертом Вернамом (Gilbert Vernam) из AT&T (American Telephone & Telegraph). В классическом понимании одноразовый блокнот является большой неповторяющейся последовательностью символов ключа, распределенных случайным образом. Первоначально это была одноразовая лента для телетайпов. Отправитель использовал каждый символ ключа для шифрования только одного символа открытого текста. Шифрование представляет собой сложение по модулю n (мощность алфавита) символа открытого текста и символа ключа из одноразового блокнота. Каждый символ ключа используется только один раз и для единственного сообщения, иначе даже если использовать блокнот размером в несколько гигабайт, при получении криптоаналитиком нескольких текстов с перекрывающимися ключами он сможет восстановить исходный текст. Он сдвинет каждую пару шифротекстов относительно друг друга и подсчитает число совпадений в каждой позиции. если шифротексты смещены правильно, соотношение совпадений резко возрастет. С этой точки зрения криптоанализ не составит труда. Если же ключ не повторяется и случаен, то криптоаналитик, перехватывает он тексты или нет, всегда имеет одинаковые знания. Случайная ключевая последовательность, сложенная с неслучайным открытым текстом, дает совершенно случайный криптотекст, и никакие вычислительные мощности не смогут это изменить.

В реальных системах сначала подготавливают две одинаковые ленты со случайными цифрами ключа. Одна остается у отправителя, а другая передается "неперехватываемым" образом например, курьером с охраной, законному получателю. Когда отправитель хочет передать сообщение, он сначала преобразует его в двоичную форму и помещает в устройство, которое к каждой цифре сообщения прибавляет по модулю два цифры, считанные с ключевой ленты. На принимающей стороне кодированное сообщение записывается и пропускается через машину, похожую на устройство, использованное для шифрования, которое к каждой двоичной цифре сообщения прибавляет (вычитает, так как сложение и вычитание по модулю два эквивалентны) по модулю два цифры, считанные с ключевой ленты, получая таким образом открытый текст. При этом, естественно, ключевая лента должна продвигаться абсолютно синхронно со своим дубликатом, используемым для зашифрования.

Главным недостатком данной системы является то, что для каждого бита переданной информации должен быть заранее подготовлен бит ключевой информации, причем эти биты должны быть случайными. При шифровании большого объема данных это является серьезным ограничением. Поэтому данная система используется только для передачи сообщений наивысшей секретности. По слухам "горячая линия" между США и СССР шифровалась с помощью одноразового блокнота. Многие сообщения советских шпионов были зашифрованы с использованием одноразовых блокнотов. Эти сообщения нераскрыты сегодня, и не будут раскрыты никогда (если не найдется способа вернуться в прошлое и достать эти блокноты 

1.3 Обзор существующих программ

На данный момент программы для зашифровки текстом пока еще не использовались,  с  развивающей целью, но программ шифрующих информацию с целью секретности существует о множество:

Crypto Word  бесплатная программа для шифрования и расшифровки текстов. Это надежное и простое в использовании приложение позволяет быстро зашифровать и расшифровать текст с помощью пароля.

FREEFilePro  программа для защиты файлов. С помощью этой программы можно защитить папки и файлы функцией двойной идентификации пользователя. 

TrueCrypt  это бесплатная программа которая позволяет шифровать данные в операционных системах Windows Vista/XP/Seven, Mac OS X и Linux.

Image Steganography программа. которая поможет скрыть текст или файлы внутри изображений.

Программ для шифрования файлов существует бессчетное множество, большинство из них просты и удобны в применении. Каждому пользователю, беспокоящемуся о сохранности своих данных, необходимо знать о таких программах и пользоваться ими.



2. РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА, ОПИСАНИЕ РЕЗУЛЬТАТОВ

2.1 Требования к программному продукту

При разработке программного продукта требовалось решить следующие задачи:

  1.  .Формирование меню,
  2.  Формирование процедур, реализующих методы шифрования,  
  3.  Вывод результата на экран,
  4.  Остановка программы и выход.

2.2 Меню

Данная программа реализует три метода шифрования, поэтому для простоты выбора метода необходимо было создать удобный интерфейс для пользователя.

Программа предназначена для приятного и полезного время препровождения. Она должна иметь простую систему управления. Поэтому в меню использованы максимально лаконичные команды и ответы  на них. Это во многом облегчает работу пользователя.

Суть работы подпрограммы заключается в том что на экран последовательно выводятся команды:

  1.  Для начала пользователь должен выбрать метод, с помощью которого он хочет зашифровать текст. На экран выводится  «Выберете способ шифрования

         1-шифр Цезаря, 2-шифр с заменой букв цифрами, 3-шифр Полибиуса »

  1.  Пользователь выбирает, нажимая номер нужного ему шифра.
  2.  Если же он не хочет шифровать или уже закончил занятие, тогда для выхода из цикла ему следует нажать 0. Сообщение с этой информацией выводится на экран вместе со всеми предыдущими «Для выхода нажмите 0».

Меню управляется клавиатурой: для выбора следует нажать требуемый номер и ENTER.

2.3 Описание пользовательских подпрограмм

При разработке программного продукта был составлен алгоритм, отображающий взаимосвязь основных блоков программы. (Приложение 1)

Программный продукт состоит из пользовательских подпрограмм,

листинг которых представлены  в Приложении 2.

Для выбора метода шифрования была создана подпрограмма:

Procedure Menu (t,t1:integer); где t и t1 переменные выбора.

Так же были созданы подпрограммы реализующие различные методы шифрования: шифр Цезаря, шифр с заменой букв цифрами и шифр Полибиуса.

Procedure Cezarzash(a:string); где астрока. Эта процедура реализует шифрование Цезаря. 

Переменной строкового типа присваиваем последовательно все буквы русского алфавита. Далее работаем с ней. В цикле при нахождении буквы шифра в переменной с алфавитом, сдвигаемся на столько символов, столько задано в ключе.

Procedure Cifrzash(a:string); где а  строка. Эта процедура реализует шифр с заменой букв цифрами. Задается два массива типа Char и типа Integer затем последовательно присваиваются значения: в зашифровке буквам – числа, в дешифровке – наоборот.

Procedure Polibiuszash(a:string); Эта процедура реализует шифрование методом Полибиуса.

Более того в каждой подпрограмме есть условие выбора – зашифровать или расшифровать текст. Это условие реализуется с помощью  условного оператора ifthen..else.  Если же нет текста,  который надо расшифровать, то выводится сообщение  «Нет данных для расшифровки».

2.3 Руководство для пользователя

После запуска программного продукта на экране появляется меню, состоящее из  предложения выбора шифра и выхода из программы.

Рис.2.1Запуск программы

После выбора шифра выводится еще одно предложение  зашифровать или расшифровать текст.

Рис.2.2 Выбор процедуры

Затем выходит сообщение с просьбой ввести текст.

Рис.2.3 Сообщение о вводе текста

В шифре Цезаря так же выходит сообщение с просьбой ввести ключ.

Рис.2.4 Ввод ключа

После выбора метода, команды зашифровать, и ввода текста  на экран выводится зашифрованный текст. После выбора расшифровки выводится расшифрованный текст.

Рис.2.5 Вывод результата

2.4 Анализ полученных результатов

В ходе тестирования программного продукта было выявлено, что  поставленная цель создание программного продукта реализующего три метода шифрования   и все задачи курсовой работы были выполнены.

В результате тестирования были выявлены некоторые неточности в расшифровке текста, которые требуют доработки. Но в целом программа работает с общепринятыми стандартами о шифровании текста.

ЗАКЛЮЧЕНИЕ

В процессе написания курсовой работы  на тему «создание программного продукта реализующего различные методы шифрования текста»  поставленная цель была достигнута.

При достижения поставленной цели  были решены следующие задачи:

  1.  Изучены аналогичные программные продукты,
  2.  Изучены теоретические сведения, требуемые для решения поставленной задачи,
  3.  Систематизированы и обобщены полученные знания,
  4.  Создан программный продукт, реализующий три метод шифрования.

При разработке программного продукта были усвоены функции ctr() и val() , преобразующие информацию из численного типа в строковый и наоборот, так же были окончательно усвоены условные операторы ifthen..else и for.. … todo.

В ходе тестирования программного продукта были выявлены следующие недостатки:

  1.  В ходе работы программы обнаруживаются ошибки.
  2.  В программе не совсем удобное для восприятия меню.

Подводя итоги можно сказать, что при помощи этого программного продукта любой человек, в любом возрасте может приятно и с пользой для себя провести время.

СПИСОК ЛИТЕРАТУРЫ

  1.  .ItSphera[Электронный ресурс]:статья «Криптографические методы и средства защиты информации» © 2010 - 2014 IT Sphera. Внедрение, сопровождение, обновление 1С в Курске.
  2.  Клод Шеннон  американский инженер и математик «Математическая теория связи».1945г.
  3.  Анин Б. «Защита компьютерной информации»Санкт-Петербург.2000384с.
  4.  Байтурин В.Б., Бровкова М.Б., Пластун И.Л. «Введение в защиту информации»Москва ФорумИНФРАМ2000г.107с.
  5.  Х.К.А.ван Тилборг Основы Криптологии. Профессиональное руководство и интерактивный учебник. - М., Мир, 2006. - 471 стр.
  6.  Ростовцев А.Г., Маховенко Е.Б. Теоретическая криптография. - М., Изд. Профессионал, 2005. - 490 стр.
  7.  В.А. Мухачев, В.А. Хорошко Методы практической криптографии. - М., Изд. Полиграф-Консалтинг, 2005. - 209 стр.
  8.  Брюс Шнайер, Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си, неофициальный перевод 2-ого издания 1996 г.в.
  9.  Панасенко С. Алгоритмы шифрования. Специальный справочник. - СПб: БХВ-Петербург, 2009 г., 576 с. 
  10.  Баричев С. Криптография без секретов. - 2004. - 43 стр.
  11.  Баричев С.Г., Серов Р.Е. Основы современной криптографии. - Горячая Линия - Телеком, 2002 - 153 с. 

            

          Начало        (гл.программа)

             End.

                    Menu (t,t1)

                 t:=1

ПРИЛОЖЕНИЕ 1.

 

Начало

Writeln(‘Зашифровка’); writeln(‘Расшифровка’); readln(v);

ку

re

t

     If (v=1)

true                                                false

     v1:=1;

Writeln(‘Введите слово’); readln(a); writeln(‘ключ’);

readln (d);

C:=’’;

b:=(’абвгдеёжзийклмнопрстуфхцчшщъыьэюя’);

От i:=1 to length(a) do

Шаг 1

jnjn

g:=’’;

If (v=2) and (v=1)

Writeln(‘Нет данных для расшифровки’);

If (v=2) and (v1<>1)

Writeln(c);

c:=c+b[k];

If a[i]=b[j]

k:=(j+d);

От j:=1 to length(b) do

Шаг 1


    End.

Writeln(g);

g:=g+b[j-d1];

If c[i]=b[i]

s:=k-d1;

От j:=1 to length(b) do

Шаг1

От i:=1 to length(c) do

Шаг1

Writeln(‘Расшифровка’);

Writeln(‘Зашифровка’);

Readln(d1);


Процедура замены букв цифрами.

If ((s[i]:=’a’) or (s[i]=’A’)

От i:=1 to length(s)

Do

Шаг1

  e:=0;

Writeln(‘Введите текст’);

Readln(‘s’);

 v1:=1;

  If (v=1)

Writeln(‘Зашифровать’);

writeln(‘Расшифровать’);

readln(v);

   Начало


Wrireln(‘Нет данных для расшифровки’);

  END.

If (v=2) and (v1=1)

Readln;

Write(mas[i]);

От i:=1 to length(s);

Do

Шаг1

Mas[i]:=1;


     Cifrzash(a);

If (t=2)

      Cezarzash(a);

If (t=1)

Break;

If (t=0)

    Writeln(‘Выберете способ шифрования’);

Writeln(‘1-шифр Цезаря, 2-заменя бекв цифрами, 3-шифр Полибиуса’);

Writeln(‘Для выхода нажми 0’);

Readln(t);

While t<>0 do

       Начало


      END.

   Polibiuszash(a)

If (t=3)


ПРИЛОЖЕНИЕ 2

program shifri;

 var t,t1:integer;

       a:string;

procedure Cezarzash(a:string);

var  v,v1,i,j,k,d,d1,s:integer;

       c,b,g:string;

begin

writeln('1-Зашифровать');

writeln('2-Расшифровать');

  readln(v);

    if (v=1) then

begin

 v1:=v;

  writeln('Введите слово');

   readln(a);

    writeln('ключ');

   readln(d);

  c:='';

  b:=(' абвгдеёжзийклмнопрстуфхцчшщъыьэюя');

 for i:=1 to length(a) do

  for j:=1 to length(b) do

 begin

  k:=(j+d);

   if a[i]=b[j] then c:=c+b[k];

 end;

 writeln(c);

 end;

  if ((v=2)and(v1<>1)) then

 begin

   writeln('Нат данных для расшифровки');

 end;

  if((v=2)and(v1=1)) then

   begin

 g:='';

   writeln('Расшифровка');

   writeln('Введите ключ');

     readln(d1);

 for i:=1 to length(c) do

  for j:=1 to length(b) do

 begin

  s:=k-d1;

   if c[i]=b[j] then g:=g+b[j-d1];

 end;

   writeln(g);

 end;

   readln;

 end;

procedure cifrzash(a:string);

         var e,i,v,v1:integer;

               mas:array [1..256] of integer;

               zak:array[1..256]  of char;

               s:string;

  begin

   writeln('1-Зашифровать');

   writeln('2-Расшифровать');

     readln(v);

  if (v=1) then

  begin

  v1:=1;

    writeln('Введите текст');

      readln(s);

  e:=0;

    for i:=1 to length(s) do

  begin

  if ((s[i]='a') or (s[i]='A')) then mas[i]:=1;

    if ((s[i]='b') or (s[i]='B')) then mas[i]:=2;

      if ((s[i]='c') or (s[i]='C')) then mas[i]:=3;

        if ((s[i]='d') or (s[i]='D')) then mas[i]:=4;

          if ((s[i]='e') or (s[i]='e')) then mas[i]:=5;

             if ((s[i]='f') or (s[i]='F')) then mas[i]:=6;

                    if ((s[i]='g') or (s[i]='G')) then mas[i]:=7;

  if ((s[i]='h') or (s[i]='H')) then mas[i]:=8;

    if ((s[i]='i') or (s[i]='I')) then mas[i]:=9;

      if ((s[i]='j') or (s[i]='J')) then mas[i]:=10;

        if ((s[i]='k') or (s[i]='K')) then mas[i]:=11;

           if ((s[i]='l') or (s[i]='L')) then mas[i]:=12;

             if ((s[i]='m') or (s[i]='M')) then mas[i]:=13;

                if ((s[i]='n') or (s[i]='N')) then mas[i]:=14;

  if ((s[i]='o') or (s[i]='O')) then mas[i]:=15;

    if ((s[i]='p') or (s[i]='P')) then mas[i]:=16;

       if ((s[i]='q') or (s[i]='G')) then mas[i]:=17;

         if ((s[i]='r') or (s[i]='R')) then mas[i]:=18;

            if ((s[i]='s') or (s[i]='S')) then mas[i]:=19;

              if ((s[i]='t') or (s[i]='T')) then mas[i]:=20;

                if ((s[i]='u') or (s[i]='U')) then mas[i]:=21;

  if ((s[i]='v') or (s[i]='V')) then mas[i]:=22;

    if ((s[i]='w') or (s[i]='W')) then mas[i]:=23;

       if ((s[i]='x') or (s[i]='X')) then mas[i]:=24;

          if ((s[i]='y') or (s[i]='Y')) then mas[i]:=25;

             if ((s[i]='z') or (s[i]='Z')) then mas[i]:=25;

  end;

    for i:=1 to length(s) do

  begin

    write(mas[i]);

  end;

    readln;

  end;

 if ((v=2)and(v1<>1)) then

   begin

      writeln('Нет даных дря расшифровки');

    end;

 if((v=2)and(v1=1)) then

begin

  writeln(' ');

  writeln('Расшифровка');

    for i:=1 to length(s) do

begin

if (mas[i]=1) then zak[i]:='a';

  if (mas[i]=2) then zak[i]:='b';

    if (mas[i]=3) then zak[i]:='c';

       if (mas[i]=4) then zak[i]:='d';

          if (mas[i]=5) then zak[i]:='e';

             if (mas[i]=6) then zak[i]:='f';

                 if (mas[i]=7) then zak[i]:='g';

if (mas[i]=8) then zak[i]:='h';

   if (mas[i]=9) then zak[i]:='i';

      if (mas[i]=10) then zak[i]:='j';

         if (mas[i]=11) then zak[i]:='k';

            if (mas[i]=12) then zak[i]:='l';

               if (mas[i]=13) then zak[i]:='m';

                           if (mas[i]=14) then zak[i]:='n';

if (mas[i]=15) then zak[i]:='o';

   if (mas[i]=16) then zak[i]:='p';

      if (mas[i]=17) then zak[i]:='q';

         if (mas[i]=18) then zak[i]:='r';

            if (mas[i]=19) then zak[i]:='s';

               if (mas[i]=20) then zak[i]:='t';

                  if (mas[i]=21) then zak[i]:='u';

if (mas[i]=22) then zak[i]:='v';

   if (mas[i]=23) then zak[i]:='w';

      if (mas[i]=24) then zak[i]:='x';

         if (mas[i]=25) then zak[i]:='y';

            if (mas[i]=26) then zak[i]:='z';

end;

  writeln(' ');

     for i:=1 to length(s) do

begin

  write(zak[i]);

end;

   readln;

end;

end;

procedure polibiuszash(a:string);

var

             s,t,t1,zash,rash:string;

             i,j,h,m,k,k1,code,n,v,v1:integer;

             a1:array[1..3,1..10] of char;

begin

rash:='';

  n:=97;

    m:=9;

  for i:=1 to 3 do

begin

   for j:=1 to m do

begin

   if i=3 then

begin

   m:=m-1;

end;

    a1[i,j]:=char(n);

      n:=n+1;

end;

end;

 writeln('1-Зашифровать');

   writeln('2-Расшифровать');

      readln(v);

  if (v=1) then

  begin

  v1:=1;

 writeln('Введите текст');

   readln(a);

zash:='';

   for h:=1 to length(a) do

begin

   for i:=1 to 3 do

begin

   for j:=1 to 9 do

begin

   if (a[h]=a1[i,j]) then

begin

str(i,t);

str(j,t1);

  zash:=zash+t+t1;

end

end

end

end;

   writeln(zash);

end;

   if ((v=2)and(v1<>1)) then

begin

     writeln('Нет даннфх для расшифровки');

 end;

   if ((v=2)and(v1=1)) then

begin

rash:='';

       for h:=1 to length(zash) do

begin

       for i:=1 to 3 do

begin

       for j:=1 to 9 do

begin

       val(zash[h],k,code);

       val(zash[h+1],k1,code);

          if ((k=i) and (k1=j)) then

begin

rash:=rash+a1[i,j];

h:=h+1;

break;

end

end

end;

end;

     writeln(rash);

end;

end;

procedure menu(t,t1:integer);

begin

 while t<>0 do begin

     writeln('Выберете способ шифрования');

       writeln('1-шифр Цезаря, 2-шифр с заменой букв цифрами, 3-шифр              Полибиуса ');

          writeln('Для выхода нажмите 0');

            readln(t);

if (t=0) then break;

  if (t=1)  then Cezarzash(a);

     if (t=2)  then Cifrzash(a);

        if (t=3)  then Polibiuszash(a);

end;

end;

begin

  t:=1;

     menu(t,t1);

       readln;

end.


 

А также другие работы, которые могут Вас заинтересовать

51030. Определение коэффициента вязкости газа 59 KB
  Рассчитаем коэффициент вязкости по формуле: Где радиус капилляра длинна капилляра Подставив данные получим.
51031. Изучение распределения Больцмана, определение постоянной Больцмана 40.5 KB
  Собрать установку в соответствии с рисунком: Принципиальная схема установки 1двухэлектродная лампа 2анод 3катод 4нить накала 5потенциометр R 6 источник постоянного тока 6выключатель mА – миллиамперметр; mкА – микроамперметр; Vа – вольтметр в цепи накала лампы. По указанию преподавателя установить напряжение накала Uн: 5. Зафиксировать ток накала лампы Iн по амперметру. Измерим анодный ток Iа и анодное напряжение Uа если напряжение накала Uн =5.
51034. Изучение зависимости температуры кипения воды от внешнего давления 58.5 KB
  Цель работы: Изучение зависимости температуры кипения воды от внешнего давления экспериментальное определение теплоты парообразования воды. Выждали пока показания температуры на табло электронного измерителярегулятора перестали измеряться. Сняли показания температуры и давления на табло измерителярегулятора и манометра: Включили переключатель нагрев 2ую ступень.
51035. Разработка тестов в программеPower Point 37.5 KB
  Индивидуальные данные для выполнения работы: 2 вариант Результаты выполнения работы Открыла программу Power Point; выбрала шаблон оформления слайдов для теста. Оформила титульный слайд. Как рассчитать количество нужных слайдов при оформлении теста в Power Point Количество слайдов =: количество вопросов 3сам вопрос правильно неправильно два титульных листа 1 заключительный; 4. Что необходимо выбрать в настройках слайда с результатом неправильного ответа чтобы вернуться на слайд с вопросом Добавить управляющую...
51036. Разработка тестов в программе Excel 37 KB
  Разработка тестов в программе Microsoft Excel на основе индивидуальных данных минимум 6 тестовых заданий. Индивидуальные данные для выполнения работы: 2 вариант Результаты выполнения работы Создала тест в Microsoft Excel 2010 по образцу данному в задании лабораторной работы Контрольные вопросы 1. Какие этапы создания тестовых заданий выделяют в технологии составления компьютерных тестов средствами Excel Можно выделить следующие этапы создание теста.