我想允许我网站上的用户创建一个非对称私有&公钥所以他们可以:
我的问题是,如果用户机器死机,那么他们很可能会丢失他们的私钥。
我的概念是用户下载的应用程序从网站上提取文件也将允许他们生成在网站上使用的密钥。
所以我的问题是,是否可以根据密码创建非对称私钥/公钥对?这将允许用户在需要时重新生成私钥。
答案 0 :(得分:1)
完全按照要求做的一种方法是:
此过程应确定性地生成公钥/私钥RSA密钥对。但是,不这样做的原因是:
完成您要做的事情的更好方法是:
这更好,因为:
这解决了您的问题:
当然有明显的警告,例如,如果用户忘记了他们的密码,他们的所有数据都被锁定,直到公众知道如何破解RSA或者十亿年的当前计算能力被用于破解密码的任务; - )(当然取决于N和密钥大小)。此外,盐对于防止词典攻击非常重要。
答案 1 :(得分:0)
您的算法的字段(例如RSA http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx)或多或少取决于您。您可以轻松地创建一个算法,从某个字符串生成D和P(计算其中的其他RSA字段)。我真的建议你不要从StackOverflow的答案中选择一个(这只会让想要获取数据的人容易尝试)。
像RSA这样的算法难以打破的原因是基于加密数据对私钥/公钥进行逆向工程的工作量。如果你引入一个“快捷方式”,比如基于密码短语的可重现生成算法,那么系统的安全性现在取决于密码短语保密的程度,而不是加密算法本身。
私钥也是如此;这就是为什么许多组织不将私钥存储在硬盘上并将其存储在受密码或某些生物识别信息保护的安全外部设备上的原因。
我建议您不从密码短语中生成密钥,只需使用推荐的做法来存储和保护您的私钥。