Лекции по "Информационной безопасности"

Автор работы: Пользователь скрыл имя, 11 Мая 2013 в 20:43, курс лекций

Краткое описание

Информационная безопасность. Тема 10. Лекция 16.
Информационная безопасность. Лекция 6. Административный уровень обеспечения ИБ
Информационная безопасность. Тема 5-1. Лекция 7. Введение в криптографию
Информационная безопасность. Тема 5-2. Лекция 8. Симметричные алгоритмы шифрования. Алгоритм DES

Вложенные файлы: 12 файлов

ИБ-09_10.doc

— 163.00 Кб (Скачать файл)


Информационная безопасность. Тема 5-3. Лекция 9-10.

Хэш-функции

Требования к хэш-функциям

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

Хэш-код создается функцией Н: h = H (M)

Где М является сообщением произвольной длины и h является хэш-кодом фиксированной длины.

Хэш-функция Н, которая используется для аутентификации сообщений, должна обладать следующими свойствами:

  1. Хэш-функция Н должна применяться к блоку данных любой длины.
  2. Хэш-функция Н создает выход фиксированной длины.
  3. Н (М) относительно легко (за полиномиальное время) вычисляется для любого значения М.
  4. Для любого данного значения хэш-кода h вычислительно невозможно найти M такое, что Н (M) = h.
  5. Для любого данного х вычислительно невозможно найти y x, что H (y) = H (x).
  6. Вычислительно невозможно найти произвольную пару (х, y) такую, что H (y) = H (x).

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

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

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

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

Простые хэш-функции

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

Одним из простейших примеров хэш-функции является побитный XOR каждого блока:

Сi = bi1 bi2 . . . bik

Где Сi - i-ый бит хэш-кода, 1 i n,

k - число n-битных блоков входа.

bij - i-ый бит в j-ом блоке.

- операция XOR.

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

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

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

Хэш-функция MD5

Рассмотрим алгоритм получения дайджеста сообщения MD5 (RFC 1321), разработанный Роном Ривестом из MIT. Алгоритм получает на входе сообщение произвольной длины и создает в качестве выхода дайджест сообщения длиной 128 бит.

 
Рис.1.  Логика выполнения MD5

ABCD – инициализирующий вектор, состоящий из 4 подвекторов длиной 8 шестнадцатиричных цифр (4 байта). Yi –  i-ый блок исходного текста, HMD5 – модуль, состоящий из 4 циклических обработок.

Алгоритм MD4 является более ранней разработкой того же автора Рона Ривеста. Первоначально данный алгоритм был опубликован в октябре 1990 г., незначительно измененная версия была опубликована в RFC 1320 в апреле 1992 г. MD5 является более сложным и, следовательно, более медленным при выполнении, чем MD4. Считается, что добавление сложности оправдывается возрастанием уровня безопасности

Хэш-функции семейства SHA

Безопасный  хэш-алгоритм SHA-1 (Secure Hash Algorithm) был разработан национальным институтом стандартов и технологии (NIST) и опубликован в качестве федерального информационного стандарта (FIPS PUB 180) в 1993 году. SHA-1, как и MD5, основан на алгоритме MD4.

Алгоритм получает на входе сообщение максимальной длины 264 бит и создает в качестве выхода дайджест сообщения длиной 160 бит.

 
Рис.2.  Логика выполнения SHA-1

Сравнение SHA-1 и MD5
 

MD5

SHA−1

Длина дайджеста

128 бит 

160 бит

Размер блока обработки 

512 бит 

512 бит

Число итераций

64 (4 цикла по 16 итераций в каждом)

80

Число элементарных логических функций 

4

3

Число дополнительных констант

64

4


В 2001 году NIST принял в качестве стандарта три хэш-функции  с существенно большей длиной хэш-кода. Часто эти хэш-функции  называют SHA-2 или SHA-256, SHA-384 и SHA-512 (соответственно, в названии указывается длина создаваемого ими хэш-кода). Эти алгоритмы отличаются не только длиной создаваемого хэш-кода, но и длиной обрабатываемого блока, длиной слова и используемыми внутренними функциями. Характеристики этих хэш-функций.

 

Алгоритм

Длина сообщения (в битах)

Длина блока (в битах)

Длина слова (в битах)

Длина дайджеста сообщения (в битах)

Безопасность (в битах)

SHA-1

<264

512

32

160

80

SHA-256

<264

512

32

256

128

SHA-384

<2128

1024

64

384

192

SHA-512

<2128

1024

64

512

256


Под безопасностью  здесь понимается стойкость к  атакам класса "день рождения".

Хэш-функция ГОСТ 3411

Алгоритм ГОСТ 3411 является отечественным стандартом для хэш-функций. Его структура довольно сильно отличается от структуры алгоритмов SHA-1,2 или MD5, в основе которых лежит алгоритм MD4.

Длина хэш-кода, создаваемого алгоритмом ГОСТ 3411, равна 256 битам. Алгоритм разбивает сообщение на блоки, длина которых также равна 256 битам. Кроме того, параметром алгоритма является стартовый вектор хэширования Н - произвольное фиксированное значение длиной также 256 бит.

Сообщение обрабатывается блоками по 256 бит справа налево.

Коды аутентификации сообщений - МАС

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

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

 

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

МАС на основе хэш-функции

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

НМАС

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

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

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

Закон "Об электронной цифровой подписи" номер 1-ФЗ (принят Государственной Думой 13 декабря 2001 года) вводит следующие основные понятия:

Электронный документ - документ, в котором информация представлена в электронно-цифровой форме.

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

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

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

Сертификат средств электронной цифровой подписи - документ на бумажном носителе, выданный в соответствии с правилами системы сертификации для подтверждения соответствия средств электронной цифровой подписи установленным требованиям.

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

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

Информация о работе Лекции по "Информационной безопасности"