Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Статьи / metods.doc
Скачиваний:
53
Добавлен:
01.05.2014
Размер:
521.73 Кб
Скачать

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

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

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

Тип

Описание

RSA

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

ECC (криптосистема на основе эллиптических кривых)

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

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

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

Эль-Гамаль.

Вариант Диффи-Хеллмана, который может быть использован как для шифрования, так и для электронной подписи.

1.4 Цифровой дайджест и хэш-функции

1.4.1 Криптографические хэш-функции

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

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

  1. Хеш-функция имеет бесконечную область определения;

  2. Хеш-функция имеет конечную область значений;

  3. Она необратима;

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

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

Простейшими примерами хэш-функциями являются контрольныесуммы (например, crc32). Бывают криптографические и программистские хэши. Криптографический хэш отличается от программистского следующими двумя свойствами: необратимостью и свободностью от коллизий. Обозначим m -- исходные данные, h(m) -- хэш от них. Hеобратимость означает, что если известно число h0, то трудно подобрать m такое, что h(m) = h0. Свободность от коллизий означает, что трудно подобрать такие m1 и m2, что m1!= m2, но h(m1) = h(m2).

Криптографические хэш-функции разделяются на два класса:

- хэш-функции без ключа (MDC (Modification (Manipulation) Detect Code) - коды),

- хэш-функции c ключом (MАC (Message Authentication Code) - коды).

Хэш-функции без ключа разделяются на два подкласса:

- слабые хэш-функции,

- сильные хэш-функции.

Слабой хэш-функцией назывется односторонняя функция H(x), удовлетворяющая

следующим условиям:

1) аргумент х может быть строкой бит произвольной длины;

2) значение H(x) должно быть строкой бит фиксированной длины;

3) значение H(x) легко вычислить;

4) для любого фиксированного x вычислительно невозможно найти другой

x'!= x, такой что H(x')=H(x).

Пара x'!= x, когда H(x')=H(x) называется коллизией хэш-функции.

Сильной хэш-функцией называется односторонняя функция H(x), удовлетворяющая

условиям 1-3 для слабой хэш-функции и свойству 4':

4') вычислительно невозможно найти любую пару x'!= x, такой что

H(x')=H(x).

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

Хэш-функцией с ключом (MAC) называется функция H(k,x) удовлетворяющая свойствами:

1) аргумент х функции H(k,x) может быть строкой бит произвольной длины;

2) значение H(k,x) должно быть строкой бит фиксированной длины;

3) при любых k и x легко вычислить H(k,x);

4) для любого х должно быть трудно вычислить H(k,x) не зная k;

5) должно быть трудно определить k даже при большом числе неизвестных

пар {x, H(k,x)} при выбранном наборе х или вычислить по этой информации

H(k,x') для x'!= x.

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

В следующей ниже таблице приведены сравнительные характеристики обоих подходов:

Таблица Сравнительные характеристики подходов к решению задачи контроля неизменности массивов данных.

Параметр сравнения

Подход

вычисление MAC

вычисление MDC

Используемое преобразо­вание данных

Криптографическое пре­образование (функция зашифрования)

Односторонняя функция, функция необратимого сжатия информации

Используемая секретная информация

Секретный ключ

Не используется

Возможность для третьей стороны вычислить кон­трольную комбинацию

Злоумышленник не может вычислить контрольную комбинацию, если ему не известен секретный ключ

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

Хранение и передача кон­трольной комбинации

Контрольная комбинация может храниться и пере­даваться вместе с защища­емым массивом данных

Контрольная комбина­ция должна храниться и передаваться отдельно от защищаемого массива данных

Дополнительные условия

Требует предварительного распределения ключей между участниками ин­формационного обмена

Не требует предвари­тельных действий

Области, в которых под­ход имеет преимущество

Защита от несанкциони­рованных изменений дан­ных при их передаче

Разовая передача мас­сивов данных, контроль неизменности файлов данных и программ

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

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

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

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

Наиболее распространенные алгоритмы реализации:

Тип

Описание

MD2

Самая медленная, оптимизирована для 8-битовых машин

Автор: RFC 1319, "The MD2 Message Digest Algorithm", Burt Kaliski, 1992.

Создает 128-битное значение хэш-функции.

MD4

Самая быстрая, оптимизирована для 32-битных машин

Не так давно взломана

Автор: RSA Data Security

Создает 128-битное значение хэш-функции.

MD5

Наиболее распространенная из семейства MD-функций.

Похожа на MD4, но средства повышения безопасности делают ее на 33% медленнее, чем MD4

Обеспечивает целостность данных

Считается безопасной

Каждая итерация алгоритма состоит из 64 операций.

Hедавно обнаружена нестойкость к обнаружению, но пока не построена настоящая атака на эту функцию.

Автор: RSA Data Security

Создает 128-битное значение хэш-функции.

SHA (Secure Hash Algorithm)

Один из (относительно) новых алгоритмов свертки.

Функция предложена в качестве национального стандарта США.

Каждая итерация алгоритма состоит из 80 операций.

Предназначена для использования в стандарте DSS

Автор: NIST (National Institut of Standards and Technology)

FIP-180 (Federal Information Processing Standards Publication 180)

ANSI X9.30-2, "American National Standard, Public-Key Cryptography Using

Irreversible Algorithms for the Financial Services Industry", 1993.

FIPS PUB 180, "Secure Hash Standard", 1993

FIPS PUB 180-1, "Secure Hash Standard", 1994

Создает 160-битное значение хэш-функции.

ГОСТ Р34.11-94

Российский алгоритм. Размерность получаемого значения очень удобна

для формирования по паролю ключа для ГОСТ 28147-89.

Автор: Стандарт ГОСТ Р 34.11-94 разработан ГУБС

ФАПСИ и ВHИИС, внесён ТК 22 "Информационная технология" и ФАПСИ, принят ивведён в действие Госстандартом России 23.05.94.

Создает 256-битное значение хэш-функции.

Соседние файлы в папке Статьи