Вам лучше использовать библиотеку для крипто-подпрограмм. Их несколько, и они чреваты тонкими проблемами, которые, надеюсь, большинство из них исправлены в существующих реализациях, но еще не исправлены в новой реализации.
Однако я поиграл с генерацией простых чисел с использованием Python и GMP:
http://stromberg.dnsalias.org/svn/huge-prime/trunk/
Короче говоря, пробное деление лучше всего подходит для небольших чисел, Миллер-Рабин хорош в качестве быстрого фильтра / теста для немного больших чисел, но иногда вам все равно приходится использовать пробное деление для получения гарантированных простых чисел.