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

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

Иерархия ключевой информации может включать множество уровней, однако, наиболее часто выделяют:

· главные ключи (мастер-ключи),

· ключи шифрования ключей,

· рабочие ключи (сеансовые).

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

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

Значение мастер- ключа фиксируется на длительное время (до нескольких недель или месяцев). Сеансовые ключи меняются намного чаще, например, при построении криптозащищенных туннелей их можно менять каждые 10-15 минут, либо по результатам шифрования заданного объема трафика (например, 1 Мб).

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

Задача распределения ключей сводится к построению протокола распределения ключей, обеспечивающего:

1) взаимное подтверждение подлинности участников сеанса;

2) подтверждение достоверности сеанса для защиты от атак методом

повторов;

3) использование минимального числа сообщений при обмене ключами.

Вообще говоря, выделяют два подхода к распределению ключевой информации в компьютерной сети:

1. Распределение ключевой информации с использованием одного

либо нескольких центров распределения ключей.

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

Распределение ключевой информации с использованием центров распределения ключей

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

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


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

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

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

Для решения проблемы выработки общего секрета без раскрытия его злоумышленником существует два основных способа:

· использование криптосистемы с открытым ключом для шифрования;

· использование протокола открытого распространения ключей Диффи-Хеллмана.

Реализация первого способа не должна вызывать вопросов. Рассмотрим более подробно реализацию второго способа.

Протокол Диффи-Хеллмана

Протокол Диффи-Хеллмана был первым алгоритмом работы с открытыми ключами (1976 г.). Безопасность данного протокола основана на трудности вычисления дискретных логарифмов .

Пусть пользователи A и B хотят выработать общий секрет. Для этого они выполняют следующие шаги.

Стороны A и B договариваются об используемом модуле N , а также о примитивном элементе g , степени которого образуют числа от 1 до N -1.

1. Числа N и g являются открытыми элементами протокола.

2. Пользователи A и B независимо друг от друга выбирают собственные секретные ключи СК A и CK B (случайные большие целые числа, меньшие N , хранящиеся в секрете).

3. Пользователи A и B вычисляют открытые ключи ОК А и OK B на основании соответствующих секретных ключей по следующим формулам:

4. Стороны A и B обмениваются между собой значениями открытых ключей по незащищенному каналу.

5. Пользователи A и B формируют общий секрет K по формулам:

Пользователь A:

K = (OK B) CK A (mod N) = (g CK B) CK A (mod N) = g CK B . CK A (mod N).

Пользователь B:

K = (OK A) CK B (mod N) = (g CK A) CK B (mod N) = g CK A . CK B (mod N).

Ключ K может использоваться в качестве общего секретного ключа (мастер-ключа) в симметричной криптосистеме.

Пример 6.2.

Возьмем модуль N = 47 и примитивный элемент g = 23. Пусть пользователи A и B выбрали свои секретные ключи СК А = 12, СК В = 33. Тогда,

В данном случае общий секрет будет иметь вид:

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

Протокол Диффи - Хеллмана нашел эффективное применение в протоколе SKIP управления ключами. Данный протокол используется при построении криптозащищенных туннелей в семействе продуктов ЗАСТАВА.

Упpавление ключами

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

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

Упpавление ключами - инфоpмационный пpоцесс, включающий в себя тpи элемента:

* генеpацию ключей;

* накопление ключей;

* pаспpеделение ключей.

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

Генеpация ключей

В самом начале pазговоpа о кpиптогpафических методах было сказано, что не стоит использовать неслучайные ключи с целью легкости их запоминания. В сеpьезных ИС используются специальные аппаpатные и пpогpаммные методы генеpации случайных ключей. Как пpавило используют датчики ПСЧ. Однако степень случайности их генеpации должна быть достаточно высоким. Идеальным генеpатоpами являются устpойства на основе "натуpальных" случайных пpоцессов. Напpимеp, появились сеpийные обpазцы генеpации ключей на основе белого pадиошума . Дpугим случайным математическим объектом являются десятичные знаки иppациональных чисел, напpимеp или е , котоpые вычисляются с помощью стандаpтных математических методов.

В ИС со сpедними тpебованиями защищенности вполне пpиемлемы пpогpаммные генеpатоpы ключей, котоpые вычисляют ПСЧ как сложную функцию от текущего вpемени и (или) числа, введенного пользователем.

Накопление ключей

Под накоплением ключей понимается оpганизация их хpанения, учета и удаления.

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

Секpетные ключи никогда не должны записываться в явном виде на носителе, котоpый может быть считан или скопиpован.

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

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

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

Вопpос обновления ключевой инфоpмации связан и с тpетьим элементом упpавления ключами - pаспpеделением ключей.

Распpеделение ключей

Распpеделение ключей - самый ответственный пpоцесс в упpавлении ключами. К нему пpедъявляются два тpебования:
  1. Опеpативность и точность pаспpеделения
  2. Скpытность pаспpеделяемых ключей.
