Криптографические протоколы и криптографические примитивы с открытым ключом

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 09:07, 12 мая 2016.

Вопросы криптографии в Российской Федерации регулируются ФСБ (8ым Центром), т.е. спецслужбами.В других странах за эти вопросы отвечают различные структуры, например в США криптографические стандарты определяет NIST (англ. The National Institute of Standards and Technology); в Великобритании - CESG[1].

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

TemplateExampleIcon.svg Пример Пример
В международной межбанковской системе передачи информации и совершения платежей SWIFT применяются разрешенные ФСБ зарубежные криптографические стандарты.


История криптографии с ооткрытым ключом

1976 г. - публикация новаторской работы W. Diffie и M. Hellman "New directions in cryptography". По сути, эта работа стала началом развития кирптографии с открытым ключом.

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

Криптография с открытым ключом Асимметричная криптография Двухключевая криптография

Классическая криптография Симметричная криптография Одноключевая криптография

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

TemplateExampleIcon.svg Пример Пример
Система "Банк-Клиент" - отсутствует полное доверие с обеих сторон необходимо использовать криптографию с открытым ключом и, возможно, доверенную третью сторону для доказательства неотказуемости и пр.).


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

  1. Секретность: информация недоступна незаконному пользователю.
  2. Целостность: информация не изменяется, не уничтожается, т.е. в любой момент времени информация такая же, как и в момент времени .
  3. Подлинность (Аутентичность): отправитель и, в свою очередь, получатель уверены, что сообщение дойдет до адресата (при этом 1-е и 2-е свойства безопасности могут не соблюдаться.
  4. Неотказуемость (Non-repudiation): при выполнении действий впоследствии отсутствует возможность отказаться от каких-либо действий.
TemplateExampleIcon.svg Пример Пример
Система "Банк-Клиент": клиент должен доказать, что именно он дал конкретное распоряжение, а банк - что именно он выполнил или не выполнил это конкретное распоряжение. Следует отметить, что в этой ситуации не выполняются свойства секретности и целостности.
5. Анонимность: особо актуально в платежных системах.
TemplateExampleIcon.svg Пример Пример
В случае использования бумажных денег анонимность легко соблюдается, однако для электронных денег обеспечение данного свойства реализуется намного сложнее. Направление, связанное с решением проблемы обеспечения анонимности, активно развивалось до 2001 года, но после печальных событий 11 сентября 2001 года актуальность сохранила только разработка схем тайного электронного голосования.
6. Неотслеживаемость: нельзя отследить действия анонима; более сильное свойство, чем анонимность.

В различных системах выполняются разные требования.

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

Криптография с секретным ключом Криптография с открытым ключом
1. Высокая скорость (в т.ч. и в случае программной реализации) 1. Требуется доверие сторон 1. Только один ключ - секретный 1. Медленнее работает, чем криптография с секретным ключом
2. Короткие ключи (128-256 бит - в ГОСТ, AES) 2. Требуется много ключей 2. Не требуется полное доверие сторон (!) 2. Размер ключа большой (1024 бита (2010г.), 2048-4096 бит (с 2011 г.) - в случае реализации на основе групп с трудно определяемым порядком)
3. "Легко" анализировать (состоит из известных блоков: LFSR, булевых функций, функций k-значной логики.) 3. Частая смена ключей 3. Администрирование ключей - проще (в больших сетях) 3. История изучения меньше
4. Долгая история изучения 4. Сложно реализовать схему электронной цифровой подписи 4. Ключи реже меняются (например, ключ цифровой подписи ЦБ РФ меняется 1 раз в год)
5. Более эффективные алгоритмы цифровой подписи

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

Существует понятие Proven Security (Доказуемая Безопасность): если вскрыть систему не легче, чем решить трудоемкую задачу (например, факторизации, дискретного логарифмирования), то система безопасна именно в таком смысле.

Размеры ключей

Согласно постановлению Правительства №957 допускается не получать лицензию ФСБ в том случае, если размер ключа не превышает 56 бит (для криптосистем с секретным ключом) или 128 бит (для криптосистем с ОК). Стоит отметить, что криптосистемы с таким длинами ключей относительно легко вскрываются.

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

TemplateDifinitionIcon.svg Определение «Определение - Протокол»
Протокол - последовательность действий, с помощью которых два или более участника решают искомую задачу.

Все действия описаны точно и недвусмысленно; все участники четко ему (протоколу) следуют; следующее действие на начнется, пока не завершится предыдущее.

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

TemplateDifinitionIcon.svg Определение «Определение - Криптографический протокол»
Криптографический протокол - протокол, в котором используется криптографические примитивы (функции).
TemplateExampleIcon.svg Пример Примеры криптографических примитивов
  • Функции зашифрования/расшифрования;
  • Функции вычисления ЭЦП;
  • Функции вычисления кодов аутентификации;
  • Функции генерации случайных последовательностей.


Криптографические протоколы классифицируют по следующим признакам[2]:

  1. По характеру разрешения спорных вопросов
  • С арбитром
TemplateDifinitionIcon.svg Определение «Определение - Арбитр»
Арбитр - третья сторона, не зависящая от участников протокола; не заинтересованная исходом протокола; пользующаяся доверием участников протокола и непосредственно участвующая в протоколе.
TemplateDifinitionIcon.svg Определение «Определение - Центр доверия»
Центр доверия - третья доверенная сторона, через которую проходят все сообщения участников протокола.
Таким образом, центр доверия должен иметь хорошую пропускную способность, а следовательно, оплачивать линии связи и пр. Поэтому протоколы с арбитром хотя и являются наиболее простыми, однако, с другой стороны, достаточно дорогими.
  • С судьей
TemplateDifinitionIcon.svg Определение «Определение - Судья»
Судья - третья доверенная сторона, непосредственно НЕ участвующая в протоколе; необходима, когда возникают спорные ситуации.
Данный вид протоколов является более дешевым, по сравнению с предыдущим, вариантом.
  • Самодостаточные
Нет третьих сторон; протокол сам определяет, кто из участников нарушает правила в попытке лично для себя извлечь какую-либо пользу.
При построении таких протоколов предполагается, что более 50% составляют законопослушные участники.
2. По типу используемых криптографических примитивов
  • На основе симметричной криптографии;
  • На основе асимметричной криптографии;
  • Смешанные (гибридные)
Наиболее часто используют такую схему: непосредственно само шифрование выполняется с помощью симметричной криптографии, а распределение ключей - средствами асимметричной криптографии.
3. По числу участников
  • Двухсторонние
TemplateExampleIcon.svg Пример Пример двухстороннего протокола
Система Банк-Клиент.
  • Трехсторонние
Как правило, имеется 2 участника и 1 доверенный центр.
  • Многосторонние
4. По числу передаваемых сообщений:
  • Интерактивный протокол
Взаимный обмен сообщениями.
  • Не интерактивный протокол
Передача только в одну сторону.
5. По функциональному (целевому) назначению
  • Протоколы обеспечения целостности сообщений
  • Протоколы цифровой подписи
Обеспечение аутентичности/подлинности.
  • Протоколы идентификации участников
  • Протоколы обеспечения конфиденциальности
  • Протоколы доказательства[3];
  • Протоколы доказательства знания
Доказательство знания факта/секрета, при этом сам секрет не раскрывается.
  • Протоколы доказательства умения решать некоторую задачу
TemplateExampleIcon.svg Пример Пример протокола доказательства умения решать некоторую задачу
Один участник доказывает умение решать уравнения второй степени по составному модулю.
TemplateDifinitionIcon.svg Определение «Определение - Нулевое разглашение секрета»
Нулевое разглашение секрета - вид доказательства, при котором все секреты одного участника остаются в тайне от другого (кому доказывает).
6. По сложности
  • Примитивные (базовые)
Являются "кирпичиками" для построения более сложных протоколов.
  • Прикладные
7. По области применения
  • В системах электронного обмена данными
Также применяются в различных системах электронного документооборота. Подобные протоколы соблюдают правило честного обмена данными/подписями.
  • В системах электронной подписи
Криптография в таких системах - обязательный элемент. Используются понятия "электронные деньги", "электронные чеки" и т.д.
  • В системах электронной коммерции
В этих системах активно производятся платежи.
TemplateExampleIcon.svg Пример Пример системы электронной коммерции
Электронный аукцион.
  • В системах поддержки правовых отношений
TemplateExampleIcon.svg Пример Пример системы поддержки правовых отношений
Система электронного тайного голосования.
  • В игровых системах;
TemplateExampleIcon.svg Пример Пример протокола - Трехэтапный протокол обмена ключами (Трехэтапный протокол Шамира)
Crypto1 new.PNG

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

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

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


Рис. 1. 3 этапа протокола Шамира

Протокол обеспечивает секретность и целостность, по при этом НЕ обеспечивается аутентичность. Рассмотрим следующую ситуацию: пусть при в момент пересылки возникает злоумышленник Z, обладающий собственным "замком":

Рис. 2. Вмешательство злоумышленника Z в протокол
Z перехватывает "сундук" на Этапе 1 при его следовании от А к В. Z навешивает на него свой "замок" и посылает "сундук" обратно к А. Очевидно, что до В "сундук" никогда не дойдет; т.о. А, ничего не подозревая, будет взаимодействовать не с законным пользователем В, а со злоумышленником Z. Для предотвращения подобных случаев этот протокол можно дополнить каналом аутентификации: участники обязаны будут знать, какой формы должны быть "замки". Это позволит и А, и В быть уверенными в том, что "сундук" с "замком" прислан от законного пользователя.


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

Рис. 3. Удостоверяющий центр

Пред началом передачи участники могут узнать посредством обращения к УЦ, какой замок кому принадлежит.

Такой протокол является трехсторонним протоколом с судьей.

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

Стандарт X.509 определяет, что должен включать сертификат: сам ключ; подпись УЦ; алгоритм, с помощью которого получена подпись; временные границы действия ключей.

Также УЦ располагает списком отозванных сертификатов (CRL).

В Российской Федерации на сегодняшний день существуют сотни некорпоративных, корпоративных УЦ[5] и УЦ органов государственной власти (применяются для государственных структур).

Существует ФЗ об ЭЦП.

TemplateExampleIcon.svg Пример Пример УЦ
C 1 июня 2006 года был запущен в эксплуатацию УЦ ФГУП НИИ «Восход». В 2003-2005 годах, в рамках реализации мероприятий по ФЦП «Электронная Россия» был разработан и запущен в опытную эксплуатацию Федеральный удостоверяющий центр (ФУЦ). С января 2006 года он обслуживает Главный удостоверяющий центр системы паспортно - визовых документов нового поколения (ГУЦ ПВДНП). В 2008 году ФГУП НИИ «Восход» начал эксплуатацию системы территориально распределенного Удостоверяющего центра общероссийского государственного информационного центра (УЦ ОГИЦ).


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

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

Криптографические примитивы без ключа

Генератор случайных последовательностей

Примеры генераторов случайных последовательностей:

  • бросание монеты;
  • вытаскивание номера в лото;
  • счетчики Гейгера;
  • вращение вентилятора в компьютере.

Т.о., основа любого генератора случайной последовательности - некоторое физическое явление. На практике, как правило, применяют "шумящий" диод.

TemplateExampleIcon.svg Пример Пример использования "шумящего" диода
Электронный замок "Соболь" производства компании "ИНФОРМЗАЩИТА", представляющий собой плату, вставляемую в компьютер, использует "шумящий" диод.


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

Программный генератор наделяет последовательность свойством равномерности.

Однонаправленная функция

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

Хэш-функция

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

Криптографические примитивы с секретном ключом

Генератор псевдослучайных последовательностей

Вырабатывает псевдослучайную последовательность на основе так называемого "зерна" (seed). Отличается от генератора случайной последовательности тем, что может воспроизвести последовательность повторно (в случае со случайной последовательностью такое не осуществимо).

Требования к генератору псевдослучайных последовательностей:

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

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

Более эффективна при реализации на основе открытого ключа. Позволяет осуществить offline-идентификацию.

Симметричные шифры

  • Блочные шифры;
  • Поточные шифры.

Криптографические примитивы с открытым ключом

Асимметричные ключи

Цифровая подпись

Виды цифровой подписи:

  • С добавкой (with appendix): обычно используется в ЦП, применяемой в банках и платежных системах.
  • Подпись "вслепую" (blind signature): особенность такой пописи заключается в том, что подписывающий не знает содержимого того, что подписал, а также не сможет выяснить кому и когда подписал; применяется в системах электронных платежей и в системах электронного тайного голосования (т.е. там, где необходима анонимность).
  • Контролируемая подпись (Undeniable signature): проверка без согласия подписавшего невозможна.

Идентификационные примитивы с открытым ключом

Примечания

  1. В этой спецслужбе работали известные специалисты по криптографии J.Ellis, C.Coсks, M.Williamson
  2. Стоит отметить, что в любом протоколе рассматриваются понятия внутренних и внешних злоумышленников. Защиту от внутренних злоумышленников труднее реализовать.
  3. Имеют широкое практическое применение.
  4. Massey, Omura предложили хорошее коммутирующее преобразование.
  5. В частности, в системах дистанционного банковского обслуживания осуществляется взаимодействие "банк - УЦ".