Cryptography RSA有多安全?

Cryptography RSA有多安全?,cryptography,rsa,Cryptography,Rsa,我使用RSA进行加密和解密。我听说它很容易受到攻击。它是?使用起来有多安全?假设RSA对您所有的实际需求都是安全的 当然,这取决于你在做什么,你如何做,以及你想防御谁 如果您想保护您的连接,并且坚持使用通常推荐的RSA足够安全的东西 如果你想在国家安全局的鼻子下进行秘密行动,那么你已经输了,因为你不得不问这样的问题 PS:您可能需要查看StackExchange上的站点,了解此类内容。正确实施(即,如果您使用现有的库为您执行此操作),则您的数据通道是安全的。但是,请记住,加密的目的只是使数据通道

我使用RSA进行加密和解密。我听说它很容易受到攻击。它是?使用起来有多安全?

假设RSA对您所有的实际需求都是安全的

当然,这取决于你在做什么,你如何做,以及你想防御谁

如果您想保护您的连接,并且坚持使用通常推荐的RSA足够安全的东西

如果你想在国家安全局的鼻子下进行秘密行动,那么你已经输了,因为你不得不问这样的问题


PS:您可能需要查看StackExchange上的站点,了解此类内容。

正确实施(即,如果您使用现有的库为您执行此操作),则您的数据通道是安全的。但是,请记住,加密的目的只是使数据通道不是整个系统中的最薄弱点。RSA可以做到这一点,但您仍然需要担心系统的其他部分以及它们的安全性。

对RSA的常见攻击涉及将两个非常大的素数的乘积分解成一个大数。这背后的一般想法是,找到素数是相当容易的,将它们相乘得到一个大的数也是相当容易的,但是如果你只从这个大的数开始,找到因子是相当困难的

当他们还是一家独立公司时,RSA Data Security Inc.曾面临一项保理挑战。IIRC,最后几个奖项是由RSA DSI团队自己赢得的。这些都是使用通用数字字段筛选(GNFS)完成的。典型的实施使用大量工作站几个月左右来构建“因子库”。然后(最困难的部分)你把它输入一台有大量RAM的机器(把TB当作起点),然后让它运行几周来得到这些因素

这一点是要指出,对RSA最常见的攻击的初始成本非常高(即,获得类似克雷超级计算机的东西),甚至需要启动。不过,老实说,我不相信目前存在任何一台能够容纳足够RAM的机器,它甚至无法对1024位RSA密钥(更不用说一些偏执狂坚持使用的2048位甚至4096位密钥)发起攻击

当然,还有一些其他的因式分解方法不需要那么大的机器,但它们的效率低得多,即使充其量,您也需要花费数年的时间,按照RSA标准来平衡一个相当小的密钥——例如512位

实际上,在设计使用RSA的系统时,RSA本身的安全性通常是您最不关心的。事实上,几乎所有合理的现代加密算法都是如此。当某些东西被破坏时,本质上从来不是通过破坏所涉及的基本算法——而是通过发现密钥分配方式的弱点、“社会工程”攻击等

虽然(正如我所说)这通常适用于加密,但与大多数其他加密相比,RSA更适用于加密。这仅仅是因为RSA的正常用例相对复杂。特别是,您通常不希望使用RSA加密大量原始数据流。RSA的速度非常慢,您通常不想使用它来加密大量数据。相反,您通常将RSA与一些对称密钥(又称私钥)加密算法(如AES)结合使用

将两者结合使用时,首先要获取要向其发送数据的人的公钥。然后生成一个大小正确的随机数,并使用所选的对称算法作为密钥。您可以使用RSA加密随机数并将其发送到目标。然后使用该数字作为对称算法的密钥,并使用该对称算法加密实际数据

这意味着在实际使用中,RSA有一些弱点,这些弱点不一定适用于大多数对称加密算法。举个明显的例子,如果为对称算法选择“随机”密钥的方法并非完全随机,攻击者可能会找到密钥并解密数据,而根本不会攻击RSA加密本身(是的,这是真实公开发布软件中真正漏洞的来源)

还要注意的是,我上面描述的是RSA通常使用的最简单的方法。实际系统通常会变得更加复杂,以提供诸如“完美前向保密”1之类的功能。这样一个系统中的RSA仍然是完全正常的RSA,但是使用它的系统的其余部分仍然相当复杂

概要:如果您打算使用RSA加密,RSA本身的安全性可能是您最不关心的。从“RSA”到“安全通信系统”的路线有点像是希腊神话和基督教圣经的扭曲组合:一个迷宫,有上千个错误的转弯,每个转弯都通向一个与你想去的地方一模一样的地方——但任何错误的转弯都会让你遭受无尽的折磨和折磨


1.不,我现在不打算描述这一点,但我相信在网上搜索会得到一些相关的结果。然而,我应该补充一点,尽管RSA可以用于提供PFS的系统中,但在实践中却相当罕见。

在谷歌
rsa定时攻击和
rsa选择密文攻击上,你可能会得到更好的答案:对于想学习的人来说,这是一个合理的问题。RSA是一种基于因式分解的算法,计算能力不断增长,世界各地的人们都在努力打破RSA因式分解。RSA-1024可能是最广泛使用的位强度/位数,因为它在SSL中使用,所以它被认为是足够安全的,可以保护大部分敏感度