Параметры алгоритмов шифрования. Криптография

Среди разнообразнейших способов шифровании можно выделить следующие основные методы:

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

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

Алгоритмы гаммирования - символы исходного текста складываются с символами некой случайной последовательности. Самым распространенным примером считается шифрование файлов «имя пользователя.рwl», в которых операционная система Microsoft Windows 95 хранит пароли к сетевым ресурсам данного пользователя (пароли на вход в NT-серверы, пароли для DialUр-доступа в Интернет и т.д.). Когда пользователь вводит свой пароль при входе в Windows 95, из него по алгоритму шифрования RC4 генерируется гамма (всегда одна и та же), применяемая для шифрования сетевых паролей. Простота подбора пароля обусловливается в данном случае тем, что Windows всегда предпочитает одну и ту же гамму.

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

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

Алгоритмы шифрования

Рассмотрим подробнее методы криптографической защиты данных

1. Алгоритмы замены(подстановки)

2. Алгоритм перестановки

3. Алгоритм гаммирования

4. Алгоритмы, основанные на сложных математических преобразованиях

5. Комбинированные методы шифрования

Алгоритмы 1-4 в «чистом виде» использовались раньше, а в наши дни они заложены практически в любой, даже самой сложной программе шифрования. Каждый из рассмотренных методов реализует собственный способ криптографической защиты информации и имеет собственные достоинства и недостатки, но их общей важнейшей характеристикой является стойкость. Под этим понимается минимальный объем зашифрованного текста, статистическим анализом которого можно вскрыть исходный текст. Таким образом, по стойкости шифра можно определить предельно допустимый объем информации, зашифрованной при использовании одного ключа. При выборе криптографического алгоритма для использования в конкретной разработке его стойкость является одним из определяющих факторов.

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

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

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

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

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

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

Алгоритм DES был утвержден еще долее 20 лет назад, однако за это время компьютеры сделали немыслимый скачок в скорости вычислений, и сейчас не так уж трудно сломать этот алгоритм путем полного перебора всех возможных вариантов ключей (а в DES используется всего 8-байтный),что недавно казалось совершенно невозможным.

ГОСТ 28147-89 был разработан еще спецслужбами Советского Союза, и он моложе DES всего на 10 лет; при разработке в него был заложен такой запас прочности, что данный ГОСТ является актуальным до сих пор.

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

Заключение

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

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

· невозможность раскрытия или осмысленной модификации информации на основе анализа ее структуры,

· совершенство используемых протоколов защиты,

· минимальный объем используемой ключевой информации,

· минимальная сложность реализации (в количестве машинных операций), ее стоимость,

· высокая оперативность.

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


Практическая часть:

Задание 1.

1) Заполняем поле X выполнив

1.1 Задаем вручную первое значение

1.2 Выполняем Правка->Заполнить->

2) Заполняем поле значений функции g =

Рис.1.1 – Формула функции g(x)

2.1) Просчитываем значения функций

3) Построение графиков

3.1) Выделяем ячейки с значениями Функций g

3.2) Выбираем мастер диаграмм

Рис.1.2 – Мастер диаграмм - График

Далее ->ряд

Рис.1.3 – Мастер диаграмм – подпись осей

Выделяем значение оси X

Нажимаем Ввод (enter)

3.3) Даем имена графикам

3.4) Выделяем ячейку с формулой графика

3.6) Выбираем закладку ->Линии сетки, выставляем

X промежуточные линии, Y Основные линии ->Далее

3.7) Помещаем график функции на имеющемся листе -> (Готово)

4) В итоге получаем (Рис.1.4)

Рис.1.4 – График функции g(x)

1.2.

1) Определяем в полях таблицы функции будущих графиков

Рис.1.5 – Подпись функций будущих графиков

2) Заполняем поле X выполнив:

2.1 Задаем вручную первое значение

2.2 Выполняем Правка->Заполнить->Прогрессия (по столбцам, арифметическая, шаг, предельное значение) при х [-2;2]

3) Просчитываем значения функций y=2sin( x) – 3cos( x), z = cos²(2 x) – 2sin( x).


Рис.1.6 – Формулы функций y(x) и z(x)

4) Построение графиков

4.1Выделяем ячейки с значениями Функций y и z

Выбираем мастер диаграмм

Рис.1.7 - Мастер диаграмм - График

Выделяем значение оси X

Нажимаем Ввод (enter)

4.2) Даем имена графикам

4.3) Выделяем ячейку с формулой графика

Нажимаем ввод (enter) , потом тоже самое проделываем со вторым рядом

4.5) Выбираем закладку ->Линии сетки, выставляем

X промежуточные линии, Y Основные линии ->Далее

4.6) Помещаем график функции на имеющемся листе -> (Готово)

5) В итоге получаем (Рис.1.8)

Рис.1.8 – Графики функций y(x) и z(x)

Задание 2.

· Создание списка «Отдела кадров»

Рис.2.1 Список «Отдела кадров»

· Сортировка

Рис.2.2 – Сортировка по полю Имя

В итоге получаем (Рис.2.3)

Рис.2.3 – Отсортированная таблица «Отдел кадров»

·
Поиск информации с помощью автофильтра (получить информацию о мужчинах, имя которых начинается на букву Буква, отчество – «Иванович», с окладом Оклад );

Рис.2.4 - Автофильтр

· Поиск информации с помощью расширенного фильтра (найти информацию из отдела Отдел1 в возрасте Возраст1 и Возраст2 , и о женщинах из отдела Отдел2 в возрасте Возраст3 );

1) Вводим критерии для расширенного фильтра 1

В итоге получаем (Рис.2.5)

Рис.2.5 – Расширенный фильтр 1

2) Вводим критерии для расширенного фильтра 2.

В итоге получаем(Рис.2.6)

Рис.2.6 – Расширенный фильтр 2

· Подведение итогов (определить количество и средний возраст сотрудников в каждом отделе);

Рис.2.7 - Итоги

Функция ДМИН- Возвращает наименьшее число в поле (столбце) записей списка или базы данных, которое удовлетворяет заданным условиям.

Рис.2.8 – Анализ списка с помощью функции ДМИН

