Jer*_*fin 31
对RSA的通常攻击涉及分解大量数字,这是两个非常大的素数的乘积.这背后的总体思路是,寻找素数是相当容易的,再乘以他们在一起,得到一个大的数量也很容易,但如果你只与大量启动,找到因素是相当困难的.
当他们是一家独立公司时,RSA数据安全公司也面临着因素挑战.IIRC,最后几个奖项由RSA DSI自己的团队赢得.这些是使用General Number Field Sieve(GNFS)完成的.典型的实现使用大量工作站几个月左右来构建"因子库".然后(困难的部分)你把它喂给一台拥有庞大内存量的机器(以太字节为起点)并让它紧缩几周以获得这些因素.
关键在于指出对RSA的最常见攻击具有非常高的初始成本(即,像Cray超级计算机这样的东西)甚至开始.但是,老实说,我不相信任何当前存在的机器可以容纳足够的RAM甚至开始攻击像1024位RSA密钥(更不用说2048甚至4096位密钥的一些偏执狂类型坚持使用).
当然,还有其他的保理方法不需要大型机器,但它们的效率低得多,即使充其量也是如此,你可以通过多年的努力来达到RSA标准的相当小的关键 - - 例如512位.
实际上,RSA本身的安全性通常是您设计使用它的系统时最不关心的问题.事实上,几乎所有合理的现代加密算法都是如此.当某些东西被打破时,它实际上从来没有真正打破所涉及的基本算法 - 它是通过发现密钥如何分布的弱点,"社会工程"攻击等.
虽然(正如我所说)这种加密方式通常都是如此,但与大多数其他加密相比,RSA更加一致.这仅仅是因为RSA的正常使用情况相对复杂.特别是,您通常不希望使用RSA来加密大量原始数据流.RSA足够慢,您通常不希望使用它来加密大量数据.相反,您通常将RSA与某些对称密钥(也称为私钥)加密算法(如AES)结合使用.
将两者结合使用时,首先要获取要向其发送某些数据的人员的公钥.然后生成一个正确大小的随机数,用作您选择的对称算法的密钥.您使用RSA加密随机数并将其发送到目标.然后使用该数字作为对称算法的密钥,并使用该对称算法加密实际数据.
这意味着在实际使用中,RSA有一些弱点,不一定适用于大多数对称加密算法.只是一个明显的例子,如果该方法使用选择对称算法的"随机"关键是不是真的完全是随机的,攻击者可能能够找到问题的关键和解密数据,而不会攻击RSA加密本身在所有(是的,这是真实的,公开发布的软件中真正漏洞的根源.
另请注意,我上面描述的内容几乎是RSA通常使用的最简单方法.真正的系统通常会变得相当复杂,以提供诸如"完美的前向保密"之类的东西1.这种系统中的RSA仍然是完全正常的RSA,但使用它的系统的其余部分仍然相当复杂.
简介:如果您要使用RSA加密,RSA本身的安全性可能是您最不关心的问题.从"RSA"到"安全通信系统"的路线有点类似于希腊神话和基督教圣经的扭曲组合:一个有错误转弯的迷宫,每个都会导致一个看起来完全像你想去 - 但是任何错误的转变都会让你陷入永恒的折磨和痛苦之中.
1.不,我现在不打算对此进行描述,但我肯定会在Crypto上搜索它.SE会发现一些相关的结果.但是,我应该补充说,尽管RSA可以在提供PFS的系统中使用,但在实践中它是相当不寻常的.
正确实施(即,如果您使用现有的库为您执行此操作),您的数据通道是安全的.但是,请记住,加密点只是为了使数据通道不是整个系统中最薄弱的环节.RSA会这样做,但你仍然需要担心系统的其他部分以及它们的安全性.
| 归档时间: |
|
| 查看次数: |
23790 次 |
| 最近记录: |