AnasMHDAbbas Ответов: 1

Как сгенерировать ключ RSA вручную в C#


Привет друзья,

мы знаем,что пара ключей RSA нуждается в p, q (простых числах), и если мы хотим сгенерировать ключ RSA на 128-битной длине, нам нужно сгенерировать p и q на 128-битной длине и сделать с ними некоторую математику.

моя проблема заключается в том, как сгенерировать эти большие простые числа и выполнить над ними некоторые операции( + * - )


пожалуйста, обратите внимание, что мне не нужно использовать классы криптографии C#, я хочу сделать свой собственный.

заранее спасибо.

Что я уже пробовал:

Я искал 7 часов, но ответа не было.

George Swan

Оригинальная статья RSA дает хороший пример того, как делать поделки
https://people.csail.mit.edu/rivest/Rsapaper.pdf

1 Ответов

Рейтинг:
2

OriginalGriff

С какой стати тебе это понадобилось?
"Сворачивание своего" с шифрованием-хороший способ получить проблемы позже: это сложное поле со сложным кодом, и крошечные различия могут привести к тому, что зашифрованные данные будут либо легко сломаны, либо повреждены без восстановления.

Но, если вы должны ... начните здесь: опорный источник[^] - это исходный код, который Microsoft использует для RSA, и включает в себя код для генерации ключей.

Однако я бы все же рекомендовал использовать методы .NET Framework.


AnasMHDAbbas

большое спасибо, основная идея, которая мне нужна, - это проверить p и q (если они простые или нет), следовательно, вывести e (открытый ключ) и d (закрытый ключ).. Я практикуюсь с большими числами, поэтому я выбираю RSA, потому что есть некоторые инструменты, которые помогут определить мой ответ истинным или ложным.

OriginalGriff

Когда вы задаете вопрос, всегда спрашивайте о том, что вы на самом деле делаете - спрашивать о создании ключей RSA, когда вы пытаетесь взломать шифрование, - это глупая идея: вы не получаете помощи, которую хотите.

На самом деле, нет никакого реального смысла помогать вам: такой взлом грубой силы вряд ли будет успешным в течение вашей жизни - слишком много значений и их комбинаций означают, что шансы сильно сложены против вас - если вы, конечно, не найдете полностью работающий квантовый компьютер. Просто посчитай, и ты поймешь, что я имею в виду ... помните, что каждый простой множитель имеет длину от 150 до 600 десятичных знаков.

Вот почему RSA использует то, что она делает: чтобы предотвратить атаки грубой силы, которые каким-либо образом эффективны в разумные сроки.
Я бы отказаться от него если бы я был тобой!