Задание 3.

Создаём две связанные таблицы Сессия (рис.3.2) и Студенты (рис.3.4)

Рис.3.1- Конструктор таблицы Сессия

Рис.3.2- Таблица Сессия

Рис.3.3 – Конструктор таблицы Студенты


Рис.3.4 – Таблица Студенты

1) Используя таблицу Студенты, создать три запроса, по которым из базы данных будут поочередно отобраны фамилии и имена студентов групп 1-Э-1, 1-Э-2, 1-Э-3.

Рис.3.5– Конструктор Запроса 1.1


Рис.3.7– Конструктор Запроса1.2

Рис.3.9– Конструктор Запроса 1.3

2) Используя таблицу Студенты, создать два запроса, по которым из базы данных будут поочередно отобраны фамилии и имена женщин, а затем фамилии и имена мужчин.

Рис.3.11– Конструктор Запроса 2.1

Рис.3.13 – Конструктор Запроса 2.2

3)Использую таблицу Студенты, создать два запроса, по которым из базы данных будут поочередно отобраны фамилии и имена женщин группы 1-Э-2, а затем-мужчин группы 1-Э-1.

Рис.3.15– Конструктор Запроса 3.1

Рис.3.17– Конструктор – 3.2

4) Используя связанные таблицы Студенты и Сессия, создать запрос, по которому из базы данных будут отобраны фамилии, имена, номера зачёток и оценки по математике студентов группы 1-Э-2.

Рис.3.19– Конструктор Запроса 5

5) Используя связанные таблицы Студенты и Сессия, создать запрос, по которому из базы данных будут отобраны фамилии, имена, номера зачёток и оценки по философии студентов (мужчин) группы 1-Э-2.

Рис.3.21– Конструктор Запроса 8

6) Используя связанные таблицы Студенты и Сессия, создать запрос, по которому из базы данных будут отобраны фамилии, имена, номера зачёток студентов, получивших оценку «удовлетворительно» (3) по философии.

Рис.3.23– Конструктор Запроса 10

7) Используя связанные таблицы Студенты и Сессия, создать запрос, по которому из базы данных будут отобраны фамилии, имена, номера зачёток студентов, получивших оценку «хорошо» (4) одновременно по двум предмета: философии и математике.

Рис.3.25– Конструктор Запроса 14

8) Используя связанные таблицы Студенты и Сессия, создать запрос, по которому из базы данных будут отобраны фамилии, имена, номера зачёток студентов, получивших оценку «неудовлетворительно» (2) по одному из двух предметов: по математике или информатике.

Рис.3.27– Конструктор Запроса 18

9) Используя связанные таблицы Студенты и Сессия, создать запрос, по которому из базы данных будут отобраны фамилии, имена, номера зачёток студентов, получивших оценку «хорошо» (4) по всем предметам.

Рис.3.29– Конструктор Запроса 22

10) Используя таблицу Сессия, создать запрос с именем Средний балл для расчёта среднего балла каждого студента по результатам сдачи четырёх экзаменов. Запрос обязательно должен содержать поле Зачётка , которое впоследствии будет использовано для связывания нескольких таблиц.

Рис.3.31 – Конструктор таблицы Сессия

11) Используя связанные таблицы Студенты , Сессия и запрос Средний балл , создать запрос, по которому из базы данных будут отобраны фамилии, имена, номера зачёток, номера групп студентов, имеющих средний балл 3,25.

Рис.3.33 – Конструктор Запроса 25

12) Используя связанные таблицы Студенты , Сессия и запрос Средний балл , создать запрос, по которому из базы данных будут отобраны оценка по математике, средний балл и номер группы студента Иванова.

Рис.3.35– Конструктор Запроса 29

13) Используя связанные таблицы Студенты , Сессия и запрос Средний балл , создать запрос, по которому из базы данных будут отобраны фамилии, имена студентов имеющих средний балл менее 3,75.

Рис.3.37– Конструктор Запроса 33

14) Используя таблицу Студенты , определить фамилию, имя и номер зачетки студентки, если известно, что её отчество Викторовна.

Рис.3.39– Конструктор Запроса 35

Задание 4.

Для перевода числа из десятичной системы счисления в систему счисления с другим основанием поступают следующим образом:

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

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

в) Ответ записывают в виде сложения переведенной целой и переведенной дробной части числа.

49812,22₁₀ = 1100001010010100,001₂ 49812,22₁₀ = 141224,160₈

0,
0,

49812,22₁₀ = С294, 385₁₆

0,

Задание 5.

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

А) 10101001,11001₂ = 1*2^7+1*2^5+1*2^3+1*2^0+1*2^(-1)+1*2^(-2)+1*2(-5)= 169,78125₁₀

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

Таблица 5.1 – Перевод чисел

Десятичная система счисления Двоичная система счисления Восьмеричная система счисления Шестнадцатеричная система счисления
Триады (0-7) Тетрады (0-15)
A
B
C
D
E
F

Б) 674,7₈ = 110111100,111₂=1*2^2+1*2^3+1*2^4+1*2^5+1*2^7+1*2^8+1*2^(-1) +1*2^(-2) +1*2^(-3)= 443,875₁₀

110 111 100. 111₂

В) EDF,51₁₆ = 111011011111,01010001₂=1*2^0+1*2^1+1*2^2+1*2^3+1*2^4+1*2^6+ +1*2^7+1*2^9+ +1*2^10+1*2^11+1*2^(-2) 1*2^(-4) 1*2^(-8)= 3807,31640625₁₀

1110 1101 1111 . 0101 0001₂

Задание 6.

В основе сложения чисел в двоичной системе лежит таблица сложения одноразрядных двоичных чисел.

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10
Сложение многоразрядных двоичных чисел осуществляется в соответствии с этой таблицей с учетом возможных переносов из младшего разряда в старшие. В восьмеричной системе счисления, как и в любой другой позиционной, действуют собственные правила сложения чисел, представляющиеся правилами сложения цифр с равными порядками, относящихся к двум складываемым числам. Эти правила видны из табл.6.1. Появляющийся при сложении некоторых цифр данного разряда перенос, показан символом "↶".
Таблица 6.1 - Сложение в 8–ой системе счисления
+
↶0
↶0 ↶1
↶0 ↶1 ↶2
↶0 ↶1 ↶2 ↶3
↶0 ↶1 ↶2 ↶3 ↶4
↶0 ↶1 ↶2 ↶3 ↶4 ↶5
↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6

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

