Сгенерируйте пару ключей RSA эффективно с помощью пользовательских PRNG - PullRequest
0 голосов
/ 17 февраля 2011

Я бы хотел сгенерировать пару открытых и закрытых пар ключей, эффективный (быстрый) в perl, и иметь возможность вводить случайные данные для себя. При вводе случайных данных я, конечно, имею в виду, что функция требует, скажем, X случайных битов, чтобы сгенерировать пару открытых / закрытых ключей Y битов, и я должен быть в состоянии предоставить эти X битов функции.

Так что в принципе, функция должна выглядеть так:

($private, $public) = genRSAkeypair($randomdata, 1024);

и $ private содержат:

----BEGIN RSA PRIVATE KEY-----
....
----END ....

и $ public содержат

----BEGIN RSA PUBLIC and so on...

$ randomdata - это просто строка случайных битов из любого генератора случайных чисел. Если $ randomdata согласован между instance1 и instance2, instance1 и instance2 должны возвращать одинаковые открытый и закрытый ключи.

Если вы хотите знать, в чем заключается польза от этого, я планирую создать систему генерации ключей RSA на основе пароля, без необходимости хранить какие-либо ключи в любом месте . Таким образом, ключ генерируется прямо из пароля с помощью SHA512, связанного особым образом для создания статических случайных данных.

Конечно, один и тот же открытый и закрытый ключ должен возвращаться каждый раз, когда в систему вводится один и тот же пароль, иначе система будет бесполезной.

Есть идеи?

1 Ответ

0 голосов
/ 18 февраля 2011

Я бы попробовал Crypt :: OpenSSL :: RSA, похоже, он привязан напрямую к libssl

...