41142

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

Лекция

Информатика, кибернетика и программирование

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

Русский

2013-10-23

298.5 KB

39 чел.

PAGE  20

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННО-КОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ

Кафедра систем защиты информации

Н.Н. Блавацкая

ПРОГРАММНЫЕ СРЕДСТВА ШИФРОВАНИЯ

(Лекция № 3 для студентов )

                                                                                                                                (Время - 2 часа)

Форма обучения: дневная

Лекция рассмотрена и одобрена

на заседании кафедры систем защиты информации.

Протокол № ___ от «___» ___________ 2009 года

Киев – 2009


Тема лекции
:

«Программные средства шифрования»

ПЛАН

Введение

  1.  Основные концепции шифрования
  2.  Классификация методов криптографического закрытия информации
  3.  Основные криптографические модели и алгоритмы шифрования
    1.  Симметричные методы шифрования
    2.  Асимметричные методы шифрования
    3.  Сравнение криптографических методов
  4.  Управление ключами

Выводы

ЛИТЕРАТУРА

  1.  Хорошко Методы и средства защиты информации.
  2.  Безбогов, А.А. Методы и средства защиты компьютерной информации : учебное пособие / А.А. Безбогов, А.В. Яковлев, В.Н. Шамкин. – Тамбов : Изд-во Тамб. гос. техн. ун-та, 2006. – 196 с.


Введение

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

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

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

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


1. ОСНОВНЫЕ КОНЦЕПЦИИ ШИФРОВАНИЯ

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

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

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

С помощью шифрования обеспечиваются три состояния безопасности информации.

  •  Конфиденциальность. Шифрование используется для сокрытия информации от неавторизованных пользователей при передаче или при хранении.
  •  Целостность. Шифрование используется для предотвращения изменения информации при передаче или хранении.
  •  Идентифицируемость. Шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им.

Термины, связанные с шифрованием

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

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

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

Атаки на систему шифрования

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

  •  Через слабые места в алгоритме.
  •  Посредством атаки "грубой силы" по отношению к ключу.
  •  Через уязвимости в окружающей системе.

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

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

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

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

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

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

  1.  Стойкость шифра противостоять криптоанализу должна быть такой, чтобы вскрытие его могло быть осуществлено только путем решения задачи полного перебора ключей.
  2.  Криптостойкость обеспечивается не секретностью алгоритма, а секретностью ключа.
  3.  Шифртекст не должен существенно превосходить по объему исходную информацию.
  4.  Ошибки, возникающие при шифровании, не должны приводить к искажениям и потерям информации.
  5.  Время шифрования не должно быть большим.
  6.  Стоимость шифрования должна быть согласована со стоимостью закрываемой информации.

2. КЛАССИФИКАЦИЯ МЕТОДОВ КРИПТОГРАФИЧЕСКОГО ЗАКРЫТИЯ ИНФОРМАЦИИ

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

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

Кодирование может быть смысловое, символьное, комбинированное.

Закрытие информации другими способами может достигаться с помощью стеганографии, сжатия/раcширения, рассечения/разнесения.

Основы теории К. Шеннона

Клод Шеннон рассмотрел модель (см. рис. 2), в которой источник сообщений порождает открытый текст X. Источник ключей генерирует ключ Z.

Шифратор преобразовывает открытый текст X с помощью ключа Z в шифртекст Y: Y= TzX.

Дешифратор, получив зашифрованное сообщение Y, выполняет обратную операцию: X = Tz(–1)Y.

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

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

  1.  Насколько устойчива система, если криптоаналитик противника не ограничен временем и обладает всеми необходимыми средствами для анализа криптограмм?
  2.  Имеет ли криптограмма единственное решение?
  3.  Какой объем шифртекста необходимо перехватить криптоаналитику, чтобы решение стало единственным?

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

По теореме Байеса

Py(X) = P(X)Px(Y)/P(Y),