6 8 5 , 3 2 2 A ₁₆ + 1 0 1 0 1 0 0 1 0 , 1 0 ₂ + 4 7 7 , 6₈

D A 4 8 5 , 4 4 6 0 ₁₆ 1 1 0 0 0 0 1 1 0 , 1 1 0 1 0₂6 5 1 , 5 6₈

D A B 0 A , 7 6 8 A₁₆ 1 0 1 1 0 1 1 0 0 1 , 0 1 0 1 0₂ 1 3 5 1 ,3 6₈

Таблица 6.2 - Сложение в 16-ой системе счисления

+ A B C D E F
A B C D E F
A B C D E F ↶0
A B C D E F ↶0 ↶1
A B C D E F ↶0 ↶1 ↶2
A B C D E F ↶0 ↶1 ↶2 ↶3
A B C D E F ↶0 ↶1 ↶2 ↶3 ↶4
A B C D E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5
A B C D E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6
A B C D E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7
A B C D E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8
A A B C D E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9
B B C D E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A
C C D E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A ↶B
D D E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A ↶B ↶C
E E F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A ↶B ↶C ↶D
F F ↶0 ↶1 ↶2 ↶3 ↶4 ↶5 ↶6 ↶7 ↶8 ↶9 ↶A ↶B ↶C ↶D ↶E

Задание 7.

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

а) _ 2 5 1 5 1 4 , 4 0₈

5 4 2 5 , 5 5

2 4 3 0 6 6 , 6 3₈

б) _1 0 1 1 0 1 1 0 0 0 , 1 0 0 0 0₂

1 0 1 0 0 1 0 0 1 , 1 0 0 1 1

1 0 1 1 0 0 1 0 0 1 1 , 0 0 0 0 1₂

в) _E 3 1 6 , 2 5 0₁₆

5 8 8 1 , F D C₁₆

8 А 9 4 , 2 7 4

Задание 8.

В основе умножения чисел в двоичной системе лежит таблица умножения одноразрядных двоичных чисел.

0 · 0 = 0
0 · 1 = 0
1 · 0 = 0
1 · 1 = 1

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

Собственная таблица умножения, как у нас уже была возможность убедиться, имеется в каждой позиционной системе счисления. В двоичной она самая маленькая, в восьмеричной (табл.8.1) и десятичной уже более обширная. Среди часто используемых систем счисления из рассмотренных нами самой крупной таблицей умножения располагает шестнадцатеричная (табл. 8.2).

Табл. 8.1. – Умножение в 8-ой системе

×

а) 1 0 1 0 0 1₂

* 1 1 1 0 1 1

1 0 1 0 0 1 .

1 0 0 1 0 1 1 1 0 0 1 1₂

б) 1 0 1 1 1 0 0₂

* 1 1 0 1 1

1 0 1 1 1 0 0 .

1 0 0 1 1 0 1 1 0 1 0 0₂

в) B C D , 5₁₆

* D5A ₁₆

9 D 9 3 3 E 2₁₆


Табл.8.2 – Умножение в 16-ой системе

× A B C D E F
A B C D E F
A C E 1A 1C 1E
C F 1B 1E 2A 2D
C 1C 2C 3C
A F 1E 2D 3C 4B
C 1E 2A 3C 4E 5A
E 1C 2A 3F 4D 5B
1B 2D 3F 5A 6C 7E
A A 1E 3C 5A 6E 8C
B B 2C 4D 6E 8F 9A A5
C C 3C 6C 9C A8 B4
D D 1A 4E 5B 8F 9C A9 B6 C3
E E 1C 2A 7E 8C 9A A8 B6 C4 D2
F F 1E 2D 3C 4B 5A A5 B4 C3 D2 E1

Задание 9.

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

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

Дополнительный код (англ. two’s complement , иногда twos-complement ) - наиболее распространённый способ представления отрицательных целых чисел в компьютерах. Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ. При записи числа для положительного числа совпадает с прямым кодом, а для отрицательного числа дополнительный код обуславливается получением обратного кода и добавлением 1.

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

Если результат арифметических действий является кодом отрицательного числа необходимо преобразовать в прямой код. Обратный код преобразовать в прямой заменой цифр во всех разрядах кроме знакового на противоположных. Дополнительный код преобразовывается в прямой прибавлением 1.

Прямой код:

X=0,10111 1,11110

Y=1,11110 0,10111

Обратный код:

X=0,10111 0,10111

Y=1,00001 1,00001

1,11000 1,00111

Дополнительный код:

X=0,10111 0,10111

Y=1,00010 1,00010

1,11001 1,00110

Прямой код:

Обратный код:

X=0,110110 0,0110110

Y=0,101110 0,0101110

Дополнительный код:

X=0,110110 0,0110110

Y=0,101110 0,0101110

Задание 10.

Логические элементы

1. Логический элемент НЕ выполняет логическое отрицание. Он имеет один вход и один выход. Отсутствие сигнала (напряжения) обозначим через «0», а наличие сигнала через «1». Сигнал на выходе всегда противоположен входному сигналу. Это видно из таблицы истинности, которая показывает зависимость выходного сигнала от входного.

2. Логический элемент ИЛИ выполняет логическое сложение. Он имеет несколько входов и один выход. Сигнал на выходе будет, если есть сигнал хотя бы на одном входе.

Условное обозначение Таблица истинности

3. Логический элемент И выполняет логическое умножение. Сигнал на выходе этого логического элемента будет только в том случае, если есть сигнал на всех входах.

Условное обозначение Таблица истинности

F=(A v B) ʌ (C v D)

Таблица 10.1 – Таблица истинности

A B C D A B C D (A v B) (C vD) F=(A v B) ʌ (C v D)

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

1. Закон двойного отрицания: (А) = А

Двойное отрицание исключает отрицание.

2. Переместительный (коммутативный) закон:

