开发彩虹表
我目前正在从事一个并行计算项目,我试图使用彩虹表破解密码。
我想到的第一步是实现一个非常小的版本,可以破解长度为 5 或 6 的密码(只有数字密码)。首先,我对配置设置有一些疑问。
1 - 我应该从什么尺寸开始。我的第一个猜测是,我将从一张包含 1000 个初始、最终对的表开始。这个尺寸适合开始吗?
2- 链的数量 - 我真的没有在网上得到关于链的大小应该是多少的信息
3 - 减少函数 - 如果有人能给我任何关于我应该如何构建一个链的信息。
另外,如果有人有任何信息或任何例子,那将会非常有帮助。
I am currently working on a parallel computing project where i am trying to crack passwords using rainbow tables.
The first step that i have thought of is to implement a very small version of it that cracks password of lengths 5 or 6 (only numeric passwords to begin with). To begin with, i have some questions with the configuration settings.
1 - What should be the size that i should start with. My first guess is, i will start with a table with 1000 Initial, Final pair. Is this is a good size to start with?
2- Number of chains - I really got no information online with what should be the size of a chain be
3 - Reduction function - If someone can give me any information about how should i go about building one.
Also, if anyone has any information or any example, it will be really helpful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
网上已经有大量的彩虹表可供使用。计算彩虹表只是将计算负担从攻击运行时转移到预计算。
http://www.freerainbowtables.com/en/tables/
http://www.renderlab.net/projects/WPA-tables/
http://ophcrack.sourceforge.net/tables.php
http://www.codinghorror.com/blog/2007/09/rainbow-hash-cracking.html
There is already a wealth of rainbow tables available online. Calculating rainbow tables simply moves the computation burden from when the attack is being run, to the pre-computation.
http://www.freerainbowtables.com/en/tables/
http://www.renderlab.net/projects/WPA-tables/
http://ophcrack.sourceforge.net/tables.php
http://www.codinghorror.com/blog/2007/09/rainbow-hash-cracking.html
这是一个时间和空间的权衡。链条越长,您需要的链条就越少,因此占用的空间就越少,但破解每个密码所需的时间就越长。
因此,答案始终是在可用空间内尽可能建造最大的桌子。这将决定您的链条长度和链条数量。
至于选择归约函数,它应该是快速的并且表现出伪随机性。对于您建议的明文集,您可以从哈希中选择 20 位并将它们解释为十进制数(在链中的每个步骤选择不同的 20 位集)。
It's a time-space tradeoff. The longer the chains are, the less of them you need, so the less space it'll take up, but the longer cracking each password will take.
So, the answer is always to build the biggest table you can in the space that you have available. This will determine your chain length and number of chains.
As for choosing the reduction function, it should be fast and behave pseudo-randomly. For your proposed plaintext set, you could just pick 20 bits from the hash and interpret them as a decimal number (choosing a different set of 20 bits at each step in the chain).