Обеспечение безопасности в криптографических ключах от идеального к реальному (часть 1)

Опубликовано: 12 Апреля, 2023

коллизионные атаки

Часть 1. Почему «длина ключа 128 бит» не обязательно означает «128 бит безопасности»

Как признают большинство пользователей, они все еще рисуют пальцами, когда дело доходит до тщательно замысловатого искусства криптографии. Из-за этого длина ключа является криптографическим аспектом, который берет на себя уровень безопасности типа «это то, что используют все остальные». Что ж, пора вычищать краску из-под ногтей и готовиться окунуть кисть в ведро с ноу-хау. Прочитав это, вы сможете понять идеалистическую теорию «получения ценности вашего криптографического ключа» и достижения желаемого уровня безопасности. В этом обсуждении мы будем ссылаться на 128-битные ключи, 256-битные ключи и разумную философию рендеринга 128-битных уровней безопасности с последними.

Но пока вы читаете, пожалуйста, помните, что здесь мы говорим исключительно о ключах. Важность этого напоминания, без дальнейших церемоний, связана с тем фактом, что другие ценности и аспекты, такие как длина блока, режимы работы с конфиденциальностью и снижение утечки информации, также должны соответствовать этой философии, чтобы мы могли достичь наш предполагаемый успех. Но на самом деле, как показывает почти любой блочный шифр, 256-битные блоки не являются обычным явлением; поэтому 128-битные уровни безопасности очень редко достигаются полностью. Однако мы оставим это обсуждение на другой черный день. Итак, для ясности, расценивайте это как идеалистическое, неформальное и предполагающее интегральную конструкцию других факторов, которые совпадают с криптографическими ключами, чтобы составить определение уровня безопасности.

Итак, перейдем к основной теме этой статьи, не так ли?

Насколько безопасны 128-битные?

Чтобы просто ответить на это, я скажу – достаточно безопасно. Почти для всех применимых сценариев достаточно 128-битной защиты. Обратите внимание на мой акцент на слове «безопасность». Здесь мы пробиваем эпидермальный слой криптографии. Для этого мы должны установить важное эмпирическое правило, показав, что увеличение длины не обязательно означает повышение безопасности.

Практическое правило

: Чем меньше ключ, тем меньше запас прочности. В некоторых случаях достаточно маленький ключ не сможет обеспечить какую-либо безопасность, независимо от каких-либо криптографических факторов. Чем длиннее ключ, тем более изменчива маржа безопасности, где «переменная» зависит от количества энтропии в ключе. Следовательно, в то время как безопасность или ее отсутствие зависит от длины небольших ключей, безопасность с точки зрения более длинных ключей зависит от энтропии, источника ключа и множества других криптографических факторов.

56-битные ключи, например, не будут составлять гору криптографических бобов, независимо от количества энтропии. Однако 128-битные при правильном использовании окажутся достаточным запасом битов для обеспечения безопасности. В этой статье будет объяснено значение « при правильном использовании » и то, как мы стремимся к 128-битной безопасности, не обязательно используя 128-битные ключи для простоты.

Слишком маленький – вам не повезло. Достаточно большой — у вас есть передышка для работы. При мизерной стоимости битов это выгодная инвестиция для одного, чтобы установить ключи большей длины для своей системы. Если мы определим «слишком маленький» как криптографически недостаточный, а «достаточно большой» как криптографически достаточный, мы можем сказать: «Если наш криптографический ключ слишком мал, то он определенно ненадежен, а если наш криптографический ключ достаточно велик, то он безопасен на неопределенный срок». Первое представляет собой постоянное состояние восприимчивости к компромиссу, а второе — переменное состояние потенциальной устойчивости к компромиссу. Если ваша рука приличная и вы правильно разыгрываете карты, вероятность получения комфортного запаса прочности благоприятна.

Энтропия и ее беды

Энтро-что?

О, отлично, что теперь? Как раз в тот момент, когда мы подумали, что что-то добились, всплывает новый термин — энтропия. Без проблем. Энтропия — это просто шикарный синоним измерения «случайных» вещей. Он просто обозначает количество присутствующего хаотического материала ключа или неопределенность, которая в конечном итоге дает нам желаемую вероятность, необходимую для достижения n битов безопасности с n -битным ключом. Тем не менее, это трудная задача, которая упивается тем фактом, что попытка подавляющего большинства использовать этот подход заканчивается фиаско, вызванным отсутствием безопасности.

Парольный этикет и сложность ключевого пространства

Это верно во многих случаях, поскольку большая часть ключей является производными от плохо выбранных паролей или кодовых фраз из-за отсутствия надлежащего этикета. Вы можете спросить: «Какое, черт возьми, это имеет отношение к энтропии?» Все дело в повышенной предсказуемости, а именно этого нам следует опасаться. Чем чаще встречается пароль или парольная фраза, тем более предсказуем; чем предсказуемее, тем выше вероятность; чем более вероятен элемент, тем, соответственно, предсказуемее. Уровень дисбаланса, как в предсказуемости, так и в вероятности, приводит к тому, что система подвержена атакам по словарю, которые значительно сокращают рабочие усилия традиционного исчерпания ключей за счет произвольной фиксации исчерпания для работы с выборочным пулом обычно выбираемых значений. Это косвенно влияет на количество энтропии; так что, черт возьми, это имеет к этому отношение. Ключевой источник играет чрезвычайно важную роль в присутствии энтропии. Такая плохая практика часто сводит на нет эффективную цель сильного алгоритма или большой длины ключа.

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

Время от времени вы будете видеть правильное воплощение сложности пространства ключей, но часто уменьшение сложности разрушает любые шансы на удовлетворительную энтропийную длину ключа, которая в противном случае обеспечила бы предполагаемую n -битную безопасность. Это критическая проблема, поскольку мы должны иметь эту неопределенность, чтобы получить n бит безопасности для ключа длиной n бит. Чем он менее известен – тем лучше.

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

Достаточно легко, верно?

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

Давайте просто предположим на мгновение, что мы можем этого добиться. Мы все еще не вышли из леса, просто пока. Теперь мы столкнулись с другой серьезной проблемой — методологией атаки столкновений.

В этом первом сегменте мы познакомились со «128-битным» и с тем, как это соответствует криптографическим значениям в целом, таким как ключи, и как это существует как цель дизайна с точки зрения безопасности. Мы также кратко изучили энтропию и сложность пространства ключей, а также то, как это часто обрабатывается более правильно с помощью криптографически безопасного генератора псевдослучайных чисел, в отличие от обычно избыточных паролей и кодовых фраз.

Во втором, заключительном сегменте мы кратко рассмотрим две атаки, составляющие методологию атаки столкновением; эти две атаки ласково известны как атака дня рождения и атака «встреча посередине». Кроме того, мы обосновываем аргумент в пользу использования 256-битных ключей при заявлении цели разработки 128-битной безопасности, определяя консервативное золотое правило для упрощения процесса. Мы расширим этот аргумент, чтобы противостоять сложностям, связанным с попыткой использовать 128-битные криптографические значения для получения 128-битных уровней безопасности. В заключение мы сведем суть этой статьи в одну тактичную стратегию, которая является краеугольным камнем разумной криптографии; то есть быть консервативным.

гарантией безопасности от идеального к реализованному в криптографических ключах (часть 2) — атаки столкновений