Cryptography 基于输入生成公钥/私钥对

Cryptography 基于输入生成公钥/私钥对,cryptography,openssl,pki,Cryptography,Openssl,Pki,OpenSSL提供了生成随机公钥/私钥对的工具。是否有任何机制可以基于某个初始值确定地生成一对 例如,给定字符串'abcd',生成一个公钥/私钥对,这样就可以使用相同的字符串再次生成相同的公钥/私钥对。当然,只需在PBKDF中使用密码生成一个类似密钥的字节数组(需要随机盐和高迭代计数)。然后使用这个字节数组作为PRNG的种子。确保您始终使用相同的PRNG!然后使用该PRNG作为输入。确保未更改生成密钥实现 请阅读crypto.stackexchange.com上的答案。请注意,私钥通常是加密的,

OpenSSL提供了生成随机公钥/私钥对的工具。是否有任何机制可以基于某个初始值确定地生成一对


例如,给定字符串
'abcd'
,生成一个公钥/私钥对,这样就可以使用相同的字符串再次生成相同的公钥/私钥对。

当然,只需在PBKDF中使用密码生成一个类似密钥的字节数组(需要随机盐和高迭代计数)。然后使用这个字节数组作为PRNG的种子。确保您始终使用相同的PRNG!然后使用该PRNG作为输入。确保未更改生成密钥实现

请阅读crypto.stackexchange.com上的答案。请注意,私钥通常是加密的,例如使用PKCS#12容器。请注意,PKCS#12容器和上述方法都容易受到暴力攻击。大多数密码确实提供了非常有限的熵,使得这些暴力攻击更加可行。PKCS#12容器的优点是,您不必将其与密文一起存储,它仅在签名生成或解密期间需要。使用128位十六进制值作为密码可以缓解暴力强迫的问题,但您可能无法记住它

请注意,生成RSA密钥对需要很多时间(并且查找大素数的运行时间不确定,因此对于特定的密钥对可能需要很长时间)。ECF(p)键就不会那么麻烦了


可行吗?当然有用吗?可能地充满危险?当然。

如果你要问怎么做,那么你可能不应该这样做:psome我觉得这对任何与加密有关的事情都是正确的。@ntoskrnl是的,但这是从老路上走出来的。如果你失去了路径,你很可能会遇到蜘蛛——也就是精灵。“然后用这个字节数组作为PRNG的种子”——在这里你必须小心。OpenSSL将使用
RDRAND
引擎(如果可用),而该引擎不接受种子或产生确定性输出。你必须跳出铁环才能阻止这种行为。“当然可以,”奥斯特德说。理想情况下,密码的长度与密钥的长度相同,这样就不会损失熵。那你就不需要密码了,是吗?