Какая польза от Nullable.GetUnderlyingType, если typeof (int?) Является Int32?

Тщательные номера, чтобы они «выглядели случайными»

Я согласен с Филом H, что люди настолько хорошо разбираются в шаблонах, что часто считают, что они видят шаблоны даже в «совершенно случайных» последовательностях чисел ( кластерная иллюзия , apophenia, заблуждение игрока и т. д.).

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

Художники часто берут полностью произвольно сгенерированные шаблоны и «подталкивают» их, чтобы они отображались «более случайными», хотя это тщательное подталкивание фактически делает шаблон меньше ] random (a) , (b) , (c) , (d) и т. д.

Альтернативно, последовательность с низким уровнем несоответствия иногда «выглядит лучше», чем истинная случайная последовательность, и она намного быстрее генерируется.

Быстрые генераторы случайных чисел

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

Генераторы случайных чисел без криптографической силы, которые по-прежнему дают превосходный результат (маловероятно, ) включают в себя Mersenne twister , multiply-with-carry , Отложенный генератор Фибоначчи , Хорошо эквидистантированный длиннопериодный линейный , Xorshift и т. д.

Методы криптографических случайных чисел, которые работают с некоторыми браузерами

Я слышал, что Cryptocat и другие приложения JavaScript используйте удобные функции window.crypto.getRandomValues() или window.msCrypto.getRandomValues() или SubtleCrypto.generateKey(), которые предназначены для генерации криптографических случайных чисел. К сожалению, эта функция недоступна в IE 11 и ниже.

Поскольку веб-браузеры все время используют случайные числа (для каждой страницы «https: //» они извлекаются), вполне вероятно, что эти функции ( где доступно) может работать быстрее, чем большинство генераторов случайных чисел, написанных на JavaScript, - даже некриптографических алгоритмов.

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

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

Одна реализация: http://lightsecond.com/passphrase.html

Дальнейшее чтение

13
задан Timo Tijhof 12 April 2016 в 21:38
поделиться