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

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

См. также

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

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

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

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

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

Сначала рассмотрим алгоритмы, обладающие обеими характеристиками, а затем перейдем к алгоритмам открытого ключа , которые не обладают вторым свойством.

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

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

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

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

  1. Вычислительно легко создавать пару (открытый ключ KU, закрытый ключ KR ).
  2. Вычислительно легко, имея открытый ключ и незашифрованное сообщение М , создать соответствующее зашифрованное сообщение:
  3. Вычислительно легко дешифровать сообщение, используя закрытый ключ :

    М = D KR [C] = D KR ]

  4. Вычислительно невозможно, зная открытый ключ KU , определить закрытый ключ KR .
  5. Вычислительно невозможно, зная открытый ключ KU и зашифрованное сообщение С , восстановить исходное сообщение М .

    Можно добавить шестое требование, хотя оно не выполняется для всех алгоритмов с открытым ключом :

  6. Шифрующие и дешифрующие функции могут применяться в любом порядке:

    М = Е KU ]

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

Обычно "легко" означает, что проблема может быть решена за полиномиальное время от длины входа. Таким образом, если длина входа имеет n битов, то время вычисления функции пропорционально n a , где а - фиксированная константа. Таким образом, говорят, что алгоритм принадлежит классу полиномиальных алгоритмов Р. Термин "трудно" означает более сложное понятие. В общем случае будем считать, что проблему решить невозможно, если усилия для ее решения больше полиномиального времени от величины входа. Например, если длина входа n битов, и время вычисления функции пропорционально 2 n , то это считается вычислительно невозможной задачей. К сожалению, тяжело определить, проявляет ли конкретный алгоритм такую сложность. Более того, традиционные представления о вычислительной сложности фокусируются на худшем случае или на среднем случае сложности алгоритма. Это неприемлемо для криптографии, где требуется невозможность инвертировать функцию для всех или почти всех значений входов.

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

Мы видим, что разработка конкретного алгоритма с открытым ключом зависит от открытия соответствующей односторонней функции с люком .

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

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

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

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

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

Основные способы использования алгоритмов с открытым ключом

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

Шифрование с открытым ключом состоит из следующих шагов:


Рис. 7.1.

  1. Пользователь В создает пару ключей KU b и KR b , используемых для шифрования и дешифрования передаваемых сообщений.
  2. Пользователь В делает доступным некоторым надежным способом свой ключ шифрования, т.е. открытый ключ KU b . Составляющий пару закрытый ключ KR b держится в секрете.
  3. Если А хочет послать сообщение В , он шифрует сообщение, используя открытый ключ В KU b .
  4. Когда В получает сообщение, он дешифрует его, используя свой закрытый ключ KR b . Никто другой не сможет дешифровать сообщение, так как этот закрытый ключ знает только В .

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

Создание и проверка подписи состоит из следующих шагов:


Рис. 7.2.
  1. Пользователь А создает пару ключей KR A и KU A , используемых для создания и проверки подписи передаваемых сообщений.
  2. Пользователь А делает доступным некоторым надежным способом свой ключ проверки, т.е.

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

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

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

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

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

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

  • Закрытый ключ (en:Private key) - ключ, известный только своему владельцу. Только сохранение пользователем в тайне своего закрытого ключа гарантирует невозможность подделки злоумышленником документа и цифровой подписи от имени заверяющего.
  • Открытый ключ (en:Public key) - ключ, который может быть опубликован и используется для проверки подлинности подписанного документа, а также для предупреждения мошенничества со стороны заверяющего лица в виде отказа его от подписи документа. Открытый ключ подписи вычисляется, как значение некоторой функции от закрытого ключа, но знание открытого ключа не дает возможности определить закрытый ключ.

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

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

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

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

Контроль качества ключей

При генерации ключей как с помощью программно-аппаратного решения Stealthphone Key Hard , так и с помощью программных решений Stealthphone Key Soft или Stealthphone Tell , производится постоянный контроль качества ключей с точки зрения их надежности.

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

Программные генераторы построены на принципе постоянного накопления энтропии – действительно случайной последовательности – и дальнейшего ее использования при выполнении процедуры генерации ключей

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

