Математико-алгоритмические методы криптозащиты

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

Рубрика Программирование, компьютеры и кибернетика
Вид практическая работа
Язык русский
Дата добавления 21.08.2017
Размер файла 869,7 K

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

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

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

Математико-алгоритмические методы криптозащиты

1. Математическое описание системы криптозащиты RSA и DES

1.1 Алгоритм DES (Data Encryption Standard)

Алгоритм DES представляет собой блочный шифр, предназначенный для шифрования данных 64-битовыми блоками. На вход алгоритма поступает 64-битовый блок открытого текста, на выход выдается 64-битовый блок шифртекста. Длина ключа равна 56 бит. (Ключ обычно представляется 64-битовым числом, но каждый восьмой бит используется для контроля по четности и игнорируется. Биты четности - наименьшие значащие биты в байтах ключа). Ключ, которым может служить любое 56-битовое число, можно изменить в любой момент времени. Секретность всецело определяется ключом. Ряд чисел полагаются слабыми ключами, но их можно легко избежать. На простейшем уровне алгоритм представляет комбинацию двух основных методов шифрования: рассеивания и перемешивания. Раундом DES является применение к тексту единичной комбинации этих методов (подстановка, а за ней - перестановка), зависящей от ключа. DES включает 16 раундов, одна и та же комбинация методов применяется к открытому тексту 16 раз. В алгоритме используется только стандартная арифметика и логические операции над 64-битовыми числами, поэтому он без труда реализовывался в аппаратуре второй половины семидесятых годов. Изобилие повторений в алгоритме делает его идеальным для реализации специализированными микросхемами. Первоначальные программные реализации были довольно медленны, но современные программы намного лучше.

DES оперирует 64-битовым блоком открытого текста. После первоначальной перестановки блок разбивается на правую и левую половины длиной по 32 бита. Затем выполняется 16 раундов одинаковых действий, называемых функцией f, в которых данные объединяются с ключом. После шестнадцатого раунда правая и левая половины объединяются, и алгоритм завершается заключительной перестановкой (обратной к первоначальной).

Рис. 1. Алгоритм DES

На каждом раунде (см. рис. 2) биты ключа сдвигаются, а затем из 56 битов ключа выбираются 48 битов. Правая половина данных увеличивается до 48 битов путем перестановки с расширением, складывается операцией XOR с 48 битами смещенного и переставленного ключа, проходит через 8 S-блоков, образуя 32 новых бита, и переставляется снова. Эти четыре операции и выполняются функцией f. Затем результат исполнения функции f складывается с левой половиной с помощью еще одной операции XOR. В итоге этих действий появляется новая правая половина, а старая правая половина становится новой левой. Эти действия повторяются 16 раз, образуя 16 раундов алгоритма DES.

Рис. 2. Один раунд DES

Если обозначить Bi результат i-ой итерации, Li и Ri - левую и правую половины, Bi, Кi - 48-битовый ключ для раунда i, a f - функцию, выполняющую все подстановки, перестановки и операции XOR с ключом, то раунд можно представить так:

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

Таблица 1. Начальная перестановка DES

58

50

42

34

26

18

10

2

60

52

44

36

28

20

12

4

62

54

46

38

30

22

14

6

64

56

48

40

32

24

16

8

57

49

41

33

25

17

9

1

59

51

43

35

27

19

11

3

61

53

45

37

29

21

13

5

63

55

47

39

31

23

15

7

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

Первоначально 64-битовый ключ DES сокращается до 56-битового ключа отбрасыванием каждого восьмого бита. Эти биты используются только для контроля четности, позволяя проверять отсутствие в ключе ошибок. После извлечения 56-битового ключа, для каждого из 16 раундов DES генерируется новый 48-битовый подключ. Эти подключи Ki определяются следующим образом: 56-битовый ключ делится на две 28-битовые половины, каждая из которых сдвигаются на 1 или 2 бита в зависимости от номера раунда.

1.2 Алгоритм Generalized DES

Обобщенный алгоритм DES (Generalized DES - GDES) спроектирован для ускорения исполнения DES и повышения устойчивости алгоритма. Общий размер блока увеличился, а объем вычислений остался неизменным.

На рис. 3 показана блочная схема алгоритма GDES. Алгоритм GDES работает с блоками открытого текста переменной длины. Блоки шифрования делятся на q 32-битовых подблоков, точное число которых зависит от полного размера блока (который, по идее, может меняться, но фиксирован для конкретной реализации). В общем случае q равно размеру блока, деленному на 32.

