Вы находитесь на странице: 1из 15

Департамент образования г.

Москвы
Государственное бюджетное общеобразовательное учреждение города
Москвы «Школа № 777 имени Героя Советского Союза Е.В. Михайлова»

Проект
Создание приложения «Шифр» на языке программирования Visual Basic

Выполнил: Пронкин Алексей,


ученик 11и класса ГБОУ «Школа №777 им.
Героя Советского Союза Е.В. Михайлова»

Руководитель: Рябушкина Ирина Семеновна,


учитель ГБОУ «Школа №777 им. Героя
Советского Союза Е.В. Михайлова»

Москва, 2020
Оглавление

Введение ...................................................................................................................... 3
Цель проекта и задачи проекта................................................................................. 5
Методика выполнения работы .................................................................................. 6
1. Алгоритм «Шифр Цезаря» ................................................................................ 6
2. Алгоритм «Тарабарская грамота» . ................................................................ 7
Результаты ................................................................................................................... 8
Описание завершенного продукта ............................................................................ 9
Список литературы и источников ........................................................................... 11
Приложение ............................................................................................................... 12

2
Введение
С возникновением письменности у людей появилась потребность
скрывать важные сведения. Тайнопись (криптография) – это наука,
занимающаяся проблемами защиты информации. Защита информации – это
преобразование ее в нечитаемый вид, которое выполняется по определенным
правилам. Эти правила известны лишь уполномоченным лицам. Сами правила
образуют систему шифрования/дешифрования текста.
Первые методы шифрования появились 4000 лет назад и
были графическими. Например, в Египте для украшения гробниц использовали
иероглифы, рассказывающие историю жизни умершего. Древние
цивилизации Вавилона, Индии, Греции, Китая также активно использовали
шифры для защиты информации.
В древнее время тайнопись чаще всего использовали для
сокрытия религиозных текстов и медицинских рецептов.
В священных иудейских книгах можно встретит примеры использования
криптографии. Например, в книге пророка Иеремии (VI век до н. э.) описан про
стой метод шифрования под названием «Атбаш». Автор использовал зеркальны
й алфавит так, что каждой букве в обычном алфавите соответствовала буква в
перевернутом алфавите.
Пример этих алфавитов:
ABCD...Z
ZYXW ...A
С развитием государственности отмечается рост методов тайнописи, ко-
торые применялись уже для защиты дипломатических и военных сообщений.
Так в Риме Юлий Цезарь (100-44 годы до н.э.) разработал метод шифрования
своих военных донесений путем сдвига букв исходного алфавита на три буквы
влево, похожий на систему шифрования «Абаш».
В России тайнопись возникла в XIII веке, но первые специалисты в этой
бласти, находящиеся на государственной службе, появились в 1545 г. Во време-

3
на правления Ивана IV Грозного (вторая половина XVI века) внешне
политическая деятельность России расширяется. Это приводит к
необходимости развития способов тайнописи. Русские послы стали прибегать
к зашифрованной переписке ("затейное письмо"). Такое письмо составлялось
на основе метода шифровки, получившего название «тарабарской грамоты».
Проблема защиты информации особенно актуальна в наши дни. Инфор-
мацию сегодня рассматривают как один из ценнейших и дорогостоящих ресур-
сов, необходимых для развития цивилизованного общества. И она требует обес-
печения должной защиты. Информационная безопасность не мыслима без зна-
ния различных методов шифрования информации.

4
Цель проекта и задачи проекта

Цель: создать в среде Visual Basic приложение «Шифр», которое


используя алгоритмы «Шифр Цезаря» и «Тарабарская грамота» позволяет
шифровать и дешифровать произвольный текст.

Задачи:
1. Изучить историю криптографии.
2. Изучить алгоритмы шифрования/дешифрования «Шифр Цезаря» и
«Тарабарская грамота».
3. Разработать программы для реализации алгоритмов «Шифр Цезаря»,
«Тарабарская грамота».

5
Методика выполнения работы
1. Алгоритм «Шифр Цезаря»
При выполнении шифрования каждый символ исходного текста
заменяется символом, который находится на 3 позиции правее исходного
символа в алфавите. Таким образом, буква А заменяется на Г, Б на Д, Я на В, и
так далее.
А Б В Г Д Е Ё