Классификация ключей

  • Все ключи шифрования делятся на ключи шифрования данных и ключи шифрования ключей. Это значит, что каждый ключ шифрования используется либо исключительно для шифрования данных (включая речь), либо исключительно для шифрования ключей, в частности тех, на которых шифруются данные и речь.
  • Все ключи делятся на долговременные и одноразовые. Долговременные ключи используются неоднократно в течение определенного периода времени; одноразовые ключи используются один раз для шифрования фрагмента данных или речи. К долговременным ключам относятся все ключи шифрования ключей, а также ключи шифрования данных внутри смартфона или компьютера; для долговременных ключей предусмотрены процедуры их замены, плановой или внеплановой – в случае утери или компрометации.
  • Кроме того, ключи шифрования могут быть выстроены в определенную иерархию:
    • На самом верху находится ключ аутентификации, который нигде не хранится и вырабатывается в результате выполнения процедуры аутентификации абонента устройством на основе пароля
      • Далее располагается зашифрованный с использованием ключа аутентификации мастер-ключ. С помощью мастер-ключа шифруются:
        • все ключи шифрования ключей шифрования данных
        • все ключи шифрования данных, хранящиеся в аппаратном шифраторе Stealthphone Hard или мобильном телефоне (планшете).
    • Следующий уровень составляют ключи шифрования ключей шифрования данных. Данные ключи шифруются при помощи мастер-ключа и используются при выработке сеансовых ключей.
    • На нижнем уровне располагаются ключи, при помощи которых шифруются данные. Каждый такой ключ шифруется.
  • Для шифрования речи используются только одноразовые сеансовые ключи, которые уничтожаются в конце разговора; объем речевых данных, шифруемых одним сеансовым ключом, поэтому время одного сеанса зашифрованного разговора также ограничено.
  • Для шифрования передаваемых данных используются только одноразовые ключи; объем данных, шифруемых одним сеансовым ключом, ограничен, т.е. при шифровании, например, файла большого объема, может быть использовано несколько сеансовых ключей.

Хранение долговременных ключей шифрования

Долговременные ключи шифрования хранятся только в зашифрованном виде. В зависимости от используемого продукта, они хранятся либо в аппаратном шифраторе (Stealthphone Hard), либо в программном шифраторе (Stealthphone Soft , Stealthphone Tell).

Особенности ключевой системы в системе информационной безопасности Stealthphone

В системе Stealthphone защищенный обмен информацией возможен исключительно в рамках одной криптосети (сети Stealthphone).

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

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

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

Ключи парной связи шифрования речи для всех абонентов сети Stealthphone можно расположить в квадратной таблице (матрице) размера N×N по следующему правилу:

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

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

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

Строка матрицы с номером A образует множество всех ключей парной связи для обмена шифрованной информацией абонента с криптономером A с остальными абонентами криптосети. Общее количество ключей парной связи каждого абонента для обмена шифрованной информацией со всеми остальными абонентами сети равно 4×(N – 1), где N - число абонентов сети.

Матрица ключей парной связи сети Stealthphone, а также все остальные ключи абонентов, вырабатывается администратором сети с помощью комплекса Stealthphone Key Soft . Запись ключей в абонентские устройства производится на рабочем месте администратора с помощью комплекса Stealthphone Key, либо самим абонентом с помощью персонального компьютера, с использованием предварительно подготовленного для него администратором массива ключей.

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

Таким образом, начальной загрузки ключей в абонентские устройства может хватить на несколько лет эксплуатации без перезаписи.

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

Виды ключей в криптографической сети

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

  1. Симметричные (секретные) ключи — применяются в алгоритмах симметричного типа, например, в создании кодов аутентичности. Главным качеством таких ключей является тот факт, что для шифрования или расшифровки, а также выполнения других преобразований требуется применять идентичные ключи. Возможна ситуация, когда ключ, предназначенный для обратного шифрования, вычисляется с помощью ключа для прямой шифровки. Как результат, обеспечивается конфиденциальность информации, но возникают проблемы с распространением буквенно-цифровых кодов в системах с большим числом участников.
  2. Ассиметричные — второй тип ключей, применяемый в алгоритмах несимметричного типа. Такие ключи работают в паре и представляют собой:
  • Закрытый (приватный) — ключ, который известен только хозяину. Задача владельца заключается в сохранении кода втайне от посторонних, что исключает риск подделки и кражи информации.
  • Открытый (публичный) — ключ, который может выставляться на обозрение без опасения быть скопированным. Его особенность — проверка подлинности информации и предупреждение мошеннических схем. Открытый ключ представляет собой некую функцию от закрытого кода. С другой стороны, наличие на руках открытого ключа не позволяет определить его пару.

Как работают ключи в криптографии

Ключ в криптографии — секретная информация, применяемая для декодирования и шифровки сообщений, постановки ЭЦП, проверки операций в криптовалютной сети, расчета кодов аутентичности и прочего. Уровень надежности ключа определяется его длиной (единица измерения — биты). Применяется следующие типы ключей — на 128 и 256 бит (для SSL), а для центров сертификации и криптовалютных сетей от 4096 бит и более.

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

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

Стоит отметить, что публичный (public) ключ используется только для шифровки информации. Использовать его для расшифровки уже не выйдет. В роли дешифратора выступает приватный (private) ключ. Именно так работает механизм на базе ассиметричного шифрования.

В криптовалютной сети (например, Биткоин) принцип работы аналогичен — сначала создается закрытый (private) ключ, после чего система его шифрует и преобразует в ключ открытого типа. Чтобы подтвердить любую операцию, необходимо применять закрытый ключ, без которого дешифровать открытый не получится.

Сфера применения асимметричной криптографии

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

Будьте в курсе всех важных событий United Traders - подписывайтесь на наш