Рейтинг:1

Истинно случайные числа в масштабе — перегруженные микросхемы памяти генерируют действительно случайные числа для шифрования

флаг eg

В течение многих лет действительно случайные числа в масштабе были неуловимы. Таким образом, я прочитал это недавнее исследование https://www.newscientist.com/article/2303984-overloaded-memory-chips-generate-truly-random-numbers-for-encryption/ и https://cacm.acm.org/news/257835-overloaded-memory-chips-generate-truly-random-numbers-for-encryption с большой интригой, ожиданием и волнением.

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

Второй вопрос: Что и кто может быть арбитром истинной случайности? т. е. кто решает, что это конкретное число действительно случайно сгенерировано?

A. Hersean avatar
флаг cr
Инструкцию `RDSEED` можно найти в любом новейшем микропроцессоре x64.См. https://en.wikipedia.org/wiki/RDRAND. Кроме того, чипы ARM обычно имеют [аналогичные] (https://stackoverflow.com/a/39390306/7035309) возможности, но они не стандартизированы.
Nathan Aw avatar
флаг eg
хорошо, это круто знать! почему люди не используют это, если оно широко доступно?
A. Hersean avatar
флаг cr
Они делают. Linux CSPRNG (/dev/urandom и /dev/random) использует его (среди других источников), когда он доступен. Предполагается, что Windows делает то же самое, но, поскольку это закрытый исходный код, эта информация не является общедоступной.
Рейтинг:2
флаг cn

В течение многих лет действительно случайные числа в масштабе были неуловимы.

Нет, это 100% реклама. Генерация случайных чисел проста. Для этого существует множество известных техник. «Масштаб» не является проблемой в отношении количества случайных чисел, потому что «настоящая» случайность нужна только для того, чтобы запустить криптографически безопасный генератор псевдослучайных чисел (CSPRNG). Вывод CSPRNG неотличим от истинно случайного.

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

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

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

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

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

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

Второй вопрос: Что и кто может быть арбитром истинной случайности? т. е. кто решает, что это конкретное число действительно случайно сгенерировано?

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

флаг us
«случайность нужна только для заполнения ... (CSPRNG) ... CSPRNG неотличим от **настоящего случайного**» Не согласен с этим. Последовательность независимых случайных величин по математическому определению отвечает поточному шифру, сохраняющему входную информацию; этого нельзя достичь с помощью начального числа короче выходного вектора.
Gilles 'SO- stop being evil' avatar
флаг cn
@SamGinrich Этот сайт посвящен криптографии. Я имел в виду неотличимый от противника с реалистичной вычислительной мощностью, а не математически неотличимый.
флаг us
Конечно, я понимаю "неотличимы". Подумайте, что нет необходимости выделять «настоящий случайный выбор», которым на самом деле является потоковый шифр, в отличие от конечного автомата, реализующего засеянный случайный алгоритм.
Рейтинг:1
флаг cn
  1. Основная трудность заключается в том, чтобы найти хороший источник энтропии. Это мера «случайности». Хорошо, если у нас есть значение $сид$ такой, что $H(начальное число)=n$, мы не можем составить последовательность $x, |x|\geq|seed|$ с большей энтропией, т.е. $\forall x : x=f(seed)\land|x|\geq|seed|\ подразумевает H(x)\leq H(seed)$, куда $f$ — некоторый детерминированный алгоритм (PRNG). Энтропия определяется следующим образом: $$ H(X)=-\sum_{x\ \in\ \text{Dom}(X)}\text{Pr}(x)\cdot\text{log}_2\text{Pr}(x) $$ куда $Х$ является случайной величиной. <removed>
    Другими словами, в лучшем случае мы получаем более длинную последовательность с такой же долей «случайности» в ней, как и в самой короткой. Нет способа сгенерировать потенциально неограниченный истинно случайная последовательность с использованием некоторого алгоритма из конечной последовательности без какого-либо дополнительного источника энтропии.
    УПД: не совсем правильно использовать формулу для последовательностей. Но смысл этого абзаца остается в силе: нельзя создать «случайность» из ничего.

  2. Ну, это хороший вопрос, потому что мы можем сказать, является ли некоторая последовательность случайной или нет с определенной вероятностью. Единственный способ — использовать статистические тесты. Идеальная (или истинно) случайная последовательность определяется следующим образом: $$ X_\to=\{\zeta_1, \zeta_2, ..., \zeta_n,...\} $$ куда $\zeta_i, i\in\{1,2,...\}$ равномерно распределены на некотором множестве $Х$ случайные величины и в каждом подмножестве $\{\zeta_{i_1},...,\zeta_{i_k}\}$ все переменные независимы. Имея произвольную последовательность, мы можем только проверить ее статистические свойства и сказать, что с высокой (или низкой) вероятностью эти требования выполняются для этих переменных. <redacted to make it more clear>.
    <removed>
    Во всех статьях, которые я читал, действительно случайные генераторы проверяются статистически.К сожалению, я не могу прочитать статью, которую вы упомянули в вопросе, но я думаю, что будет такое же исследование.


Что ж, я полагаю, что мог бы быть потенциальный метод доказательства того, что какой-то генератор производит последовательность с максимально возможной энтропией, но я его еще не видел. Но, возможно, такой метод невозможен. Если есть, то интересно почитать :)

УПД: максимальная энтропия не требуется для истинной случайности. Вот несколько цитат @Paul Uszak:

Такая последовательность [действительно случайно] требуется только монотонно возрастающая колмогоровская сложность. Смещение/корреляция не имеет значения.

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

