RSA密钥长度和导出限制

时间:2010-05-11 07:09:45

标签: cryptography rsa

我知道,使用密钥的长度存在很多限制(几乎每个国家/地区的导入和导出限制)。通常,它从64位到256位不等。要使用更多位,必须征得当局的许可。

但建议最少使用1024位密钥进行RSA! 这是否意味着我不能在没有任何法律问题的情况下使用RSA等等?

3 个答案:

答案 0 :(得分:4)

64位范围内的位长限制隐含地与对称加密有关。像RSA这样的非对称加密通常有单独的位长限制(例如,美国1998年放宽出口控制允许输出高达56位的对称加密和高达1024位的非对称加密)。

64位RSA加密在分钟不到一秒就可以破解。

答案 1 :(得分:1)

Special Publication 800-57 NIST中,建议1024位RSA密钥仅用于保护数据,直到2010年。

答案 2 :(得分:1)

我不是律师(IANAL),但如果您的应用程序使用外部库或内置OS服务,则美国对加密的出口限制不需要深入审查您的代码和算法。 Windows操作系统附带的MSCrypto库已由联邦调查局签署出口(虽然其功能在某些地缘政治区域可能有限),因此使用MSCrypto DLL功能的应用程序无需经过详尽的审查。

我参与了几个零售产品的发布周期,这些产品使用MSCrypto生成密钥并加密/解密数据,我们为满足美国出口限制而必须做的最多就是填写一个声明我们的表格使用MSCrypto,我们使用的密钥大小,以及用途。

如果您自己实施加密算法,或者将加密代码静态链接到您的exe或dll(不是单独的DLL),并且您的软件将在美国境外销售(不必由您出售) ),您可能需要提交您的代码和/或算法的深入审查,以获得出口豁免。