Функция f рассчитывается один раз для каждого раунда для крайнего правого блока. Результат с помощью операции XOR объединяется со всеми остальными частями, которые затем циклически смещаются направо. Алгоритм GDES использует переменное число раундов n. В последний раунд внесено незначительное изменение, с тем, чтобы процессы зашифрования и расшифрования отличались только порядком применения подключей (точно так же, как в DES). При q = 2 и n = 16, описанный алгоритм превращается в DES.

Рис. 3. Блочная схема алгоритма GDES

Однако дифференциальный криптоанализ вскрывает GDES с q = 8 и n = 16 с помощью всего 6 подобранных открытых текстов. При использовании независимых подключей требуются 16 подобранных открытых текстов. Поэтому, несмотря на повышение скорости, проявилось катастрофическое снижение стойкости алгоритма.

1.3 Алгоритм NewDES

Алгоритм NewDES («новый DES») спроектирован в 1985 году Робертом Скоттом как возможная замена DES. Этот алгоритм - не модификация DES, как может показаться из названия. Он оперирует 64-битовыми блоками текста, но использует 120-битовый ключ. NewDES проще DES, в нем нет начальной и заключительной перестановок. Все операции выполняются над целыми байтами. Блок открытого текста разделяется на восемь 1-байтовых подблоков: В0, В1.., В6, B7. Затем подблоки проходят через 17 раундов. Каждый раунд состоит из восьми этапов. На каждом этапе один из подблоков подвергается операции XOR с частью ключа (за одним исключением), заменяется другим байтом с помощью функции f, подвергается операции XOR с другим подблоком, который и заменяется результатом. 120-битовый ключ делится на 15 подблоков ключа. К0, К1,..., К13, К14. Алгоритм шифрования NewDES показан на рис. 4.

Рис. 4. Схема NewDES

Уже после седьмого раунда каждый бит блока открытого текста влияет на каждый бит шифртекста. Но в целом NewDES гораздо слабее DES.

1.4 Алогритм RSA

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

Сообщение представляется в виде числа M. Шифрование осуществляется с помощью общедоступной функции f(M), и только адресату известно, как выполнить операцию f-1. Адресат выбирает два больших простых (prime) числа p и q, которые делает секретными. Он объявляет n=pq и число d, c (d,p-1)=(d,q-1)=1 (один из возможных способов выполнить это условие, выбрать d больше чем p/2 и q/2). Шифрование производится по формуле:

f(M) ? Md mod n,

где M и f(M) оба ? n-1, как было показано, может быть вычислено за разумное время, даже если M, d и n содержит весьма большое число знаков. Адресат вычисляет M на основе Md, используя свое знание p и q. Если dc ?(p-1)1, то (Md)e? p1.

Исходный текст M получается адресатом из зашифрованного F(M) путем преобразования: M = (F(M))e (mod pq). Здесь как исходный текст, так и зашифрованный рассматриваются как длинные двоичные числа.

Аналогично (Md)e ? qM, если dc ? (q-1)1. e удовлетворяет этим двум условиям, если cd ? (p-1) (q-1)1. Теорема 1 гласит, что мы можем позволить e=x, когда x является решением уравнения dx + (p-1)(q-1)y = 1.

Так как (Md)e делимо на p и q, оно делимо и на pq, следовательно, мы можем определить M, зная Md, вычислив его значение в степени e и определив остаток от деления на pq. Для соблюдения секретности важно, чтобы, зная n, было нельзя вычислить p и q. Если n содержит 100 цифр, подбор шифра связан с перебором ~1050 комбинаций. Данная проблема изучается уже около 100 лет. RSA-алгоритм запатентован (20 сентября 1983, действует до 2000 года).

Теоретически можно предположить, что возможно выполнение операции f-1, не вычисляя p и q. Но в любом случае задача эта не проста и разработчики считают ее трудно факторизуемой.

Предположим, что мы имеем зашифрованный текст f(M) и исходный текст M, и мы хотим найти значения p и q. Нетрудно показать, что таких исходных данных для решения задачи недостаточно адо знать все возможные значения Mi.

