Является ли стандартная энтропия модуля секретов все еще достаточно хорошей в 2018 году? - PullRequest
0 голосов
/ 30 ноября 2018

В документации говорится:

С 2015 года считается, что 32 байта (256 бит) случайности достаточно для типичного варианта использования, ожидаемого длямодуль секретов.

и ниже имеется примечание:

Примечание. Это значение по умолчанию может быть изменено в любое время, в том числе во время выпусков обслуживания.

И в источнике Python 3.7 вы можете видеть, что 32 байта по-прежнему являются значением по умолчанию.

DEFAULT_ENTROPY = 32 # number of bytes to return by default

Это безопасно?Есть ли расписание для изменения или переоценки этого параметра?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Ответ на вопрос об энтропии: да, 256-битные секреты не могут быть применены грубо, и в ближайшее время они не станут практичными.

Однако вам нужно будет использовать ключи большего размера с асимметричными криптографическими алгоритмами.Также сложнее предсказать, насколько сильны эти типы ключей.Сила ключа и длина ключа не всегда одинаковы.(256-битный RSA не имеет 256-битной силы.) Мир асимметричных алгоритмов имеет больше качества гонок вооружений, чем симметричные алгоритмы.

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

Похоже, что максимальная оценочная скорость хэширования для Биткойн 2018около 60 миллионов террашиш в секунду .Давайте округим 60 * 10 6 + 12 хэшей в секунду до следующей степени двух, 2 66 , для простоты вычисления.

Давайте теперь предположим

  • Мы повышаем эффективность нашего оборудования.Скажем, какая-то новая технология выполняет в миллион раз больше работы, чем современное оборудование, используя то же количество энергии.
  • Человечеству удается как-то выработать в миллион раз больше электроэнергии.(Возможно, используя сплав или магию.)
  • Допустим, мы получаем новую технологию, и тактовая частота нашего компьютера увеличивается в миллион раз.
  • У наших графических процессоров в миллион раз больше ядер, или мы можемуменьшите размеры компьютеров на тот же коэффициент.
  • Человечество населяет другие звездные системы, и мы увеличиваем нашу популяцию в миллион раз.
  • Каждый человек может позволить себе в миллион раз больше компьютеров, чем может.теперь они все хотят угадать ваш 256-битный секрет.

Давайте представим, что каждое улучшение является ортогональным и что наша грубая сила линейно масштабируется со всеми этими улучшениями.Позволяет округлить каждый миллион до 2 20 .Наш новый показатель производительности составляет 2 66 + 6 (20) = 2 186 догадок в секунду.Сколько времени потребуется для проверки каждого возможного 256-битного значения?

Требуется 2 256 / 2 186 = 2 256-186 = 2 70 секунд.Это более 37 триллионов лет .Тысячи раз дольше, чем время, прошедшее с момента Большого взрыва.Поэтому использование 256-битной энтропии довольно консервативно.

(И с теми технологиями и ресурсами, которые у нас есть в настоящее время в реальном мире, мы не можем даже взломать 128-битные секреты.)

Квантовые компьютеры не представляют большой проблемы в отношении симметричных алгоритмов.,Если мы используем 256-битные симметричные ключи, тогда все равно потребуется 2 128 оценок функций с использованием алгоритма Гровера .Однако было бы разумно предположить, что стоимость n оценок на квантовом компьютере - это, по крайней мере, стоимость n оценок на классическом компьютере.

Если выгенерировать много случайных значений и ожидать, что каждое из них будет уникальным, вам нужно использовать вдвое больше битов, чем вы могли бы подумать из-за проблемы с днем ​​рождения .Общие атаки на столкновения с использованием k-битной хеш-функции примерно эквивалентны 2 k / 2 оценкам хеш-функции.Для квантовых компьютеров это может быть 2 k / 3 .(Так что не путайте длину ключа и длину вывода хеш-функции.)

Эти общие атаки предполагают идеальную функцию.Определенные алгоритмы могут быть «взломаны», что означает, что атака лучше, чем грубая сила.

Важно, чтобы все секреты, которые вы генерируете, были получены с использованием непредсказуемых входных данных.Если вам нужен уровень безопасности n -бит, вам нужно иметь n -бит энтропии.(Таким образом, вы не можете использовать Mersenne Twister или PCG и не можете инициализировать свой RNG, используя системное время или пароль.)

256 бит энтропии хороши в 2018 году, и, за исключением невероятных научно-фантастических технологических достижений или магии, все еще будут в безопасности в 3018.

Также см. Landauer'sпринцип , который ограничивает эффективность наших расчетов.Я даже не собираюсь пытаться перевести этот основанный на времени аргумент в долларовую сумму по понятным причинам.

0 голосов
/ 01 декабря 2018

Да, 256 битов все еще считается достаточным.

См. Раздел статьи Брюса Шнайера - " Предупреждающий знак № 5: нелепые длины ключей ":

Чем длиннее клавиши, тем лучше, но только до определенной точки.AES будет иметь 128-битную, 192-битную и 256-битную длину ключа.Это намного дольше, чем необходимо в обозримом будущем. На самом деле, мы даже не можем представить себе мир, в котором возможен поиск с использованием 256-битного перебораЭто требует некоторых фундаментальных прорывов в физике и в нашем понимании вселенной. Для криптографии с открытым ключом 2048-битные ключи обладают таким же свойством;больше не имеет смысла.

Для получения более подробной информации читайте RFC 4086 - Требования случайности для безопасности :

3.1.Требуемый объем

Для AES ключ может быть 128 бит, и, как мы покажем в примере в разделе 8, даже для системы с наивысшей степенью защиты вряд ли потребуется материал с сильным ключом, превышающий 200 бит.

Также, энтропия - вам все еще нужен хороший источник случайности .Это другой фактор, чем длина ключа.

...