Для логического сложения: A V B = B V A

Для логического умножения: A&B = B&A

Результат операции над высказываниями не зависит от того, в каком порядке берутся эти высказывания.

3. Сочетательный (ассоциативный) закон:

Для логического сложения: (A v B) v C = A v (Bv C);

Для логического умножения: (A&B)&C = A&(B&C).

При одинаковых знаках скобки можно ставить произвольно или вообще опускать.

4. Распределительный (дистрибутивный) закон:

Для логического сложения: (A v B)&C = (A&C)v(B&C);

Для логического умножения: (A&B) v C = (A v C)&(B v C).

Определяет правило выноса общего высказывания за скобку.

5. Закон общей инверсии (законы де Моргана):

Для логического сложения: (Av B) = A & B;

Для логического умножения: (A& B) = A v B;

6. Закон идемпотентности

Для логического сложения: A v A = A;

Для логического умножения: A&A = A.

Закон означает отсутствие показателей степени.

7. Законы исключения констант:

Для логического сложения: A v 1 = 1, A v 0 = A;

Для логического умножения: A&1 = A, A&0 = 0.

8. Закон противоречия: A& A = 0.

Невозможно, чтобы противоречащие высказывания были одновременно истинными.

9. Закон исключения третьего: A v A = 1.

10. Закон поглощения:

Для логического сложения: A v (A&B) = A;

Для логического умножения: A&(A v B) = A.

11. Закон исключения (склеивания):

Для логического сложения: (A&B) v (A &B) = B;

Для логического умножения: (A v B)&(A v B) = B.

12. Закон контрапозиции (правило перевертывания):

(A v B) = (Bv A).

(А→В) = А&В

А&(АvВ)= А&В

Формула имеет нормальную форму, если в ней отсутствуют знаки эквивалентности, импликации, двойного от­рицания, при этом знаки отрицания находятся только при переменных.


Похожая информация.


Основные современные методы шифрования

Среди разнообразнейших способов шифрования можно выделить следующие основные методы:

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

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

Алгоритмы, основанные на сложных математических преобразованиях

Алгоритм RSA

Алгоритм RSA (по первым буквам фамилий его создателей Rivest - Shamir - Adleman) основан на свойствах простых чисел (причем очень больших). Простыми называются такие числа, которые не имеют делителей, кроме самих себя и единицы. А взаимно простыми называются числа, не имеющие общих делителей, кроме 1.

Для начала необходимо выбрать два очень больших простых числа (большие исходные числа нужны для построения больших криптостойких ключей. Например, Unix-программа ssh-keygen по умолчанию генерирует ключи длиной 1024 бита). Как результат перемножения р и q определяется параметр n. Затем выбирается случайное число е, причем оно должно быть взаимно простым с числом (n) = (р - 1)*(q - 1). Отыскивается такое число d, для которого верно соотношение

(e*d) mod (n) = 1.

Mod - остаток от деления, т. е. если e, умноженное на d, поделить (n), то в остатке должно получиться 1. Другими словами, числа (e*d - 1) и (n) должны делиться нацело.

Открытым ключом является пара чисел e и n, а закрытым - d и n. При шифровании исходный текст рассматривается как числовой ряд, и над каждым его числом, которое должно быть меньше n, совершается операция

C(i) = (M(i) e) mod n. (1)

В результате получается последовательность C(i), которая и составит криптотекст. Декодирование информации происходит по формуле

M(i) = (C(i) d) mod n. (2)

Как видно, расшифровка предполагает знание секретного ключа.

Рассмотрим пример на маленьких числах. Пусть р = 3, q = 7. Тогда n = = р*q = 21. Выберем е = 5. Из формулы (d*5) mod 12 = 1 вычисляем d = 17. Следовательно, открытый ключ 17, 21, секретный - 5, 21.

Зашифруем последовательность «2345»:

C 1 = 2 17 mod 21 = 11;

C 2 = 3 17 mod 21 = 12;

C 3 = 4 17 mod 21 = 16;

C 4 = 5 17 mod 21 = 17.

Криптотекст - 11 12 16 17. Проверим расшифровкой:

M 1 = 11 5 mod 21 = 2;

M 2 = 12 5 mod 21 = 3;

M 3 = 16 5 mod 21 = 4;

M 4 = 17 5 mod 21 = 5;

Как видно, результат совпал с изначальным открытым текстом.

Криптосистема RSA широко применяется в Интернете. Когда пользователи подсоединяются к защищенному серверу по протоколу SSL SSL (Secure Socket Layer), протокол защищенных сокетов - протокол, гарантирующий безопасную передачу данных по сети; комбинирует криптографическую систему с открытым ключом и блочное шифрование данных., устанавливает на свой ПК сертификат WebMoney либо подключается к удаленному серверу с помощью Oрen SSH или SecureShell, большинство даже не подозревает, что все эти программы применяют шифрование открытым ключом с использованием идей алгоритма RSA.

Действительно ли эта система так надежна?

С момента своего создания RSA постоянно подвергалась атакам типа brute-force attack (атака методом грубой силы Brute force («грубая сила») - атака, осуществляемая простым перебором всех возможных либо наиболее часто встречающихся ключей (паролей). Во втором случае brute force достаточно часто называют "атакой по словарю".). В 1978 г. авторы алгоритма опубликовали статью, где привели строку, зашифрованную только что изобретенным ими методом. Первому, кто расшифрует сообщение, было назначено вознаграждение в размере 100 долларов, но для этого требовалось разложить на два сомножителя 129-значное число. Это был первый конкурс на взлом RSA. Задачу решили только через 17 лет после публикации статьи.

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