УПД: в двух словах: TRNG используют некоторые физические непредсказуемые события для получения последовательности, PRNG используют компьютерные алгоритмы.

Paul Uszak avatar
флаг cn
Привет, но некоторые проблемы. 0) Нет источников энтропии вне термодинамики. Криптографическая энтропия создается только наблюдателем во время выборки. 1) Формула Шеннона применяется только к данным IID и не применяется в общем случае энтропийной выборки из источника. 2) Статистические тесты проверяют только однородность и независимость после экстрактора случайности. Ни один тест не может отличить TRNG от RNG. «Dieharder» пройдет Mersenne Twister, а «ent» и FIPS 140 пройдут любой архив .7z.
Paul Uszak avatar
флаг cn
3) Максимально возможная энтропия не требуется для действительно случайной последовательности. Для такой последовательности требуется только монотонно возрастающая колмогоровская сложность. Смещение/корреляция не имеет значения. 4) TRNG не проверяются на истинную случайность. Их «истина» исходит из понимания недетерминированных физических процессов, создающих выходную колмогоровскую сложность.
Рейтинг:-1
флаг cn

Какие трудности связаны с генерацией истинных случайных чисел?

Ощутимых сложностей с генерацией сбрасываемых нагрузок истинных случайных чисел нет. Хагед daemon утверждает, что генерирует мегабиты/с истинной энтропии без какого-либо внешнего оборудования. Хотя я не уверен, что на самом деле означает «в масштабе». Циклическое использование ключа AES каждую минуту соответствует скорости Колмогорова <3 бит/с. При всем уважении, это детская игра даже для домашних мастеров. Посмотрите на фотографии вечеринок на своем смартфоне и задайтесь вопросом, что это за шум на изображении. Если у вас есть ~3000 евро, вы можете купить TRNG со скоростью 240 Мбит/с, в котором используется технология разделения луча. Если бы от этого зависела ваша жизнь, не слишком ли много было бы 2600 долларов? И йолд /dev/случайный будет делать> 30 КБ / час, просто проверяя электронную почту. Удвойте это, если вы исследуете PornHub.

Наиболее вероятная неосязаемая причина, по которой я не должен вдаваться в подробности, отражена в следующем; Спортсменам в Пекине рекомендуют пользоваться одноразовыми телефонами.

Что и кто может быть арбитром истинной случайности?

Только ты.

На очень известном веб-сайте есть ремешок, на котором написано: — Безопасная энтропия? Ваша энтропия. Концепция вычислительной неразличимости означает, что выходные данные Вихря Мерсенна очень похожи на выходные данные /dev/случайный. Это забрать отсюда.

Аппаратный генератор случайных чисел Intel выглядит случайным, но никто в *nix-сообществе ему не доверяет. И поэтому они не должны, учитывая публично подтвержденный NOBUS2 политика. И, к несчастью для вас/нас, невозможно реконструировать многослойный кремниевый кристалл с миллиардами транзисторов.

Эту часть моего ответа можно было бы продолжать тысячи раз, так что я закончу тем, что попытаюсь убедить вас построить источник энтропии самостоятельно, приложив немного усилий. диод (2,08 фунта стерлингов + НДС/20).


2 Получите жестяную шляпу. Действительно толстая рождественская индейка. Запись NOBUS была удалена из Википедии. Делайте выводы сами. Поэтому я направляю вас в WAPO статья с главой ЦРУ/АНБ (тот же парень).

poncho avatar
флаг my
Я никогда не понимал людей, которые не доверяют Intel trng, но доверяют всему остальному, что Intel строит. Если АНБ сможет убедить Intel установить лазейку в trng, то они также могут убедить их создать процессор, который определяет, когда выполняются определенные последовательности инструкций (например, код OpenSSL rng), и преднамеренно неверно интерпретирует эти инструкции.
флаг us
@poncho Я один из этих скептиков :) Когда дело доходит до безопасности, меня не волнует производительность: нет ни АНБ, ни Windows, ни Intel, ни OpenSSL, ни наставнических людей с позицией «Никогда не создавайте системы безопасности». самостоятельно"
Paul Uszak avatar
флаг cn
@SamGinrich Слышь, слышишь! Чего предыдущий комментатор не осознал, так это того, что его критика нелогична. Мы можем убедиться, что ЦП Intel работает правильно, потому что его можно проверить на соответствие спецификациям путем тестирования. Тестирование миллионами пользователей во всех странах, на всех уровнях технической компетентности. Вычислительная неразличимость математически исключает возможность проверки того, что предполагаемый TRNG Intel вообще генерирует колмогоровскую случайность. [Далее...](https://crypto.stackexchange.com/a/71584/23115).
флаг us
@Paul Пол Ну, я не возражаю против комментария пончо: если у вас есть змея с двумя головами, неправдоподобно не доверять одной голове и надеяться, что другая вас не укусит. То же самое, ваша попытка мониторинга в порядке; то, что вам нужно для этого, - это независимая реализация мониторинга и без доверия к корпорациям, например. который удалил г-на Сноудена из друзей.
forest avatar
флаг vn
@poncho Я думаю, что это очень маловероятно. У PoC||GTFO была хорошая статья о том, как это можно сделать (по крайней мере, в эмуляторе), и она оказалась _намного_ более сложной и хрупкой, чем замаскированный TRNG, который просто комбинировал истинное 64-битное случайное число и секретный 128-битный код. битовое значение бэкдора и использовал его в качестве начального значения. Я думаю, Пол прав, скептически относясь к RDRAND/RDTSC.

Ответить или комментировать

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