For faster navigation, this Iframe is preloading the Wikiwand page for Криптографические примитивы.

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

Материал из Википедии — свободной энциклопедии

Криптографические примитивы — низкоуровневые криптографические алгоритмы, которые часто используются для построения криптографических протоколов. В узком смысле это операции и процедуры, определяющие требуемые свойства криптосистемы[1].

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

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

Свойства примитивов

[править | править код]

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

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

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

Основные примитивы

[править | править код]
  • Хеширование — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями или функциями свёртки, а их результаты называют хеш-кодом, контрольной суммой или дайджестом сообщения (англ. message digest). Результаты хеширования статистически уникальны. Последовательность, отличающаяся хотя бы одним битом, не будет преобразована в то же самое значение[3][4].
  • Криптография с симметричным ключом — заключается в том, что обе стороны — участники обмена данными имеют абсолютно одинаковые ключи для шифрования и расшифровки данных. Данный способ осуществляет преобразование, позволяющее предотвратить просмотр информации третьей стороной[3][4].
  • Асимметричное шифрование — предполагает использовать в паре два разных ключа — открытый и секретный. В асимметричном шифровании ключи работают в паре — если данные шифруются открытым ключом, то расшифровать их можно только соответствующим секретным ключом и наоборот — если данные шифруются секретным ключом, то расшифровать их можно только соответствующим открытым ключом. Использовать открытый ключ из одной пары и секретный из другой — невозможно. Каждая пара асимметричных ключей связана математическими зависимостями. Данный способ также нацелен на преобразование информации от просмотра третьей стороной[3][4].
  • Цифровая подпись — используются для установления подлинности документа, его происхождения и авторства, исключает искажения информации в электронном документе[4].
  • Схема обязательства — это метод, позволяющий пользователю подтверждать какое-либо значение, которое не разглашается, то есть в случае разглашения этого значения благодаря этой схеме будет известно, что пользователь знал его на момент выдачи обязательства и что оно не изменилось[5].
  • Генератор псевдослучайных чисел — это генератор псевдослучайных чисел с определёнными свойствами, позволяющими использовать его в задачах криптографии[6].

Объединение криптографических примитивов

[править | править код]

Криптографические примитивы сами по себе довольно ограничены. Они не могут рассматриваться как криптографическая система. Например, простой алгоритм шифрования не обеспечит ни механизма аутентификации, ни какой-либо явной проверки целостности сообщения. Если мы используем комбинацию подпрограмм кодирования (например DES) и хеширования (например SHA-1), то получим систему для передачи сообщения, которое не только закодировано, но и защищено от подделки. И если злоумышленник не знает ключа шифрования, он не может вмешаться в передачу сообщения.

Большинство проблем криптографических систем (то есть ненадёжности в системах) связано, как правило, с неправильным использованием примитивов, то есть ошибками при построении архитектуры криптографического протокола, неправильным использованием и комбинированием примитивов, а не с ошибками внутри самих примитивов. Существуют методы для полного анализа криптографических протоколов, но они очень сложны. Однако некоторые основные свойства могут быть проверены с помощью автоматических методов, например, с помощью логики Бэрроуза — Абади — Нидхэма[2].

Примечания

[править | править код]
  1. Молдовян Н. А. Криптография: от примитивов к синтезу алгоритмов. — 2004. — С. 11. — 448 с. — ISBN 9785941575244.
  2. 1 2 Patel Parth. Cryptovirology // U & P U PatelDepartment of Computer Engineering,Gujarat University, India. — С. 6. — 8 с.
  3. 1 2 3 Menezes A.J., Oorschot P.C., Vanstone S.A. Handbook of applied cryptography. — 1996. — С. 5—6. — 780 с. — ISBN 0-8493-8523-7.
  4. 1 2 3 4 Марков А. С., Цирлов В. Л. Основы криптографии: подготовка к CISSP // Вопросы кибербезопасности No2(10). — 2015. — С. 66.
  5. Oded Goldreich. Foundations of Cryptography: Volume 1, Basic Tools. — Cambridge University Press. — 2004. — С. 223—228. — 372 с. — ISBN 0-521-79172-3.
  6. Michela Meister. A Survey of Pseudorandom Functions // Stanford University. — С. 1. — 5 с.
{{bottomLinkPreText}} {{bottomLinkText}}
Криптографические примитивы
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?