Г Д Е Ё
Алгоритм
Исходный алфавит: А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч
Ш Щ Ъ Ы Ь Э Ю Яа б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
Шифрованный алфавит: Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш
ЩЪЫЬЭЮЯАБВгдеёжзийклмнопрстуфхцчшщъыьэюяа
бв
Шифрованный текст получается путём замены каждой буквы оригиналь-
ного текста соответствующей буквой шифрованного алфавита.
Пример.
Оригинальный текст: Информационная безопасность.
Шифрованный текст: Лрчсупгщлсрргвдзкстгфрсфхя
Если символа в алфавите нет, то он просто переписывается в шифровку.
Для дешифрования используют тот же способ, что и для шифрования.

Программный код
См. Приложение

6
2. Алгоритм «Тарабарская грамота»
Для шифрования сообщений данным методом используется
нижеследующая таблица.

Б В Г Д Ж З К Л М Н

Щ Ш Ч Ц Х Ф Т С Р П

В первой строке таблицы располагаются первые 10 согласных. Они


записаны в обычном порядке. Во вторую строку таблицы занесены следующие
10 согласных, но записанные в обратном порядке.
Алгоритм
Символ исходного текста ищется в таблице и заменяется на символв
шифрованном тексте, который находится в том же столбце таблицы, но в другой
строке. Например, В заменяется на Ш, и наоборот, Ш на В:
Пример: вместо слова МЕЧ будет РЕГ.
Если символа в таблице нет, то он просто переписывается в шифровку.
Для дешифрования используют тот же способ, что и для шифрования.
Программный код
См. Приложение

7
Результаты
Работая над проектом, я изучил историю криптографии, алгоритмы
шифрования/дешифрования «Шифр Цезаря» и «Тарабарская грамота».
Мною были написаны программы на языке Visual Basic для реализации
вышеуказанных алгоритмов.
В результате я разработал пользовательское приложение «Шифр», кото-
рое, используя алгоритмы «Шифр Цезаря» и «Тарабарская грамота» позволяет
шифровать и дешифровать произвольный текст. Можно использовать данную
программу на уроках информатики, а также в личных целях пользователя.
Потребность в кодировании информации актуальна во все времена.
Требует защиты дипломатическая и экономическая корреспонденция,
военные сообщения, медицинские прогнозы, информация с бирж, сообщения
прессы. Эта защита обеспечивается постоянным развитием и
совершенствованием систем шифрования. Поэтому тема «Криптография»
интересна и современна.

8
Описание завершенного продукта
1. Главное окно.
В окне программы есть поле для ввода исходного текста. Текст
необходимо вводить на русском языке. С помощью соответствующих кнопок
можно выбрать метод шифрования/дешифрования. В зависти от целей
(шифрование/дешифрование) используются командные кнопки. Результат будет
отображен в нижнем текстовом поле.
В главном меню приложения три пункта. В пункте «О программе»
содержится информация об авторе. Пункт «Системы шифрования» позволяет
получить справочную информацию об используемых алгоритмах шифрования.
Вкладка «Выход» позволяет завершить работу приложения.

Рис. 1. Главное окно приложения

9
2. Пример работы программы.

Рис. 2. Результат шифрования текста методом «Шифр Цезаря»

Рис. 3. Результат дешифрования текста методом «Шифр Цезаря»

10
Список литературы и источников
1. Под редакцией В. В. Ященко. Введение в криптографию.: МЦНМО,
2012
2. Сингх Саймон. Книга шифров. М.: Аванта+, 2009
3. Жельников В. Кpиптогpафия от папиpуса до компьютеpа — М.: ABF,
1996.
4. http://www.questhint.ru
5. http://ru.wikipedia.org
6. http://cryptography.ucoz.net
7. http://www.krugosvet.ru

11
Приложение

Private Sub Command1_Click()


Dim stroka1, stroka2, stroka3, stokaisx, strokakon, simvol As String
Dim i, j, kolvo, k As Integer
' ШифрЦезаря (шифрование)
If Option1.Value = True Then
stroka1 = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийк-
лмнопрстуфхцчшщъыьэюя"
stroka2="ГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВгдеёжзийклмнопрс
туфхцчшщъыьэюяабв"
strokaisx = Text1.Text
strokakon = ""
kolvo = Len(strokaisx)
For i = 1 Tokolvo
simvol = Mid(strokaisx, i, 1)
If simvol = " " Or simvol = "." Or simvol = "," Or simvol = "!" Or simvol = "?" Or
simvol = ":" Or simvol = ";" Or simvol = "-" Then
strokakon = strokakon + Chr(Asc(simvol))
Else
For j = 1 To 66
If simvol = Mid(stroka1, j, 1) Then strokakon = strokakon + Mid(stroka2, j, 1)

Next j
End If
Next i
EndIf
' Тарабарская грамота (шифрование)
If Option2.Value = True Then
stroka1 = "БВГДЖЗКЛМНбвгджзклмн"
stroka2 = "ЩШЧЦХФТСРПщшчцхфтсрп"
stroka3 = "АЕЁИЙОУЪЫЬЭЮЯаеёийоуъыьэюя"
strokaisx = Text1.Text
strokakon = ""
kolvo = Len(strokaisx)
12
For i = 1 Tokolvo
simvol = Mid(strokaisx, i, 1)
If simvol = " " Or simvol = "." Or simvol = "," Or simvol = "!" Or simvol = "?" Or
simvol = ":" Or simvol = ";" Or simvol = "-" Then
strokakon = strokakon + Chr(Asc(simvol))
Else
For j = 1 To 30
If simvol = Mid(stroka1, j, 1) Then strokakon = strokakon + Mid(stroka2, j, 1)
If simvol = Mid(stroka2, j, 1) Then strokakon = strokakon + Mid(stroka1, j, 1)
If simvol = Mid(stroka3, j, 1) Then strokakon = strokakon + Mid(stroka3, j, 1)
Next j
End If
Next i
End If
Text2.Text = strokakon
End Sub

Private Sub Command2_Click()


Dim stroka1, stroka2, stroka3, stokaisx, strokakon, simvol As String
Dim i, j, kolvo, k As Integer
Dim A(4) As Integer
' ШифрЦезаря (дешифрование)
If Option1.Value = True Then
stroka1 =
"ГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВгдеёжзийклмнопрстуфхцчшщъыьэ
юяабв "
stroka2 =
"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъ
ыьэюя "

strokaisx = Text1.Text
strokakon = ""
kolvo = Len(strokaisx)
For i = 1 Tokolvo
simvol = Mid(strokaisx, i, 1)

13
If simvol = " " Or simvol = "." Or simvol = "," Or simvol = "!" Or simvol = "?" Or
simvol = ":" Or simvol = ";" Or simvol = "-" Then
strokakon = strokakon + Chr(Asc(simvol))
Else
For j = 1 To 66
If simvol = Mid(stroka1, j, 1) Then strokakon = strokakon + Mid(stroka2, j, 1)

Next j
End If
Next i
EndIf
' Тарабарская грамота (дешифрование)
If Option2.Value = True Then
stroka1 = " ЩШЧЦХФТСРПщшчцхфтсрп "
stroka2 = " БВГДЖЗКЛМНбвгджзклмн "
stroka3 = " АЕЁИЙОУЪЫЬЭЮЯаеёийоуъыьэюя "
strokaisx = Text1.Text
strokakon = ""
kolvo = Len(strokaisx)
For i = 1 Tokolvo
simvol = Mid(strokaisx, i, 1)
If simvol = " " Or simvol = "." Or simvol = "," Or simvol = "!" Or simvol = "?" Or
simvol = ":" Or simvol = ";" Or simvol = "-" Then
strokakon = strokakon + Chr(Asc(simvol))
Else
For j = 1 To 30
If simvol = Mid(stroka1, j, 1) Then strokakon = strokakon + Mid(stroka2, j, 1)
If simvol = Mid(stroka2, j, 1) Then strokakon = strokakon + Mid(stroka1, j, 1)
If simvol = Mid(stroka3, j, 1) Then strokakon = strokakon + Mid(stroka3, j, 1)
Next j
End If
Next i
End If
Text2.Text = strokakon
End Sub

14
Private Sub Form_Load()
Label1.Caption = "Введитетекст, которыйнеобходимозашифровать (дешифровать)"
Form1.BackColor = RGB(125, 200, 196)
Option1.Value = True
Option2.Value = False
Text1.ForeColor = vbBlue
Text2.ForeColor = vbRed
End Sub

Private Sub Mnuavt_Click()


Form2.Visible = True
End Sub

Private Sub Mnucez_Click()


Form3.Visible = True
End Sub

Private Sub Mnuout_Click()


End
End Sub

Private Sub Mnutar_Click()


Form4.Visible = True
End Sub

Private Sub Option1_Click()


Option1.Value = True
Option2.Value = False
End Sub

Private Sub Option2_Click()


Option1.Value = False
Option2.Value = True
EndSub

15