Проясним использование алгоритма RSA на конкретном примере. Выбираем два простые числа p=7; q=17 (на практике эти числа во много раз длиннее). В этом случае n = p*q будет равно 119. Теперь необходимо выбрать e, выбираем e=5. Следующий шаг связан с формированием числа d так, чтобы d*e=1 mod [(p-1)(q-1)]. d=77 (использован расширенный алгоритм Эвклида). d екретный ключ, а e и n характеризуют открытый ключ. Пусть текст, который нам нужно зашифровать представляется M=19. С = Memod n. Получаем зашифрованный текст C=66. Этот екстожет быть послан соответствующему адресату. Получатель дешифрует полученное сообщение, используя М= Cdmod n и C=66. В результате получатся M=19.

На практике общедоступные ключи могут помещаться в специальную базу данных. При необходимости послать партнеру зашифрованное сообщение можно сделать сначала запрос его открытого ключа. Получив его, можно запустить программу шифрации, а результат ее работы послать адресату. На использовании общедоступных ключей базируется и так называемая электронная подпись, которая позволяет однозначно идентифицировать отправителя. Сходные средства могут применяться для предотвращения внесения каких-либо корректив в сообщение на пути от отправителя к получателю. Быстродействующие аппаратные 512-битовые модули могут обеспечить скорость шифрования на уровне 64 кбит в сек. Готовятся ИС, способные выполнять такие операции со скоростью 1 Мбайт/сек. Разумный выбор параметра e позволяет заметно ускорить реализацию алгоритма.

2. Исследование алгоритмов криптозащиты

2.1 Критерии оценки криптографических алгоритмов

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

Понятие криптостойкости тесно связано со сложностью криптоаналитической атаки на алгоритм шифрования и характеризуется с помощью трех величин [1, 2]:

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

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

- сложность по памяти - объем памяти, необходимый для успешной атаки.

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

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

1. Анализ на основе только шифртекста - аналитик знает механизм шифрования и ему доступен только шифртекст размером n, что соответствует модели внешнего нарушителя, который имеет физический доступ к линии связи;

2. Анализ на основе заданного открытого текста - криптоаналитику известен шифртекст и та или иная доля исходной информации, а в частных случаях и соответствие между шифртекстом и исходным текстом, т.е. аналитик располагает зашифрованным сообщением размером n и соответствующим ему открытым текстом. Такая атака возможна при шифровании стандартных документов, подготавливаемых по стандартным формам, когда определенные блоки данных повторяются и известны;

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

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

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

Средний объем работы W(N), необходимый для определения ключа по криптограмме, состоящей из N букв, измеренный в элементарных операциях называется рабочей характеристикой шифра. Это значение берется как среднее по всем ключам и всем сообщениям с соответствующими им вероятностями [3, 4].

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

В настоящее время в криптоанализе выделяют следующие основные методы:

1. Полный перебор возможных ключей;

2. Частотный анализ;

3. Дифференциальный метод;

4. Линейный метод.

Полный перебор возможных ключей

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

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

Частотный анализ

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

Открытый текст рассматривается как реализация стационарного эргодического случайного процесса с дискретным временем и конечным числом состояний и модель представляет собой однородную цепь Маркова [3]. Более высокий порядок приближения соответствует более связному тексту, получаемому на выходе модели. Критерии распознавания строятся либо на основе стандартных методов различения статистических гипотез, либо на основе запретных k-грамм (некоторые редко встречающиеся k-граммы объявляются запретными и их присутствие в получаемом тексте означает получение "бессмысленной" последовательности знаков). При использовании специальных алфавитов (для нетекстовой информации) требуется построение новых формализованных критериев на открытый текст, учитывающих специфику формирования входной последовательности, что само по себе является сложной задачей, связанной с дополнительными исследованиями. Построение критериев для языка, характеризующегося отсутствием статистических зависимостей (равномерным распределением вероятностей появления символов), является практически неразрешимой задачей.

Дифференциальный метод криптоанализа

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

Линейный метод криптоанализа

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

Автоматизация методов криптоанализа для перебора ключей при помощи ЭВМ требует создания адекватной математической модели открытого текста для оценки получаемых результатов. Во многом успех криптоанализа основывается на избыточности открытых текстов на реальных языках [1, 2, 4]. Поэтому перед шифрованием данные целесообразно подвергать преобразованию, уменьшающему избыточность, в качестве которого может выступать сжатие информации. Преимущества использования сжатия перед шифрованием, помимо уменьшения избыточности, позволяет ускорить процесс шифрования, занимающий много времени, за счет сокращения объема открытых данных.

2.2 Оценка быстродействия существующих алгоритмов блочных шифров

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

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

- гаммирование (XOR) - g;

- сложение - s;

- умножение - m;

- сдвиг - r;

- табличная подстановка (S-блоки алгоритмов) - t.

