论文部分内容阅读
信息安全越来越成为制约计算机软件产业整体发展的重要领域,散列函数是其中应用最广泛的手段和工具。对于相应的安全性问题也引起了国内外的信息安全界研究者的高度关注,采用彩虹表进行口令破解的方法是其中重要研究热点之一。传统方法中一般采用穷举搜索或者预计算查表法,但随着加密算法的复杂度不断加强和密钥空间不断增大,使得现有的方法在破解上需要的有效时间越来越长,而Oechslin提出的彩虹表则可以相对有效的提高攻击效率。该方法是在Hellman提出的时间存储空间权衡算法基础上不断改进,采用不同缩减函数解决原有表中部分链重合问题,从而提高生成和查找等效率,成为对散列函数进行攻击的重要手段。但其中彩虹表的生成和查找等方法仍有进一步发展可能,并且随着计算机性能不断提升,GPU设备不断发展成熟,采用集群生成和调度任务的方法也已经具备了。首先,通过研究原有算法借鉴其思想基础上,在生成方面,根据集群架构特点,对原有彩虹表生成进行分割优化,提出子彩虹表概念,将原属于同一张表的数据由集群节点的GPU独立生成放在子彩虹表中。其次,将原有的外排序过程转化为创建索引的办法,将生成的多个子彩虹表经过两次扫描,第一次扫描统计索引桶数构造统计表,第二次扫描根据统计表前缀和,将子彩虹表数据按照统计表的偏移值分别将数据读入S-point表和E-point表相对应位置中。最后,在搭建的GPU集群上,将原有的计算分为索引值组GPU计算和CPU查找计算。引用任务调度策略,根据用户的需求,将任务分解,由每个计算节点的GPU处理子任务包,把得到的索引值组传回CPU进行计算,达到高可伸缩性和破解效率高的特点。在通过GPU进行彩虹表破解口令的研究中,结合集群本身的特点,建立一个有效的彩虹表口令破解模型系统,并对主流加密算法的口令破解进行验证测试,达到良好效果。