где P(X) – априорная вероятность сообщения Х; Рx(Y) – условная вероятность криптограммы Y при условии, что выбрано сообщение X, т.е. сумма вероятностей всех тех ключей, которые переводят сообщение X в криптограмму Y; P(Y) – вероятность получения криптограммы Y; Рy(Х) – апостериорная вероятность сообщения X при условии, что перехвачена криптограмма Y. Для совершенной секретности значения Рy(Х) и Р(Х) должны быть равны для всех X и Y.

Для противодействия методам статистического анализа криптограмм Шеннон предложил использовать два метода: рассеивание и перемешивание.

3. ОСНОВНЫЕ КРИПТОГРАФИЧЕСКИЕ МОДЕЛИ И АЛГОРИТМЫ ШИФРОВАНИЯ

3.1. Симметричные методы шифрования

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

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

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

Методы перестановки

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

Пример. Открытый текст: «ШИФРОВАНИЕ_ПЕРЕСТАНОВКОЙ». Ключ (правило перестановки): группы из 8 букв с порядковыми номерами 1, 2, ..., 8 переставить в порядок 3-8-1-5-2-7-6-4.

Методы замены

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

Шифрование заменой существует уже около 2500 лет. Самым ранним примером является шифр Атбаш. Он возник примерно в 600 году до н.э. и заключался в использовании еврейского алфавита в обратном порядке.

Юлий Цезарь использовал шифр замены, который так и назывался - шифр Цезаря. Этот шифр заключался в замещении каждой буквы другой буквой, расположенной в алфавите на три буквы дальше от шифруемой. Таким образом, буква A преобразовывалась в D, B преобразовывалась в E, а Z преобразовывалась в C.

Например:

VENI VIDI VICI ( В ПЕРЕВОДЕ НА РУССКИЙ «Пришел, Увидел, Победил»

в зашифрованном виде:   YHQL YLGL YLFL

Таблица соответствия для шифрования методом Цезаря

AD

JM

SV

BE

KN

TW

CF

LO

UX

DG

MP

VY

EH

NQ

WZ

FI

OR

XA

GJ

PS

YB

HK

QT

ZC

IL

RU

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

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

Шифрование методом гаммирования.

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

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

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

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

Одноразовые блокноты

Одноразовые блокноты (One-time Pad, OTP) являются единственной теоретически невзламываемой системой шифрования. Одноразовый блокнот представляет собой список чисел в случайном порядке, используемый для кодирования сообщения (табл.1). Как видно из названия системы, OTP может использоваться только один раз. Если числа в OTP являются действительно случайными, OTP имеет большую длину, чем сообщение, и используется только один раз, то шифрованный текст не предоставляет какого-либо механизма для восстановления исходного ключа (т. е. самого OTP) и, следовательно, сообщений.

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

Таблица 1. Функционирование одноразового блокнота

Сообщение

S

E

N

D

H

E

L

P

Буквы, замененные соответствующими числами

19

5

14

4

8

5

12

16

Одноразовый блокнот

7

9

5

2

12

1

0

6

Добавление открытого текста в ОТР

26

14

19

6

20

6

12

22

Шифрованный текст

Z

N

S

F

T

F

L

V

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

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

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

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

Комбинация методов подстановки и перестановки была применена в 1974 г. фирмой IBM при разработке системы ЛЮЦИФЕР.

Система ЛЮЦИФЕР строится на базе блоков подстановки (S-блоков) и блоков перестановки (Р-блоков). Блок подстановки включает линейные и нелинейные преобразования.

Первый преобразователь S-блока осуществляет развертку двоичного числа из n разрядов в число по основанию 2n. Второй преобразователь осуществляет свертку этого числа.

Блок перестановки осуществляет преобразование n разрядного входного числа в n разрядное число.

Входные данные (открытый текст) последовательно проходят через чередующиеся слои 32-разрядных Р-блоков и 8-разрядных S-блоков.

Реализация шифрования данных в системе ЛЮЦИФЕР программными средствами показала низкую производительность, поэтому P и S-блоки были реализованы аппаратно, что позволило достичь скорости шифрования до 100 Кбайт/с. Опыт, полученный при разработке и эксплуатации системы, дал возможность создать стандарт шифрования данных DES.

DES (Data Encryption Standard) является одним из наиболее распространенных криптографических стандартов на шифрование данных, применяемых в США. Первоначально метод, лежащий в основе данного стандарта, был разработан фирмой IBM для своих целей. Он был проверен Агентством Национальной Безопасности США, которое не обнаружило в нем статистических или математических изъянов. Это означало, что дешифрование данных, защищенных с помощью DES, не могло быть выполнено статистическими (например, с помощью частотного словаря) или математическими («прокручиванием» в обратном направлении) методами.

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

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

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

56 бит – это 8 семибитовых ASCII символов, т.е. пароль не может быть больше чем 8 букв. Если вдобавок использовать только буквы и цифры, то количество возможных вариантов будет существенно меньше максимально возможных 256.

Суть данного алгоритма состоит в следующем (рис. 4).

Входной блок данных делится пополам на левую (L0) и правую (R0) части. После этого формируется выходной массив так, что его левая часть L1 представлена правой частью R0 входного, а правая R1 формируется как сумма L0 и R0 операций XOR. Далее, выходной массив шифруется перестановкой с заменой. Можно убедиться, что все проведенные операции могут быть обращены и расшифровывание осуществляется за число операций, линейно зависящее от размера блока. После нескольких таких взбиваний можно считать, что каждый бит выходного блока шифровки может зависеть от каждого бита сообщения.

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

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

При описании алгоритма используются следующие обозначения. Если L и R – это последовательности бит, то LR будет обозначать конкатенацию последовательностей L и R. Под конкатенацией последовательностей L и R понимается последовательность бит, размерность которой равна сумме размерностей L и R. В этой последовательности биты последовательности R следуют за битами последовательности L. Конкатенация битовых строк является ассоциативной, т.е. запись ABCDE обозначает, что за битами последовательности A следуют биты последовательности B, затем C и т.д.

Символом (+) будет обозначаться операция побитового сложения по модулю 2, символом [+] – операция сложения по модулю 232 двух 32-разрядных чисел, символом {+} – операция сложения по модулю 232 – 1 двух 32 разрядных чисел.

Алгоритм криптографического преобразования предусматривает несколько режимов работы. Но в любом случае для шифровки данных используется ключ, который имеет разрядность 256 бит и представляется в виде восьми 32-разрядных чисел X(i). Если обозначить ключ через W, то

W = X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0).

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

