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

редактировать

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

Содержание

  • 1 Обоснование
  • 2 Обычно используемые примитивы
  • 3 Комбинирование криптографических примитивов
  • 4 См. Также
  • 5 Ссылки

Обоснование

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

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

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

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

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

Обычно используемые примитивы

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

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

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

См. Также

  • Категория: Криптографические примитивы - список криптографических примитивов
  • Cryptft_tableility

Ссылки

  • Левенте Буттян, Иштван Вайда: Kriptográfia és alkalmazásai (Криптография и ее приложения), Typotex 2004, ISBN 963-9548 -13-8
  • Менезес, Альфред Дж.: Справочник по прикладной криптографии, CRC Press, ISBN 0-8493-8523-7, октябрь 1996 г., 816 страниц.
  • Crypto101 - вводный курс по криптографии, свободно доступный для программистов любого возраста и уровня подготовки.
Последняя правка сделана 2021-05-16 10:21:08
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте