Поволжский государственный университет телекоммуникаций
И информатики
Кафедра ИНФОРМАТИКИ И
ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
Сдана на проверку Допустить к защите
__________ 20____ г. ________________ 20___ г.
Защищена с оценкой
___________________
________________20___ г.
КУРСОВАЯ РАБОТА
ПО ИНФОРМАТИКЕ
Реализация криптографических методов
защиты информации на языке JavaScript»
Студент(ка) группы ________ Фамилия И. О.
(роспись)
Руководитель _____________ Алексеев А.П.
(роспись)
Самара, 2012 г.
Оглавление
Введение…………………………………………………………………… 3
Криптографические методы защиты информации………………………4
Языки программирования…………………………………………………6
Результаты ручного расшифрования………………………………………9
Листинги разработанных программ………..……………………………10
Шифр Цезаря…………………………………………………..……10
Шифр Атбаш…………………………………….………………….13
Квадрат Полибия…………………………………..……………….15
Метод перестановок……………………………….……………….17
Метод гаммирования…………………………….…………………22
Результаты зашифрования и расшифрования с помощью разработанных програм………….………………………………………………24
Шифр Цезаря………………………………………………………..24
Шифр атбаш…………………………………………..……………25
Квадрат Полибия…………………………………….…………….26
Метод перестановок……………………….………………………27
Метод гаммирования………………………..……………………..28
Заключение……………………………..…………………………………29
Список использованной литературы………..…………………………..30
Введение
На протяжении всей истории человечества переписка людей находилась под угрозой раскрытия. Появлялись шифрующие системы, для защиты от прочтения. Так тайнопись – написание информации таким образом, что прочтение возможно лишь для узкого круга лиц – стала широко используемой во всем мире. Но пользовались шифровками лишь крупные деятели – императоры, консулы, короли.
В XXI веке шифры используют повсеместно, в коммерческих, военных, дипломатических и т.д. целях. Информацию производят и продают. Но для продажи ее необходимо передать. Здесь и возникают многочисленные проблемы, которые и разрешают системы шифрования.
Актуальность этой работы выражена в важности криптографии для будущего постиндустриального государства. Изучая методы шифрования, переходя от простых (шифр Атбаш), до более сложных (метод гаммирования), можно осознать происходящие при шифровании и расшифровании процессы.
Криптографические методы защиты информации
Шифр Атбаш
В шифре Атбаш используется метод зеркальной перестановки алфавита – первая буква заменяется последней, вторая – предпоследней и т.д.
Для русского алфавита исходный и секретный алфавит соответственно будут иметь вид:
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я
Я Ю Э Ъ Ы Ь Щ Ш Ч Ц Х Ф У Т С Р П О Н М Л К Й И З Ж Ё Е Д Г В Б А
Шифр Цезаря
В шифре Цезаря происходит сдвиг алфавита на определенное количество букв вперед. Цезарь использовал сдвиг равным 3.
Квадрат Полибия
В Древней Греции использовался шифр Полибия.
В квадрат размером 5×5, с пронумерованными строками и колоннами записывался алфавит. Таким образом, каждая буква имела свой номер строки и колонны. И весь секретный текст был в виде цифр.
Метод перестановок
В квадрат определенных размеров по строкам записывался исходный текст. После квадрат разбивался на колонны и получался секретный текст.
Метод гаммирования
Гаммирование — симметричный метод шифрования, основанный на «наложении» гамма-последовательности на открытый текст. Обычно это суммирование в каком-либо конечном поле, например в поле GF(2) такое суммирование принимает вид обычного «исключающего ИЛИ». При этом для каждого сообщения необходимо использовать новую гамму; для формирования самой гаммы использовать аппаратные генераторы случайных чисел на основе физических процессов; установить минимальное количество символов в гамме – она не должна быть короче длины защищаемого сообщения.
Визуально это выглядит следующим образом:
схема передатчика:
схема приемника:
Языки программирования
Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.
Рассмотрим основные и популярные языки программирования.
Assembler- это ярчайший представитель языков _низкого уровня, набор понятий которого основан на аппаратной реализации. Это средство автоматизации для программирования непосредственно в кодах процессора. Машинные команды описываются в виде мнемонических операций, что позволяет добиться достаточно высокой модифицируемости кода. Поскольку набор команд на разных процессорах различен, то и о совместимости говорить не приходится.
Кобол — язык программирования высокого уровня, разработанный в конце 1950-х гг. ассоциацией КАДАСИЛ для решения коммерческих и экономических задач. Отличается развитыми средствами работы с файлами. Поскольку команды программ, написанных на этом языке, активно используют обычную английскую лексику и синтаксис, Кобол рассматривается как один из самых простых языков программирования. В настоящее время используется для решения экономических, информационных и других задач.
Фортран — язык программирования высокого уровня, разработанный фирмой IBM в 1956 г. для описания алгоритмов решения вычислительных задач. Относится к категории процедурно-ориентированных языков. Наиболее распространенными версиями этого языка являются Фортран IV, Фортран 77 и Фортран 90. Используется на всех классах ЭВМ. Последняя его версия также применяется на ЭВМ с параллельной архитектурой.
Ада — язык программирования высокого уровня, ориентированный на применение в системах реального времени и предназначенный для автоматизации задач управления процессами и/или устройствами, например, в бортовых (корабельных, авиационных и др.)
BASIC (Beginner’s All-purpose Symbolic Instruction Code), рожденный в 60-его в Америке. Бейсик был задуман как простой язык для быстрого освоения. Бейсик стал фактическим стандартом для Микро ЭВМ именно благодаря своей простоте, как в освоении, так и в реализации. Однако для достижения этого качества был принят ряд решений (отсутствие типизации, нумерация строк и неструктурное GOTO, и др.), негативно сказывающихся на стиле изучающих программирование. Кроме того, недостаток выразительных средств привел к появлению огромного количества диалектов языка, не совместимых между собой. Современные, специализированные версии Бейсика (такие как VisualBasic) несмотря на приобретенную структурность обладают все теми же недостатками, прежде всего — небрежностью по отношению к типам и описаниям. Пригоден для использования на начальном этапе обучения, как средство автоматизации (в случаях, когда он встроен в соответствующие системы) либо как средство для быстрого создания приложений.
Pascal, разработанный известным теоретиком Н. Виртом на основе идей Алгола-68, Паскаль предназначался, прежде всего, для обучения программированию. Построенный по принципу необходимо и достаточно, он располагает строгим контролем типов, конструкциями для описания произвольных структур данных, небольшим, но достаточным набором операторов структурного программирования. К сожалению, обратной стороной простоты и строгости является громоздкость описаний конструкций языка. Наиболее известная реализация — Turbo/BorlandPascal — несмотря на отличия от стандарта Паскаля, представляет собой среду и набор библиотек, сделавшие из учебного языка промышленную систему для разработки программ в среде MS-DOS.
C и C++. В основе языка C — требования системного программиста: полный и эффективный доступ ко всем ресурсам компьютера, средства программирования высокого уровня, переносимость программ между различными платформами и операционными системами. С++, сохраняя совместимость с C, вносит возможности объектно-ориентированного программирования, выражая идею класса (объекта) как определяемого пользователем типа. Благодаря перечисленным качествам, C/C++ занял позицию универсального языка для любых задач. Но его применение может стать неэффективным там, где требуется получить готовый к употреблению результат в кратчайшие сроки, либо там, где невыгодным становится сам процедурный подход.
JavaScript — Интерпретатор этого языка встроен во все современные браузеры, что облегчает работу по созданию и отладке сценариев на JavaScript. Последний предоставляет Web-разработчикам широкий спектр возможностей по оформлению сайта и организации взаимодействия с пользователем. Сценарии на JavaScript часто довольно небольшие по объёму и ориентированы на решение конкретных задач, что облегчает процесс освоения этого языка. Встроенный интерпретатор JavaScript позволяет быстро исполнять сценарии на этом языке непосредственно на машине пользователя.
Язык JavaScript является системно-независимым и совместим между всеми типами компьютеров , работающими в Интернет.
Программы на языке JavaScript включаются в состав HTML документа и , фактически , этот язык может считаться расширением состава команд HTML.
Поэтому для создания программ на JavaScript не требуется никаких дополнительных средств , необходим лишь браузер, поддерживающий JavaScript
Результаты ручного расшифрования
Шифр Цезаря: ЧЕМ ХУЖЕ НОВОСТЬ ТЕМ БОЛЬШЕ ИНФОРМАЦИИ ОНА СОДЕРЖИТ
Атбаш: ЗУБЫ МУДРОСТИ ПОЯВЛЯЮТСЯ ЗНАЧИТЕЛЬНО ПОЗЖЕ КЛЫКОВ
Квадрат Полибия: ЗОЛОТЫЕ РУКИ ЗА СЕРЕБРО НЕ КУПИШЬ
Метод перестановки: ПОД СЛАДКИМИ ВЫРАЖЕНИЯМИ ТАЯТСЯ МЫСЛИ КОВАРНЫЕ ТАК ОТ КУРЯЩЕГО ТАБАК НЕРЕДКО ПАХНЕТ ДУХАМИ 199887541
Метод гаммирования: ВРЕМЯ ВСЕМУ СУДЬЯ
Статьи к прочтению:
Языки программирования. Данные. Языки высокого уровня. Урок 32
Похожие статьи:
-
Утрата информации в результате неверных действий пользователя.
Тема 10. Человеческий фактор и предотвращение утраты информации Ключевая роль человеческого фактора в проблеме защиты информации. Люди, которые…
-
Доказательство правильности результатов
Результаты, полученные вручную, подтверждающие правильность выполнения программы. 4.2.6. Контрольные вопросы по теме «Основные средства языка…