В 1997 г. организация Electronic Frontier Foundation (EFF) анонсировала компьютерную систему, которая сможет найти ключ DES за четыре дня. Создание этой системы стоило 250 000 долларов. С помощью современного оборудования можно определить ключ DES посредством атаки "грубой силы" за 35 минут. Этого времени слишком мало, чтобы защитить информацию, которая должна сохраняться в секрете. В переработанной публикации FIPS (46-2 и текущая 46-3) в NIST признали этот факт, сказав, что простой DES можно использовать только в устаревших системах.

Тройной DES

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

Тройной DES используется либо с двумя, либо с тремя ключами. При использовании двух ключей ключ K3 идентичен K1. TDES является относительно быстрым алгоритмом, так как его можно реализовать аппаратно. Его функционирование занимает в три раза больше времени, чем у DES, так как имеют место три операции шифрования DES. В большинстве приложений рекомендуется использовать TDES вместо простого DES.

Примечание

TDES подвергался двум атакам. Тем не менее, объем данных, требуемый для проведения атак (как и в случае с атаками на DES), делал проведение атак на этот алгоритм практически неосуществимым в реальных ситуациях.

3.2. Асимметричные методы шифрования

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

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

Принцип применения асимметричного шифрования показан на рис. 6. Рассмотрим наиболее распространенные алгоритмы асимметричного шифрования.

Алгоритм RSA

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

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

Под результатом операции i mod j будем считать остаток от целочисленного деления i на j. Чтобы использовать алгоритм RSA, надо сначала сгенерировать открытый и секретный ключи, выполнив следующие шаги.

Выберем два очень больших простых числа p и q,

Определим n как результат умножения p на q (n = pq).

Выберем большое случайное число, которое назовем d. Это число должно быть взаимно простым с m результатом умножения (р – 1) (q – 1).

