Мне нужно создать большие простые числа для криптографического проекта. Я заметил, что .NET 4.0 имеет встроенный криптографический примитив (например, RSA), который использует случайные генерируемые большие простые числа (p, q для RSA). Все ли они используют общую встроенную библиотеку, которая является общедоступной и может быть доступна извне их классов, или мне нужно использовать внешнюю библиотеку (я знаю, что существуют простые алгоритмы для тестов на первичность, я просто не хочу реализовать больше, чем я должен.).Есть ли способ генерации больших простых чисел на C# без использования внешней библиотеки?
ответ
В .NET v4 (и позже) Microsoft предоставляет новую сборку, System.Numerics.dll
, которая включает в себя тип BigInteger
. Однако он не предоставляет никакого способа проверки простых чисел.
Моно (начиная с версии 1.0) также предоставляет [BigInteger][3]
тип, расположенный в нем Mono.Security.dll
сборка. Вы можете либо использовать его , либо, либо перенести методы проверки правильности (существует несколько методов) на новый тип Microsoft BigInteger
.
ли все они используют общую встроенную библиотеку, которая является общественной и могут быть доступны из-за пределы их класс областей
Да, как RSACryptoServiceProvider
и DSACryptoServiceProvider
вызовов в CryptoAPI, чтобы сделать это. Однако CAPI не предоставляет собственный код BigInteger (даже для собственного кода), поэтому он вам не поможет.
Создайте большое количество в требуемом диапазоне. Протестируйте его, чтобы увидеть, является ли оно простым. Отклонить и повторить, если это не так.
Для тестирования просто используйте пробное деление с простыми числами до, скажем, 1500, а затем переключитесь на Миллер-Рабин. С правильно реализованным Миллером-Рабином шансы на аппаратный сбой больше, чем ошибочно отмечая составной как простой.
- 1. Создание ДЕЙСТВИТЕЛЬНО больших простых чисел
- 2. Самый элегантный способ генерации простых чисел
- 3. Каков наилучший способ генерации простых чисел?
- 4. Эффективный метод для генерации списков больших простых чисел
- 5. Есть ли способ сериализации класса C++ без использования библиотеки?
- 6. Цепь сит для генерации простых чисел C++
- 7. Можно ли обрабатывать целочисленное переполнение без внешней библиотеки в JavaScript?
- 8. Простой способ генерации простых чисел, не используя набор обозначений
- 9. Сумма простых чисел для больших чисел
- 10. Есть ли способ вставить данные в базовую базу кушетки без использования внешней библиотеки?
- 11. Ruby - метод для генерации простых чисел
- 12. Умножение больших больших целых чисел, найденных в строке без использования внешних библиотек, C++
- 13. Произведение двух больших простых чисел в шифровании
- 14. Есть ли удобный способ инициализации простых структур на C++?
- 15. Оптимизированный способ обрабатывать очень большое число без использования внешней библиотеки
- 16. Использование LINQ для генерации простых чисел
- 17. Перечисление больших (20-значных) [возможных] простых чисел
- 18. Поиск больших простых чисел в Mathematica
- 19. Java: добавление больших чисел без использования BigInteger
- 20. Сумма всех простых чисел до очень больших чисел?
- 21. Есть ли правило для простых чисел?
- 22. Обработка больших целых чисел в Java без использования BigInteger
- 23. Есть ли способ использовать Google TTS в качестве внешней библиотеки?
- 24. Ошибка при поиске больших простых чисел
- 25. Как работает этот метод генерации простых чисел?
- 26. «приложение: не процедура» при генерации простых чисел
- 27. Создание больших простых чисел с Py Crypto
- 28. Создание больших простых чисел в python
- 29. Логика простых чисел C++
- 30. Есть ли способ ограничить ограничение использования плунжера?
Простые номера должны быть нечетными. – Corbin
@Corbin - не * все * простые числа нечетные (но большие были бы) –
Я оговорился, полагаю. Но все же, не является ли 2 единственным нечетным простым? – Corbin