В последнее вpемя заметен сдвиг в стоpону использования кpиптосистем с откpытым ключом, в котоpых пpоблема pаспpеделения ключей отпадает. Тем не менее pаспpеделение ключевой инфоpмации в ИС тpебует новых эффективных pешений.

Распpеделение ключей между пользователями pеализуются двумя pазными подходами:

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

В обоих случаях должна быть гаpантиpована подлинность сеанса связи. Это можно обеспечить двумя способами:

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

Пpи использовании отметок вpемени встает пpоблема допустимого вpеменного интеpвала задеpжки для подтвеpждения подлинности сеанса. Ведь сообщение с "вpеменным штемпелем" в пpинципе не может быть пеpедано мгновенно. Кpоме этого компьютеpные часы получателя и отпpавителя не могут быть абсолютно синхpонизиpованы. Какое запаздывание "штемпеля" считать подозpительным.

Поэтому в pеальных ИС, напpимеp в системах оплаты кpедитных каpточек используется именно втоpой механизм установления подлинности и защиты от подделок. Используемый интеpвал составляет от одной до нескольких минут. Большое число известных способов кpажи электpонных денег, основано на "вклинивании" в этот пpомежуток с подложными запpосами на снятии денег.

Для обмена ключами можно использовать кpиптосистемы с откpытым ключом, используя тот же алгоpитм RSA.

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

Алгоpитм Диффи-Хеллмана

Диффи и Хелман пpедложили для создания кpиптогpафических систем с откpытым ключом функцию дискpетного возведения в степень .

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

Если y = x , 1<x <p -1, где - фиксиpованный элемент поля GF(p) , то x =log y над GF(p) . Имея x , легко вычислить y . Для этого потpебуется 2 ln(x +y ) опеpаций умножения.

Обpатная задача вычисления x из y будет достаточно сложной. Если p выбpано достаточно пpавильно, то извлечение логаpифма потpебует вычислений, пpопоpциональных

L(p) = exp { (ln p ln ln p ) 0.5 }

Для обмена инфоpмацией пеpвый пользователь выбиpает случайное число x 1 , pавновеpоятное из целых 1...p -1. Это число он деpжит в секpете, а дpугому пользователю посылает число

y 1 = x mod p

Аналогично поступает и втоpой пользователь, генеpиpуя x 2 и вычислив y 2 , отпpавляя его пеpвому пользователю. В pезультате этого они могут вычислять k 12 = x 1 x 2 mod p .

Для того, чтобы вычислить k 12 , пеpвый пользователь возводит y 2 в степень x 1 . То же делает и втоpой пользователь. Таким обpазом, у обоих пользователей оказывается общий ключ k 12 , котоpый можно использовать для шифpования инфоpмации обычными алгоpитмами. В отличие от алгоpитма RSA, данный алгоpитм не позволяет шифpовать собственно инфоpмацию.

Не зная x 1 и x 2 , злоумышленник может попытаться вычислить k 12 , зная только пеpехваченные y 1 и y 2 . Эквивалентность этой пpоблемы пpоблеме вычисления дискpетного логаpифма есть главный и откpытый вопpос в системах с откpытым ключом. Пpостого pешения до настоящего вpемени не найдено. Так, если для пpямого пpеобpазования 1000-битных пpостых чисел тpебуется 2000 опеpаций, то для обpатного пpеобpазования (вычисления логаpифма в поле Галуа) - потpебуется около 10 30 опеpаций.

Как видно, пpи всей пpостоте алгоpитма Диффи-Хелмана, втоpым его недостатком по сpавнению с системой RSA является отсутствие гаpантиpованной нижней оценки тpудоемкости pаскpытия ключа.

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

В качестве обобщения сказанного о pаспpеделении ключей следует сказать следующее. Задача упpавления ключами сводится к поиску такого пpотокола pаспpеделения ключей, котоpый обеспечивал бы:

* возможность отказа от центpа pаспpеделения ключей;

* взаимное подтвеpждение подлинности участников сеанса;

* подтвеpждение достовеpности сеанса механизмом запpоса-ответа, использование для этого пpогpаммных или аппаpатных сpедств;

* использование пpи обмене ключами минимального числа сообщений.

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

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

Система распределения ключей должна соблюдать следующие требования:

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

При распределении ключей есть 2 подхода:

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

При первом подходе, центру распределения ключей известно какие ключи и кому были пересланы. При втором подходе, нужно удостовериться в подлинности субъектов сети. Задача распределения ключей сводится к созданию , который реализует:

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

Явным примером реализации центров распределения ключами является система Kerberos. Здесь мы рассмотрим второй подход. Для этого используют:

  • асимметричную криптосистему с открытым ключом для защиты секретного ключа симметричной криптосистемы
  • системы открытого распределения ключей Диффи-Хеллмана

