C++ で RSA アルゴリズムを実装しました。プログラムは動作していますが、srand 呼び出しによってプログラムが遅くなります。2 つの素数と暗号化キー (e) を生成するために srand を使用しました。これがスニペットです
...............................................
do
{
p = make_prime_number();
q = make_prime_number();
}while(p == q);
phi = (p - 1) * (q - 1);
n = p * q;
do
{
e = random_builder (20);
int *t = extended_gcd (e, phi);
d = t[0];
}while(gcd(e, phi) != 1 || d < 1 || d >= n );
...............................................
int random_builder(const int max)
{
srand(time(NULL));
return rand() % max + 1;
}
bool is_prime(const int num)
{
for(int i = 2; i <= num/2; i++)
if(num % i == 0)
return false;
return true;
}
int make_prime_number()
{
int num;
do
{
num = random_builder(20);
}while(not is_prime(num));
return num;
}
srand のシードを変更することで、どうにかしてプロセスをスピードアップできますか?