Криптографический примитив
![]() | Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Май 2021 г. ) |
Криптографические примитивы низкого уровня — это хорошо зарекомендовавшие себя криптографические алгоритмы , которые часто используются для создания криптографических протоколов для систем компьютерной безопасности . [1] Эти процедуры включают, помимо прочего, односторонние хеш-функции и функции шифрования .
Обоснование [ править ]
При создании криптографических систем проектировщики используют криптографические примитивы в качестве основных строительных блоков. По этой причине криптографические примитивы предназначены для выполнения одной очень конкретной задачи точно определенным и очень надежным способом.
Поскольку криптографические примитивы используются в качестве строительных блоков, они должны быть очень надежными, т. е. работать в соответствии со своей спецификацией. Например, если процедура шифрования утверждает, что ее можно взломать только с помощью X компьютерных операций, а она взломана с помощью значительно меньшего количества операций, чем X , то этот криптографический примитив не сработал. Если обнаруживается сбой криптографического примитива, почти каждый протокол, использующий его, становится уязвимым. Поскольку создание криптографических процедур очень сложно, а проверка их надежности занимает много времени, по сути, никогда не бывает разумно (и безопасно) разрабатывать новый криптографический примитив, отвечающий потребностям новой криптографической системы. Причины включают в себя:
- Разработчик может быть некомпетентен в математических и практических вопросах, связанных с криптографическими примитивами.
- Разработка нового криптографического примитива требует очень много времени и подвержена ошибкам даже для экспертов в этой области.
- Поскольку алгоритмы в этой области должны не только хорошо разрабатываться, но и тщательно тестироваться сообществом криптологов, даже если криптографическая процедура выглядит хорошо с точки зрения проектирования, она все равно может содержать ошибки. Успешное выдерживание такой проверки дает некоторую уверенность (фактически, пока единственную) в том, что алгоритм действительно достаточно безопасен для использования; Доказательства безопасности для криптографических примитивов обычно недоступны.
Криптографические примитивы являются одним из строительных блоков каждой криптосистемы, например, TLS , SSL , SSH и т. д. Разработчики криптосистем, не имея возможности окончательно доказать свою безопасность, должны считать используемые ими примитивы безопасными. Выбор лучшего примитива, доступного для использования в протоколе, обычно обеспечивает наилучшую доступную безопасность. Однако композиционные недостатки возможны в любой криптосистеме, и ответственность за их предотвращение лежит на разработчике(ах).
Объединение криптографических примитивов [ править ]
Криптографические примитивы не являются криптографическими системами, поскольку они сами по себе весьма ограничены. Например, простой алгоритм шифрования не обеспечивает ни механизма аутентификации, ни какой-либо явной проверки целостности сообщения. Только при объединении в протоколы безопасности можно удовлетворить более одного требования безопасности. Например, чтобы передать сообщение, которое не только закодировано, но и защищено от манипуляций (т. е. оно является конфиденциальным и защищенным от несанкционированного доступа процедуру кодирования, такую как DES , и процедуру хеширования, такую как SHA-1. ), можно использовать комбинация. Если злоумышленник не знает ключ шифрования, он не сможет изменить сообщение так, чтобы значения дайджеста сообщения были действительными.
Объединение криптографических примитивов для создания протокола безопасности само по себе является целой специализацией. Большинство ошибок, которые можно использовать (т. е. небезопасность криптосистем), связаны не с ошибками проектирования примитивов (при условии, что они были тщательно выбраны), а с тем, как они используются, т. е. с плохой разработкой протокола и ошибочной или недостаточно тщательной реализацией. Математический анализ протоколов на момент написания этой статьи еще не развит. [ нужна ссылка ] Есть некоторые основные свойства, которые можно проверить с помощью автоматизированных методов, например логики БАН . Есть даже методы полной проверки (например, исчисление SPI ), но они крайне громоздки и не поддаются автоматизации. Разработка протоколов — это искусство, требующее глубоких знаний и большой практики; даже тогда ошибки случаются часто. Наглядный пример, для реальной системы, можно увидеть на OpenSSL об уязвимостях странице новостей здесь .
Часто используемые примитивы [ править ]
- Односторонняя хэш-функция , иногда также называемая функцией одностороннего сжатия — вычисляет уменьшенное хеш-значение для сообщения (например, SHA-256 ).
- Криптография с симметричным ключом — вычисление зашифрованного текста, декодируемого с помощью того же ключа, который использовался для кодирования (например, AES ).
- Криптография с открытым ключом — вычисление зашифрованного текста, декодируемого с помощью другого ключа, используемого для кодирования (например, RSA ).
- Цифровые подписи — подтверждают автора сообщения.
- Смешанная сеть — объединяйте сообщения от многих пользователей, чтобы анонимизировать то, что от кого пришло.
- Получение частной информации — получение информации из базы данных без того, чтобы сервер знал, какой элемент был запрошен.
- Схема обязательств — позволяет придерживаться выбранной ценности, сохраняя ее скрытой от других, с возможностью раскрыть ее позже.
- Криптографически безопасный генератор псевдослучайных чисел
См. также [ править ]
- Категория: Криптографические примитивы - список криптографических примитивов.
- Криптографическая гибкость
- Функция распределенной точки
Ссылки [ править ]
- ^ «Криптографический примитив — Глоссарий CSRC» . csrc.nist.gov . Проверено 19 сентября 2021 г.
- Левенте Буттян, Иштван Вайда: Криптография и ее приложения, Typotex 2004, ISBN 963-9548-13-8
- Менезес, Альфред Дж.: Справочник по прикладной криптографии, CRC Press, ISBN 0-8493-8523-7 , октябрь 1996 г., 816 страниц.
- Crypto101 — это вводный курс по криптографии, который доступен бесплатно для программистов всех возрастов и уровней квалификации.