В System.Security.Cryptography много криптологических функций.
У них есть хэши, крипты, потоки и многое другое.
Хороший поставщик RSA.И о надежном хранении констант.Я могу только предложить хранить их в зашифрованном виде в решении.Вы не должны быть в состоянии прочитать их из источника, поэтому должна быть какая-то безопасность после сборки сборки.Может быть, запутывание, может быть что-то еще.Что касается генерации ключа, не используйте вашу собственную систему или какую-либо другую систему разработки, я думаю.
РЕДАКТИРОВАТЬ:
Для генерации ключей вам лучше использовать любой пользовательский ввод, напримерпросто создайте небольшое приложение, которое рассчитало время, необходимое для ввода определенного фрагмента текста на каждую букву.
Или используйте HRNG / TRNG, аппаратный генератор случайных чисел (использует ввод из реального мира, извлеченныйчерез датчики).Или Истинный Генератор Случайных Чисел, в основном также HRNG, но в основном с другими формами ввода, очень продвинутый.
RANDOM.ORG должен быть в состоянии помочь вам.
Если это не такэто чрезвычайно важно, просто ударь головой о клавиатуру и посмотри на результаты:).