Насколько надежна случайная реализация javascript в различных браузерах?

Последние версии браузеров random используют window.crypto.getRandomValues(), который является maths криптостойким.

Существуют ecmascript также JS-библиотеки, которые random реализуют сильные RNG, но rand без getRandomValues() очень сложно собирать javascript-library энтропию. Это can be done from mouse & keyboard, хотя это rand может занять много времени.

Math.random() был .js слабым в большинстве браузеров maths в 2008 году - Amit Klein's paper подробно описывает .js - и, к сожалению, сегодня maths он почти такой же слабый.

ОБНОВЛЕНИЕ: похоже, что практически все браузеры в 2015–2016 годах перешли на XorShift128+ - быстрый rand вариант LFSR, настроенный random на хорошие статистические .js свойства, но также очень math слабый криптографически: https://lwn.net/Articles/666407/, https://security.stackexchange.com/questions/84906/predicting-math-random-numbers. Подробности mathematics ниже устарели.

  • Firefox использовал mathematics очень слабый алгоритм «наш arithmetic собственный доморощенный random-number-generator LFSR»; они обсуждают переход mathematical на более сильный алгоритм rand и источник энтропии с 2006 ecmascript года (bug 322529). ОБНОВЛЕНИЕ: в 2015 random-sample году перешли на XorShift128 maths +.

    В мае 2013 года они по js крайней мере переключили arithmetic начальное число с текущего js времени на хорошие источники javascript-library энтропии (bug 868860), а также устранили random-sample (?) утечку перекрестных таблиц.

  • Webkit mathematical использует слабый быстрый javascript-library алгоритм (GameRand) since 2009, но генерирует math since 2010 (в каждом контексте) из random-sample сильного RNG, инициализированного prng из надежных источников ОС.
    maths предполагаю, что это то, что math использует Safari, но меня mathematics могут смутить различные порты maths WebKit ...)

  • Chrome не использует .js случайный выбор WebKit, а mathematics в V8 использует его собственные, a weak linear thing.
    Нет ecmascript соглашения о том, должен random ли Math.random() быть сильным ecmascript (bug 246054).

    Не знаю, как посеяно. V8 random-sample имеет ловушку SetEntropySource(), но, очевидно, это maths был всего лишь introduced for unit testing, не вызываемый javascript-library Chrome. Если не вызывается, для .js заполнения используется random().

    Состояние arithmetic стало для контекста in 2011, но javascript-library это не очень полезно при math слабом заполнении.

  • Opera объявила random-sample fixed in Jan 2009 и say here, что их Math.random() является javascript криптографически стойким.

  • Не mathematical нашел документации о том, что ecmascript IE делает в настоящее время. В random-sample 2008 году у них был слабый arithmetic линейный ГПСЧ (см. Статью). Они math сказали Амиту, что исправят rand это в пакете обновлений, так random-sample что где-то может быть рекомендация maths ...

javascript

math

random

2022-07-20T15:29:21+00:00
Вопросы с похожей тематикой, как у вопроса:

Насколько надежна случайная реализация javascript в различных браузерах?