Состав используемых для оценки элементарных операций определяется наибольшей распространенностью в существующих блочных шифрах. Для битовой перестановки, встречающейся в некоторых шифрах, в качестве приближенной оценки предлагается использовать операцию сдвига по числу битов перестановки. Операции сложения и умножения выполняются по некоторому модулю, совпадающему с длиной разрядной сетки, необходимой для представления данных, которыми оперирует алгоритм: если алгоритм ориентирован на работу с 16-разрядными данными, то сложение и умножение производится по модулю 216, для 32-разрядных - по модулю 232 и т.д.

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

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

.

С учетом числа раундов, начальной и завершающей перестановок, получим:

.

Для алгоритма NewDES, состоящего из 17 раундов, раунд можно оценить как:

,

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

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

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

Алгоритм

Быстродействие

DES

NewDES

Для получения сравнительных оценок по быстродействию в единых единицах, в качестве такой характеристики можно использовать число тактов процессора, необходимое для выполнения полного цикла криптографического преобразования. Однако необходимо отметить, что такая оценка является приближенной и не учитывает особенности программной реализации сравниваемых алгоритмов (оптимизации шагов алгоритма, организации структур данных и т.д.). Введенные в качестве элементарных операции характеризуются различной трудоемкостью и, соответственно, разным числом тактов процессора для выполнения в зависимости от типа процессора, размера операндов и их местонахождения. В качестве максимальных характеристик по трудоемкости операций целесообразно использовать следующие характеристики: операции g и s занимают 1 такт, операция умножения m - от 13 до 42 тактов, операция сдвига r - от 1 до 5 тактов, табличная подстановка t (рассматриваемая как операция mov) - от 1 до 7 тактов (основой для таких характеристик служит время выполнения этих операций для процессора i486).

В соответствие с этим рассмотрим влияние каждой из этих операций на быстродействие рассмотренных шифров (рис. 2.1 - 2.3).

Рис. 2.1. Зависимость быстродействия алгоритмов от числа тактов процессора, необходимых для выполнения операции сдвига r (m=13, t=1).

Рис. 2.2. Зависимость быстродействия алгоритмов от числа тактов процессора, необходимых для выполнения операции пересылки t (m=13, r=3).

Рис. 2.3. Зависимость быстродействия алгоритмов от числа тактов процессора, необходимых для выполнения операции умножения m (для t=1, r=3).

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

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

Методы "быстрого умножения" - например, методы основанные на Быстром Преобразовании Фурье (FFT - Fast Fourier Transform) - выполняются меньшим количеством шагов; тем не менее они не получили широкого распространения из-за сложности программного обеспечения, а также потому, что с типичными размерами ключей они фактически работают медленнее. Однако производительность и эффективность приложений и оборудования, реализующих алгоритм RSA быстро увеличиваются.

Алгоритм RSA намного медленнее, чем DES и другие алгоритмы блокового шифрования. Программная реализация DES работает быстрее, по крайней мере, в 100 раз и от 1,000 до 10,000 - в аппаратной реализации (в зависимости от конкретного устройства). Благодаря ведущимся разработкам, работа алгоритма RSA, вероятно, ускорится, но аналогично ускорится и работа алгоритмов блочного шифрования.

3. Оценка эффективности алгоритмов криптозащиты с использованием программной реализации

3.1 Программная реализация алгоритма DES

Для реализации алгоритма блочного шифрования DES была разработана программа с использованием языка программирования Borland C++ 3.11. Данный язык сочетает мощность, гибкость и простоту использования. Что особенно важно, данный язык предоставляет удобные средства доступа к битам и инструменты преобразования типов данных. Кроме того, для ускорения работы, трудоемкие процедуры были написаны на языке Ассемблер, что позволило существенно увеличить скорость кодирования.

Программа состоит из двух файлов, с исходными кодами. Файл AlgDes.cpp содержит интерфейсную часть кодировщика и отвечает за работу с параметрами командной строки и работу с файлами. Файл DES.ASM содержит процедуры шифрации и дешифрации, написанные на языке Ассемблер. Процедуры экспортируются в программу на языке С. Опишем указанные файлы подробнее.

Файл AlgDes.cpp содержит в себе код, осуществляющий работу кодировщика. Главная функция программы объявлена как

int main( int argc, char *argv[] )

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

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

- ключ шифрования - «e» или «E» - данный ключ запускает выполнение программы на шифрование (т.е. полученный файл будет зашифрован).

