безопасность секретного криптоалгоритма
Как известно, непреложным правилом криптографии является то, что криптоалгоритм атакующей стороне известен, неизвестен только ключ. Все существующие атаки строяться на этом предположении.
Вопрос: какими атаками может располагать злоумышленик, если криптоалгоритм ему не известен, но обладает всеми необходимыми статистическими характеристиками (тоесть проходит все известные автоматические тесты). Не стоит говорить что злоумышленик обязательно узнает алгоритм (с тем же успехом он может узнать и ключ), а примем неизвестность алгоритма за аксиому.
комментариев: 11558 документов: 1036 редакций: 4118
Не слишком обоснованное утверждение и не слишком удачное допущение, вытекающее из логики (что противник таки не получит алгоритм). Вы ведь неспроста сами вспомнили об известной криптологической максиме Киргхофа. В примере, приведённом выше, противник с бОльшей вероятностью займётся не дифференциальным криптоанализом, а попытается тем или иным образом извлечь саму программу алгоритма из объектного кода или шифровальной микросхемы, ведь преимущества от успешной атаки будут значительно выше, чем от компрометации одного ключа.
комментариев: 9796 документов: 488 редакций: 5664
Это конечно Киргхофом не доказано, но практика открытой криптографии убеждает, что это так.
В большинстве случаев проектирование собственного алгоритма без серьёзной инфраструктуры кадровых и исследовательских ресурсов – это путь к фатальной ошибке. Например, некоторые крупные телекоммуникационные компании использовали такие алгоритмы. Какие-то были рассекречены официально, для участия в конкурсах, какие-то неофициально. Взлом последовал практически мгновенно.
Тем не менее, закрытые алгоритмы применяются в военной сфере, для защиты критически важных государственных каналов связи. Маловероятно, что гражданских криптографов заинтересует задача проектирования протокола связи с подводными лодками, поэтому их и не стремятся особо привлекать. Но процент использования таких алгоритмов невелик и постоянно снижается, а стоимость их поддержки высока.
Fact Sheet NSA Suite B Cryptography:
Другая причина создания закрытых алгоритмов "под заказ" – отсутствие жёстких требований оптимизации или работа на ограниченном числе реализаций: например системы связи SecNet 11. Или когда можно достичь высокой безопасности, пожертвовав например быстродействием.
Ну и по конкретике вопроса: поскольку гражданскую криптографию взлом закрытых алгоритмов мало интересует, то и открытых работ по этой неблагодарной теме практически нет.
Суть моей идеи в том, что алгоритм будет являться секретной частью, как и ключ, и злоумышленику не будет доступен.
Идея состоит в создании простоо языка, на котором комбинируя различные преобразования по определенным правилам можно будет описать алгоритм проходящий все существующие автоматические тесты. Более того, автоматизировать генерацию и проверку таких алгоритмов, после чего сгенерированое описание преобразований и будет являться ключем. Поэтому в моей схеме алгоритм эквивалентен ключу.
Стойкость алгоритма при ручном анализе его кода не требуется. Главное условие – невозможность криптоанализа при полном отсутствии и невозможности получить исходники. Если алгоритм проходит все статистические тесты, то я думаю без знания кода о нем мало что можно сказать.
P. S. подобная схема мне кажется перспективной в плане защиты от алгебраических атак. Ну а для гарантированой стойкости, подобный алгоритм целесообразно применять в цепочке, после октрытого и изученого шифра (вроде AES).
комментариев: 11558 документов: 1036 редакций: 4118
По-моему, это просто смещения понятий. В таком случае Ваш описательный язык (мета-алгоритм) сам станет криптоалгоритмом, а шифровальные алгоритмы — своего рода ключами. Сути дела это не изменит. И я даже не говорю о сложности такой задачи. Прохождение шифртекстом некоторого набора статистических тестов — это одно, а действительная его устойчивость к криптоанализу — совсем другое.
В моем подходе предполагается автоматическая генерация самого алгоритма (описания всех преобразований, циклов, количества, размерности, содержимого и порядка использования s боксов). Ну а сам описательный язык криптоалгоритмом от этого не станет (не называют же криптоалгоритмом visual basic p-code), так как он содержит только набор простых команд, на которых алгоритм и описывается. Кстати, без пикода можно обойтись, если сразу генерировать машинный код x86.
В результате криптоаналитик будет знать только набор операций которые могли быть использованы, но не будет знать ни их порядка ни примененных констант.
Ну так криптоаланиз требует знания алгоритма, а при отсутствии алгоритма единственное что может сделать криптоаналитик – это искать статистические зависимости теми самыми тестами.
комментариев: 9796 документов: 488 редакций: 5664
Для обычных шифров они были малоперспективны, но для неизвестных, у которых как раз негарантированная стойкость, вполне могут существовать такие разработки. И это ещё более туманная область, чем алгебраический криптоанализ.
С алгебраическим анализом пока ясно, что он изначально был нацелен на шифры с алгебраической структурой, но ещё лучше работает против шифров с малыми S-блоками, так как для них легко вывести систему уравнений. Т.е. достаточно увеличить размер S-блоков, использовать их по несколько штук в одном раунде и сделать случайными и зависяшими от ключа, не экономя на вычислениях в алгоритме их заполнения.