Определим такое число e, для которого является истинным следующее соотношение (e d) mod (m) = 1 или e = (1 mod (m))/d.

Открытым ключом будут числа e и n, а секретным ключом – числа d и n.

Теперь, чтобы зашифровать данные по известному ключу {e, n}, необходимо сделать следующее:

  •  разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа М(i) = 0, 1, …, n – 1;
  •  зашифровать текст, рассматриваемый как последовательность чисел М(i) по формуле С(i) = (М(i)e) mod n.

Чтобы расшифровать данные, используя секретный ключ {d, n}, необходимо выполнить следующие вычисления: М(i) = (С(i)d) mod n. В результате получится множество чисел М(i), которые представляют собой исходный текст.

Пример. Применим метод RSA для шифрования сообщения «ГАЗ». Для простоты будем использовать очень маленькие числа (на практике используются намного большие числа).

Выберем p = 3 и q = 11.

Определим n = 3 * 11 = 33.

Найдем (p – 1) (q – 1) = 20. Следовательно, в качестве d выберем любое число, которое является взаимно простым с 20, например d = 3.

Выберем число е. В качестве такого числа может быть взято любое число, для которого удовлетворяется соотношение (e × 3) mod 20 = 1, например 7.

Представим шифруемое сообщение как последовательность целых чисел в диапазоне 0…32. Пусть буква А изображается числом 1, буква Г – числом 4, а буква З – числом 9. Тогда сообщение можно представить в виде последовательности чисел 4 1 9. Зашифруем сообщение, используя ключ {7, 33}:

C1 = (47) mod 33 = 16384 mod 33 = 16,

C2 = (17) mod 33 = 1 mod 33 = 1,

C3 = (97) mod 33 = 4782969 mod 33 = 15.

Шифртекст: «16 1 15».

Попытаемся расшифровать сообщение {16, 1, 15}, полученное в результате зашифрования по известному ключу, на основе секретного ключа {3, 33}:

М1 = (163) mod 33 = 4096 mod 33 = 4,

М2 = (13) mod 33 = 1 mod 33 = 1,

М3 = (153) mod 33 = 3375 mod 33 = 9.

Таким образом, в результате расшифрования сообщения получено исходное сообщение «ГАЗ».

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

Алгоритм Эль-Гамаля

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

Множество параметров системы включает простое число p и целое g, степени которого по модулю p порождают большое число элементов Zp. У пользователя А есть секретный ключ a и открытый ключ y, вычисляемый

y = gа mod p.

Предположим, что пользователь В желает послать сообщение m пользователю А.

Сначала пользователь В выбирает случайное число k, меньшее p. Затем он вычисляет

y1 = gk mod p и y2 = m(+)(yk(mod p)),

где (+) обозначает побитовое «исключающее ИЛИ». Пользователь В посылает пользователю А пару (y1, y2). После получения шифрованного текста пользователь А вычисляет

m = (y1a mod p)(+)y2.

Иногда операция побитового «исключающего ИЛИ» может быть заменена на умножение по модулю p. Уравнение расшифрования в этом случае принимает вид

m = y2/y1k mod p.

Существенным недостатком асимметричных методов является их низкое быстродействие, поэтому их приходится сочетать с симметричными (асимметричные методы на 3–4 порядка медленнее симметричных). Так, для решения задачи рассылки ключей сначала сообщение симметрично шифруют случайным ключом, затем этот ключ шифруют открытым асимметричным ключом получателя, после чего сообщение и ключ отправляются по сети.

Эффективное шифрование, реализованное путем сочетания симметричного и асимметричного методов, иллюстрирует рис. 7, а рис. 8 – расшифрование эффективно зашифрованного сообщения.

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

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

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

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

Электронная цифровая подпись

В основе криптографического контроля целостности лежат два понятия: хэш-функция; электронная цифровая подпись (ЭЦП).

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

Пусть имеются данные, целостность которых должна быть проверена, хэш-функция и ранее вычисленный результат ее применения к исходным данным (дайджест). Хэш-функцию обозначим через h, исходные данные – через Т, проверяемые данные – через Т ′. Контроль целостности данных сводится к проверке равенства h(T) = h(T ′). Если оно выполняется, считается, что T = T ′. Совпадение дайджестов для различных данных называется коллизией. В принципе коллизии возможны (так как мощность множества дайджестов меньше множества хэшируемых данных), однако, исходя из определения хэш-функции, специально организовать коллизию за приемлемое время невозможно.

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

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

