Случайная относительная простое число на основе модуля


Я реализации RSA в Java с использованием BigInteger и у меня есть метод, который возвращает случайное относительное простое число на основе модуля М.

Метод выглядит так:

BigInteger prime = new BigInteger(m.bitLength(),rnd);

    while (prime.compareTo(BigInteger.ZERO) <= 0 || !prime.gcd(m).equals(BigInteger.ONE) )
    {
        prime = new BigInteger(m.bitLength(),rnd);
    }

Есть в любом случае, чтобы сделать это более эффективным? Я не знаю, если воссоздать объект, как это плохо или нет.



Комментарии
1 ответ

Что такое м.bitLength, и как часто вы получаете <= 0 или НОД-1?

Почему вы думаете, что создание объекта в цикле может быть плохо? Производительность? Памяти мудрого?

Объект готов для сбора мусора, как только он недоступен и из области.

Так что второй объект, если первый из них подходит под условие, будет скрывать первый - первый-из области, и недоступными.

Для дешевого объекта как типа BigInteger, вы можете волноваться, если вы делаете миллионы и миллионы объектов в одну секунду, снова и снова. Может тогда, если вы испытываете проблемы с производительностью, вы можете измерить и выяснить, где это происходит.

4
ответ дан 27 мая 2011 в 02:05 Источник Поделиться