Ведение

1  Криптографическая защита информации

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

-  расшифровать законный получатель сможет, выполнив обратное преобразование сообщения;

-  восстановить по нему не сможет исходное сообщение криптоаналитик противника, перехвативший сообщение, которые сделают эту работу нецелесообразной.

2  Примеры криптосистемы

2.1  Шифрование методом маршрутной перестановкой

Описание задачи

Этот метод основан на некоторой геометрической фигуре. Отрезок открытого текста записывается в такую фигуру на некоторые траектории. Шифрованным текстом является полученной при выписывании текста другой траекторией.

Пример. Зашифруем текст «Работать с датами и временем» методом «Маршрутная перестановка:

Р

А

Б

О

Т

А

Т

А

Д

С

Ь

Т

А

М

И

И

В

Р

М

Е

Н

Е

М

Е

Получится следующий шифрованный текст:

АТРЕ МВЬТ ОСИЕ НИДБ ААМЕ МАТР

НЕ нашли? Не то? Что вы ищете?

Описание логической структуры

Для шифрования текста методом маршрутной перестановкой, выполним следующие действия:

-  Введем шифруемый текст;

-  Уберем пробелы в тексте и преобразуем строчные буквы в пропистные;

-  Вычисляем количество знаков в тексте;

-  Введем размер прямоугольника;

-  Разбиваем текст на двумерный массив;

-  Шифруем;

-  Выводим шифрованный текст.

Объекты CODEROUTR.FRM и значения их свойств

Тип и номер1

Свойство

Значение

Form

Name

frmCodeRoutR

BorderStyle

4 – Fixed ToolWindows

Caption

Маршрутная перестановка

MaxButton

0 – False

MDIChild

-1 – True

MinButton

0 – False

ShowInTaskbar

0 – False

Label

1

Name

LabTitle

Alignment

2 – Center

Caption

МАРШРУТНАЯ ПЕРЕСТАНОВКА

Font

Underline

-1 – True

Label

2

Name

Lab1

Caption

1. Введите шифруемый текс:

Font

Underline

-1 – True

TextBox

3

Name

txtEntrance

CommandButton

4

Name

CmdNumОfMarks

Caption

Подсчет знаков

Label

5

Name

Lab2

Caption

2. Введите высоту и ширину прямоугольника:

Font

Underline

-1 – True

TextBox

6

Name

txtHArray

Alignment

2 – Center

Label

7

Name

Lab3

Alignment

2 – Center

Caption

X

TextBox

8

Name

txtWArray

Alignment

2 – Center

CommandButton

9

Name

CmdCodeRoutR

Caption

Маршрутная перестановка

TextBox

10

Name

txtCodeRoutR

1 Номер указанный в первой колонке, соответствует порядковому номеру объекта на форме (рис. )

Исходный код CODEROUTR.FRM

Option Explicit

Private Sub CmdCodeRoutR_Click()

'Описание переменных

Dim TextWBlanks As String 'Текст без пробелов

Dim MarksInText As Integer 'Число знаков в тексте

Dim HArray As Integer 'Кол-во строк

Dim WArray As Integer 'Кол-во столбцов

Dim HWArray As Integer 'Произведение кол-ва строк на столбцы

'Убираем пробелы в тексте

'и преобразуем строчные буквы в прописные

TextWBlanks = StrConv(Replace(txtEntrance. Text, " ", ""), vbUpperCase)

'Вычисляем колличество знаков в тексте

MarksInText = CInt(Len(TextWBlanks))

HArray = CInt(txtHArray. Text)

WArray = CInt(txtWArray. Text)

'Прверка введенных размеров массива

HWArray = HArray * WArray

If HWArray <> MarksInText Then

MsgBox "Не правильно ввели высоту и ширину прямоуголника"

Exit Sub

End If

'Обращаемся к функции CodeRoutR

txtCodeRoutR. Text = CodeRoutR(TextWBlanks, HArray, WArray)

End Sub

Private Sub CmdNumОfMarks_Click()

'Описание переменных

Dim TextWBlanks As String 'Текст без пробелов

Dim MarksInText As String 'Чило знаков в тексте

'Убираем пробелы в тексте

TextWBlanks = Replace(txtEntrance. Text, " ", "")

'Вычисляем колличество знаков в тексте

MarksInText = Len(TextWBlanks)

CmdNumОfMarks. Caption = "В тексте " & MarksInText & " знака(ов) без пробела"

End Sub

Function CodeRoutR(TextWBlanks As String, HArray As Integer, WArray As Integer)

'Шифрование методом маршрутной перестановки

Dim AuxArray() As String 'Вспомогательный ключ

Dim TextInArray() As String 'Текст в массиве

Dim Text As String 'Формирование шифрованного текста

Dim x, e, w

'Разбиваем текст на массив

ReDim TextInArray(HArray, WArray)

x = 1

For e = 1 To HArray

For w = 1 To WArray

TextInArray(e, w) = Mid(TextWBlanks, x, 1)

x = x + 1

Next w

Next e

'Шифруем

ReDim AuxArray(WArray)

For e = 2 To HArray Step 2

For w = 1 To WArray

AuxArray(w) = TextInArray(e, w)

Next w

For w = 1 To WArray

TextInArray(e, WArray + 1 - w) = AuxArray(w)

Next w

Next e

ReDim AuxArray(HArray)

For w = WArray - 1 To 1 Step -2

For e = 1 To HArray

AuxArray(e) = TextInArray(e, w)

Next e

For e = 1 To HArray

TextInArray(HArray + 1 - e, w) = AuxArray(e)

Next e

Next w

'Сосотавляем шифрованный текст

Text = ""

For w = WArray To 1 Step -1

For e = 1 To HArray

Text = Text & TextInArray(e, w)

Next e

Text = Text & " "

Next w

CodeRoutR = Text

End Function

Входные и выходные данные

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7