当前位置:七道奇文章资讯安全技术网络技术
日期:2010-04-04 01:08:00  来源:本站整理

Hash暴力攻击[网络技术]

赞助商链接



  本文“Hash暴力攻击[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

名字:终点
教程:Hash暴力攻击
性质:翻译文章
时间:2010年3月27日星期六
------------------------------------以上为信息↑------------------------------------
--------------------------------------文章内容↓------------------------------------
文章作者:raddy1313
译文作者:终点
 
导言

本文将谈论HASH攻击情势及通过的攻击的概率.固然这本身已经有很多供应攻击HASH的工具与文章,但它背后的产生供应了HASH冲突可以严重侵害算法的安全理论.

破解(也是术语所以我利用这词)

要快速检查,通过采纳在一个字符串(如您的密码加密散列函数的工作),履行它的一些数学运算,并指出十六进制的无用,是完好无意义的东西.假如算法是尽心计划的数学运算将是单向的,也就是说,它是无法实现或使计算不实在际采纳HASH运行的算法,通过它倒退到反刍原始字符串.最简单的办法得到您想要的密码是匹配的测试每一个大概的密码,看能否HASH匹配,不然的暴力称为暴力破解HASH.不幸的是,这大概需求很长时间,有我们所拥有更有效的手段.

一种办法是尝试并得到该算法生成的是所谓的“杂凑破解”的说法.早年面的文章中,我们发现利用来自ExtBasic 11,密码算法载有相同的信件老是生成相同的HASH,无论什么字母次序(“aab”是在相同“aba”的一样的“baa”).这是一个杂凑破解,两个或两个以上相同的HASH创造一个单独的字符串.由于实际世界的算法,不利用这种简单的办法,不会发生碰撞那么简单,但他们确切发生.事实上,我们知道他们必须呈现!

以MD5算法,比方.关于每一个输入密码,该算法将始终返回哈希是128位长,或32个十六进制字符的字符串.从这一点动身,我们知道有一个可以生成HASH是有限的,但输入的密码数目可以是无限的.为了精确地理解这一点,有94个字符在一个普通的键盘(52资本和小写字母,10个号码,和32各类标记,据我所知,目前在MD5算法没有不法字符).假定20密码长度,我们用我们的置换公式的前:
n^k = 16^32 = 2^128 = 3.4e38 possible hashes
94^20 = 2.9e39 possible passwords
 
因此,从这个,我们知道,假如我们尽了20个字符或更多大概的密码,终究我们将产生一个值!

但是,这并非好消息.为了测试在600万的速度为每密码秒(我的笔记本电脑的平均HASH速度)会1.5e25年,我们比任什么时刻间跨度也不大概假想的大脑数目级长.此外,由于我们必须存储每个HASH我们计算,以便我们可以对将来的查抄,并理解每一个HASH占据16个字节,这意味着我们必须有这么多的2TB的硬盘,假如他们被摆在网格,他们将覆盖整个地球表面一千一英里深.那么怎么办?幸运的是,概率在我们一边.
50!
---------- = 1,225 combinations
2! (50-2)!
 
因此,要考虑一下这个问题是另一种方法问,假如我们有2450人,我们配对,让他们带着对方随机,机会有多大,一个人会因为他被同组的人一样的?目前它仿佛很牵强那那边一97%的机会将会有一段失利.
但若何这能否实用于HASH冲突?那么,既然我们只是想找到相同的HASH(“生成”)事实证明,我们有计算的密码令人发指的数目,我们原认为这密码.生成悖论简化到以下公式:

生成悖论

假如你曾经采纳了统计和概率类,你大概已经理解了生成悖论.它是这样的:以一个50人的空间.机会有多大,至少有两个人城市有相同的生成?

细想起来很快,有一年365天(闰年诞生不计算在内,他们arent真实的人无论若何),50人,大概1 6,约占17%?错误的.实际上,概率更是高达97%!这令人难以置信的高,当然必须有一个错误!那么,让我们在数学研究.

在一个50人的空间,试图匹配两个生成.因此,采纳任何一个生成,有49次测试成为大概.但是,假如我们对比每一个生成都彼此的诞生,我们的人数大概匹配大大增添,我们可以用我们的办法,无替换方程的组合:
k!
------------- = P
(k^n)(k - n)!
此中“k”的项目是最多试图匹配(生成的例子),“n”是我们的样本空间(数目),和“P”是找到一个匹配的概率.由于阶乘计算疾速超越了答应的大小最计算器,泰勒系列近似也很有效(关于我们这些勤奋记着代数,“E”是次指数不变,大约是2.718):
P = 1 - e^(-(n^2)/(2*k))
Solving for n:
n = sqrt(ln(1 - P)*-2*k)
 
结论

重要的是要注意发现具有相同散列两个密码

[1] [2]  下一页


  以上是“Hash暴力攻击[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • java的hashtable的用法
  • 操纵Hashtable对字符串举行碰撞
  • Java中对HashMap的深度解析与比较
  • 通过解析JDK源代码研究Hash存储机制
  • Java理论与实践: 构建一个更好的HashMap
  • Hashtable和HashMap的辨别
  • Java:重写equals()和hashCode()
  • [JAVA100例]005、哈希表(Hashtable)和摆列器
  • Java中Object类的equals()和hashCode()办法深化解析
  • php中常用hash加密函数
  • Linux kernel 2.6.x ecryptfs_uid_hash()函数本地溢出漏洞及修复
  • Hash暴力攻击
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .