Может ли человеческий мозг генерировать криптографически безопасные случайные числа?

Вопрос или проблема

Мой друг, который заботится о безопасности, пытался сгенерировать энтропию, используя случайные броски кубиков для создания случайного пароля, и мне стало интересно, насколько безопасны генераторы случайных чисел и может ли она сделать то же самое, просто подумав о случайных бросках кубиков. Угрожает ли безопасности генерации паролей/ключей использование случайных чисел, созданных человеком, вместо случайных чисел от кубиков или надежного генератора случайных чисел?

Я понимаю, что стандартные генераторы случайных чисел, включенные во многие языки программирования, могут быть криптографически небезопасными известными и эксплуатируемыми способами, но как насчет случайных чисел, генерируемых мозгом? Когда я спросил её, она сказала, что люди ужасно создают энтропию, но я не уверен, что это так. Как люди ранжируются в создании ключевой энтропии, и возможно ли, чтобы человеческий разум занял место генератора случайных чисел для генерации ключей/паролей без возможности эксплуатации?

Вероятно, что энтропия может как-то генерироваться из процессов мозга, но делать это напрямую (например, “подумайте об случайном числе”) — на мой взгляд, довольно легко опровергнуть.

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

Давайте рассмотрим некоторые возможности:

Формы когнитивного вывода

1. Числа

Люди плохо выбирают числа. Существует очевидный уклон в сторону нечетных чисел, поскольку они более экзотичны. Есть опросы, такие как этот: Является ли 17 “самым случайным” числом?

Чтобы как-то смягчить уклон, вы можете позволить человеку сказать длинную последовательность цифр (0-9), но уклон все равно останется.

2. Буквы

Люди обладают выдающимися языковыми навыками [Необходима ссылка]. Это означает, что нет возможности, чтобы мы их не использовали даже случайно. Очень вероятно, что после произнесения T последует H для человека с английским как основным языком. Не заставляйте меня говорить о сильно предвзятой частоте букв.

3. Булевы значения

Я не нашел ничего, что поддерживало бы или опровергало бы мою подозрительность, но я думаю, что последовательность 0 и 1 также будет предвзятой. Поскольку распознавание шаблонов позволило нам выжить, мы ищем порядок в хаосе. Это означает, что человек, вероятно, будет многократно повторять 0101, но должны присутствовать все виды шаблонов, а не только один или два.

Методы смягчения

1. Активно старайтесь избегать шаблонов

Это действительно сложно, так как люди плохо разбираются в вероятностях. Показателем этого является Проблема дня рождения, хотя это не совсем применимо к данному вопросу.

2. Хешируйте это

Лучший способ — хешировать вывод, полученный выше, с помощью криптографически безопасной хеш-функции, такой как SHA-512. Википедия говорит, что английский текст имеет между 0.6 и 1.3 битов энтропии для каждого символа сообщения. Поскольку человек пытается сказать случайные вещи, но на самом деле не преуспевает, давайте предположим, что 2 бита на букву подходят. Это означает, что человек должен сказать как минимум 256 букв, чтобы иметь достаточную энтропию для 512-битного ключа.

Другие методы

Позвольте случайности происходить из движений мышц. Это уже реализовано в некоторых программных решениях для генерации качественной случайности, если системный RNG не может быть доверен. На ум приходит поздний Truecrypt.

Ответ или решение

Может ли человеческий мозг генерировать криптографически безопасные случайные числа?

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

Эмпирическая природа человеческой генерации случайных чисел

  1. Человеческие предвзятости

    • Исследования показывают, что люди не умеют генерировать случайные числа в строгом понимании этого термина. Например, в выборке случайных чисел часто наблюдается предвзятость к нечетным числам, или к определенным числовым шаблонам (например, число 17, которое многие считают «случайным»). Это приводит к тому, что сгенерированные числа недостаточно разнообразны и не равномерно распределены.
  2. Языковые предвзятости

    • При генерации случайных символов, таких как буквы, человеческий мозг склонен к использованию частотных закономерностей языка. Например, в английском языке буквы, такие как «E» и «T», встречаются чаще других. Поэтому вероятность последующей буквы может быть связана с предыдущими, что делает последовательности предсказуемыми.
  3. Последовательности битов

    • Когда дело касается генерации бинарных последовательностей (0 и 1), человек, как правило, не может избежать шаблонов. Наше восприятие стремится находить порядок в хаосе, что еще больше снижает случайность созданного потока данных. Человек может легко начать генерировать одинаковые шаблоны, например, «0101», что не соответствует требованиям криптографической безопасности.

Возможные методы повышения случайности

Для улучшения качества случайных чисел, сгенерированных человеком, можно рассмотреть следующие подходы:

  1. Отказ от образцов и шаблонов

    • Одна из рекомендаций — сознательно избегать предвзятостей и шаблонов во время генерации. Однако, как показано выше, это сложная задача, требующая высокой осознанности.
  2. Хеширование

    • Применение криптографических хеш-функций (например, SHA-512) к сгенерированным данным может улучшить степень случайности получаемого результата. Этот метод требуется, учитывая, что каждый отдельный символ несет всего 0.6-1.3 бита энтропии.
  3. Использование физического поведения

    • Один из альтернативных подходов — использование случайности, полученной из физических процессов (например, движения мышц). Некоторые программные решения, такие как TrueCrypt, уже применяли этот подход для получения высококачественной случайности.

Заключение

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

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

Оцените материал
Добавить комментарий

Капча загружается...