- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于分布式计算的暴力破解密码系统的改进
摘 要 基于分布式计算的暴力破解密码系统长久以来承担着检验密码强度和安全性的重要任务,但随着系统规模的进一步加大以及密码强度的不断升级,系统出现一定程度的效率下降问题。本文的主要工作是对传统分布式暴力破解密码系统流程进行完善和创新,以便达到克服以上问题的目的。
【关键词】暴力破解 密码 分布式系统
1 引言
随着社会经济的发展,特别是Internet的发展,社会信息化进程越来越快,互联网络环境下的信息安全由于涉及到国家政治、经济、军事等领域的安全和社会稳定,已日益成为国家安全领域中的重中之重,2014年中央网络安全和信息化领导小组宣布成立以及2016年《中华人民共和国网络安全法》的颁布已经充分说明了网络安全的重要性。而密码技术作为信息安全领域中的重要内容,它的安全性是不言而喻。而暴力破解密码系统是测试密码安全性的重要方法,所以提高暴力破解密码的效率便是人们一直追求的目标。但是随着计算规模的不断增大,传统的分布式密码暴力破解系统出现各种各样的问题。本文在传统的分布式密码暴力破解流程的基础上进行了改进和研究,期望能有效的解决上述问题。
2 分布式计算和暴力破解简介
2.1 分布式计算
与分布式计算相对的是集中式计算。集中式计算的代表就是世界各国所研制的超级计算机,而分布式计算就是利用散布在世界各地的连接在Internet上的微型计算机以达到可以媲美超级计算机计算能力的一种计算方法。在计算机刚出现的早期,因为硬件资源的昂贵,计算机经历了从早期的一台服务器、多台客户机的C/S架构逐步发展到现在的分布式计算,同时也出现了以Hadoop为代表的优秀的分布式计算平台。
所谓的分布式计算就是把需要一个庞大计算量的任务按一定的规则分解成一个个彼此独立的小型子任务,然后将这些子任务分发到分布式平台上的节点计算机进行相应的计算以及处理,最后将这些节点计算机的计算结果进行汇总处理以得到最终的结果。
分布式计算有如下优点:
(1)数据处理能力媲美超级计算机。
(2)强大的容错能力,一个节点失效和出错,可以迅速由另一个节点取代。
(3)便于管理,分布式节点的加入和退出非常方便。
(4)在所有节点上实现平衡负载,得以把任务放到最适合处理它的节点上进行处理。
正是具有了这些优点,分布式计算以其强大的计算能力和具有一定弹性机制的扩展性被视为新一代互联网发展的基础和趋势。
2.2 暴力破解
暴力破解(Brute Force Attack)就是通过搜索密钥空间中所有密钥的方法来找到正确的密钥以达到破解密码的目的。
暴力破解的循环工作流程如图1所示:
(1)从密钥空间中提取一个密钥;
(2)将此密钥送入破解程序进行验证;
(3)判断此密钥是否正确;
(4)如果正确则运算结束,否则返回第一步。
从理论上说,暴力破解一定会奏效,但在现实生活中暴力破解所需要的金钱成本和时间成本非常巨大。但是当暴力破解结合了分布式计算的强大计算能力,暴力破解就显示出了它巨大的优势。
3 系统架构以及流程图
3.1 系统架构
暴力破解系统的实现一般采用Server/Client模式,我们借鉴经典的C/S架构,并在此基础上做出一点改进:增加一个控制端(Controller)的角色,改进后的C/S架构如图2所示。
服务器端主要负责任务的分块、分发以及计算结果的接收等;控制端主要负责客户端的注册、向服务器端提供客户端节点信息等;客户端主要负责任务块的计算。
3.2 服务器端(Server)
服务器端的主要功能包括任务的分块、任务块的状态跟踪、任务的分发以及计算结果的接收。并且可以随时暂停和取消客户端的任务。
3.2.1 任务分块
服务器端内部集成了任务分片算法,可以将一个或者多个大任务分成多个小型子任务。任务块的划分与具体的密码算法有关。
3.2.2 任务块状态跟踪
在给客户端分发任务块前,服?掌餍枰?跟踪任务块的状态。我们把任务块状态分成三种情况:
(1)尚未分配给客户端;
(2)已经分配给客户端,但尚未返回结果;
(3)计算完毕。
我们可以根据不同的任务设定不同的超时时间,在规定的时间内仍未返回结果的任务块将被赋予更高的优先级。
3.2.3 任务分发
服务器端把任务块状态是A或者B的任务块分发给客户端,我们可以根据任务的精密程度将任务块分发到两个或者多个客户端。
3.2.4 结果接收
当服务器接收到两个(或者多个)客户端上传的计算结果后进行结果比对,将认定计算错误的结果丢弃,同时将计算错误的客户端加入黑名单,以防止恶意
文档评论(0)