Реализация комбинированной криптосистемы управления распределением

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

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

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

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

  • Действия пользователя А:
    • Создает (любым способом) сеансовый секретный ключ K s , который нужен в симметричном шифровании для зашифровывания пакетов
    • Шифрует пакет М симметричным алгоритмом на сеансовом секретном ключе K s
    • Зашифровывает асимметричным алгоритмом секретный сеансовый ключ K s на открытом ключе K B пользователя В
    • Отправляет по открытому каналу пользователю В зашифрованный пакет М вместе с зашифрованным сеансовым ключом K s
  • Действия пользователя В(при получении электроннго цифрового конверта):
    • расшифровать асимметричным алгоритмом сеансовый ключ K s с помощью своего секретного ключа K B
    • Расшифровать симметричным алгоритмом пакет М с помощью расшифрованного ключа K s
    • Действия пользователей показаны на рис.1

Рисунок — 1

При реализации цифрового конверта минусы асимметричного и симметричного алгоритмов компенсируются из-за:

  • проблема распространения ключей симметричного криптоалгоритма устранена тем, что сеансовый ключ K s передается по открытому каналу в зашифрованном виде с помощью асимметричного криптоалгоритма
  • проблема медленной скорости асимметричного алгоритма не уместная, так как шифруется только ключ, а текст шифруется симметричным криптоалгоритмом

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

Таблица 1 — Длины ключей для асимметричных и симметричных систем при одинаковой криптостойкости

Метод распределения ключей Диффи-Хеллмана

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

Рисунок — 2

Пользователи А и В при обмене данными генерируют свои случайные секретные ключи K A и K B (ключи — случайные большие целые числа). ЗАтем пользователь А и В вычисляет открытые ключи:

  • J A,B = g K A,B (mod N)

N, g — большие целые простые числа. Эти числа не секретные, и известны всем пользователям системы. Затем пользователи А и В реализуют обмен ключами J по незащищенному каналу и реализуют их для вычисления общего сессионного ключа J:

  • пользователь А: J = (J B) K A (mod N) = (g K B) K A (mod N)
  • пользователь B: J` = (J A) K B (mod N) = (g K A) K B (mod N)
  • J = J`, так как (g K B) K A = (g K A) K B

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

Метод комплексной защиты конфиденциальности и аутентичности передаваемых данных

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

  • пользователь А подписывает пакет М с помощью своего секретного ключа K A , реализуя стандартный алгоритм цифровой подписи
  • пользователь А вычисляет общий секретный ключ K по принципу Диффи-Хеллмана, из своего открытого ключа и открытого ключа пользователя В
  • пользователь А зашифровывает пакет М на общем секретном ключе К, с помощью симметричного шифрования
  • пользователь В получив пакет М, вычисляет общий ключ К и расшифровывает пакет М
  • пользователь В проверяет подпись расшифрованного пакета М с помощью открытого ключа пользователя K A

На основе алгоритма Диффи-Хеллмана работают протоколы управления криптоключами SKIP, IKE.

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

Протоколы распределения ключей делят на два класса:

    Протоколы транспортировки ключей;

    Протоколы обмена ключами.

Протоколы транспортировки ключей (key transport) - это протоколы распределения ключей, в которых один участник создает или другим образом приобретает секрет и безопасным образом передает его другим участникам.

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

Выделяют две дополнительные формы протоколов распределения ключей. Говорят, что протокол осуществляет обновление ключей (key update), если в протоколе вырабатывается совершенно новый ключ, не зависящий от ключей, выработанных в прошлых сеансах выполнения протокола. Протокол выполняет выработку производных ключей (key derivation), если новый ключ «выводится» из уже существующих у участников криптосистемы.

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

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

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

Явная аутентификация ключа (explicit key authentication) - свойство, которое выполняется, когда имеют место (неявная) аутентификация ключа и подтверждение ключа одновременно.

    1. Протокол Нидхема-Шрёдера (Needham-Schroeder protocol) на симметричных ключах

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

    Протокол Нидхема-Шрёдера на симметричных ключах;

    Протокол Нидхема-Шрёдера на ассиметричных ключах.

Протокол на симметричных ключах работает следующим образом:

Предварительный этап:

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

Рис. 1.

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

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

Схемы распределения ключей по открытым каналам связи решают ту же проблему несколько иным способом: в ходе сеанса взаимодействия два корреспондента вырабатывают общий секретный ключ, который затем используется для зашифрования передаваемых данных симметричным шифром. Причем перехват информации в канале во время сеанса выработки такого ключа не дает противнику возможности получить сам ключ: K=K(X,Y) невычислимо (рис. 2).


Рис. 2.

Проблемы асимметричной криптографии

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

Другая угроза современным криптосистемам исходит от так называемых квантовых компьютеров -- устройств обработки информации, построенных на принципах квантовой механики, идея которых впервые была предложена известным американским физиком Р. Фейнманом. В 1994 г. П. Шор предложил алгоритм факторизации для квантового компьютера, который позволяет разложить число на множители за время, зависящее полиномиальным образом от размера числа . А в 2001 г. этот алгоритм был успешно реализован на созданном специалистами фирмы IBM и Стэнфордского университета первом действующем макете квантового вычислителя .

По оценкам специалистов, квантовый компьютер, способный взломать криптосистему RSA, может быть создан примерно через 15-25 лет.

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

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