Очень надо, плизз, как реализовать генерацию больших простых чисел на C# (алгоритм, или может компонент какой есть?)?
И ещё, есть ли в C# стандартный класс для генерации ключей для алгоритма шифрования rsa и если есть как с ним работать?
Здравствуйте, masyanya01, Вы писали:
M>Очень надо, плизз, как реализовать генерацию больших простых чисел на C# (алгоритм, или может компонент какой есть?)? M>И ещё, есть ли в C# стандартный класс для генерации ключей для алгоритма шифрования rsa и если есть как с ним работать?
System.Security.Cryptography.RSACryptoServiceProvider? Как работать? Ну... МСДН читали, для начала?
рандом тут не причем.
Для RSA нужны такие числа... все нужно делать в ручную. Crypto API, как я понимаю, не подходит т.к. автору необходимо выполнить лабы или курсовой... Извиняюсь — если не прав.
Если проблема актуальна — пишите. Дома что то было — если не потер. Как минимум на плюсах исходники кину если что.
Hello, masyanya01!
You wrote on Mon, 14 Nov 2005 13:02:17 GMT:
m> Очень надо, плизз, как реализовать генерацию больших простых чисел на C# m> (алгоритм, или может компонент какой есть?)? И ещё, есть ли в C# m> стандартный класс для генерации ключей для алгоритма шифрования rsa и m> если есть как с ним работать?
Генерирует простые числа:
Оптимизируем по вкусу.
ArrayList simple_numbers = new ArrayList();
int current_number = 2;
using (StreamWriter writer = new StreamWriter("output.txt")) {
while (true) {
foreach (int simple_number in simple_numbers) {
if (current_number % simple_number == 0) {
goto next_number;
}
}
simple_numbers.Add(current_number);
writer.WriteLine(current_number);
next_number: ;
current_number++;
}
}
Здравствуйте, masyanya01, Вы писали:
M>Очень надо, плизз, как реализовать генерацию больших простых чисел на C# (алгоритм, или может компонент какой есть?)? M>И ещё, есть ли в C# стандартный класс для генерации ключей для алгоритма шифрования rsa и если есть как с ним работать?
года два назад индусы вроде придумали какой то алгоритм для 100% определения любого числа простое оно или нет.
я даже тогда pdf видел с описанием. сейчас найти сходу нее смог...
Здравствуйте, twirpx, Вы писали:
T>Генерирует простые числа: T>Оптимизируем по вкусу.
Боюсь, оптмизируй -- не оптимизируй, но толку от такого кода не будет. Работает он за время, сверхлинейное по самому простому числу. А для RSA нужны очень длинные числа.
M>года два назад индусы вроде придумали какой то алгоритм для 100% определения любого числа простое оно или нет. M>я даже тогда pdf видел с описанием. сейчас найти сходу нее смог...
Практического смысла в этом результате пока нет. Но, тем не менее, см. здесь: http://crypto.cs.mcgill.ca/~stiglic/PRIMES_P_FAQ.html
Здравствуйте, Mab, Вы писали:
Mab>Здравствуйте, twirpx, Вы писали:
T>>Генерирует простые числа: T>>Оптимизируем по вкусу. Mab>Боюсь, оптмизируй -- не оптимизируй, но толку от такого кода не будет. Работает он за время, сверхлинейное по самому простому числу. А для RSA нужны очень длинные числа.
Да почему же. Можно соптимизировать в 4 раза: бежать только по нечетным числам (2 сразу добавить в массив) и не по всему массиву, а только до половины текущего числа.
Здравствуйте, eugen1001, Вы писали:
E>Да почему же. Можно соптимизировать в 4 раза: бежать только по нечетным числам (2 сразу добавить в массив) и не по всему массиву, а только до половины текущего числа.
Ну если уж очень хочется, то можно изучать делители, не большие корня квадратного из проверяемого числа.
Но все равно это мертвому припарки. Для RSA нужны числа порядка 2^64 и даже больше. Простых там примерно каждое 44-е. Ну как, все еще есть надежда примернить здесь подобный примитивный алгоритм?
Здравствуйте, masyanya01, Вы писали:
M>Очень надо, плизз, как реализовать генерацию больших простых чисел на C# (алгоритм, или может компонент какой есть?)? M>И ещё, есть ли в C# стандартный класс для генерации ключей для алгоритма шифрования rsa и если есть как с ним работать?