Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программно-аппаратная защита информации.doc
Скачиваний:
71
Добавлен:
02.05.2014
Размер:
157.18 Кб
Скачать

Структура сертификата

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

  • имя владельца сертификата (имя пользователя, которому принадлежит сертификат)

  • один или несколько открытых ключей владельца сертификата

  • имя удостоверяющего центра

  • серийный номер сертификата, присвоенный удостоверяющим центром

  • срок действия сертификата (дата начала действия и дата окончания действия)

  • информация об использованных криптографических алгоритмах

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

Российские стандарты

В России действуют свои криптографические стандарты. Использование их совместно с сертификатами описано в RFC4491: Using GOST with PKIX

Обзор алгоритмов PGP

Таблица 1. Сравнение основных параметров итеративных блочных шифров в реализации PGP.

Алгоритм

Ключ

Блок

Примечания

Triple-DES

168 бит

64 бит

Сеть Файстеля; имеет пространство слабых и полуслабых ключей; быстр; устойчив к криптоанализу; сравнительно низкая стойкость ключа к лобовой атаке (112 бит); проверенная 20 годами надёжность; в разработке участвовало АНБ.

AES (Rijndael)

256 бит

128 бит

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

CAST

128 бит

64 бит

Сеть Файстеля (DES-подобный дизайн); не имеет слабых ключей; быстр; устойчив к криптоанализу; существует уже 10 лет.

IDEA

128 бит

64 бит

Основан на уникальной концепции (смешение операций разных алгебраических групп); имеет пространство слабых ключей; послужной список в 13 лет; не все работы по криптоанализу были опубликованы.

Twofish

256 бит

128 бит

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

Blowfish

max 448 бит

64 бит

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

Хэш-функции

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

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

Таблица 2. Сравнение основных параметров односторонних хэш-функций в реализации PGP.

Алгоритм

Свёртка

Примечания

MD5

128 бит

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

SHA-1

160 бит

Медлительна; принята в качестве гос. стандарта США; большая часть документации по разработке закрыта; разработчиком является АНБ; факты успешных криптоатак неизвестны.

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

Центром PGP, ради которого и создавалась программа, являются криптосистемы с открытым ключом. Назначение их в том же, что и у блочных шифров – сделать информацию непонятной всякому постороннему. Основное отличие состоит в использовании для операций зашифрования / расшифрования двух разных, но взаимосвязных ключей однонаправленного действия, каждый из которых может зашифровать информацию, но расшифровать её может только другой. Благодаря этой особенности некоторые алгоритмы с открытым ключом совместно с хэш-функцией могут применяться и для другой цели: для выработки имитовставки (электронной цифровой подписи), подтверждающей авторство информации. Асимметричные алгоритмы основаны на ряде математических проблем (т.н. NP-полных задач), на которых и базируется их стойкость.

В PGP асимметричные алгоритмы применяются а) для генерации ЭЦП и б) для зашифрования симметричных сеансовых ключей.

RSA

RSA – криптографическая система с открытым ключом, обеспечивающая оба механизма защиты: шифрование и цифровую подпись. Криптосистема RSA была разработана в 1977 году и названа в честь авторов: Рональда Ривеста, Ади Шамира и Леонарда Адельмана. В PGP алгоритм RSA также используется для шифрования и генерации ЭЦП.

Эльгамаль

Схема Эльгамаля реализована в PGP исключительно для целей шифрования (хотя потенциально может применяться для создания цифровых подписей). В терминологии PGP она называется Diffie-Hellman (алгоритм Диффи-Хеллмана), что было необходимо вследствие определённых юридических нюансов. Cхема Эльгамаля основана на трудной задаче вычисления дискретных логарифмов в конечном поле в сравнении с лёгкостью возведения в степень в том же самом поле.

Для генерации пары ключей сначала выбирается простое число p и два случайных числа, g и x; оба эти числа должны быть меньше p. Затем вычисляется: y = gx mod p

Открытым ключом становятся y, g и p. И g, и p можно сделать общими для группы пользователей (именно это и делает опция Faster key generation в настройках PGP). Закрытым ключом является x. Теперь, чтобы зашифровать сообщение m, сначала выбирается случайное k, взаимно простое с p–1. Затем вычисляются: a = gk mod p ; b = yk m * mod p

Пара a и b является шифртекстом, что увеличивает исходное сообщение в два раза. Для расшифрования вычисляется: m = b/ax mod p

DSA

В августе 1991 года Digital Signature Algorithm в паре с хэш-функцией SHA1 был избран NIST США для использования в рамках Стандарта цифровой подписи DSS. В PGP он используется для генерации ЭЦП.

Таблица 3. Сравнение основных параметров криптосистем с открытм ключом в реализации PGP.

Алгоритм

Ключ

Назначение

Примечания

RSA

До 4096 бит

Шифрование и подпись

Основан на трудной задаче факторизации больших чисел; NP-полнота задачи не доказана и не опровергнута; один из первых асимметричных алгоритмов.

ElGamal

До 4096 бит

Только шифрование

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

DSA

До 1024 бит

Только подписание

Основан на трудной задаче вычисления дискретных логарифмов в конечном поле; используется только для подписания; длина ключа ограничена 1024 битами; принят в качестве гос. стандарта США; применяется для секретных и несекретных коммуникаций; разработчиком является АНБ.

Прочие алгоритмы

Кроме непосредственно алгоритмов шифрования в PGP используются и некоторые другие, например, пороговая схема Блейкли-Шамира для разделения ключа и гамма-генератор (генератор ПСЧ) для создания случайных симметричных ключей шифрования. Первый использует простую математику, не имеющую никаких слабых мест. Второй соответствует проверенному стандарту ANSI X9.17 и работает со столь большим объёмом энтропийных данных, что у взломщика нет никакой возможности предсказать любой из предыдущих или последующих сеансовых ключей.

Парадокс "дней рождений" и стойкость PGP

Как отмечалось в описании хэш-функций, кроме корреляции между длиной свёртки и устойчивостью алгоритма к коллизиям существует один важный нюанс. Он проистекает из так называемого парадокса дней рождений, часто используемого в математической статистике. Ответьте, сколько человек должно собраться в одной комнате, чтобы с вероятностью более 1/2 хотя бы у одного из них был бы общий с вами день рождения? Ответ – 253. А сколько людей должно собраться, чтобы с той же вероятностью хотя бы у двоих из них был общий день рождения? Ответ поразителен – 23, поскольку, если в комнате находятся 23 человека, они образуют 253 различные пары.

Этот же принцип применяется для поиска коллизий хэш-функций. При использовании MD5, чтобы изготовить поддельное сообщение, производящее дайджест заданного, нужно перебрать максимум 2128 вариантов. Но чтобы изготовить два сообщения, производящих одно хэш-значение, нужно перебрать максимум 264 вариантов, что вполне реально. Добавляя слово "максимум" я подразумеваю, что исходя из теории вероятности искомый результат с 50-процентным успехом будет найден уже после проверки 263 вариантов при поиске пары с идентичным хэш-значением. Проблема всей современной криптографии – это отсутствие нижней границы стойкости; длина ключа задаёт лишь общий объём пространства ключей, но всегда есть вероятность ткнув пальцем в небо угадать решение. Вот почему настоятельно рекомендуется перейти к новым версиям PGP использующим SHA1 как основной алгоритм односторонней хэш-функции.

Но всё же нельзя упускать из виду и другие факторы. По закону Мура вычислительная мощность ЭВМ при равных затратах увеличивается в два раза каждые полтора года и на порядок за пять лет. Вспомните свой домашний компьютер ещё пару лет назад, чтобы оценить справедливость этой закономерности. Уже сегодня реально взломать 512-битовый асимметричный ключ на распределённой системе, если вовлечь в работу достаточно простаивающего процессорного времени. 1024 бита, не говоря о большем, пока остаются недосягаемы (вспомните, что каждый дополнительный бит ключа увеличивает время подбора в два раза), но технологии факторизации постоянно оптимизируются и модернизируются. Разложение чисел на множители является одной из наиболее динамично развивающихся областей прикладной математики. И хотя строительство квантового криптоанализатора пока существует только в голубых мечтах криптологов, никто не может достоверно сказать, когда будут устранены все стоящие на пути этих планов преграды.