- ключ дешифрования - «d» или «D» - данный ключ запускает выполнение программы на дешифрование (т.е. получаемый файл будет дешифроваться). Если ни указан не один из ключей, то по умолчанию используется ключ «d»;

- <source_name> - это имя файла, который шифруется (дешифруется).

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

После этого, у пользователя запрашивается пароль, который он вводит с клавиатуры. Данный пароль используется для шифрации (дешифрации) текста.

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

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

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

Все процедуры шифрации и дешифрации находятся в файле DES.ASM. Он содержит следующие процедуры:

des_cryption - это процедура шифрования данных по алгоритму DES,

параметры получает согласно С стандарту вызова функций.

На входе : source - указатель на восьмибайтовый шифруемый блок.

: dest - указатель на область сохранения закрытых данных.

: K указывает расположение ключей Ki.

На выходе : зашифрованное сообщение помещено в память.

Регистры : AX,BX,CX,DX,ES изменяют свое значение.

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

На входе : key - указатель на восьмибайтовый ключ шифрования.

: K указывает расположение ключей Ki.

На выходе : Сформированные ключи Ki помещены в память.

Регистры : AX,BX,CX,DX,ES изменяют свое значение.

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

На входе : key - указатель на восьмибайтовый ключ шифрования.

: K указывает расположение ключей Ki.

На выходе : сформированные ключи Ki помещены в память.

Регистры : AX,BX,CX,DX,ES изменяют свое значение.

Для использования разработанной программы необходимо:

1) создать исходный файл (пусть например это будет файл src.txt);

2) зашифровать файл с использование разработанной программы и некоторого пароля при помощи команды: ALGDES.EXE /E SRC.TXT;

3) Передать зашифрованный файл SRC.DES на сторону клиента по сети;

4) Сообщить каким либо образом клиенту пароль для расшифровки;

5) На стороне клиента расшифровать полученный файл при помощи программы и пароля, используя команду ALGDES.EXE /D SRC.DES.

3.2 Программная реализация алгоритма RSA

Программная реализация алгоритма несимметричного шифрования RSA выполнена на языке BORLANDC 3.1. поэтому может работать как под операционной системой ДОСом, так и под ОС Windows.

Интерфейс пользователя с программой осуществляется через командную строку.

Программа состоит из следующих файлов:

Code.cpp / code.exe - файл для кодирования файла. Необходимы ключи читаются из файлов open.key и mod.key. Программа принимает 2 параметра - исходный файл с шифруемым текстом и файл, в котором будет сохранен шифрованный текст.

My_rsa.cpp / my_rsa.exe файл предназначенный для генерации ключей, необходимых для шифрования. Генерирует совокупность необходимых для алгоритма шифрования ключей, с последующим сохранением их в файлы.

Rsa.cpp / rsa.h - файл, содержащий описание класса, используемого для шифрования.

Uncode.cpp / uncode.exe - программа для дешифрования. Программа получает на входе 2 параметра - первый параметр содержит имя зашифрованного файла. Второй - имя файлы, в который будут сохранены результаты дешифрации. Программа требует, чтобы при ее запуске в этой директории находились ключи шифрования.

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

- char data[SIZE+1] - данное поле предназначено для хранения данных класса. В массиве побитно хранится содержимое числа. Элементы массива могут принимать значение 0 или 1.

- void set_from_char(char* inp); - функция, осуществляющая конвертирования строкового представления числа в двоичное. На входе функция получает строку вида «010010…0011». Результатом ее работы является заполнение содержимого массива data.

- void Show(char* description); - это интерфейсная функция, предназначена для отображения на экране числа. Число представляется в двоичном виде, последовательностью нулей и единиц. Каждые четыре цифры для повышения наглядности разделяются точками. Перед содержимым числа выводится надпись description.

- void Inc(),void Dec() - функции предназначенные для увеличения (уменьшения) числа на 1 соответственно.

- void Shl(),void Shr() - сдвиг числа влево (вправо).

- void Shr (int offset), void Shl (int offset) - сдвиг числа влево (вправо) на offset бит.

- chislo operator+(chislo inp), chislo operator*(chislo inp), chislo operator%(chislo inp), chislo operator/(chislo inp) , chislo operator-(chislo inp) - данные функции выполняют операции сложения, умножения, вычисления остатка от деления, деления и отнимания двух больших чисел. Каждая операция принимает в качестве параметров 2 числа и возвращает также число.

