2016-12-30 10 views
0

Я хочу использовать функцию RDRAND Intel для Windows и генерировать истинные случайные числа (поскольку случайный модуль Python не так случайен). Есть ли API в Python, который может получить доступ к этой функции?Использование Intel RDRAND в Python 2.7

Я попытался установить модуль rdrand, упомянутый в комментарии ниже, но я все время получаю сообщение об ошибке. Вход: http://pastebin.com/A2Vqsqec

ошибка, кажется, брошенные этих линий в rdrand.c:

#ifdef __GNUC__ 
#define USING_GCC 1 
#elif __clang__ 
#define USING_CLANG 1 
#else 
#error Only support for gcc or clang currently 
#error if you port to another compiler, please 
#error send back the patch to https://github.com/stillson/rdrand 
#endif 

Почему это происходит?

UPDATE: Я проверил и убедился, что __GNUC__ определяется

+0

Посмотрите на это: https://pypi.python.org/pypi/rdrand/0.9.0 Также интересно: http://stackoverflow.com/questions/22680441/using-the-hardware-rng-from- python – ppasler

+0

Спасибо. Я попытался установить модуль rdrand, но я получаю сообщение об ошибке: «rdrand.c: фатальная ошибка C1189 - Только поддержка gcc или clang в настоящее время« Почему это происходит? – PK123

ответ

0

Вы, вероятно, захотите использовать Python, чтобы обернуть C/C++ рутины, вместо того чтобы использовать реализацию питона RdRand(). Исследовательский документ здесь (http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120) или версия без платной поддержки здесь (https://arxiv.org/abs/1707.02212) недавно показали, насколько низкая производительность RdRand() в Python. Несмотря на это, как отмечается в документе, инструкции RdRand и RdSeed не совсем «по-настоящему» случайны ...

Надеюсь, что это поможет.

+0

Ссылки плохие, лучшие ссылки: [Intel® DRNG] (https://software.intel.com/sites/default/files/m/d/4/1/d/8/441_Intel_R__DRNG_Software_Implementation_Guide_final_Aug7.pdf), [Intel ® Руководство по внедрению программного обеспечения DRNG] (https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide) и Wikipedia [RdRand] (https://en.wikipedia.org/wiki/RdRand). – zaph