Mersenne Twister имеет огромную периодичность, которую очень сложно даже получить на машине без использования par /GP. Насколько я понимаю, mt19937 (nmersenne twister) из #include <random>
в c++ больше похож на http://www.cplusplus.com/reference/random/mersenne_twister_engine/ и http://www.cplusplus.com/reference/random /mt19937 /
w = 32 n = 624, в котором указывается периодичность (с использованием ttcalc): (2 ^ ((n-1) * w) -1)/32 = (2 ^ ((624-1) * 32) -1)/32 = большое огромное огромное число - внутренние компоненты процессора не могут обработать этот размер числа, не урезая его до некоторого смехотворно малого числа. Итак, давайте выясним количество цифр для этой периодичности: ceil (log (abs ((2 ^ ((624-1) * 32) -1)/32)+1; 10)/log (10; 10)) = Количество цифр 6000 цифр. даже ttcalc доходит до 99 цифр. В общем, 2 ^ 64 = 18,446,744,073,709,551,616 и рассчитывается с помощью инструкций процессора, но даже процессор IEEE754 в вашем процессоре не может обработать этот размер числа. Здесь вы попадаете в bignum math и калькуляторы теории чисел, такие как pari/GP, которые могут легко обрабатывать данные до 10 000 цифр - и печатать их тоже.
Мое понимание /dev /urandom и /dev /random заключается в том, что они очень плохие для длительных периодов, таких как очистка дисков, и их не следует использовать для устойчивых потоков случайных чисел только для получения одного номера, такого как пароли и другие криптографии и т. д.
для лучшей производительности программы очистки диска, возможно, nwipe или написание собственной утилиты c++ будет хорошей идеей, использующей mt19937 (это медленно, но эффективно). Вы можете сократить 32 бита до 8 или удвоить полосу пропускания, используя 16 битов, 64-битный mt19937 должен дать вам 32 битов (то же самое - написать отчет об ошибке реализации gcc). верхний бит бесполезен, я думаю, они полагали, что все собираются использовать номер со знаком и никогда не использовать отрицательные числа. библиотека шаблонов <random>
c++ должна содержать как подписанные, так и неподписанные типы данных, а не только подписанные.
Лучше всего было бы написать программу на C ++. Я думаю, что стирание как идея является ошибкой, основанной на http://linux.die.net/man/1/shred и http://linux.die.net/man/4/urandom под Usage, где говорится:«Это разработано для безопасности, а не для скорости, и плохо подходит для генерации большого количества случайных данных. "
если единственное, о чем вы беспокоились, это периодичность (расстояние между повторяющимися образцами), я не думаю, что это проблема. криптография не одна из моих специальностей, но
Насколько я понимаю, стирание NIST означает, что вы должны сделать что-то вроде 8 или 15 проходов МП, чтобы свести к минимуму магнитные изображения-призраки. чем больше, тем лучше, но, вероятно, с убывающей отдачей, тем больше вы делаете.
не уверен, что такого рода стресс делает с драйвом. будьте осторожны с тем, какую USB-док-станцию вы используете, единственной, которую я нашел, был startech SATDOCKU3SEF с хорошим и удобным вентилятором (до максимума), если это необходимо.
Кроме того, мне нравится распараллеливать задания, чтобы сэкономить время. просто вставьте & в конце команды и выполните столько заданий, сколько у вас есть каналов. он будет использовать 1 поток на работу. если ваш сервер имеет 120 потоков (4cpux30T), то вы можете иметь до 120-1 заданий, оставляя 1 для системы. чтобы проверить задания, используйте команду jobs и ITHINK towait для выполнения заданий или выключения команды ожидания. как wait ; shutdown -r 0
Я все еще пытаюсь выяснить, как использовать команду foreach
с `ls /dev /disk /by-id, там должна быть ошибка в BASH, потому что при перелистывании всего с livecd я должен иметь возможность стереть все диски с помощью
Я занимаюсь разработкой веб-страницы по адресу http://JesusnJim.com/pc-repair/disks-int-ext/wiping-refreshing-drives-free-fast-and-in-PARALLEL.html