- int operator>(chislo inp), int operator<(chislo inp), int operator==(chislo inp) - функции, выполняющие операции сравнения двух больших числе. Возвращают ноль или единицу, в зависимости от того, больше, меньше или равны два сравниваемых числа.

- int Save(char* path_file), int Load(char* path_file) - эти две функции предназначены для записи и чтения большого числа из файла. Число хранится в файле в символьном виде - последовательность «1» и «0». Передаваемый параметр - имя файла.

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

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

1) на стороне 2 выполнить генерацию ключей, используемых для шифрования путем запуска программы my_rsa.exe. Результатом ее работы будет 3 файла: open.key, close.key, mod.key - открытый, закрытый и общий ключ соответственно. Эти файлы необходимо использовать в дальнейшем.

2) Переслать файлы open.key и mod.key на сторону 1, для их дальнейшего использования при шифровании.

3) Зашифровать исходный файл (пусть это будет src.txt) с использованием программы code.exe: code.exe src.txt secret.bin. Необходимо помнить, что для правильной работы программы шифрования в директории должны находится файлы open.key и mod.key стороны 2.

4) Передать полученный зашифрованный файл secret.bin на сторону 2.

5) Расшифровать полученный файл используя программу uncode.exe: uncode.exe secret.bin result.txt. Для корректной работы программы необходимо, чтобы в директории находились файлы close.key, mod.key.

3.3 Проведение экспериментов

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

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

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

Для тестирования был выбран файл, размером в 4 Кб. Тестирование производилось на компьютере Intel Pentium III 1200 Mц, 256 МБ ОЗУ, операционная система: Windows 2000. В качестве результатов приводятся количественные характеристики результатов тестирования (время шифрования, время дешифрования, размер шифрованного файла), содержимое исходного и зашифрованного файла.

Результаты работы каждого алгоритма сведены в таблицу 3.1.

Таблица 3.1 Результаты работы алгоритма DES.

Размер исходного файла

Время шифрования

Время дешифрации

Размер зашифрованного файла

4089

0-1 сек

0-1 сек

4120

100 Кб

0-1 сек

0-1 сек

~100Кб

1 Мб

1-2 сек

1-2 сек

~1 Мб

Таблица 3.2 Результаты работы алгоритма RSA.

Размер исходного файла

Время шифрования

Время дешифрации

Размер зашифрованного файла

40

3 - 4сек

3-4 сек

260

410

35 - 40сек

30-35 сек

2630

4089

350 - 400сек

300-350 сек

26818

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

Выводы

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

К преимуществам алгоритма DES следует отнести его существенно большее быстродействие. Как и все блочные алгоритмы, он работает в реальном времени, что позволяет применять их при шифровании данных «на лету» - прозрачно для пользователя. Быстродействие алгоритма позволяет реализовывать подсистемы шифрования данных, которые смогут обеспечить шифрование объемов данных, соответствующих максимальной пропускной способности канала связи. Даже сравнительно простая реализация алгоритма, выполненная в данной работе, обеспечивает скорость шифрования/дешифрования до 1 Мб/ сек.

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

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

Говоря об устойчивости к взлому алгоритма RSA, отметим, что в настоящий момент существует несколько способов взлома RSA. Наиболее эффективная атака: найти секретный (private) ключ, соответствующий необходимому открытому (public) ключу. Это позволит нападающему читать все сообщения, зашифрованные открытым (public) ключом и подделывать подписи.

Фактически, задача восстановления секретного (private) ключа эквивалентна задаче разложения на множители (факторинга) модуля: можно использовать d для поиска сомножителей n, и наоборот можно использовать n для поиска d. Надо отметить, что усовершенствование вычислительного оборудования само по себе не уменьшит стойкость криптосистемы RSA, если ключи будут иметь достаточную длину. Фактически же совершенствование оборудования увеличивает стойкость криптосистемы.

Другой способ взломать RSA состоит в том, чтобы найти метод вычисления корня степени e из mod n. Поскольку С = M**e*(mod n), то корнем степени e из (mod n) является сообщение M. Вычислив корень, можно вскрыть зашифрованные сообщения и подделывать подписи, даже не зная частный (private) ключ. Такая атака не эквивалентна факторингу, но в настоящее время неизвестны методы, которые позволяют взломать RSA таким образом. Однако, в особых случаях, когда на основе одного и того же показателя относительно небольшой величины шифруется достаточно много связанных сообщений, есть возможность вскрыть сообщения. Упомянутые атаки - единственные способы расшифровать все сообщения, зашифрованные данным ключом RSA.

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

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