E(D(T)) = D(E(T)) = T.

Проиллюстрируем рис. 9 процедуру эффективной генерации электронной подписи, состоящую в шифровании преобразованием D дайджеста h(T), а проверка эффективно сгенерированной электронной подписи может быть реализована способом, изображенным на рис. 10.

Из равенства E(S′) = h(T) следует, S= D(h(T ′)). Следовательно, ЭЦП защищает целостность сообщения, удостоверяет личность отправителя и служит основой неотказуемости.

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

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

Обратим внимание на то, что при использовании асимметричных методов шифрования (в частности ЭЦП) необходимо иметь гарантию подлинности пары (имя, открытый ключ) адресата. Для решения этой задачи в спецификациях Х.509 вводятся понятия цифрового сертификата и сертификационного центра. Сертификационный центр – это компонент глобальной службы каталогов, отвечающий за управление криптографическими ключами пользователей, заверяющий подлинность пары имя, открытый ключ адресата своей подписью.

Цифровые сертификаты в формате Х.509 стали не только формальным, но и фактическим стандартом, поддерживаемым многочисленными сертификационными центрами.

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

3.3. Сравнение криптографических методов

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

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

Основными преимуществами метода DES являются, по утверждениям Национального Бюро Стандартов США:

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

DES обладает и рядом недостатков.

Самым существенным недостатком DES признается размер ключа, который считается слишком малым. Стандарт в настоящем виде не является неуязвимым, хотя и очень труден для раскрытия. Для дешифрования информации методом подбора ключей достаточно выполнить 256 операций расшифрования и хотя в настоящее время нет аппаратуры, которая могла бы выполнить в обозримый период времени подобные вычисления, никто не гарантирует ее появление в будущем. Некоторые специалисты предлагают простую модификацию (Тройной DES) для устранения этого недостатка: исходный текст Р зашифровывается сначала по ключу K1, затем по ключу K2 и, наконец, по ключу K3. В результате время, требующееся для дешифрования, возрастает до 2128 операций (приблизительно, до 1034 операций).

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

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

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

4. УПРАВЛЕНИЕ КЛЮЧАМИ

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

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

Создание ключей

Очевидно, что ключи должны создаваться с особой тщательностью. Некоторые ключи обеспечивают недостаточную производительность при работе с определенными алгоритмами. Например, ключ, состоящий из одних "нулей", при использовании в DES не обеспечивает высокий уровень защищенности информации. Аналогично, при создании ключей для использования в RSA, необходимо соблюдать внимательность при выборе p и q из набора простых чисел.

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

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

Также может быть необходимым выбрать правильную длину ключа. В некоторых алгоритмах используются ключи фиксированной длины (например, в алгоритме DES используется ключ длиной 56 бит). Другие алгоритмы могут использовать ключи переменной длины. Чем длиннее ключ, тем выше уровень обеспечиваемой безопасности. Например, 1024-битный ключ RSA более надежен, чем 512.битный ключ RSA. Тем не менее, таким образом нельзя сопоставлять надежность ключа RSA с надежностью ключа DES. В таблице 12.2 представлены относительные степени надежности ключей для различных алгоритмов шифрования.

Чтобы получить представление о том, насколько надежны ключи на практике, вспомните машину EFF. В 1997 г. она стоила 250 000 долларов и обеспечивала раскрытие ключа DES за 4,5 дня. В других случаях 40-битный ключ RC5 был раскрыт с помощью атаки "грубой силы" за 3,5 часа с использованием 250 компьютеров в UC Berkley. В Швейцарском Федеральном институте технологий посредством "грубой силы" раскрыт 48-битный ключ RC5 за 312 часов с использованием 3500 компьютеров. На данный момент рекомендуется использовать, как минимум, 80-битные ключи при шифровании секретной информации, а также минимум 1024-битные ключи в RSA и алгоритме Диффи-Хеллмана. 160-битные ключи ECC также считаются безопасными.

