Криптографические примитивы — низкоуровневые криптографические алгоритмы, которые часто используются для построения криптографических протоколов. В узком смысле это операции и процедуры, определяющие требуемые свойства криптосистемы.
Введение Криптографические примитивы используются как основные строительные блоки при создании криптосистемы, то есть они предназначены для узкого класса задач с высокой степенью надёжности. В качестве примера можно рассмотреть такую ситуацию: пусть для некоторой подпрограммы шифрования указано, что она может быть взломана только с числом операций X на компьютере, тогда если она может быть взломана с помощью значительно меньшего количества операций, чем X, этот криптографический примитив считается ненадёжным.
При проектировании протоколов и криптосистем разработчик несёт ответственность за устранение композиционных недостатков. Не имея возможности доказать их безопасность, разработчик должен считать надёжными примитивы, которые они используют. Выбор лучшего примитива, доступного для использования в протоколе, обычно обеспечивает наилучшую доступную безопасность из возможных. Если обнаружен сбой криптографического примитива, почти каждый протокол, который его использует, становится уязвимым.
Свойства примитивов Криптографические примитивы должны обладать следующими свойствами:
Уровень безопасности. Обычно определяется количеством операций, требуемых (с использованием лучших методов, известных в настоящее время), чтобы достигнуть намеченную цель. Обычно уровень безопасности определяется необходимой верхней границей объёма работы. Это иногда называют рабочим фактором. Функциональность. Примитивы должны быть объединяемы для достижения различных целей. Какие примитивы наиболее эффективны для данной цели, будет определяться основными свойствами примитивов. Методы работы. Примитивы, когда они применяются в различных направлениях и при разных вложениях, как правило, проявляют различные характеристики; таким образом, один примитив мог бы использоваться по-разному, в зависимости от необходимости. Производительность. Это относится к эффективности примитива в определённом режиме работы (например, алгоритм шифрования может оцениваться по количеству битов в секунду, которую он может зашифровать). Простота реализации. Это относится к трудности реализации примитива в практической реализации, например реализации примитива в программной или аппаратной среде. Относительная важность различных критериев в значительной степени зависит от применения и имеющихся ресурсов. Например, в среде, где вычислительная мощность ограничена, возможно, придётся отказаться от очень высокого уровня безопасности для повышения производительности системы в целом.
Основные примитивы Хеширование — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями или функциями свёртки, а их результаты называют хеш-кодом, контрольной суммой или дайджестом сообщения (англ. message digest). Результаты хеширования статистически уникальны. Последовательность, отличающаяся хотя бы одним битом, не будет преобразована в то же самое значение. Криптография с симметричным ключом — заключается в том, что обе стороны — участники обмена данными имеют абсолютно одинаковые ключи для шифрования и расшифровки данных. Данный способ осуществляет преобразование, позволяющее предотвратить просмотр информации третьей стороной. Асимметричное шифрование — предполагает использовать в паре два разных ключа — открытый и секретный. В асимметричном шифровании ключи работают в паре — если данные шифруются открытым ключом, то расшифровать их можно только соответствующим секретным ключом и наоборот — если данные шифруются секретным ключом, то расшифровать их можно только соответствующим открытым ключом. Использовать открытый ключ из одной пары и секретный из другой — невозможно. Каждая пара асимметричных ключей связана математическими зависимостями. Данный способ также нацелен на преобразование информации от просмотра третьей стороной. Цифровая подпись — используются для установления подлинности документа, его происхождения и авторства, исключает искажения информации в электронном документе. Схема обязательства — это метод, позволяющий пользователю подтверждать какое-либо значение, которое не разглашается, то есть в случае разглашения этого значения благодаря этой схеме будет известно, что пользователь знал его на момент выдачи обязательства и что оно не изменилось. Генератор псевдослучайных чисел — это генератор псевдослучайных чисел с определёнными свойствами, позволяющими использовать его в задачах криптографии.
Объединение криптографических примитивов Криптографические примитивы сами по себе довольно ограничены. Они не могут рассматриваться как криптографическая система. Например, простой алгоритм шифрования не обеспечит ни механизма аутентификации, ни какой-либо явной проверки целостности сообщения. Если мы используем комбинацию подпрограмм кодирования (например DES) и хеширования (например SHA-1), то получим систему для передачи сообщения, которое не только закодировано, но и защищено от подделки. И если злоумышленник не знает ключа шифрования, он не может вмешаться в передачу сообщения.
Большинство проблем криптографических систем (то есть ненадёжности в системах) связано, как правило, с неправильным использованием примитивов, то есть ошибками при построении архитектуры криптографического протокола, неправильным использованием и комбинированием примитивов, а не с ошибками внутри самих примитивов. Существуют методы для полного анализа криптографических протоколов, но они очень сложны. Однако некоторые основные свойства могут быть проверены с помощью автоматических методов, например, с помощью логики Бэрроуза — Абади — Нидхэма.
См. также Crypto++
Примечания
Категория:Криптография