К одним из наиболее существенных недостатков использования алгоритма RSA является его существенная трудоемкость. Разработанная в данной работе программа шифрования не позволяет обеспечить кодирования в реальном времени. Однако, несмотря на это, криптосистема RSA используется в самых различных продуктах, на различных платформах и во многих отраслях. В настоящее время криптосистема RSA встраивается во многие коммерческие продукты, число которых постоянно увеличивается. Также ее используют операционные системы Microsoft, Apple, Sun и Novell. В аппаратном исполнении RSA алгоритм применяется в защищенных телефонах, на сетевых платах Ethernet, на смарт-картах, широко используется в криптографическом оборудовании Zaxus (Racal). Кроме того, алгоритм входит в состав всех основных протоколов для защищенных коммуникаций Internet, в том числе S/MIME, SSL и S/WAN, а также используется во многих учреждениях, например, в правительственных службах, в большинстве корпораций, в государственных лабораториях и университетах. Столь широкое распространение позволяет сделать вывод о перспективности использования данного алгоритма для шифрования данных, передаваемых по сети.

Литература

1. Б.Ю. Анин Защита компьютерной информации - СПб.: БХВ-Санкт-Петербург, 2000

2. Б. Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си - М: Издательство Триумф, 2002.

3. Алферов А.П., Зубов А.Ю, Кузьмин А. С., Черемушкин А. В. Основы криптографии: учебное пособие, 2-е изд. - М.: Гелиос АРВ, 2002.

4. Шеннон К. Теория связи в секретных системах // В кн.: Работы по теории информации и кибернетике.-- М.: ИЛ, 1963

Приложения

Приложение 1 Содержимое исходного и зашифрованных файлов

Исходный текст шифруемого файла:

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

В практических приложениях для открытого (public) ключа обычно выбирается относительно

Исходный текст шифруемого файла в двоичном виде:

00000000: 8A A0 AA 20 AF E0 A8 20 ¦ E8 A8 E4 E0 AE A2 A0 AD

00000010: A8 A8 20 A8 20 E0 A0 E1 ¦ E8 A8 E4 E0 AE A2 AA A5

00000020: 2C 20 E2 A0 AA 20 A8 20 ¦ AF E0 A8 20 E1 AE A7 A4

00000030: A0 AD A8 A8 20 A8 20 AF ¦ E0 AE A2 A5 E0 AA A5 20

00000040: AF AE A4 AF A8 E1 A8 20 ¦ A0 AB A3 AE E0 A8 E2 AC

00000050: 20 52 53 41 20 AF AE 20 ¦ E1 E3 E9 A5 E1 E2 A2 E3

00000060: 20 E1 AE E1 E2 AE A8 E2 ¦ 20 A8 A7 20 A2 AE A7 A2

00000070: A5 A4 A5 AD A8 EF 20 A2 ¦ 20 E1 E2 A5 AF A5 AD EC

00000080: 2C 20 AA AE E2 AE E0 AE ¦ A5 20 A2 EB AF AE AB AD

00000090: EF A5 E2 E1 EF 20 AA A0 ¦ AA 20 E0 EF A4 20 E3 AC

000000A0: AD AE A6 A5 AD A8 A9 2E ¦ 0D 0A 82 20 AF E0 A0 AA

000000B0: E2 A8 E7 A5 E1 AA A8 E5 ¦ 20 AF E0 A8 AB AE A6 A5

000000C0: AD A8 EF E5 20 A4 AB EF ¦ 20 AE E2 AA E0 EB E2 AE

000000D0: A3 AE 20 28 70 75 62 6C ¦ 69 63 29 20 AA AB EE E7

000000E0: A0 20 AE A1 EB E7 AD AE ¦ 20 A2 EB A1 A8 E0 A0 A5

000000F0: E2 E1 EF 20 AE E2 AD AE ¦ E1 A8 E2 A5 AB EC AD AE

00000100: 20 0D 0A ¦

Файл, зашифрованный при помощи алгоритма DES (Пароль «abc»)

00000000: 44 45 53 5F 63 72 79 70 ¦ 74 05 73 72 63 00 00 00

00000010: 00 00 00 2E 74 78 74 00 ¦ 7B E4 39 C1 D3 3B 7E 37

00000020: 0C B0 8E 4C 33 59 E2 3B ¦ 3F F7 7B B4 57 0E 8B 7F

00000030: E2 77 D8 3E B2 71 29 CE ¦ 70 A4 2D FE 4A E9 33 62

00000040: A3 F8 8A 10 19 05 47 94 ¦ B3 13 31 D5 54 90 5B 9C

00000050: EB CF 0B E5 B2 2C 7A 05 ¦ BD 0E 78 72 81 65 06 52

00000060: D1 DB 15 08 08 62 E0 42 ¦ D0 F6 68 E5 79 05 DA 1E

00000070: A0 E0 9E 7F 48 8D 66 EE ¦ BD 7F DA 1F 1A 79 DA 0F

00000080: 1A A2 81 D0 B2 07 79 66 ¦ D0 6B 84 4B 84 61 B4 1B

00000090: FA 03 00 42 F5 64 A3 76 ¦ 0B 53 23 61 EF 73 77 AA

000000A0: A5 C9 0E B8 43 18 4B F1 ¦ F7 F0 35 60 F7 0A CE D9

000000B0: 22 29 C4 F5 00 36 D8 40 ¦ C6 DA 2A 4B DF 7C 80 4A

000000C0: 4E BC 57 DD DC 12 DA 8A ¦ 8A E5 CC 3E FE 86 A2 EA

000000D0: CF A2 EF 92 16 35 4C 01 ¦ D0 84 DF AB 5E 0E 4C F5

000000E0: 97 5B 7E 07 47 E4 35 93 ¦ 8A 5D 6E 8D DC 14 C7 0D

000000F0: 1B 3D 08 B5 25 F9 56 41 ¦ 86 5A C8 FA 0B 76 55 8D

00000100: 65 E0 85 0B 11 4E D9 B3 ¦ 78 C8 21 B1 FB 85 98 FF

00000110: 00 E6 4D 47 95 B6 C0 A3 ¦ 4D 47 F6 CB 26 68 B5 18

00000120: ¦

Файл, зашифрованный при помощи алогоритма RSA

00000000: 32 35 39 0A C9 38 CA 4B ¦ B6 DC 39 D3 08 C2 DA 65

00000010: 44 01 61 52 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000020: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000030: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000040: 00 00 00 00 53 EB F2 99 ¦ BE E9 2C 9B 8E 90 D8 D4

00000050: 8F 51 D6 AA 00 00 00 00 ¦ 00 00 00 00 00 00 00 00


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

  • Сущность и история разработки алгоритма криптозащиты Эль-Гамаля. Основы этого типа шифрования, особенности генерации ключей. Специфика реализации системы криптозащиты средствами процессора ADSP-2181 в расширенных полях Галуа. Блок-схемы программирования.

    контрольная работа [1,0 M], добавлен 13.01.2013

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

    курсовая работа [492,6 K], добавлен 18.09.2016

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

    курсовая работа [795,7 K], добавлен 02.12.2014

  • Сравнение производительности программных реализаций алгоритмов шифрования с оптимизациями под языки С и Java. История разработки, сущность, принципы шифрования и успехи в криптоанализе таких алгоритмов шифрования как AES, RC4, RC5, RC6, Twofish и Mars.

    реферат [1,3 M], добавлен 13.11.2009

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

    курсовая работа [564,3 K], добавлен 09.05.2012

  • Общие сведения об алгоритмах. Свойство и этапы построения алгоритма. Нисходящее проектирование программ. Основные алгоритмические структуры. Принципы структурной алгоритмизации. Массивы случайных чисел. Ввод исходных данных. Определение и вывод данных.

    методичка [435,3 K], добавлен 09.12.2014

  • Описание основных уязвимостей технологии передачи информации Wi-Fi: атаки, угрозы криптозащиты, анонимность. Принципы и методы обеспечения безопасности беспроводных сетей. Технологии целостности и конфиденциальности передаваемых через сеть данных.

    контрольная работа [539,3 K], добавлен 25.12.2014

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

    краткое изложение [26,3 K], добавлен 12.06.2013

  • Программа на языке Turbo Pascal для шифрования данных с помощью шифра Тритемиуса. Входные, выходные данные. Схема алгоритма и текст программы. Порядок ввода исходных данных и описание получаемых результатов. Тестовых задания и анализ их функционирования.

    курсовая работа [4,0 M], добавлен 06.01.2011

  • Шифрование как метод защиты информации. История развития криптологии. Классификация алгоритмов шифрования, симметричные и асимметричные алгоритмы. Использование инструментов криптографии в Delphi-приложениях. Краткая характеристика среды Delphi 7.

    курсовая работа [48,5 K], добавлен 19.12.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.