Компания RSA (httр://www.rsa.ru) регулярно проводит конкурсы на взлом собственных (и не только собственных) шифров. Предыдущие конкурсы выиграла организация Distributed.net (httр://www.distributed.net), являющаяся Интернет-сообществом добровольцев.

Участники Distributed.net загружают к себе на ПК небольшую программу-клиент, которая подсоединяется к центральному серверу и получает кусочек данных для вычислений. Затем все данные загружаются на центральный сервер, и клиент получает следующий блок исходной информации. И так происходит до тех пор, пока все комбинации не будут перебраны. Пользователи, участники системы, объединяются в команды, а на сайте ведется рейтинг как команд, так и стран. Например, участвующей в конкурсе по взлому RC5-64 (блочный шифр компании RSA, использующий ключ длиной 64 бита) организации Distributed.net удалось осуществить взлом через пять лет (1757 дней) работы. За это время в проекте участвовали 327 856 пользователей и было перебрано более 15,268*10 18 вариантов ключа. Выяснилось, что была (не без юмора) зашифрована фраза «some things are better left unread» («некоторые вещи лучше оставлять непрочтенными»). Общие рекомендации по шифру RC5-64 таковы: алгоритм достаточно стоек для повседневных нужд, но шифровать им данные, остающиеся секретными на протяжении более пяти лет, не рекомендуется».

Вероятностное шифрование

Одной из разновидностей криптосистем с открытым ключом является вероятностное шифрование, разработанное Шафи Гольвассером и Сильвио Минелли. Его суть состоит в том, чтобы алгоритм шифрования Е подчинить вероятностным моделям. В чем же преимущества такого подхода? Для примера, в системе RSA не «маскируются» 0 и 1. Эту проблему успешно решают вероятностные алгоритмы, поскольку они ставят в соответствие открытому тексту М не просто криптотекст С, а некоторый элемент из множества криптотекстов СМ. При этом каждый элемент этого множества выбирается с некоторой вероятностью. Другими словами, для любого открытого текста М результат работы алгоритма Е будет случайной величиной. Может показаться, что в этом случае дешифровать информацию будет невозможно, но это совсем не так. Для того чтобы сделать возможной дешифровку, нужно, чтобы для разных открытых текстов М 1 и М 2 множества СМ 1 и СМ 2 не пересекались. Также хочется сказать, что вероятностные алгоритмы шифрования являются более надежными, нежели детерминированные. В этой области наиболее распространены вероятностное шифрование на основе RSA-функций и криптосистема Эль-Гамала.

Комбинированные методы шифрования

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

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

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

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

подстановка + гаммирование;

перестановка + гаммирование;

гаммирование + гаммирование;

подстановка + перестановка;

Типичным примером комбинированного шифра является национальный стандарт США криптографического закрытия данных (DES).

Криптографический стандарт DES

В 1973 г. Национальное бюро стандартов США начало разработку программы по созданию стандарта шифрования данных на ЭВМ. Был объявлен конкурс среди фирм-разработчиков, который выиграла фирма IBM, представившая в 1974 году алгоритм шифрования, известный под названием DES (Data Encryption Standart).

В этом алгоритме входные 64-битовые векторы, называемые блоками открытого текста, преобразуются в выходные 64-битовые векторы, называемые блоками шифротекста, с помощью двоичного 56-битового ключа К. Число различных ключей DES-алгоритма равно 2 56 .

Алгоритм реализуется в течение 16 аналогичных циклов шифрования, где на i-ом цикле используется цикловой ключ K i , представляющий собой алгоритмически вырабатываемую выборку 48 из 56 битов ключа K i , i = 1,2,…,16.

Алгоритм обеспечивает высокую стойкость, однако недавние результаты показали, что современная технология позволяет создать вычислительное устройство стоимостью около 1 млн. долларов США, способное вскрыть секретный ключ с помощью полного перебора в среднем за 3,5 часа.

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

DES-алгоритм явился первым примером широкого производства и внедрения технических средств в области защиты информации. Национальное бюро стандартов США проводит проверку аппаратных реализаций DES-алгоритма, предложенных фирмами-разработчиками, на специальном тестирующем стенде. Только после положительных результатов проверки производитель получает от Национального бюро стандартов сертификат на право реализации своего продукта. К настоящему времени аттестовано несколько десятков изделий, выполненных на различной элементной базе.

Достигнута высокая скорость шифрования. Она составляет в лучших изделиях 45 Мбит/с. Цена некоторых аппаратных изделий не превышает 100 долларов США.

Основные области применения DES-алгоритма:

хранение данных на компьютерах (шифрование файлов, паролей);

аутентификация сообщений (имея сообщение и контрольную группу, несложно убедиться в подлинности сообщения;

электронная система платежей (при операциях с широкой клиентурой и между банками);

Электронный обмен коммерческой информацией (обмен данными между покупателями, продавцом и банкиром защищен от изменений и перехвата.

Позднее появилась модификация DES - Triple DЕS («тройной DES» - так как трижды шифрует информацию «обычным» алгоритмом DES), свободная от основного недостатка прежнего варианта - короткого ключа; он здесь в два раза длиннее. Но, как оказалось, Triple DES унаследовал другие слабые стороны своего предшественника: отсутствие возможности для параллельных вычислений при шифровании и низкую скорость.

ГОСТ 28147-89

В 1989 году в СССР был разработан блочный шифр для использования в качестве государственного стандарта шифрования данных . Разработка была принята и зарегистрирована как ГОСТ 28147-89. Алгоритм был введен в действие в 1990 году. И хотя масштабы применения этого алгоритма шифрования до сих пор уточняются, начало его внедрения, в частности в банковской системе, уже положено. Алгоритм несколько медлителен, но обладает весьма высокой криптостойкостью.

В общих чертах ГОСТ 28147-89 аналогичен DES. Блок-схема алгоритма ГОСТ отличается от блок-схемыDES-алгоритма лишь отсутствием начальной перестановки и числом циклов шифрования (32 в ГОСТ против 16 в DES-алгоритме).

Ключ алгоритма ГОСТ - это массив, состоящий из 32-мерных векторов X 1 , X 2 ,…X 8 . Цикловой ключ i-го цикла K i равен Xs,где ряду значенийi от 1 до 32 соответствует следующий ряд значений s:

1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1.

В шифре ГОСТ используется 256-битовый ключ и объем ключевого пространства составляет 2 256 . Ни на одной из существующих в настоящее время или предполагаемых к реализации в недалеком будущемкомпьютерных систем общего применения нельзя подобрать ключ за время, меньшее многих сотен лет. Российский стандарт проектировался с большим запасом, по стойкости он на много порядков превосходит американский стандарт DES с его реальным размером ключа в 56 бит и объемом ключевого пространства всего 2 56 , чего явно недостаточно. Ключ криптоалгоритма ГОСТ длиной 32 байта (256 бит) вчетверо больше ключа DES. Необходимое же на перебор всех ключей время при этом возрастает не в четыре раза, а в 256 32-8 = 256 24 , что выливается уже в астрономические цифры). В этой связи DES может представлять скорее исследовательский или научный, чем практический интерес.

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

В настоящее время наиболее часто применяются три основных стандарта шифрования:

  • - DES;
  • - ГОСТ 28147-89 - отечественный метод, отличающийся высокой криптостойкостью;
  • - RSA - система, в которой шифрование и расшифровка осуществляется с помощью разных ключей.

Недостатком RSA является довольно низкая скорость шифрования, зато она обеспечивает персональную электронную подпись, основанную на уникальном для каждого пользователя секретном ключе. Характеристики наиболее популярных методов шифрования приведены в таблице 1.

Таблица 1 Характеристики наиболее распространенных методов шифрования

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

На тему:

Алгоритмы шифрования данных

Введение

1. Назначение и структура алгоритмов шифрования

1.1 Обзор криптографических методов

2. Алгоритм симметричного шифрования

2.1 Структура алгоритмов шифрования

3. Применение симметричного алгоритма шифрования

Заключение

Список литературы

Введение

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

Почему проблема использования криптографических методов в информационных системах стала в настоящий момент особо актуальна?

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

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

Что касается расчетов с помощью кредитной карты, то ее недостатки очевидны: необходимо обзаводится картой (а в России еще далеко не все знают, что это такое), есть и опасения, что всем в Интернете станут известны коды вашей кредитки злые люди очистят ваш счет. На самом деле вероятность такого мошенничества не больше той, что при обмене валюты вам подсунут фальшивые деньги. Да и вообще, к электронных денег проблем не больше, чем у обыкновенных. Для проведения расчетов в Сети разработано несколько платежных систем. Которые либо искусно применяют существующие кредитки, либо опираются на чистые электронные деньги, то есть на защищенную систему файлов, в которых хранятся записи о состоянии вашего счета. Таких систем в мире больше десятка, а в России тоже несколько, самая распространенная из которых - CyberPlat.

1. Расчеты в Сети связаны с передачей особой информации, которую нельзя открывать посторонним лицам.

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

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

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

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

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

* Современные уровни и темпы развития средств информационной безопасности значительно отстают от уровней и темпов развития информационных технологий.

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

1. Назначение и структура алгоритмов шифрования

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

1. Бесключевые, в которых не используются какие-либо ключи.

2. Одноключевые - в них используется некий дополнительный ключевой параметр - обычно это секретный ключ.

3. Двухключевые, использующие в своих вычислениях два ключа: секретный и открытый.

Рис. 1. Криптоалгоритмы

1.1 Обзор криптографических методов

Шифрование является основным методом защиты; рассмотрим его подробно далее.

Стоит сказать несколько слов и об остальных криптографических методах:

1. Электронная подпись используется для подтверждения целостности и авторства данных. Целостность данных означает, что данные не были случайно или преднамеренно изменены при их хранении или передаче.

Алгоритмы электронной подписи используют два вида ключей:

o секретный ключ используется для вычисления электронной подписи;

o открытый ключ используется для ее проверки.

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

2. Аутентификация позволяет проверить, что пользователь (или удаленный компьютер) действительно является тем, за кого он себя выдает. Простейшей схемой аутентификации является парольная - в качестве секретного элемента в ней используется пароль, который предъявляется пользователем при его проверке. Такая схема доказано является слабой, если для ее усиления не применяются специальные административно-технические меры. А на основе шифрования или хэширования (см. ниже) можно построить действительно сильные схемы аутентификации пользователей.

3. Существуют различные методы криптографического контрольного суммирования:

o ключевое и бесключевое хэширование;

o вычисление имитоприставок;

o использование кодов аутентификации сообщений.

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

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

o для подтверждения целостности любых данных в тех случаях, когда использование электронной подписи невозможно (например, из-за большой ресурсоемкости) или является избыточным;

o в самих схемах электронной подписи - "подписывается" обычно хэш данных, а не все данные целиком;

o в различных схемах аутентификации пользователей.

4. Генераторы случайных и псевдослучайных чисел позволяют создавать последовательности случайных чисел, которые широко используются в криптографии, в частности:

o случайные числа необходимы для генерации секретных ключей, которые, в идеале, должны быть абсолютно случайными;

o случайные числа применяются во многих алгоритмах электронной подписи;

o случайные числа используются во многих схемах аутентификации.

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

2 Алгоритм симметричного шифрования

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

Можно представить зашифрование в виде следующей формулы:

С = E k1 (M), где:

M (message) - открытая информация,

С (cipher text) - полученный в результате зашифрования шифртекст,

E (encryption) - функция зашифрования, выполняющая криптографические преобразования над M ,

k1 (key) - параметр функции E , называемый ключом зашифрования.

В стандарте ГОСТ 28147-89 (стандарт определяет отечественный алгоритм симметричного шифрования) понятие ключ определено следующим образом: "Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований".

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

Аналогичным образом можно представить и расшифрование:

M" = D k2 (C), где:

M" - сообщение, полученное в результате расшифрования,

D (decryption) - функция расшифрования; так же, как и функция зашифрования, выполняет криптографические преобразования над шифртекстом,

k2 - ключ расшифрования.

Для получения в результате расшифрования корректного открытого текста (то есть того самого, который был ранее зашифрован: M" = M), необходимо одновременное выполнение следующих условий:

1. Функция расшифрования должна соответствовать функции зашифрования.

2. Ключ расшифрования должен соответствовать ключу зашифрования.

При отсутствии верного ключа k2 получить исходное сообщение M" = M с помощью правильной функции D невозможно. Под словом "невозможно" в данном случае обычно понимается невозможность вычисления за реальное время при существующих вычислительных ресурсах.

Алгоритмы шифрования можно разделить на две категории (см. рис. 1):

1. Алгоритмы симметричного шифрования.

2. Алгоритмы асимметричного шифрования.

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

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

k1 = a k2 mod p,

где a и p - параметры алгоритма шифрования, имеющие достаточно большую размерность.

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

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

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

Симметричное шифрование бывает двух видов:

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

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

Рассмотрим, как выглядят изнутри алгоритмы блочного симметричного шифрования.

2.1 Структура алгоритмов шифрования

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

1. Алгоритмы на основе сети Фейстеля.

Сеть Фейстеля подразумевает разбиение обрабатываемого блока данных на несколько субблоков (чаще всего - на два), один из которых обрабатывается некоей функцией f() и накладывается на один или несколько остальных субблоков. На рис. 2 приведена наиболее часто встречающаяся структура алгоритмов на основе сети Фейстеля.

Рис. 2. Структура алгоритмов на основе сети Фейстеля.

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

Наложение обработанного субблока на необработанный чаще всего выполняется с помощью логической операции "исключающее или" - XOR (как показано на рис. 2). Достаточно часто вместо XOR здесь используется сложение по модулю 2 n , где n - размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.

Такая структура алгоритмов шифрования получила свое название по имени Хорста Фейстеля (Horst Feistel) - одного из разработчиков алгоритма шифрования Lucifer и разработанного на его основе алгоритма DES (Data Encryption Standard) - бывшего (но до сих пор широко используемого) стандарта шифрования США. Оба этих алгоритма имеют структуру, аналогичную показанной на рис. 2. Среди других алгоритмов, основанных на сети Фейстеля, можно привести в пример отечественный стандарт шифрования ГОСТ 28147-89, а также другие весьма известные алгоритмы: RC5, Blowfish, TEA, CAST-128 и т.д.

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

o Алгоритмы на основе сети Фейстеля могут быть сконструированы таким образом, что для зашифрования и расшифрования могут использоваться один и тот же код алгоритма - разница между этими операциями может состоять лишь в порядке применения ключей Ki; такое свойство алгоритма наиболее полезно при его аппаратной реализации или на платформах с ограниченными ресурсами; в качестве примера такого алгоритма можно привести ГОСТ 28147-89.

o Алгоритмы на основе сети Фейстеля являются наиболее изученными - таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом как при разработке алгоритма, так и при его анализе.

Существует и более сложная структура сети Фейстеля, пример которой приведен на рис. 3.

Рис. 3. Структура сети Фейстеля.

Такая структура называется обобщенной или расширенной сетью Фейстеля и используется существенно реже традиционной сети Фейстеля. Примером такой сети Фейстеля может служить алгоритм RC6.

2. Алгоритмы на основе подстановочно-перестановочных сетей (SP-сеть - Substitution-permutation network).

В отличие от сети Фейстеля, SP-сети обрабатывают за один раунд целиком шифруемый блок. Обработка данных сводится, в основном, к заменам (когда, например, фрагмент входного значения заменяется другим фрагментом в соответствии с таблицей замен, которая может зависеть от значения ключа Ki ) и перестановкам, зависящим от ключа Ki (упрощенная схема показана на рис. 4).

Рис. 4. Подстановочно-перестановочная сеть.

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

SP-сети распространены существенно реже, чем сети Фейстеля; в качестве примера SP-сетей можно привести алгоритмы Serpent или SAFER+.

3. Алгоритмы со структурой "квадрат" (Square).

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

Структура алгоритма получила свое название от алгоритма Square, который был разработан в 1996 году Винсентом Риджменом (Vincent Rijmen) и Джоан Деймен (Joan Daemen) - будущими авторами алгоритма Rijndael, ставшего новым стандартом шифрования США AES после победы на открытом конкурсе. Алгоритм Rijndael также имеет Square-подобную структуру; также в качестве примера можно привести алгоритмы Shark (более ранняя разработка Риджмена и Деймен) и Crypton. Недостатком алгоритмов со структурой "квадрат" является их недостаточная изученность, что не помешало алгоритму Rijndael стать новым стандартом США.

Рис. 5. Алгоритм Rijndael.

На рис. 5 приведен пример операции над блоком данных, выполняемой алгоритмом Rijndael.

4. Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).

Рис. 6. Модификация двух байт шифруемых данных.

Строгие границы между описанными выше структурами не определены, поэтому достаточно часто встречаются алгоритмы, причисляемые различными экспертами к разным типам структур. Например, алгоритм CAST-256 относится его автором к SP-сети, а многими экспертами называется расширенной сетью Фейстеля. Другой пример - алгоритм HPC, называемый его автором сетью Фейстеля, но относимый экспертами к алгоритмам с нестандартной структурой.

3. Применение сим метричного алгоритма шифрования

криптография алгоритм симметричный шифрование

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

Схема работы с применением симметричного алгоритма шифрования состоит из следующих этапов:

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

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

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

зашифрованная информация передается получателю по каналам связи;

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

Ниже приведен обзор некоторых алгоритмов симметричного шифрования:

DES (Data Encryption Standard). Разработан фирмой IBM и широко используется с 1977 года. В настоящее время несколько устарел, поскольку применяемая в нем длина ключа недостаточна для обеспечения устойчивости к вскрытию методом полного перебора всех возможных значений ключа. Вскрытие этого алгоритма стало возможным благодаря быстрому развитию вычислительной техники, сделавшему с 1977 года огромный скачок;

Triple DES. Это усовершенствованный вариант DES, применяющий для шифрования алгоритм DES три раза с разными ключами. Он значительно устойчивее к взлому, чем DES;

Rijndael. Алгоритм разработан в Бельгии. Работает с ключами длиной 128, 192 и 256 бит. На данный момент к нему нет претензий у специалистов по криптографии;

Skipjack. Алгоритм создан и используется Агентством национальной безопасности США. Длина ключа 80 бит. Шифрование и дешифрование информации производится циклически (32 цикла);

IDEA. Алгоритм запатентован в США и ряде европейских стран. Держатель патента компания Ascom-Tech. Алгоритм использует циклическую обработку информации (8 циклов) путем применения к ней ряда математических операций;

RC4. Алгоритм специально разработан для быстрого шифрования больших объемов информации. Он использует ключ переменной длины (в зависимости от необходимой степени защиты информации) и работает значительно быстрее других алгоритмов. RC4 относится к так называемым потоковым шифрам.

В соответствии с законодательством США (соглашение International Traffic in Arms Peguiation), криптографические устройства, включая программное обеспечение, относится к системам вооружения.

Поэтому при экспорте программной продукции, в которой используется криптография, требуется разрешение Госдепартамента. Фактически экспорт криптографической продукции контролирует NSA (National Security Agency). правительство США очень неохотно выдаёт подобные лицензии, поскольку это может нанести ущерб национальной безопасности США. Вместе с тем совсем недавно компании Hewlett-Packard выдано разрешение на экспорт её криптографического комплекса Ver Secure в Великобританию, Германию, Францию, Данию и Австралию. Теперь НР может эксплуатировать в эти страны системы, использующие 128-битный криптостандарт Triple DES ,который считается абсолютно надёжным.

ЗАКЛЮЧЕНИЕ

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

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

Однако, этот критерий не учитывает других важных требований к криптосистемам:

* невозможность раскрытия или осмысленной модификации информации на основе анализа ее структуры,

* совершенство используемых протоколов защиты,

* минимальный объем используемой ключевой информации,

* минимальная сложность реализации (в количестве машинных операций), ее стоимость,

* высокая оперативность.

Желательно конечно использование некоторых интегральных показателей, учитывающих указанные факторы.

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

Часто более эффективным при выборе и оценке криптографической системы является использование экспертных оценок и имитационное моделирование.

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

Эллиптические функции также относятся к симметричным методам шифрования.

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

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

Список литературы

1) Чмора А.Л. Современная прикладная криптография. 2-е изд., стер. - М.: Гелиос АРВ, 2004. - 256с.: ил.

2) А.Г. Ростовцев, Н.В. Михайлова Методы криптоанализа классических шифров.

