stringtranslate.com

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

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

Обоснование

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

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

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

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

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

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

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

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

Рекомендации

  1. ^ "Криптографический примитив - Глоссарий CSRC" . csrc.nist.gov . Проверено 19 сентября 2021 г.