从PKCS8加密RSA私钥推导有效口令的可行性及破解成本咨询
问题解答
1、是否可以从该加密私钥中推导出原始设置的24位口令?
不可以。你生成加密私钥时使用的是scryptAndAES128-CBC保护方案,属于PKCS#8标准的加密流程:口令会先通过scrypt密钥派生算法生成AES解密密钥,再用AES-128-CBC算法加密RSA私钥。scrypt是专门为抵抗暴力破解设计的不可逆哈希算法,不存在已知的数学方法可以从加密后的私钥内容、派生得到的密钥密文逆推出原始明文口令。
2、是否可以构造出任意能通过上述decrypt函数验证的有效口令?
不可以。RSA.import_key会先用输入的口令派生密钥解密私钥内容,再校验解密后的内容是否符合合法的RSA私钥结构,只有解密结果是合法的RSA私钥结构时才会返回成功,不存在万能口令或可随意构造的有效口令,只有原始口令是唯一能通过验证的输入(scrypt的哈希碰撞的概率极低,可以忽略不计)。
3、能否实际找到该私钥对应的有效口令?需要多大的算力、消耗多长时间?
如果你的24位口令是无规律的随机字符,几乎没有实际找到的可能性:
- 如果是全可打印ASCII字符(共94种字符集),所有可能的组合总数为
94^24,约等于1.3*10^47种。 - scrypt算法本身需要大量内存运算,即使使用当前顶级的算力集群,每秒最多也只能完成数千次到数十万次的口令尝试,就算按每秒尝试100万次计算,穷尽所有组合需要的时间是宇宙现有寿命的数万亿倍,完全不具备实际破解的可行性。
- 仅当你的24位口令有明显规律(比如是常见短句、有固定规律的组合),才有可能通过字典攻击缩小范围尝试破解,否则没有任何可行方案。
内容的提问来源于stack exchange,提问作者Nikhil VJ
相关产品推荐
相关产品推荐

