Использование алгоритмов
Подумайте о безопасности - безопасности данных, безопасности коммуникаций, безопасности информации, безопасности чего угодно - как о цепочке. Система безопасна настолько, насколько безопасно ее слабейшее звено. Все должно быть безопасным: криптографические алгоритмы, протоколы, управление ключами, и так далее. Если у вас великолепные алгоритмы, но паршивый генератор случайных чисел, любой толковый криптоаналитик вскроет вашу систему именно из-за криптографически слабой генерации случайных чисел. Если вы заткнете эту дыру, но забудете надежно стереть область памяти, в которой находился ключ, криптоаналитик влезет в вашу систему через эту лазейку. Если вы все сделали правильно, но случайно послали по электронной почте копию своих файлов в The Wall Street Journal, то вы могли и вообще не утруждать себя.
Это нечестно. Как проектировщик безопасной системы вы должны подумать обо всех возможных способах вскрытия и защитить систему от всех них, а криптоаналитику нужно найти только одну дырочку в вашей безопасности и воспользоваться ей.
Криптография - это только часть безопасности, и часто очень маленькая часть. Это только математическая абстракция безопасности системы, что отличается от реальной безопасности. У криптографии есть свои "пикейные жилеты": люди, которые проводят так много времени в спорах о том, какова должна быть длина ключа, что они забывают обо всем остальном. Если спецслужбы захотят узнать, что находится на вашем компьютере, для них гораздо проще вломиться в ваш дом и установить видеокамеру, которая запишет все, что было на экране вашего компьютера, чем криптоанализировать ваш жесткий диск
Кроме того, традиционный взгляд на компьютерную криптографию как на технологию для шпионов и против шпионов все больше не соответствует действительности. Свыше 99 процентов криптографии в мире используется не для защиты военных секретов, а в банковских карточках, в платном телевидении, при оплате автодорог, для офисных жетонов и и жетонов доступа к компьютерам, в лотерейных терминалах и электросчетчиках [43, 44]. В этих приложениях роль криптографии состоит в том, чтобы помешать мелким преступлениям, привычное представление о хорошо финансируемом враге, толпах криптоаналитиков и комнатах, набитых компьютерами больше не применимо.
Криптография в большинстве приложений использовалась вшивая, но успешные вскрытия не имели ничего общего с криптоанализом. Они были вызваны нечестными служащими, умными обманными действиями, тупыми реализациями, грубыми ошибками интеграции и случайными глупостями. (Я настоятельно рекомендую работу Росса Андерсона "Почему отказывают криптосистемы" (Ross Anderson, "Why Cryptosytems Fail") [44], ее должен прочитать каждый, работающий в этой области.) Даже NSA признало, что большинство сбоев систем безопасности в соответствующей области интересов обусловлены недостатками реализации, а не недостатками алгоритмов или протоколов [1119]. В таких случаях неважно, насколько хороша используемая криптография, успешные вскрытия полностью ее обходят.