3) А. Саломаа Криптография с открытым ключом.

4) Герасименко В.А. Защита информации в автоматизированных системах обработки данных кн. 1.-М.: Энергоатомиздат. -2004.-400с.

5) Грегори С. Смит. Программы шифрования данных // Мир ПК -2007. -№3.

6) Ростовцев А. Г., Михайлова Н. В. Методы криптоанализа классических шифров. -М.: Наука, 2005. -208 с.

Размещено на http://www.allbest.ru/

Подобные документы

    История появления симметричных алгоритмов шифрования. Роль симметричного ключа в обеспечении степени секретности сообщения. Диффузия и конфузия как способы преобразования бит данных. Алгоритмы шифрования DES и IDEA, их основные достоинства и недостатки.

    лабораторная работа , добавлен 18.03.2013

    Особенности шифрования данных, предназначение шифрования. Понятие криптографии как науки, основные задачи. Анализ метода гаммирования, подстановки и метода перестановки. Симметрические методы шифрования с закрытым ключом: достоинства и недостатки.

    курсовая работа , добавлен 09.05.2012

    Принцип программной реализации классических криптографических методов. Метод шифрования с использованием таблицы Виженера. Создание текстового редактора "Блокнот", содержащего методы шифрования. Вербальный алгоритм и программа для методов шифрования.

    курсовая работа , добавлен 20.01.2010

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

    курсовая работа , добавлен 18.09.2016

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

    реферат , добавлен 31.05.2013

    Криптография и шифрование. Симметричные и асимметричные криптосистемы. Основные современные методы шифрования. Алгоритмы шифрования: замены (подстановки), перестановки, гаммирования. Комбинированные методы шифрования. Программные шифраторы.

    реферат , добавлен 24.05.2005

    Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.

    курсовая работа , добавлен 02.12.2014

    История алгоритмов симметричного шифрования (шифрования с закрытым ключом). Стандарты на криптографические алгоритмы. Датчики случайных чисел, создание ключей. Сфера интересов криптоанализа. Системы электронной подписи. Обратное преобразование информации.

    краткое изложение , добавлен 12.06.2013

    Основные методы криптографической защиты информации. Система шифрования Цезаря числовым ключом. Алгоритмы двойных перестановок и магические квадраты. Схема шифрования Эль Гамаля. Метод одиночной перестановки по ключу. Криптосистема шифрования данных RSA.

    лабораторная работа , добавлен 20.02.2014

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

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

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

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

Разделяют алгоритмы шифрования на симметричные (к ним относятся AES, CAST, ГОСТ, DES, Blowfish) и асимметричные (RSA, El-Gamal).

Симметричные алгоритмы

Замечание 1

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

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

Асимметричные алгоритмы

Замечание 2

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

Каждый пользователь должен обладать парой ключей – открытым и секретным ключом.

Ключ шифрования

Определение 1

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

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

Программы для шифрования (WinRAR, Rohos и т.д.) создают ключ из пароля, задаваемого пользователем.

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

Стойкость алгоритма шифрования

Замечание 3

Алгоритм шифрования считается стойким до тех пор, пока не доказано обратное.

Алгоритмы шифрования

Алгоритм AES (Rijndael) на данный момент является федеральным стандартом шифрования США. В качестве стандарта утвержден Министерством торговли в $2001$ г. Стандартом считается вариант шифра с размером блока $128$ бит. Разработан в $1997$ г. в Бельгии. Возможными размерами ключа являются ключи $128, 192$ и $256$ бит.

Алгоритм ГОСТ 28147-8 является стандартом Российской Федерации на шифрование и имитозащиту данных. Официальным стандартом стал в $1989$ г. Разработан в $1970$-х гг. в Главном Управлении КГБ СССР. Использует ключ размером $256$ бит.

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

Алгоритм DES являлся Федеральным стандартом шифрования США в $1977-2001$ годах. Федеральным стандартом принят в $1977$ г. после введения в действие нового стандарта в $2001$ г. утратил статус стандарта. Разработан в $1972–1975$ гг. исследовательской лабораторией корпорации IBM. Использует ключ размером $56$ бит.

Алгоритм CAST является некоторым образом аналогом алгоритма DES. Использует ключи размером $128$ и $256$ бит.