Генерация безопасного простого числа
Необходимо написать систему Дифии Хелмана. Для ее написания нужно сгенерировать безопасное простое число вида P = 2Q + 1, где Q число Софи Жермен. Как можно сгенерировать такое безопасное простое число с типом данных BigInteger?
Ответы (1 шт):
Автор решения: Анжелика
→ Ссылка
Могу предложить 2 решения, один из которых можно использовать на первое время (пока не предложат менее ресурсозатратное решение):
1)Сделать цикл. Например:
BigInteger bInt = 2;
for(int i = 0; int <= (int) (Math.random() * 1000); i++){
bInt = 2 * bInt + 1;
}
Минус - цикл может занять много времени
2)Хранить где-нибудь список чисел Софи Жермен и в коде получать рандомный элемент из этого списка. Если список в отдельном файле, то не надо получать из него весь список, достаточно получить случайную строку/ячейку/др.