RSA 密钥长度和导出限制
我知道,所用密钥的长度有很多限制(几乎每个国家的进出口限制)。通常,它的范围为 64 到 256 位。要使用更多位,必须获得当局的许可。
但建议 RSA 至少使用 1024 位密钥! 这是否意味着我不能只使用 RSA 而不会出现任何法律等问题?
I know, there are a lot of limitations to the length of used key (import and export limitations for nearly each country). Usually, it varies from 64 to 256 bits. To use more bits, it is obligatory to ask permission from authorities.
But it is recommended to use 1024 bits keys for RSA as minimum!
Does it mean that I cannot just use RSA without any problems with law and so on?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
64 位范围内的位长度限制隐含地与对称加密相关。对于像 RSA 这样的非对称加密通常有单独的位长度限制(例如,1998 年美国放宽出口管制,允许出口最多 56 位的对称加密和最多 1024 位的非对称加密)。
64 位 RSA 加密将在不到一秒的
分钟内被破解。Bit length restrictions in the 64 bit range are implicitly relating to symmetric crypto. There are usually separate bit length restrictions for asymmetric crypto like RSA (for example, the 1998 relaxation of export controls in the US allowed export of symmetric crypto of up to 56 bits and asymmetric crypto of up to 1024 bits).
64 bit RSA encryption would be breakable in
minutesless than a second.在 特别出版物 800-57 NIST 建议 2010 年之前仅使用 1024 位 RSA 密钥来保护数据。
In Special Publication 800-57 NIST recommends that 1024-bit RSA keys only be used to protect data until 2010.
我不是律师(IANAL),但如果您的应用程序使用外部库或内置操作系统服务,美国对密码学的出口限制不需要深入审查您的代码和算法。 Windows 操作系统附带的 MSCrypto 库已获得美联储的出口批准(尽管其功能在某些地缘政治区域可能受到限制),因此使用 MSCrypto DLL 函数的应用程序无需经过详尽的审查。
我参与了几个使用 MSCrypto 生成密钥和加密/解密数据的零售产品的发布周期,为了满足美国的出口限制,我们要做的最多就是填写一份表格,声明我们使用 MSCrypto,我们使用的密钥大小以及目的。
如果您自己实现加密算法,或者将加密代码静态链接到您的 exe 或 dll(不是单独的 DLL)中,并且您的软件将在美国境外销售(不一定由您出售),那么您可能需要对您的代码和/或算法进行深入审查,以获得出口豁免。
I am not a lawyer (IANAL), but if your application uses an external library or built-in OS service, US export restrictions on cryptography do not require an in depth review of your code and algorithms. The MSCrypto library that ships with the Windows OS has been signed off by the Feds for export (though its capabilities may be limited in some geopolitical regions), so apps that use the MSCrypto DLL functions don't have to go through an exhaustive review.
I've been part of the release cycle of several retail products that used MSCrypto to generate keys and encrypt/decrypt data, and the most we had to do to satisfy the US export restrictions was fill out a form that declared that we used MSCrypto, the key sizes we used, and for what purpose.
If you implement a crypto algorithm on your own, or you statically link crypto code into your exe or dll (not a separate DLL), and your software will be sold outside the US (doesn't have to be sold by you), you will likely be required to submit to an in depth review of your code and/or algorithms in order to get an export waiver.