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

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

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

Обоснование

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

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

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

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

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

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

Объединение криптографических примитивов для создания протокола безопасности само по себе является целой специализацией. Большинство эксплуатируемых ошибок (т. е. небезопасности в криптосистемах) обусловлены не ошибками проектирования примитивов (предполагая, что они всегда были выбраны с осторожностью), а способом их использования, т. е. плохим проектированием протокола и ошибочной или недостаточно тщательной реализацией. Математический анализ протоколов на момент написания этой статьи не был зрелым. [ необходима цитата ] Существуют некоторые основные свойства, которые можно проверить с помощью автоматизированных методов, таких как логика BAN . Существуют даже методы для полной проверки (например, исчисление SPI ), но они чрезвычайно громоздки и не могут быть автоматизированы. Проектирование протоколов — это искусство, требующее глубоких знаний и большой практики; даже в этом случае ошибки являются обычным явлением. Наглядный пример для реальной системы можно увидеть на странице новостей об уязвимостях OpenSSL здесь.

Часто используемые примитивы

Смотрите также

Ссылки

  1. ^ "Криптографический примитив - Глоссарий CSRC". csrc.nist.gov . Получено 2021-09-19 .
  • Левенте Буттян, Иштван Вайда: Kriptográfia és alkalmazásai (Криптография и ее приложения), Typotex 2004, ISBN 963-9548-13-8 
  • Менезес, Альфред Дж.: Справочник по прикладной криптографии, CRC Press, ISBN 0-8493-8523-7 , октябрь 1996 г., 816 страниц. 
  • Crypto101 — вводный курс по криптографии, доступный бесплатно для программистов всех возрастов и уровней подготовки.
Взято с "https://en.wikipedia.org/w/index.php?title=Криптографический_примитив&oldid=1255861696"