Модель безопасности, лежащая в основе современной криптографии, основана на нескольких устоявшихся принципах, главным из которых является принцип Керкхоффса. Этот принцип утверждает, что безопасность криптографического протокола должна полагаться исключительно на секретность ключа, а не на секретность алгоритмов, используемых для шифрования или дешифрования.
Таким образом, чтобы ответить на вопрос: Нет, сами функции шифрования и дешифрования не обязательно должны храниться в секрете, чтобы криптографический протокол оставался безопасным.
Теоретическая основа
Принцип Керкхоффса, сформулированный в 19 веке, гласит: «Криптосистема должна быть безопасной, даже если все о системе, за исключением ключа, является общедоступным знанием». Эта концепция обеспечивает основополагающее руководство для современной криптографической практики. Обоснование заключается в том, что если безопасность протокола зависит от неясности алгоритмов, то система становится уязвимой, как только эти алгоритмы будут обнаружены, проанализированы или подвергнуты обратному проектированию. Напротив, если только ключ должен храниться в секрете, то система остается безопасной, даже если противник знает каждую деталь алгоритма.
Практические последствия
Современные криптографические протоколы, такие как используемые в Advanced Encryption Standard (AES), Rivest–Shamir–Adleman (RSA) и Elliptic Curve Cryptography (ECC), все разработаны с использованием общедоступных алгоритмов. Эти алгоритмы широко публикуются, тщательно изучаются академическим и профессиональным сообществом и подвергаются строгому анализу, чтобы гарантировать отсутствие возможных атак, при условии, что ключ остается секретным и достаточно сильным.
Открытая публикация криптографических алгоритмов преследует несколько целей:
1. Экспертная оценка и валидация: Открытые алгоритмы получают выгоду от обширной коллегиальной оценки, которая помогает выявлять и устранять потенциальные уязвимости до их широкого внедрения.
2. совместимость: Когда алгоритмы общедоступны, разные поставщики могут внедрять совместимые системы, обеспечивая широкомасштабную и безопасную связь.
3. Надежность: Открытые алгоритмы позволяют пользователям самостоятельно оценивать свойства безопасности, снижая риск скрытых уязвимостей или преднамеренных бэкдоров.
Исторический контекст
Исторически некоторые криптографические системы полагались на секретность алгоритма для обеспечения безопасности (так называемая «безопасность через неизвестность»). Известным примером является машина Enigma, использовавшаяся Германией во время Второй мировой войны. Ее безопасность зависела не только от ключа (ежедневных настроек ротора), но и от секретности внутренних механизмов машины. После того, как криптоаналитики союзников реконструировали механизм Enigma, безопасность системы резко ослабла.
В наше время полагаться на секретные алгоритмы настоятельно не рекомендуется. Проприетарные или недокументированные алгоритмы с большей вероятностью содержат необнаруженные уязвимости и не могут извлечь выгоду из коллективного опыта криптографического сообщества.
Симметричная и асимметричная криптография
Как симметричные (например, AES, DES), так и асимметричные (например, RSA, ECC) криптографические системы придерживаются принципа, что алгоритм может быть известен публично без ущерба для безопасности. В симметричной криптографии один и тот же ключ используется как для шифрования, так и для дешифрования. В асимметричной криптографии открытый ключ шифрует данные, а закрытый ключ их расшифровывает. Безопасность в обоих случаях основана на невозможности получения ключа (или закрытого ключа в асимметричном случае) с учетом алгоритма и шифротекста.
Например, спецификация AES опубликована как FIPS 197 NIST. Любой желающий может загрузить стандарт и реализовать алгоритм. Безопасность сообщения, зашифрованного с помощью AES, полностью зависит от секретности и непредсказуемости ключа, а не от секретности алгоритма.
Конфиденциальность алгоритма: риски и ограничения
Сохранение функций шифрования или дешифрования в секрете влечет за собой ряд рисков:
– Отсутствие прозрачности: Закрытые алгоритмы не могут быть независимо оценены с точки зрения безопасности, что увеличивает риск необнаруженных уязвимостей или преднамеренных слабостей.
– Обратный инжиниринг: Имея достаточный доступ к зашифрованным и расшифрованным данным, злоумышленник зачастую может восстановить алгоритм, лишив его любого преимущества, полученного за счет секретности.
– Сложность управления ключами: Если и алгоритм, и ключ необходимо хранить в секрете, логистика безопасного распространения и хранения становится значительно более сложной.
– Устаревание и негибкость: Если секретный алгоритм скомпрометирован, может потребоваться замена всей системы, тогда как компрометацию ключа в системе открытого алгоритма можно устранить путем выпуска новых ключей.
Примеры
1. AES (расширенный стандарт шифрования): Алгоритм является публичным, проверенным и широко применяемым. Безопасность полностью заключается в секретности ключа.
2. ЮАР (Ривест – Шамир – Адлеман): Алгоритм шифрования и дешифрования является публичным. Закрытый ключ должен оставаться в тайне; публичный ключ и алгоритм являются открытыми.
3. Шифр Цезаря: Один из самых простых классических шифров, где функция (сдвиг букв) легко обнаруживается. Безопасность основывалась на величине сдвига, но на практике такие шифры легко взламываются, как только функция становится известна из-за их слабой конструкции.
4. Запатентованные алгоритмы (например, система шифрования содержимого DVD – CSS): CSS попытались сохранить алгоритм в тайне, но он был подвергнут обратному проектированию. Как только алгоритм стал известен, его уязвимости безопасности были быстро использованы.
Дидактическая ценность
Обучение принципу, согласно которому криптографическая безопасность должна зависеть исключительно от ключа, а не от секретности алгоритма, дает несколько образовательных преимуществ:
– Способствует надежной конструкции: Студенты и специалисты-практики разрабатывают системы, устойчивые к внешним воздействиям, снижая зависимость от неизвестности.
– Поощряет открытость: Он поддерживает научный процесс, в котором открытое обсуждение и анализ подкрепляют утверждения о безопасности.
– Развивает состязательное мышление: Учащиеся понимают, что злоумышленники часто обладают значительными ресурсами и могут получить доступ к деталям алгоритма, поэтому системы должны быть построены соответствующим образом.
– Подчеркивает важность управления ключами: Эффективное обучение безопасности фокусирует внимание на правильной генерации, распространении и хранении ключей, которые на самом деле являются слабыми местами во многих реальных системах.
Контрпримеры и пояснения
Существуют ситуации, когда используются фирменные или секретные алгоритмы, часто в приложениях, где криптография встроена в оборудование, или в ограниченных средах, где применяются лицензионные или нормативные требования. Однако такие системы, как правило, считаются менее безопасными, чем те, которые используют хорошо проверенные публичные алгоритмы. Безопасность через неизвестность может обеспечить временное преимущество, но она не может заменить надежный криптографический дизайн.
В некоторых военных или разведывательных ситуациях для задержки противников могут использоваться фирменные алгоритмы, но, как правило, это дополнительный уровень, а не основа безопасности.
Роль секретности алгоритма в безопасности
Хотя стандартная и рекомендуемая практика предполагает, что алгоритмы станут известны, могут быть эксплуатационные причины сохранять некоторые детали конфиденциальными в течение ограниченного времени (например, новые криптографические конструкции, которые еще не стандартизированы). Однако опора на долгосрочную секретность алгоритмов противоречит лучшим практикам в криптографии.
При обучении или проектировании криптографических систем лучше всего предполагать, что злоумышленники обладают полными знаниями о процессах шифрования и дешифрования. Такой подход гарантирует, что только секретность ключа стоит между безопасной системой и компрометацией, что соответствует принципу Керкхоффса и современным представлениям о безопасности.
Криптографическая безопасность не должна и на практике не зависит от секретности функций шифрования и дешифрования. Надежность криптографического протокола измеряется его способностью противостоять атакам, даже если алгоритмы полностью раскрыты и доступны для анализа любым лицом. Придерживаясь этого принципа, криптографические системы достигают более высоких уровней безопасности, доверия и надежности.
Другие недавние вопросы и ответы, касающиеся Основы классической криптографии EITC/IS/CCF:
- Была ли введена криптография с открытым ключом для использования в шифровании?
- Называется ли набор всех возможных ключей конкретного криптографического протокола пространством ключей в криптографии?
- Заменяются ли в шифре сдвига буквы в конце алфавита буквами из начала алфавита в соответствии с модульной арифметикой?
- Что, по мнению Шеннона, должен включать в себя блочный шифр?
- Был ли протокол DES введен для повышения безопасности криптосистем AES?
- Зависит ли безопасность блочных шифров от многократного объединения операций смешения и диффузии?
- Можно ли использовать криптоанализ для безопасной связи по незащищенному каналу связи?
- Относятся ли Интернет, GSM и беспроводные сети к незащищенным каналам связи?
- Эффективен ли исчерпывающий поиск ключа против шифров подстановки?
- Включает ли подслой AES MixColumn нелинейное преобразование, которое может быть представлено умножением матриц 4×4?
Дополнительные вопросы и ответы см. в разделе Основы классической криптографии EITC/IS/CCF.