Внимание!

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

Таблица 2. Относительная надежность ключей различной длины

Шифрование с секретным ключом(DES, RC5)

Шифрование с открытым ключом(RSA, Диффи-Хеллман)

Шифрование посредством эллиптических кривых

40 бит

-

-

56 бит

400 бит

-

64 бит

512 бит

-

80 бит

768 бит

-

90 бит

1024 бит

160 бит

120 бит

2048 бит

210 бит

128 бит

2304 бит

256 бит

Защита ключей

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

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

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

ВЫВОДЫ

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

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


Ключ

Ключ

Расщифрование

Зашифрованное сообщение

Зашифрование

Сообщение

Сообщение

Рис. 2. Общая схема передачи шифрованных сообщений

X`

Z`

Y

Z

Y

X

Z

Криптоаналитик противника

Приемник сообщений

Дешифратор

Шифратор

Источник сообщений

Защищенный канал

Источник ключей

Рис. 10. Проверка электронной цифровой подписи

Рис. 5. Блок-схема алгоритма шифрования TDES

Рис. 4. Схема алгоритма шифрования DES

Рис. 1. Общий принцип шифрования

Рис. 9. Выработка электронной цифровой подписи

Рис. 7. Эффективное шифрование сообщения

Рис. 6. Использование асимметричного метода шифрования

Общий секретный ключ

Генератор ключей

Рис. 3. Использование симметричного метода шифрования

Рис. 8. Расшифрование эффективно зашифрованного сообщения


 

А также другие работы, которые могут Вас заинтересовать

4426. Логистика производства Учебное пособие 1.02 MB
  Введение Логистика производства непосредственно связана с управлением материальными потоками в процессе производства материальных благ. Характерной чертой производства является его территориальная компактность. Однако объекты инфраструктуры производ...
4427. Вычислительные системы, сети и телекоммуникации 945.2 KB
  Предисловие Дисциплина Вычислительные системы, сети и телекоммуникации является одной из ключевых при подготовке специалистов в области информационных технологий. Это связано с тем, что предметами изучения указанной дисциплины являются способы и тех...
4429. Путеводитель по бюджетному учету и налогам практическое пособие по бухгалтерскому учету для бюджетных и автономных учреждений 12.91 MB
  Нормативное регулирование бухгалтерского учета Нормативные акты, регулирующие бухгалтерский учет Субъекты и объекты бухгалтерского учета Требования, предъявляемые к бухгалтерскому учету Ответственность за организацию и ведение б...
4430. Технологический процесс производства вареных колбас 927.71 KB
  Введение Предприятия мясной промышленности нашей страны оснащены большим количеством (более 400 наименований) технологического оборудования. Рациональная эксплуатация оборудования требует глубокого знания его особенностей и конструктивных признаков....
4431. МАКРОЭКОНОМИКА: ЕЁ ОСОБЕННОСТИ И СТРУКТУРА. 586.5 KB
  Тема: Макроэкомика: её особенности и структура. Предмет, специфические черты макроэкономики, показатели макроэкономики Н/Х показатели материального производства Система национальных счетов: а) принципы национальных счетов ...
4432. Расчет строительных конструкций в ПК лира. Рама 697.33 KB
  Введение Программный комплекс ЛИРА (ПК ЛИРА) – это многофункциональный программный комплекс для расчета, моделирования работы, исследования и проектирования строительных конструкций различного назначения. ПК ЛИРА с успехом применяется в расчета...
4433. Экспертиза галантерейных изделий из пластмасс 154 KB
  Экспертиза галантерейных изделий из пластмасс Факторы, формирующие ассортимент и потребительские свойства галантерейных изделий из пластмасс и поделочных материалов К факторам, формирующим ассортимент и потребительские свойства изделий, относят...
4434. Механические свойства материалов 3.91 MB
  Напряжения и деформации Тема Напряжения и деформации (2 часа) План лекции Современная трактовка физического и технического смысла важнейших механических свойств. Напряжения. Нормальные и касательные напряжения. Тен...