Смекни!
smekni.com

Программная реализация криптографического алгоритма шифрования с использованием открытого текста (стр. 1 из 3)

Федеральное агентство по образованию

Пензенский государственный университет

Кафедра «Информационной безопасности систем и технологий»

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту на тему

“ Программная реализация криптографического алгоритма шифрования с использованием открытого текста в качестве ключа ”

ПГУ 3.090105.001 ПЗ

Дисциплина: КМЗИ

Группа:

Разработал студент:

Работа принята с оценкой:

Руководитель проекта:

Пенза 2006г.


Реферат

Пояснительная записка содержит 24 страниц, 4 источника, 4 приложения.

ТАБЛИЦА ВИЖЕНЕРА, АЛФАВИТ, ОТКРЫТЫЙ ТЕКСТ, ШИФРОТЕКСТ, ШИФРОВАНИЕ, РАСШИФРОВАНИЕ.

Объектом исследования является шифр по таблице Виженера.

Целью работы является реализация криптографического алгоритма шифрования с использованием открытого текста в качестве ключа по таблице Виженера.

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

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


Содержание

Реферат

Задание

Введение

1 Разработка алгоритма программы ручного шифра по таблице Виженера

1.1 Функция шифрования

1.2 Функция расшифрования

2 Разработка программы, выполняющей шифрование и расшифрование по таблице Виженера

3 Экспериментальная проверка работы программы

Заключение

Список использованных источников

Приложение А. Обязательное. Алгоритм программы шифрования и расшифрования

Приложение Б. Обязательное. Алгоритм функции шифрования

Приложение В. Обязательное. Алгоритм функции расшифрования

Приложение Г. Обязательное. Листинг программы шифрования и расшифрования


Введение

В настоящее время широкое распространение получили персональные компьютеры. Они, без преувеличения, вошли во все сферы человеческой деятельности. Это максимально облегчило человеческий труд. Сейчас трудно представить, чтобы делал человек без компьютера. Предприятия, фирмы, офисы, банки - это ещё далеко не все области применения персонального компьютера.

Без использования криптографии сегодня немыслимо решение задач по обеспечению безопасности информации, связанных с конфиденциальностью и целостностью. Если до 1990г. криптография обеспечивала закрытие государственных линий связи, то в наши дни использование криптографических методов получило широкое распространение благодаря развитию компьютерных сетей и электронного обмена данными в различных областях[2].

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

Данная курсовая работа написана на языке С.

Разработанная программа обладает интерактивным интерфейсом. Методы и средства взаимодействия с аппаратными и программными средствами называют пользовательским интерфейсом [4].

С – это универсальный язык программирования с компактным способом записи выражений, современными механизмами управления структурами данных и богатым набором операторов[1].

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

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

Разумеется, «сложность» выполнения математической операции зависит от применяемого алгоритма и, в конечном счёте, сводится к оценке числа так называемых «элементарных» операций, составляющих алгоритм вычисления. Если иметь в виду, что алгоритм математической операции реализуется на ЭВМ, то при данных параметрах ЭВМ (скорость вычисления, объём долговременной и оперативной памяти) «сложность» математической операции может быть оценена временем её выполнения на ЭВМ. Существует тривиальные алгоритмы, основанные на последовательном переборе всех возможных вариантов решения и выделении среди них истинного варианта. Однако такой «силовой» метод требует больших временных затрат и на практике невыполним, если параметры задачи ( в примерах – это величена чисел, разлагаемого на простые множители; свойство многочлена и величина степени, в которую он возводится) достаточно велики.

Поиск и разработка эффективных алгоритмов для выполнения некоторых математических операций или доказательство невозможности их построения представляют сложную математическую проблему, над решением которой упорно работают математики всего мира. В последние годы получены некоторые успехи в этой области, что, конечно, заставило переоценить стойкость некоторых шифросистем, построенных на основе применения «открытого» ключа. Однако существуют проблемы, где продвижения в поисках эффективных алгоритмов оказались недостаточными для их практической реализации или требуют чрезвычайно больших материальных и временных затрат. ТО, что над этими проблемами работают самые квалифицированные математики всего мира, пытаясь улучшить алгоритмы решения «обратных» задач, даёт основание полагать, что на определённый период времени такого рода «сложные» математические операции могут обеспечивать криптографическую стойкость шифросистем, построенных с их использованием. Именно к таким проблемам относится « дискретное логарифмирование»[3].


1. Разработка алгоритма программы ручного шифра по таблице Виженера

Алгоритм программы шифрования и расшифрования приведен в приложении А.

Программа должна реализовывать алгоритм шифрования и расшифрования по квадрату Виженера.

1.1 Функция шифрования

Алгоритм функции шифрования приведен в приложении Б.

Виженер высказывает идею использования в качестве ключа самого открытого текста. При шифровании применяется таблица Тритемия, слегка модифицированную Виженером (см. таблицу 1). Заранее оговаривается одна ключевая буква алфавита, обозначим ее через t0. Она используется как ключ при шифровании первой буквы текста t1. Последовательность букв открытого текста t1t2 … подписывается под ключевой последовательностью t0t1t2 …:

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

1.2 Функция расшифрования

Алгоритм функции расшифрования приведён в приложении В.

При расшифровании открытый текст, являющийся частью ключевой последовательности, нам изначально неизвестен. Но если расшифровывающий знает букву ключа t0, он может расшифровать первую букву шифрованного текста s1: для этого находим в строке таблицы Виженера (см. таблицу 1) с номером t0 букву s1, t1 есть номер столбца, в котором она находится (буква того же столбца в первой строке). Вписываем эту букву над s2 и расшифровываем вторую букву. И т.д.

Таблица 1. Таблица Виженера

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
a 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
b 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 a
c c d e f g h i j k l m n o p q r s t u v w x y z a b
d d e f g h i j k l m n o p q r s t u v w x y z a b c
e e f g h i j k l m n o p q r s t u v w x y z a b c d
f f g h i j k l m n o p q r s t u v w x y z a b c d e
g g h i j k l m n o p q r s t u v w x y z a b c d e f
h h i j k l m n o p q r s t u v w x y z a b c d e f g
i i j k l m n o p q r s t u v w x y z a b c d e f g h
j j k l m n o p q r s t u v w x y z a b c d e f g h i
k k l m n o p q r s t u v w x y z a b c d e f g h i j
l l m n o p q r s t u v w x y z a b c d e f g h i j k
m m n o p q r s t u v w x y z a b c d e f g h i j k l
n n o p q r s t u v w x y z a b c d e f g h i j k l m
o o p q r s t u v w x y z a b c d e f g h i j k l m n
p p q r s t u v w x y z a b c d e f g h i j k l m n o
q q r s t u v w x y z a b c d e f g h i j k l m n o p
r r s t u v w x y z a b c d e f g h i j k l m n o p q
s s t u v w x y z a b c d e f g h i j k l m n o p q r
t t u v w x y z a b c d e f g h i j k l m n o p q r s
u u v w x y z a b c d e f g h i j k l m n o p q r s t
v v w x y z a b c d e f g h i j k l m n o p q r s t u
w w x y z a b c d e f g h i j k l m n o p q r s t u v
x x y z a b c d e f g h i j k l m n o p q r s t u v w
y y z a b c d e f g h i j k l m n o p q r s t u v w x
z z 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

2. Разработка программы, выполняющей шифрование и расшифрование по таблице Виженера